Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/a.bat
===================================================================
--- /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/a.bat	(revision 5679)
+++ /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/a.bat	(nonexistent)
@@ -1,10 +0,0 @@
-e pu
-e 8043 00
-
-::e hu output/romcode.rom 2000
-::e ku
-::e pu
-e hu output/ramcode.rom 0
-e pu
-e su output/sched.rom
-e cu
\ No newline at end of file
Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/ai_mouse_ble_att_uuid_list.dat
===================================================================
--- /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/ai_mouse_ble_att_uuid_list.dat	(revision 5679)
+++ /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/ai_mouse_ble_att_uuid_list.dat	(nonexistent)
@@ -1,821 +0,0 @@
-01
-00
-02
-00
-28
-02
-00
-18
-02
-00
-02
-03
-28
-01
-0a
-03
-00
-02
-00
-2a
-14
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-04
-00
-02
-03
-28
-01
-02
-05
-00
-02
-01
-2a
-02
-c2
-03
-06
-00
-02
-03
-28
-01
-02
-07
-00
-02
-04
-2a
-08
-06
-00
-06
-00
-64
-00
-2c
-01
-08
-00
-02
-00
-28
-02
-01
-18
-09
-00
-02
-03
-28
-01
-20
-0a
-00
-02
-05
-2a
-00
-0b
-00
-02
-02
-29
-02
-00
-00
-0c
-00
-02
-00
-28
-02
-0a
-18
-0d
-00
-02
-03
-28
-01
-02
-0e
-00
-02
-29
-2a
-06
-59
-69
-43
-68
-69
-70
-0f
-00
-02
-03
-28
-01
-02
-10
-00
-02
-50
-2a
-07
-02
-8a
-24
-bb
-c0
-01
-00
-11
-00
-02
-00
-28
-02
-0f
-18
-12
-00
-02
-03
-28
-01
-12
-13
-00
-02
-19
-2a
-01
-64
-14
-00
-02
-02
-29
-02
-00
-00
-15
-00
-02
-03
-28
-01
-04
-16
-00
-02
-4c
-2a
-00
-17
-00
-02
-00
-28
-02
-12
-18
-18
-00
-02
-03
-28
-01
-06
-19
-00
-02
-4e
-2a
-01
-01
-1a
-00
-02
-03
-28
-01
-12
-1b
-00
-02
-4d
-2a
-08
-00
-00
-00
-00
-00
-00
-00
-00
-1c
-00
-02
-02
-29
-02
-00
-00
-1d
-00
-02
-08
-29
-02
-02
-01
-1e
-00
-02
-03
-28
-01
-1a
-1f
-00
-02
-4d
-2a
-07
-00
-00
-00
-00
-00
-00
-00
-20
-00
-02
-02
-29
-02
-00
-00
-21
-00
-02
-08
-29
-02
-01
-01
-22
-00
-02
-03
-28
-01
-12
-23
-00
-02
-4d
-2a
-02
-00
-00
-24
-00
-02
-02
-29
-02
-00
-00
-25
-00
-02
-08
-29
-02
-05
-01
-26
-00
-02
-03
-28
-01
-12
-27
-00
-02
-4d
-2a
-02
-00
-00
-28
-00
-02
-02
-29
-02
-00
-00
-29
-00
-02
-08
-29
-02
-04
-01
-2a
-00
-02
-03
-28
-01
-0e
-2b
-00
-02
-4d
-2a
-02
-00
-00
-2c
-00
-02
-08
-29
-02
-02
-02
-2d
-00
-02
-03
-28
-01
-12
-2e
-00
-02
-4d
-2a
-02
-00
-00
-2f
-00
-02
-02
-29
-02
-00
-00
-30
-00
-02
-08
-29
-02
-c0
-01
-31
-00
-02
-03
-28
-01
-12
-32
-00
-02
-4d
-2a
-02
-00
-00
-33
-00
-02
-02
-29
-02
-00
-00
-34
-00
-02
-08
-29
-02
-cc
-01
-35
-00
-02
-03
-28
-01
-0e
-36
-00
-02
-4d
-2a
-02
-00
-00
-37
-00
-02
-08
-29
-02
-c0
-02
-38
-00
-02
-03
-28
-01
-1a
-39
-00
-02
-33
-2a
-08
-00
-00
-00
-00
-00
-00
-00
-00
-3a
-00
-02
-02
-29
-02
-01
-00
-3b
-00
-02
-03
-28
-01
-02
-3c
-00
-02
-4a
-2a
-04
-01
-01
-00
-03
-3d
-00
-02
-03
-28
-01
-02
-3e
-00
-02
-4b
-2a
-20
-01
-05
-0c
-09
-01
-a1
-01
-85
-05
-15
-00
-25
-01
-75
-01
-95
-18
-0a
-83
-01
-09
-ea
-09
-e9
-09
-e2
-09
-b6
-09
-b5
-09
-cd
-09
-b7
-0a
-23
-02
-0a
-8a
-01
-0a
-94
-01
-0a
-2a
-02
-0a
-92
-01
-0a
-21
-02
-0a
-24
-02
-0a
-07
-03
-0a
-ae
-01
-09
-70
-09
-6f
-09
-30
-09
-b8
-0a
-25
-02
-0a
-26
-02
-0a
-27
-02
-81
-02
-c0
-05
-01
-09
-06
-a1
-01
-85
-02
-75
-01
-95
-08
-05
-07
-19
-e0
-29
-e7
-15
-00
-25
-01
-81
-02
-95
-01
-75
-08
-81
-03
-95
-05
-75
-01
-05
-08
-19
-01
-29
-05
-91
-02
-95
-01
-75
-03
-91
-03
-95
-06
-75
-08
-15
-00
-26
-ff
-00
-05
-07
-19
-00
-2a
-ff
-00
-81
-00
-c0
-05
-01
-09
-02
-a1
-01
-85
-01
-09
-01
-a1
-00
-05
-09
-19
-01
-29
-08
-15
-00
-25
-01
-75
-01
-95
-08
-81
-02
-05
-01
-09
-30
-09
-31
-16
-01
-f8
-26
-ff
-07
-75
-10
-95
-02
-81
-06
-09
-38
-15
-81
-25
-7f
-75
-08
-95
-01
-81
-06
-05
-0c
-0a
-38
-02
-95
-01
-81
-06
-c0
-c0
-05
-01
-09
-80
-a1
-01
-85
-04
-15
-00
-25
-01
-75
-01
-95
-03
-19
-81
-29
-83
-81
-02
-95
-01
-75
-05
-81
-03
-c0
-06
-01
-ff
-09
-01
-a1
-01
-15
-00
-26
-ff
-00
-75
-08
-85
-c0
-95
-3f
-09
-02
-81
-00
-95
-3f
-09
-03
-91
-02
-85
-cc
-95
-3f
-09
-04
-81
-00
-95
-04
-09
-05
-91
-02
-c0
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-
Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/auth_write.bat
===================================================================
--- /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/auth_write.bat	(revision 5679)
+++ /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/auth_write.bat	(nonexistent)
@@ -1,11 +0,0 @@
-e pu
-e 8043 0
-e 0x8070 00000000000000000
-e 80d7 3e
-e 80d8 6c
-e 80d9 6d
-
-e er 3b02 8
-e ew 3b02 666666666666
-e ew 3b08 0100
-e er 3b02 8
Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/do.bat
===================================================================
--- /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/do.bat	(revision 5679)
+++ /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/do.bat	(nonexistent)
@@ -1,110 +0,0 @@
-@set FPGA_PATH=fpgajic\fpga
-@set ROM_PATH=.
-@set MV_PATCH=mv\src\yichip
-@set YC_PATCH_FILE=yc_patch_yc1021.h
-@set enc=1
-@set enckey=0000000000000000
-@rem set device_option=rfbqb
-@set device_option=mouse
-@rem set device_option=shutter
-@rem set device_option=shutter_dy
-@rem set device_option=hci
-@rem set device_option=antilost
-@rem set device_option=dongle
-@rem set device_option=module
-@rem set device_option=keyboard
-@rem set device_option=car
-@rem set device_option=remote_car
-@rem set device_option=mesh
-@rem set device_option=otp
-@rem set device_option=remote_control
-@echo off
-
-set now_path=%~dp0
-set util_path=%now_path%util
-
-setlocal enabledelayedexpansion
-for %%f in (program\ble_protocol_stack\*.prog) do @set progs=!progs! %%f
-for %%f in (program\g24_protocol_stack\*.prog) do @set progs=!progs! %%f
-for %%f in (program\mesh_protocol_stack\*.prog) do @set progs=!progs! %%f
-for %%f in (program\*.prog) do @if not %%f==program\bt.prog if not %%f==program\patch.prog if not %%f==program\sim.prog set progs=!progs! %%f
-type program\bt.prog %progs% %light_progs% > output\bt_program23.meta
-
-for %%f in (format\ble_protocol_stack\*.format) do set fmts=!fmts! %%f
-for %%f in (format\g24_protocol_stack\*.format) do set fmts=!fmts! %%f
-for %%f in (format\mesh_protocol_stack\*.format) do set fmts=!fmts! %%f
-for %%f in (format\*.format) do @if not %%f==format\bt.format if not %%f==format\command.format set fmts=!fmts! %%f
-type format\bt.format %fmts% format\command.format > output\bt_format.meta
-::perl util/memalloc.pl output/bt_format.meta
-
-if "%device_option%" equ "hci" (
-  copy sched\hci_boot.dat output\sched.rom
-) else if "%device_option%" equ "keyboard" (
-  copy sched\keyboard.dat + sched\1305.dat output\sched.rom
-) else if "%device_option%" equ "mouse" (
-  copy sched\mouse.dat + sched\1305.dat +sched\mouse_sensor.dat output\sched.rom
-) else if "%device_option%" equ "module" (
-  copy sched\DM_module.dat + sched\1305.dat output\sched.rom
-) else if "%device_option%" equ "shutter" (
-  copy sched\shutter.dat + sched\1305.dat output\sched.rom
-) else if "%device_option%" equ "shutter_dy" (
-  copy sched\shutter_dy.dat + sched\1305.dat output\sched.rom
-) else if "%device_option%" equ "antilost" (
-  copy sched\antilost.dat + sched\1305.dat output\sched.rom
-) else if "%device_option%" equ "dongle" (
-  copy sched\dongle.dat + sched\1305.dat output\sched.rom
-) else if "%device_option%" equ "car" (
-  copy sched\car.dat + sched\1305.dat output\sched.rom
-) else if "%device_option%" equ "remote_car" (
-  copy sched\remote_car.dat + sched\1305.dat output\sched.rom
- ) else if "%device_option%" equ "mesh" (
-  copy sched\1305.dat +sched\mesh.dat output\sched.rom
-) else if "%device_option%" equ "otp" (
-  copy sched\1305.dat output\sched.rom
-) else if "%device_option%" equ "remote_control" (
-  copy sched\rec.dat + sched\1305.dat output\sched.rom
-)else  (
-
-cd ..
-echo **********************************
-echo Error: illegal device_option !
-echo **********************************
-goto end
-) 
-
-perl util/mergepatch.pl 
-
-cd output
-osiuasm bt_program23 -O-W
-
-
-%util_path%/geneep  -n -s -i -z
-
-echo create auth rom
-perl ../util/mergepatch.pl mouse_ble_att_list usb_kbdata_vendor_define usb_kbdata usb_msdata usb_devicedata usb_confdata keyboard_ble_hid_map_only_keyboard keyboard_ble_hid_map_magic_keyboard keyboard_ble_hid_map_n_key_rollover_keyboard ble_shutter_gatt_list ble_shutter_key_value_list   
-perl ../util/romcrc.pl romcode.rom
-perl  ../util/mergepatch.pl otp
-::perl ../util/otpcheck.pl 
-echo.
-
-
-if "%device_option%" equ "mouse" (
-cd ..\output
-copy eeprom.dat ..\util\eeprom.dat
-cd ..\util
-eeprom2fulleeprom.exe eeprom.dat 64>compare2.dat
-crc16.exe compare2.dat 2 >..\output\eeprom.dat
-del eeprom.dat
-del compare2.dat
-cd ..\output
-copy eeprom.dat ..\output\flash.dat 
-)
-
-cd ..
-call set_chip_type_flag.bat 
-call merge_ble_uud_list_files.bat
-
-:end
-
-
-
Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/empty.dat
===================================================================
--- /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/empty.dat	(revision 5679)
+++ /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/empty.dat	(nonexistent)
@@ -1,4096 +0,0 @@
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
-FF
Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/ep.bat
===================================================================
--- /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/ep.bat	(revision 5679)
+++ /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/ep.bat	(nonexistent)
@@ -1,38 +0,0 @@
-call do.bat eep
-set baud=a0
-e pu
-e 8043 0
-e 0x8070 00000000000000000
-e 80d7 3e
-e 80d8 6c
-e 80d9 6d
-::e 80d9 3e
-::e 80da 6c
-::e 80db 6d
-
-e er 0 10
-e ep empty.dat 0
-e ep empty.dat 1000
-e ep empty.dat 2000
-e ep empty.dat 3000
-@REM e ep empty.dat 4000
-e er 0 10
-
-e er 3b02 8
-@REM e ew 3b02 665544332211
-e ew 3b02 010000000000
-e ew 3b08 0100
-e er 3b02 8
-
-@REM e er 3400 20
-@REM e ep ai_mouse_ble_att_uuid_list.dat 3400
-@REM e er 3400 20
-
-::e 8071 6c6d3e
-e er 0 10
-e ew 0 112233
-e er 0 10
-e ep output/eeprom.dat 0
-e er 0 20
-e er 3400 20
-e ku
Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/ep_empty.bat
===================================================================
--- /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/ep_empty.bat	(revision 5679)
+++ /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/ep_empty.bat	(nonexistent)
@@ -1,17 +0,0 @@
-set baud=a0
-e pu
-e 8043 0
-e 80d7 3e
-e 80d8 6c
-e 80d9 6d
-e er 0 10
-e ew 0 112233
-e er 0 10
-e ep empty.dat 0
-e ep empty.dat 1000
-e ep empty.dat 2000
-e ep empty.dat 3000
-e ep empty.dat 4000
-e er 0 10
-e ku
-e au
Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/app.format
===================================================================
--- /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/app.format	(revision 5679)
+++ /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/app.format	(nonexistent)
@@ -1,379 +0,0 @@
-
-memalloc(
-
-/* load code */
-1 mem_ucode_status
-1 mem_spid_tbuf				/* spid buf: 03 addr[23:16] addr[15:8] addr[7:0] */
-0 mem_iicd_tbuf				/* iicd buf: iic_adr addr[15:8] addr[7:0] iic_adr */
-1 mem_addr_hi
-1 mem_addr_mi
-1 mem_addr_lo
-1 mem_iicd_addr
-4 mem_spid_rbuf
-2 mem_ucode_buf
-2 mem_ucode_len
-2 mem_sched_addr
-16 mem_ucode_keybuf
-
-32 mem_otp_temp
-
-1 mem_app_evt_timer_count
-)
-
-xmemalloc(
-2 mem_ucode_ptr
-1 mem_ucode_flag
-1 mem_device_option
-1 mem_peripheral_lock_flag
-0 mem_bistfix_val
-2 mem_bistfix_addr_sched
-2 mem_bistfix_addr_x
-2 mem_bistfix_addr_patch
-1 mem_bistfix_val_xram
-4 mem_bistfix_val_patchram
-
-/*App Callback Functons*/
-2 mem_cb_check_wakelock
-2 mem_cb_before_hibernate
-2 mem_cb_before_lpm
-2 mem_cb_le_process
-2 mem_cb_idle_process
-2 mem_cb_bb_event_process
-2 mem_cb_att_write
-2 mem_cb_ble_transmit
-2 mem_cb_event_timer
-2 mem_cb_bt_set_mult
-2 mem_cb_spi_flash_write_complate
-2 mem_cb_before_lpm_sleep
-
-2 mem_eeprom_base
-
-//lpm mode
-1 mem_wake_up_delay_timer
-
-1 mem_app_connection_options
-
-//
-2 mem_app_disconn_reason
-2 mem_app_disconn_reason_flag
-1 mem_xrecord_mode
-
-1 mem_eeprom_block_size
-1 mem_spi_init_clk
-1 mem_spi_init_delay_time
-1 mem_spi_ncs_gpio
-
-2 mem_nv_data_ptr
-1 mem_nv_data_number
-
-2 mem_queue_ptr
-
-
-//adc
-
-2 mem_reference_inter1p8v_2v_adc_io_data
-2 mem_reference_inter1p8v_2p6v_adc_vdcdc_data
-2 mem_reference_inter1p8v_1v_adc_io_data
-2 mem_reference_inter1p8v_4p6v_adc_vdcdc_data
-
-0 mem_adc_reference3v_ft_data	
-2 mem_adc_reference3v_gpio1v_ft_data	
-2 mem_adc_reference3v_gpio2v_ft_data	
-2 mem_adc_reference3v_vdcdc3p6v_ft_data	
-2 mem_adc_reference3v_vdcdc4p6v_ft_data	
-2 mem_adc_reference3v_inter1v_ft_data
-2 mem_adc_reference3v_inter1v_now_data	
-1 mem_adc_reference_mode
-
-2 mem_reference_voltage
-1 mem_adc_config_flag
-1 mem_adc_channel
-1 mem_adc_clkdiv
-2 mem_adc_current_value
-1 mem_adc_power_flag	//bit0:low power falg ; bit1:no power flag
-2 mem_adc_saddr_ptr
-2 mem_adc_eaddr_ptr
-1 mem_adc_dma_enable
-1 mem_adc_cal_c0
-1 mem_adc_cal_c1
-1 mem_adc_cal_c2
-1 mem_adc_cal_c3
-1 mem_adc_cal_c4
-1 mem_adc_cal_c5
-1 mem_adc_cal_c6
-1 mem_adc_cal_c7
-
-3 mem_spi_write_addr
-2 mem_spi_write_ptr
-2 mem_spi_write_len
-1 mem_spi_write_flash_sm
-
-
-1 mem_spi_cs_gpio
-1 mem_spi_si_gpio
-1 mem_spi_so_gpio
-1 mem_spi_sclk_gpio
-1 mem_spi_wp_gpio
-1 mem_spi_hold_gpio
-
-
-1 mem_eeprom_wp_gpio
-1 mem_eeprom_scl_gpio
-1 mem_eeprom_sda_gpio
-2 mem_kscan_ptr
-0 mem_key_num_ptr
-2 mem_keyscan_ptr
-2 mem_key_value_retention
-2 mem_power_param_ptr
-
-1 mem_seqi
-1 mem_set_cdb_on
-1 mem_syn_cal_ctrl
-
-1 mem_nec_decode_error_value
-
-ifdef AC_50HZ
-1 mem_ac_detect_gpio
-0 mem_ac_detect_control
-1 mem_ac_detect_div
-1 mem_ac_detect_window
-endif
-
-1 mem_wdt_always_work
-
-1 mem_power_ctrl_disable
-
-1 mem_ring_ibias_trim
-2 mem_ring_ibias_vtune_low
-2 mem_ring_ibias_vtune_high
-1 mem_ring_ibias_calc_adc_gpio
-1 mem_ring_ibias_calc_adc_channel
-)
-
-
-(
-0 QUEUE_OFFSET_EACH_SIZE
-1 QUEUE_OFFSET_LENGTH
-2 QUEUE_OFFSET_CURR_NUM
-3 QUEUE_OFFSET_READ_PTR
-4 QUEUE_OFFSET_WRITE_PTR
-5 QUEUE_OFFSET_ELE_INIT_ADDR
-)
-(
-//Flash Register
-0x05 FLASH_READ_SATUS
-
-// Flash Status Register
-0x00 FLASH_STATUS_WIP
-0X01 FLASH_STATUS_WEL
-0X02 FLASH_STATUS_BP0
-0X03 FLASH_STATUS_BP1
-
-//Flash Write Sm
-0X00 FLASH_SM_NO_BUYS
-0X01 FLASH_SM_START
-0X02 FLASH_SM_ERASE_SECTOR
-0X03 FLASH_SM_WAIT_ERASE_SECTOR
-0X04 FLASH_SM_WRITE_DATA
-0X05 FLASH_SM_WAIT_WRITE_DATA
-
-
-//Flash Command
-0x02 FLASH_COMMAND_WRITE_DATA
-0x03 FLASH_COMMAND_READ_DATA
-0x06 FLASH_COMMAND_WRITE_ENABLE
-0x20 FLASH_COMMAND_SECTOR_ERASE
-0x81 FLASH_COMMAND_PAGE_ERASE
-0xAB FLASH_COMMAND_RELEASE_FROM_POWERDOWN
-0xB9 FLASH_COMMAND_POWERDOWN
-
-)
-
-
-(
-7 OTP_UFLAG_MEMFIX2
-6 OTP_UFLAG_MEMFIX1
-5 OTP_UFLAG_MEMFIX0
-4 OTP_UFLAG_BIST
-3 OTP_UFLAG_AES
-2 OTP_UFLAG_SKIP_EEP
-1 OTP_UFLAG_SKIP_FLASH
-0 OTP_UFLAG_HCI
-)
-
-amemalloc mem_otp_temp(
-	8 mem_otp_adc
-	1 mem_otp_adc_ratio
-	7 mem_otp_coordinate
-	1 mem_otp_core_ldo
-	1 mem_otp_verf_bg
-	1 mem_otp_charge_pump
-	1 mem_otp_dpll_ibais
-	8 mem_otp_temp1
-	1 mem_otp_hv_sel
-	1 mem_otp_ldo_vsel
-	1 mem_otp_load_delay
-	1 mem_otp_load_check_sum
-)
-
-
-//OTP
-(
-0 OTP_OFFSET_PATCH_PTR //2 byte
-2 OTP_OFFSET_UCODE_FLAG
-3 OTP_OFFSET_DEVICE_OPTION
-4 OTP_OFFSET_PERIPHERALS_LOCK
-5 OTP_OFFSET_SCHED_BISTFIX 	//2 byte
-7 OTP_OFFSET_XRAM_BISTFIX	//2 byte
-9 OTP_OFFSET_PATCH_BISTFIX	//2 byte
-
-0xfc0 OTP_OFFSET_ADC_PARAM_L_C0
-
-0xfd0 OTP_OFFSET_ADC_PARAM_L
-0xff0 OTP_OFFSET_UCODE_KEY_L
-0x1000 OTP_OFFSET_H
-
-//0x1fd0 OTP_OFFSET_ADC_PARAM
-//0x1fec OTP_OFFSET_HV_SEL
-//0x1fed OTP_OFFSET_LDO_VSEL
-//0x1fee OTP_OFFSET_LOADCODE_DELAY
-//0x1fef OTP_OFFSET_LOADCODE_CHECKSUM
-0x1ff0 OTP_OFFSET_UCODE_KEY
-)
-
-
-
-/*mem_device_option*/
-(
-1 DVC_OP_2G4
-2 DVC_OP_BLE
-
-4 DVC_OP_DONGLE
-5 DVC_OP_TEST
-6 DVC_OP_SHUTTER_DY   
-7 DVC_OP_MOUSE_2G4
-8 DVC_OP_MOUSE
-9 DVC_OP_SHUTTER
-0X0A DVC_OP_MODULE
-0X0b DVC_OP_REMOTE_CONTROL
-0X0C DVC_OP_HCI_BOOT
-0X0D DVC_OP_REMOTE_CAR
-0X0E DVC_OP_CAR
-0X0F DVC_OP_KEYBOARD   
-)
-
-
-(
-7 GPIO_ACTIVE_BIT
-)
-
-(
-5 LPM_WAKE_UP_DELAY_TIMER
-)
-
-
-//mem_app_disconn_reason
-//mem_app_disconn_reason_flag
-//bit map
-(
-2 APP_DISC_RSN_SIZE
-)
-
-(
-0 APP_DISC_BY_BUTTON
-7 APP_DISC_BLE
-)
-
-//eeprom init flag
-(
-0xaa55 EEPROM_INIT_FLAG
-)
-
-(
-1 KEY_CONF_STRUCT_LEN
-0 KEY_PIN_OFFSET
-)
-
-(
-12000000 PWM_12MHZ
-24000000 PWM_24MHZ
-33000 PWM_33KHZ
-)
-(
-0 POWER_OFF
-1 POWER_STARTING
-2 POWER_STANDBY
-)
-//power parameter offset(8 byte)
-(
-0 power_state_offset
-1 power_timer_offset
-2 power_off_timeout_offset
-3 power_starting_timeout_offset
-4 power_off_cb_offset
-6 power_starting_cb_offset
-8 power_standby_cb_offset
-10 ui_butten_up_cb_offset
-)
-
-//auth rom address
-(
-0x9000 MOUSE_BLE_ATT_LIST_ADDR
-0x92aa USB_KBDATA_VENDOR_DEFINE_ADDR
-0x92c5 USB_KBDATA_ADDR
-0x9307 USB_MSDATA_ADDR
-0x93fb USB_DEVICEDATA_ADDR
-0x940e USB_CONFDATA_ADDR
-0x944a KEYBOARD_BLE_HID_MAP_ONLY_KEYBOARD_ADDR
-0x94fc KEYBOARD_BLE_HID_MAP_MAGIC_KEYBOARD_ADDR
-0x95b8 KEYBOARD_BLE_HID_MAP_N_KEY_ROLLOVER_KEYBOARD_ADDR
-0x9684 BLE_SHUTTER_GATT_LIST_ADDR
-0x97bd BLE_SHUTTER_KEY_VALUE_LIST_ADDR
-0x97e5 BLE_CAR_ATT_LIST_ADDR
-0x97fc mem_sim_slave
-)
-
-(//NEC 61212
-9000 NEC61212_BOOT_CODE_START_TIME
-4500 NEC61212_BOOT_CODE_END_TIME
-
-9000 NEC61212_REPEAT_START_TIME
-2250 NEC61212_REPEAT_END_TIME
-
-560 NEC61212_DATA_BIT_1_START_TIME
-1690 NEC61212_DATA_BIT_1_END_TIME
-
-560 NEC61212_DATA_BIT_0_START_TIME
-560 NEC61212_DATA_BIT_0_END_TIME
-
-560 NEC61212_STOP_TIME
-
-42580 NEC61212_DATA2REPEAT_TIME
-98190 NEC61212_REPEAT2REPEAT_TIME
-
-0xffff NEC61212_TIMEOUT_TIME
-)
-
-//core_perf_status
-(
-1 CLK_CALIBRATION_DONE
-2 RC_CLK_CALIBRATION_DONE
-3 AES_DEC_KEY_INIT_DONE
-4 MEASURE_ADC_SUM_DONE
-5 SARADC_DONE
-)
-
-//ADC
-(
-1 ADC_CONFIG_HVIN
-2 ADC_CONFIG_GPIO
-)
-
-
-//mem_adc_reference_mode 
-(
-1 SADC_REFERENCE_INTER3V
-2 SADC_REFERENCE_INTER1P8V_DIV2
-)
-
-
Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/app_adpcm.format
===================================================================
--- /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/app_adpcm.format	(revision 5679)
+++ /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/app_adpcm.format	(nonexistent)
@@ -1,22 +0,0 @@
-
-xmemalloc g24_rx_car_adpcm(
-	16 mem_ad_indexTable
-	356 mem_ad_stepsizeTable
-
-	4 mem_ad_state_valpred
-	4 mem_ad_state_index
-	1 mem_ad_in_numSamples
-	2 mem_ad_in_ptr
-	2 mem_ad_out_ptr
-	1 mem_ad_sign
-	1 mem_ad_delta
-	4 mem_ad_step
-	4 mem_ad_valpred
-	4 mem_ad_index
-	4 mem_ad_vpdiff
-	4 mem_ad_inputbuffer
-	1 mem_ad_bufferstep
-)
-
-
-
Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/app_car.format
===================================================================
--- /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/app_car.format	(revision 5679)
+++ /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/app_car.format	(nonexistent)
@@ -1,104 +0,0 @@
-
-
-xmemalloc g24_rx_car(
-1 mem_car_le_24g_tx_pair_mode
-2 mem_car_le_24g_ch_count
-4 mem_car_24g_addr_other
-12 mem_car_24g_tx_payload_temp
-12 mem_car_24g_rx_payload_temp
-
-1 mem_car_24g_loselink_count
-1 mem_car_ble_connted_flag
-4 mem_car_full_control_remote_lap
-2 mem_100ms_adv_control_timer
-2 mem_100ms_factory_test_control_timer
-	
-1 mem_pwm_flag	
-1 mem_period_count
-1 mem_timer_count
-1 mem_car_motor_gpio_num
-0 mem_car_motor_gpio_map
-1 mem_car_motor_left_gpio
-1 mem_car_motor_right_gpio
-1 mem_car_motor_front_gpio
-1 mem_car_motor_back_gpio
-1 mem_car_pwm_gpio
-
-
-6 mem_otp_lot_xy_temp
-1 mem_f_flag
-1 mem_b_flag
-1 mem_adv_control_start_flag  
-1 mem_stop_4w1_flag 
-1 mem_factory_control_flag
-1 mem_car_gpio_control_mode
-
-1 mem_car_le_queue_each_size
-1 mem_car_le_queue_length
-1 mem_car_le_queue_current_num
-1 mem_car_le_queue_read_ptr
-1 mem_car_le_queue_write_ptr
-80 mem_car_le_queue_ele
-11 mem_car_ble_write_data
-400 mem_car_ble_att_list
-
-60 mem_otp_sys_cfg_temp
-
-)
-
-
-(
-0 TURN_FRONT
-1 TURN_LEFT
-2 TURN_RIGHT
-0 MOTOR_STOP
-1 GO_FRONT
-2 GO_BACK
-0x6b5a LE_RECEIVE_PACKET_HEAD
-)
-
-(
-1 CAR_CMD_BATTERY
-2 CAR_CMD_OLD_CAR_CONTROL
-3 CAR_CMD_OLD_SPEED_CONTROL
-4 CAR_CMD_L_R_MOTOR_CONTROL
-5 CAR_CMD_F_B_MOTOR_CONTROL
-6 CAR_CMD_IR_CONTROL
-7 CAR_CMD_LED_CONTROL
-8 CAR_CMD_DEVICE_INFO
-)
-
-(
-0x0e HANDLE_OF_NOTIFY
-0x11 HANDLE_OF_WRITE
-)
-
-(
-0 G24_UNCONNECT
-1 G24_CONNECTED
-)
-
-(
-12 LEN_OF_24G_PAYLOAD
-11 LEN_OF_ACK_PAYLOAD
-)
-
-
-(
-0XAA G24_TX_PAIR_REQUEST
-0XBB G24_RX_PAIR_RESPONES
-0XCC G24_TX_REMOTE_CONTROL
-0XDD G24_RX_CONTROL_ACK
-0XEE G24_ERROR
-0xFF INVALID_PIN_NUM
-0 POWER_ON
-1 WORK_PAIRED
-2 WORK_SEARCH
-)
-
-(
-0x1f00 OTP_SYS_PARAM_CFG
-0x1fda OTP_MAC_ADDR
-0X1fdb OTP_MAC_ADDR_PIECENUM
-)
-
Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/app_dongle.format
===================================================================
--- /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/app_dongle.format	(revision 5679)
+++ /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/app_dongle.format	(nonexistent)
@@ -1,142 +0,0 @@
-
-memalloc usb_dongle(
-256 mem_dg_rssi_noise_buffer
-256 mem_dg_rssi_noise_dg_buffer
-256 mem_dg_rssi_noise_ms_buffer
-256 mem_dg_rssi_noise_kb_buffer
-
-)
-
-
-xmemalloc g24_rx_dongle(
-1 mem_dg_kb_bind_flag
-8 mem_dg_kb_data_sta_data
-8 mem_dg_kb_data_last_data
-3 mem_dg_kb_multikey_sta_data
-3 mem_dg_kb_multikey_last_data
-3 mem_dg_kb_system_sta_data
-3 mem_dg_kb_system_last_data
-1 mem_dg_kb_blank_data_enable
-1 mem_dg_kb_mul_blank_data_enable
-1 mem_dg_kb_system_crtl_blank_data_enable
-1 mem_dg_ms_blank_data_enable
-
-1 mem_dg_sys_config
-9 mem_dg_usb_vid_pid
-1 mem_dg_usb_tx_interval
-32 mem_dg_usb_device_name
-1 mem_dg_kb_bind_success
-1 mem_dg_pc_sleep_flag
-
-1 mem_dg_24g_tx_power_default
-1 mem_dg_kb_bit_consumer_blank_data_enable
-4 mem_dg_kb_bit_consumer_sta_data
-4 mem_dg_kb_bit_consumer_last_data
-4 mem_dg_device_version
-)
-
-
-//otp address offset
-(
-0x5A DONGLE_KB_BIND_SUCCESS
-0x1fdf DONGLE_KB_BIND_EFUSE_OFFECT
-0x1fc0 DONGLE_KB_BIND_OTP_OFFECT
-)
-
-(
-5 WORK_MODE_DELAY
-7 BIND_MODE_DELAY
-)
-
-(
-0 DONGLE_WORK	   		//connect mode normal
-1 DONGLE_BIND			//code pair mode
-2 DONGLE_TEST			//test mode
-3 DONGLE_CODE			//PC_application
-4 DONGLE_PCBA			//PCBA_TEST
-5 DONGLE_DEBUG
-6 DONGLE_MODE_MAX
-7 DONGLE_SEARCH
-0 CLEAR_INIT
-)
-
-
-(
-0xa0 COMMAND_MODE     //BYTE 0
-0x81 COM_MODE_BIND	//BYTE 1
-0x82 COM_MODE_TEST	//BYTE 1
-)
-(
-0xa1 COMMAND_BIND		//BYTE 0
-0x01 COM_BIND_GET		//1
-0x84 COM_BIND_EXIT		//1
-0xa7 COM_READ_MODE		//1
-)
-(
-0xa2 COMMAND_TEST	//BYTE 0
-0x81 COM_TEST_SC		//	进入单载波
-0x82 COM_TEST_CD		// fcc测试
-0x83 COM_TEST_DAT		// 数据测试
-0x84 COM_TEST_LOW_CH  //低频点
-0x85 COM_TEST_MID_CH	//中频点
-0x86 COM_TEST_HIG_CH	//高频点
-0x87 COM_TEST_SW_HIG	//自动切换频点为高 1mhz
-0x88 COIM_TEST_SW_LOW	//自动切换频点为低 1mhz
-0x89 COM_TEST_SW_STOP	//停止自动切换频点
-0x8a COM_TEST_POW_5		//设置输出功率5dbm
-0x8b COM_TEST_POW_0		//0dbm
-0x8c COM_TEST_POW_N5		//-5dbm
-0x8d COM_TEST_POW_N10		//-10dbm
-0x8e COM_TEST_EXIT			//退出测试模式
-)
-(
-0xa6 COMMAND_CURRENT_PROJECT
-0xa7 COMMAND_CURRENT_MODE
-0xa9 COMMAND_CURRENT_FW_VERSION
-0xb0 COMMAND_USER_DEFINED		//user defined cmd
-)
-
-(
-0x15 PRODUCT_ID
-0 FW_VERSION0
-0 FW_VERSION1
-1 FW_VERSION2
-7 FW_VERSION3
-)
-
-(
-640 TIMER_NODATA_DELAY	//200ms
-
-384 TIMER_MS_BLANK_DELAY
-
-384 TIMER_KB_MUL_BLANK_DELAY
-
-384 TIMER_KB_SYS_CRTL_BLANK_DELAY
-
-384 TIMER_KB_BLANK_DELAY
-)
-
-(
-0 KB_NORMAL_REPORT_ID
-1 MS_REPORT_ID
-2 KB_SYSTEM_CONCTRL_REPORT_ID
-3 KB_MULTIKEY_REPORT_ID
-5 KB_BIT_CONSUMER_REPORT_ID
-8 KB_N_KEY_ROLLOVER_REPORT_ID
-)
-
-
-(
-0x01 BIND_ACKPAYLOAD
-0x03 KB_LED_ACKPAYLOAD
-)
-
-//mem_dg_sys_config
-(
-7 DG_ENABLE_XTAL_24M
-6 DG_ENABLE_NEW_CHMAP
-5 DG_ENABLE_EEPROM
-4 DG_ENABLE_KB_ICON
-3 DG_ENABLE_24G_2M
-)
-
Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/app_kb.format
===================================================================
--- /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/app_kb.format	(revision 5679)
+++ /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/app_kb.format	(nonexistent)
@@ -1,558 +0,0 @@
-xmemalloc g24_tx_hid_keyboard(
-1 mem_power_on_flag
-8 mem_keyboard_flag
-
-//switch device
-1 mem_keyboard_switch_count_temp
-3 mem_keyboard_switch_device_to_g24
-3 mem_keyboard_switch_device_to_bt1
-3 mem_keyboard_switch_device_to_bt2
-3 mem_keyboard_switch_device_to_bt3
-3 mem_keyboard_switch_device_to_usb
-1 mem_keyboard_switch_device_flag
-1 mem_keyboard_switch_g24_enable
-1 mem_keyboard_switch_bt_enable
-1 mem_keyboard_switch_g24_press_timer
-1 mem_keyboard_switch_bt_press_timer
-
-
-//adc
-2 mem_keyboard_vdd_full_vol
-2 mem_keyboard_vdd_empty_vol
-2 mem_keyboard_vdd_low_vol
-1 mem_keyboard_power_type
-
-//pwm
-6 mem_rgb_pwm_conf
-1 mem_rgb_pwm_breathe_flag
-1 mem_rgb_on_color_temp
-7 mem_rgb_on_color
-1 mem_pwm_lpm_mode_flag
-2 mem_keyboard_rgb_on_timer
-4 mem_ui_check_timer_setup
-2 mem_customize_timer_setup
-1 mem_backlight_breathe_type
-
-//le
-3 mem_keyboard_le_lap_temp
-1 mem_keyboard_le_change_vid_pid_flag
-1 mem_keybaord_le_pnp_vid_source
-2 mem_keyboard_le_vid
-2 mem_keyboard_le_pid
-2 mem_keyboard_le_product_version
-2 mem_keyboard_le_hid_map
-22 mem_keyboard_blob_response_consumer_customize
-16 mem_le_search_service_uuid
-1 mem_le_connect_ios_mac_flag
-2 mem_le_search_mac_uuid
-9 mem_le_search_mac_manu_name
-2 mem_keybord_appearance
-
-//le conn param update
-1 mem_keyboard_le_send_conn_param_update
-1 mem_keyboard_le_send_conn_param_update_timer
-1 mem_le_start_auto_reco_timer
-
-//gpio
-1 mem_keyboard_pb_button_gpio
-1 mem_mcu_stb_gpio
-1 mem_mcu_clk_gpio
-1 mem_mcu_rstb_gpio
-1 mem_keyboard_num_led_gpio
-1 mem_keyboard_caps_led_gpio
-1 mem_keyboard_scroll_led_gpio
-1 mem_keyboard_power_led_gpio
-1 mem_keyboard_low_voltage_alarm_gpio
-1 mem_keyboard_24g_led_gpio
-1 mem_keyboard_bt1_led_gpio
-1 mem_keyboard_bt2_led_gpio
-1 mem_keyboard_bt3_led_gpio
-
-1 mem_keyboard_led_r_gpio
-1 mem_keyboard_led_g_gpio
-1 mem_keyboard_led_b_gpio
-
-8 mem_key_row_gpio
-21 mem_key_col_gpio
-12 mem_key_excol_gpio
-2 mem_kb_row_ptr
-2 mem_kb_col_ptr
-2 mem_kb_excol_ptr
-
-// keyscan
-21 mem_keyscan_value_current
-21 mem_keyscan_value_check
-21 mem_keyscan_value_old
-11 mem_keyscan_exmcu_value
-2 mem_keyscan_value_ptr
-2 mem_keyscan_exmcu_value_ptr
-1 mem_keyscan_value_temp
-1 mem_keyscan_col_loop_count
-2 mem_keyscan_exmcu_wait_wake_count
-
-1 mem_same_keyvalue_timerout_flag
-2 mem_same_keyvalue_timer_init
-2 mem_same_keyvalue_timer
-
-1 mem_keyboard_current_col_press_key_count
-1 mem_keyboard_all_press_key_count
-1 mem_keyboard_same_row_press_key_count
-1 mem_keyboard_ghost_flag
-1 mem_keyboard_data_change_flag
-1 mem_keyboard_keyvalue_temp
-1 mem_keyboard_press_flag_temp
-1 mem_keyboard_keyvalue_bit_loop_count
-10 mem_keyboard_keyvalue_buffer
-1 mem_keboard_n_key_rollover_send_flag
-15 mem_keyboard_n_key_rollover_data
-168 mem_keyboard_keyvalue_map
-10 mem_keyboard_tx_data
-1 mem_keyboard_data_send_flag
-
-1 mem_keyboard_fn_flag
-1 mem_keyboard_control_key_flag
-1 mem_keyboard_alt_flag
-1 mem_keyboard_shift_flag
-1 mem_keyboard_bt_button_flag
-1 mem_keyboard_pairing_type
-
-1 mem_24g_repeat_send_flag
-1 mem_keyboard_led_status_get
-1 mem_keyboard_led_status_get_timer
-1 mem_keyboard_led_status_get_timer_last
-
-0 mem_keyboard_fn_esc_f1_f12
-1 mem_keyboard_fn_first
-1 mem_keyboard_fn_esc
-1 mem_keyboard_fn_f1
-1 mem_keyboard_fn_f2
-1 mem_keyboard_fn_f3
-1 mem_keyboard_fn_f4
-1 mem_keyboard_fn_f5
-1 mem_keyboard_fn_f6
-1 mem_keyboard_fn_f7
-1 mem_keyboard_fn_f8
-1 mem_keyboard_fn_f9
-1 mem_keyboard_fn_f10
-1 mem_keyboard_fn_f11
-1 mem_keyboard_fn_f12
-1 mem_keyboard_fn_del
-
-1 mem_keyboard_fn_lock_flag
-1 mem_keyboard_fn_lock_keyvalue
-
-2 mem_keyboard_commbination_key_bt
-2 mem_keyboard_commbination_key_24g
-2 mem_keyboard_commbination_fast_conn_bt
-1 mem_keyboard_commbination_press_type
-1 mem_keyboard_commbination_key_step
-1 mem_keyboard_commbination_control_key_value
-1 mem_keyboard_commbination_standard_key_value
-1 mem_keyboard_commbination_control_key_delay_release_timer
-
-1 mem_keyboard_consumer_key_status
-1 mem_kb_computer_system
-
-//memory
-1 mem_keyboard_device_info_store_flag
-1 mem_otp_store_device_info_flag
-1 mem_otp_store_system_flag
-24 mem_otp_read_retention_memory
-2 mem_otp_read_retention_offset
-2 mem_otp_read_retention_max_size
-
-//led
-1 mem_keyboard_device_poweron_timer_init
-1 mem_keyboard_device_poweron_timer
-2 mem_keyboard_num_caps_scoll_led_on_timer
-1 mem_keyboard_mode_led_on_timer
-1 mem_keyboard_adc_low_volatage_led_timer_count
-2 mem_adc_low_volatage_led_blink_timer
-1 mem_keyboard_low_volatage_led_flag
-1 mem_keyboard_low_volatage_led_blink_count
-1 mem_keyboard_low_volatage_led_blink_new_data_enable
-1 mem_keyboard_pair_led_flag
-1 mem_keyboard_pair_led_blink_count
-
-//usb
-1 mem_usb_vdd_status_current
-1 mem_usb_vdd_status_last
-1 mem_usb_wait_updata_timer
-9 mem_keyboard_usb_vid_pid
-
-
-// patch area
-)
-
-(
-0x01 DEVICE_DATA_TPYE_MOUSE
-0x00 DEVICE_DATA_TPYE_KEYBOARD
-)
-
-(
-0x00 HID_REPORTID_KEY_STANDARD
-0x01 HID_REPORTID_MOUSE
-0x02 HID_REPORTID_SYSTEM_CTRL
-0x03 HID_REPORTID_CONSUMER_KEY
-0x05 HID_REPORTID_BIT_CONSUMER_KEY
-0x08 HID_REPORTID_N_KEY_ROLLOVER
-)
-
-(
-0x04	 HID_KEY_A 	 
-0x05        HID_KEY_B 	 
-0x06        HID_KEY_C 	 
-0x07        HID_KEY_D 	 
-0x08        HID_KEY_E 	 
-0x09        HID_KEY_F 	 
-0x0a        HID_KEY_G 	 
-0x0b        HID_KEY_H 	 
-0x0c        HID_KEY_I  	 
-0x0d        HID_KEY_J 	 
-0x0e        HID_KEY_K 	 
-0x0f        HID_KEY_L 	 
-0x10        HID_KEY_M 	 
-0x11        HID_KEY_N 	 
-0x12        HID_KEY_O	 
-0x13        HID_KEY_P	 
-0x14        HID_KEY_Q	 
-0x15        HID_KEY_R	 
-0x16        HID_KEY_S	 
-0x17        HID_KEY_T	 
-0x18        HID_KEY_U	 
-0x19        HID_KEY_V	 
-0x1a        HID_KEY_W 	 
-0x1b        HID_KEY_X	 
-0x1c        HID_KEY_Y	 
-0x1d        HID_KEY_Z	 
-    
-0x1e        HID_KEY_1	 
-0x1f        HID_KEY_2	 
-0x20        HID_KEY_3	 
-0x21        HID_KEY_4	 
-0x22        HID_KEY_5	 
-0x23        HID_KEY_6	 
-0x24        HID_KEY_7	 
-0x25        HID_KEY_8	 
-0x26        HID_KEY_9	 
-0x27        HID_KEY_0	 
-    
-0x28        HID_KEY_ENTER 				 
-0x29        HID_KEY_ESC				 
-0x2a        HID_KEY_BACKSPACE		 
-0x2b        HID_KEY_TAB				 
-0x2c        HID_KEY_SPACE 				 
-0x2d        HID_KEY_MINUS				 		// -_
-0x2e        HID_KEY_EQUAL				 		// =+
-0x2f        HID_KEY_LEFT_BRACKET 		 	// [{
-0x30        HID_KEY_RIGHT_BRACKET 	 		// ]}
-0x31        HID_KEY_BACK_SLASH 		 		// \|
-    
-0x32        HID_KEY_K42				 
-0x33        HID_KEY_SEMICOLON			 	// ;:
-0x34        HID_KEY_QUOTE				 		// ' "
-0x35        HID_KEY_TILDE				 		// `~
-0x36        HID_KEY_LESS_THAN			 		// ,<
-0x37        HID_KEY_GREAT_THAN		 		// .>
-0x38        HID_KEY_SLASH				 		// /?
-0x39        HID_KEY_CAPS_LOCK			 
-
-0x3a        HID_KEY_F1		 
-0x3b        HID_KEY_F2		 
-0x3c        HID_KEY_F3		 
-0x3d        HID_KEY_F4		 
-0x3e        HID_KEY_F5		 
-0x3f        HID_KEY_F6		 
-0x40        HID_KEY_F7		 
-0x41        HID_KEY_F8		 
-0x42        HID_KEY_F9		 
-0x43        HID_KEY_F10	 
-0x44        HID_KEY_F11	 
-0x45        HID_KEY_F12	 
-    
-0x46        HID_KEY_PRINT_SCREEN	 
-0x47        HID_KEY_SCROLL_LOCK	 
-0x48        HID_KEY_PAUSE			 
-0x49        HID_KEY_INSERT			 
-0x4a        HID_KEY_HOME			 
-0x4b        HID_KEY_PAGE_UP		 
-0x4c        HID_KEY_DELETE		 
-0x4d        HID_KEY_END			 
-0x4e        HID_KEY_PAGE_DOWN	 
-        
-0x4f        HID_KEY_RIGHT_ARROW	 
-0x50        HID_KEY_LEFT_ARROW	 
-0x51        HID_KEY_DOWN_ARROW	 
-0x52        HID_KEY_UP_ARROW		 
-        
-0x53        HID_KEY_NUM_LOCK		 
-0x54        HID_KEY_KP_SLASH		 
-0x55        HID_KEY_KP_ASTERISK	 
-0x56        HID_KEY_KP_MINUS		 
-0x57        HID_KEY_KP_PLUS		 
-0x58        HID_KEY_KP_ENTER		 
-0x59        HID_KEY_KP_1			 
-0x5a        HID_KEY_KP_2			 
-0x5b        HID_KEY_KP_3			 
-0x5c        HID_KEY_KP_4			 
-0x5d        HID_KEY_KP_5			 
-0x5e        HID_KEY_KP_6			 
-0x5f        HID_KEY_KP_7			 
-0x60        HID_KEY_KP_8			 
-0x61        HID_KEY_KP_9			 
-0x62        HID_KEY_KP_0			 
-0x63        HID_KEY_KP_DEL		 
-  
-0x64        HID_KEY_K45			 
-0x65        HID_KEY_APP			 
-0x66        HID_KEY_POWER			 
-0x67        HID_KEY_KP_EQUAL		 
-        
-       
-0x87        HID_KEY_K56				 
-0x88        HID_KEY_K133  				 
-0x89        HID_KEY_K14  				 
-0x8a        HID_KEY_K132  				 
-0x8b        HID_KEY_K131 				 
-    
-0x90        HID_KEY_KR_R  				 
-0x91        HID_KEY_KR_L  				 
-        
-0xe0        HID_KEY_LEFT_CTRL			 
-0xe1        HID_KEY_LEFT_SHIFT			 
-0xe2        HID_KEY_LEFT_ALT 			 
-0xe3        HID_KEY_LEFT_GUI 			 
-0xe4        HID_KEY_RIGHT_CTRL			 
-0xe5        HID_KEY_RIGHT_SHIFT		 
-0xe6        HID_KEY_RIGHT_ALT			 
-0xe7        HID_KEY_RIGHT_GUI			 
-
-0xe8 	HID_KEY_MULTIKEY_MEDIA
-0xe9 	HID_KEY_MULTIKEY_VOL_DOWN
-0xea 	HID_KEY_MULTIKEY_VOL_UP
-0xeb 	HID_KEY_MULTIKEY_MUTE
-0xec 	HID_KEY_MULTIKEY_PRE_TRACK
-0xed 	HID_KEY_MULTIKEY_NEXT_TRACK
-0xee 	HID_KEY_MULTIKEY_PALY
-0xef 	HID_KEY_MULTIKEY_STOP
-0xf0 	HID_KEY_AC_HOME
-0xf1 	HID_KEY_MAIL
-0xf2 	HID_KEY_MY_COMPUTER
-0xf3 	HID_KEY_AC_FAVORITES
-0xf4 	HID_KEY_CALCULATOR
-0xf5 	HID_KEY_AC_SEARCH
-0xf6 	HID_KEY_AC_BACK
-0xf7 	HID_KEY_OS_SOFT_KB
-0xf8 	HID_KEY_LIGHT_DOWN
-0xf9 	HID_KEY_LIGHT_UP
-0xfa 	HID_KEY_IOS_ANDROID_OS_LOCK
-0xfb	HID_KEY_MAC_EJECT
-0xfc	HID_KEY_AC_FORWARD
-0xfd	HID_KEY_AC_STOP
-0xfe	HID_KEY_AC_REFRESH
-0xff 	HID_KEY_SYSTEM_SLEEP
-        // 0xe8~0xff reserved
-0xa5	HID_KEY_SELECT_ALL
-0xa6 	HID_KEY_COPY
-0xa7	HID_KEY_PASTE
-0xa8	HID_KEY_CUT
-0xa9	HID_KEY_ALL_OS_LOCK
-0xaa	HID_KEY_OSK
-0xab	HID_KEY_LANGUAGE
-0xac 	HID_KEY_APP_TILING
-0xad	HID_KEY_SEARCH
-0xae     	HID_KEY_PB
-	 // 0xa5~0xaf reserved
-0x7f     	HID_KEY_FN 					 
-0x00     	HID_KEY_NULL 		 
-)
-
-(
-0x01 LEFT_CONTROL
-0x02 LEFT_SHIFT
-0x04 LEFT_ALT
-0x08 LEFT_GUI
-0x10 RIGHT_CONTROL
-0x20 RIGHT_SHIFT
-0x40 RIGHT_ALT
-0x80 RIGHT_GUI
-0x09 LEFT_GUI_CONTROL
-0x0a LEFT_SHIFT_GUI
-)
-
-
-(
-0x00 KB_PC_KEYSEL_NUMLOCK
-0x01 KB_PC_KEYSEL_CAPSLOCK
-0x02 KB_PC_KEYSEL_SCROLLLOCK
-)
-
-(
-8 KEYSCAN_COL_NUM
-20 KEYSCAN_ROW_NUM
-)
-
-(
-0 CAMMBINATION_KEY_FREE
-1 CAMMBINATION_KEY_PRESS
-2 CAMMBINATION_KEY_HOLD
-3 CAMMBINATION_KEY_COMPLETE
-4 CAMMBINATION_KEY_WAIT_RELEASE
-5 CAMMBINATION_KEY_RELEASE
-6 CAMMBINATION_KEY_NULL
-)
-
-
-(
-
-0x600 PNP_MICROSOFT
-0x4c00 PNP_IOS
-0x1208 PNP_MAC
-
-
-0 SYSTEM_OS_WINDOWS
-1 SYSTEM_OS_ANDROID
-2 SYSTEM_OS_IOS
-3 SYSTEM_OS_MAC
-
-)
-
-(
-0 KEYBOARD_CONSUMER_KEY_STANDBY
-1 KEYBOARD_CONSUMER_KEY_PRESS
-2 KEYBOARD_CONSUMER_KEY_RELEASE
-)
-
-(
-//keyboard_function_flag
-0x08 KEYBOARD_FLAG_LEN
-//byte 0
-0x00 KEYBOARD_24G_PAIRING_FLAG
-0x01 KEYBOARD_STORE_MEMORY_FLAG
-0x02 KEYBOARD_LOW_VOLTAGE_FLAG
-0x03 KEYBOARD_BT_DISCOVERY_BUTTON_DOWN_FLAG
-0x04 KEYBOARD_BT_DISCOVERY_BUTTON_LONG_DOWN_FLAG
-
-//byte 1
-0x08 KEYBOARD_ENABLE_WAKEUP_FROM_POWER
-0x09 KEYBOARD_ENABLE_16M
-0x0a KEYBOARD_DISABLE_ICE
-0x0b KEYBOARD_ENABLE_ADC
-0x0c KEYBOARD_ENABLE_FLASH
-0x0d KEYBOARD_ENABLE_2K_EEPROM
-0x0e KEYBOARD_ENABLE_EEPROM
-0x0f KEYBOARD_ENABLE_OTP
-
-//byte 2
-0x10 KEYBOARD_ENABLE_24G
-0x11 KEYBOARD_ENABLE_AUTO_24G_PARING
-0x12 KEYBOARD_ENABLE_24G_AUTO_PAIR_NERVER_BEEN_PAIRED
-0x13 KEYBOARD_ENABLE_COMMBINATION_KEY_BY_24G_PAIRING
-0x14 KEYBOARD_ENABLE_24G_2M_PHY
-0x15 KEYBOARD_ENABLE_24G_SEARCH_DONGLE
-
-//byte 3
-0x18 KEYBOARD_ENABLE_BLE_RANDOM_ADDRE
-0x19 KEYBOARD_ENABLE_LE_BATTERY_SERVICE_CANCEL
-0x1a KEYBOARD_ENABLE_BT_RECONNECT_TIMEOUT_ENTER_DISCOVERY
-0x1b KEYBOARD_ENABLE_COMMBINATION_KEY_BY_BT_DISCOVERY
-
-//byte 4
-0x20 KEYBOARD_ENABLE_26_N_KEY_ROLLOVER
-0x21 KEYBOARD_ENABLE_FULL_N_KEY_ROLLOVER
-0x22 KEYBOARD_ENABLE_MAGIC_KEYBOARD
-0x23 KEYBOARD_ENABLE_MOUSE
-0x24 KEYBOARD_ENABLE_USB
-
-//byte 5
-0x28 KEYBOARD_ENABLE_030_POWER_LED
-0x29 KEYBOARD_ENABLE_LOW_LED
-0x2a KEYBOARD_ENABLE_LOW_VOLTAGE_LED_BLINK_N_SECOND
-0x2b KEYBOARD_ENABLE_BACKLIGHT
-
-//byte 6
-0x30 KEYBOARD_ENABLE_FN_ARROW
-0x31 KEYBOARD_ENABLE_FN_LEFT_CTRL_OSK
-0x32 KEYBOARD_ENABLE_FN_SPACE_LANGUAGE
-0x33 KEYBOARD_ENABLE_FN_OS_SWITCH
-0x34 KEYBOARD_ENABLE_FN_LOCK
-
-//byte 7
-0x38 KEYBOARD_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO
-0x39 KEYBOARD_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO_G24_CONNECT_GND
-0x3a KEYBOARD_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO_BT_CONNECT_GND
-0x3b KEYBOARD_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO_G24_CONNECT_VDD
-0x3c KEYBOARD_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO_BT_CONNECT_VDD
-0x3d KEYBOARD_ENABLE_SDA_MULTI_R_LINE
-0x3e KEYBOARD_ENABLE_SDA_MULTI_ICE_LINE
-
-)
-
-(
-//eeprom address offect
-0x00 KEYBOARD_INFO_EEPROM_OFFECT
-0x00 KEYBOARD_DEVICE_NUMBER_EEPROM_OFFECT
-0x01 KEYBOARD_BLE_ADDR_EEPROM_OFFECT
-0x28 KEYBOARD_STORE_FLAG
-0x2b KEYBOARD_G24_ADDR_EEPROM_OFFECT	//4bytes
-0x2f KEYBOARD_RANDOM_ADDR_COUNT_EEPROM_OFFSET
-0x31 KEYBOARD_FN_FLAG_EEPROM_OFFSET
-0x36 KEYBOARD_COMPUTER_SYSTEM_EEPROM_OFFSET
-0x39 KEYBOARD_RGB_TPYE_OFFSET
-
-0x00 KEYBOARD_STORE_EEPROMM_FLAG_ALL_INFO
-0x01 KEYBOARD_STORE_EEPROMM_FLAG_BLE_ADDR
-0x02 KEYBOARD_STORE_EEPROMM_FLAG_G24_ADDR
-0x03 KEYBOARD_STORE_EEPROMM_FLAG_FN_LOCK
-0x04 KEYBOARD_STORE_EEPROMM_FLAG_COMPUTER_SYSTEM
-0x05 KEYBOARD_STORE_EEPROMM_FLAG_RGB_TYPE
-)
-
-(
-0 KEYBOARD_RGB_BLUE_STATUS
-1 KEYBOARD_RGB_GREEN_STATUS
-2 KEYBOARD_RGB_RED_STATUS
-
-0 RGB_BACKLIGHT_STATUS_OFF
-1 RGB_BACKLIGHT_STATUS_ON
-2 RGB_BACKLIGHT_STATUS_BREATHE
-
-0 RGB_BACKLIGHT_ON_TPYE_RED
-1 RGB_BACKLIGHT_ON_TPYE_ORANGE
-2 RGB_BACKLIGHT_ON_TPYE_PURPLE
-3 RGB_BACKLIGHT_ON_TPYE_GREEN
-4 RGB_BACKLIGHT_ON_TPYE_CYAN
-5 RGB_BACKLIGHT_ON_TPYE_BLUE
-6 RGB_BACKLIGHT_ON_TPYE_WHITE
-
-0 RGB_BACKLIGHT_BREATHE_TPYE_BLUE
-1 RGB_BACKLIGHT_BREATHE_TPYE_GREEN
-2 RGB_BACKLIGHT_BREATHE_TPYE_RED
-3 RGB_BACKLIGHT_BREATHE_TPYE_CYAN
-4 RGB_BACKLIGHT_BREATHE_TPYE_PURPLE
-5 RGB_BACKLIGHT_BREATHE_TPYE_ORANGE
-6 RGB_BACKLIGHT_BREATHE_TPYE_WHITE
-)
-
-(
-0 KEYBOARD_FLAG_G24_DEVICE_BUTTON
-1 KEYBOARD_FLAG_BT_DEVICE_BUTTON
-)
-
-(
-0x01 KEYBOARD_COMMBINATION_PRESS_TYPE_24G_PAIR
-0x02 KEYBOARD_COMMBINATION_PRESS_TYPE_BT_PAIR
-0x03 KEYBOARD_COMMBINATION_PRESS_TYPE_BT_FAST_CONN
-)
-
-(
-0x20 KEYBOARD_BLE_L2CAP_TXBUFF_SIZE
-)
-
-(
-0 KEYBOARD_BATTARY_1V5
-1 KEYBOARD_BATTARY_3V0
-2 KEYBOARD_BATTARY_4V2
-)
-
-
Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/app_module.format
===================================================================
--- /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/app_module.format	(revision 5679)
+++ /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/app_module.format	(nonexistent)
@@ -1,248 +0,0 @@
-
-memalloc module(
-	//ble
-	2 mem_module_le_rx_data_len
-	2 mem_module_le_rx_data_address
-	2 mem_module_le_rx_data_handle
-
-ifdef COMPILE_WECHAT
-	0 mem_wechat_tx_buffer
-	1 mem_wechat_tx_bMagicNumber
-	1 mem_wechat_tx_bVer
-	2 mem_wechat_tx_nLength
-	2 mem_wechat_tx_nCmdId
-	2 mem_wechat_tx_nSeq1
-	255 mem_wechat_tx_payload
-
-	0 mem_wechat_rx_buffer
-	1 mem_wechat_rx_bMagicNumber
-	1 mem_wechat_rx_bVer
-	2 mem_wechat_rx_nLength
-	2 mem_wechat_rx_nCmdId
-	2 mem_wechat_rx_nSeq
-	255 mem_wechat_rx_payload
-
-	255 mem_module_wechat_local_data_buffer
-
-endif
-)
-
-xmemalloc module(	
-	2 mem_soft_version_num
-	1 mem_module_wake_up_gpio
-	1 mem_module_state_gpio
-	1 mem_module_connect_state_gpio
-
-	2 mem_current_packet_length
-	1 mem_module_state
-	
-	1 mem_module_mcu_wake_pin
-	4 mem_module_mcu_wake_delay_us
-
-	1 mem_module_le_lpm_mult	
-	1 mem_module_bluetooth_stauts_by_command
-
-	//uart
-	2 mem_module_uart_rx_buffer
-	2 mem_module_uart_rx_buffer_end
-	2 mem_module_uart_tx_buffer
-	2 mem_module_uart_tx_buffer_end
-	2 mem_module_uarta_baud_rate
-
-	//ADC
-	1 mem_module_read_vdd_flag
-	1 mem_module_read_vdd_count
-	1 mem_module_vdd_quotient
-	1 mem_module_vdd_remainder
-
-	//ble
-	1 mem_module_ble_data_uart_max_length
-
-	//flag
-	2 mem_module_flag
-
-	1 mem_module_hci_notify_len
-	2 mem_module_hci_notify_handle
-	2 mem_module_hci_nofiy_addr
-	1 mem_module_hci_notify_type
-
-	1 mem_le_conn_flag
-
-ifdef COMPILE_WECHAT
-	1 mem_module_wechat_indication_handle
-	1 mem_module_wechat_write_handle
-	2 mem_module_wechat_tx_buffer_ptr
-	2 mem_module_wechat_rx_buffer_ptr
-	2 mem_module_wechat_rx_push_data_cb
-	2 mem_module_wechat_tx_nSeq
-	2 mem_module_wechat_tx_len
-	2 mem_module_wechat_tx_address
-	2 mem_module_wechat_rx_len
-	2 mem_module_wechat_rx_address
-	1 mem_module_wechat_receive_push_data
-endif
-	
-	600 mem_module_le_att_list
-	0 mem_module_le_att_list_end
-	0 mem_module_nv_data
-	34 mem_module_nv_data0
-	34 mem_module_nv_data1
-	34 mem_module_nv_data2
-	34 mem_module_nv_data3
-	34 mem_module_nv_data4
-	0 mem_module_nv_data_end
-)
-
-
-(//mem_module_flag
-//bit0~bit7 config module function
-0 MODULE_FLAG_UART_FLOW_CONTROL
-1 MODULE_FLAG_BLE_SEND_MTU23
-2 MODULE_FLAG_BLE_DATA_ENCRYPT
-
-//bit8~bit15 module states change
-8 MODULE_FLAG_BLE_DATA_FINISH
-
-)
-
-(
-34 NV_DATA_LEN
--1 DECREASED_ONE
-)
-
-
-
-(
-	5 FLAG_MODULE_READ_VDD_COUNT
-)
-
-(
-0x01 HCI_DISCARD_PACKET
-0x00 HCI_NOT_DISCARD_PACKET
-)
-
-
-
-(//Command
-0x01 HCI_CMD_SET_LE_ADDR_REQ
-0x02 HCI_CMD_SET_VISIBILITY_REQ
-0x04 HCI_CMD_SET_LE_NAME_REQ
-0x09 HCI_CMD_LE_DATA_REQ
-0x0b HCI_CMD_STATUS_IRQ
-0x0e HCI_CMD_SET_UARTCONTROL_REQ
-0x0f HCI_CMD_SET_UART_BAUD_REQ
-0x10 HCI_CMD_VERSION_REQ
-0x12 HCI_CMD_BLE_DISCONNECT
-0x13 HCI_CMD_DELETE_DEVICE
-0x14 HCI_CMD_CREATE_CONNECT
-0x26 HCI_CMD_SET_NVRAM_REQ
-0x27 HCI_CMD_SLEEP
-0x28 HCI_CMD_CONFIRM_GKEY
-0x2a HCI_CMD_AUTO_ADV_SCAN
-0x2b HCI_CMD_POWER_REQ
-0x2c HCI_CMD_POWER_SET
-0x30 HCI_CMD_PASSKEY_ENTRY
-0x31 HCI_CMD_SET_GPIO
-0x32 HCI_CMD_READ_GPIO
-0x33 HCI_CMD_LE_SET_PAIRING
-0x34 HCI_CMD_LE_SET_ADV_DATA
-0x35 HCI_CMD_LE_SET_SCAN_DATA
-0x36 HCI_CMD_LE_SEND_CONN_UPDATE_REQ
-0x37 HCI_CMD_LE_SET_ADV_PARM
-0x38 HCI_CMD_LE_START_PAIRING
-0x40 HCI_CMD_SET_WAKE_GPIO
-0x42 HCI_CMD_SET_TX_POWER
-0x43 HCI_CMD_BOOT_VERSION_REQ
-0x48 HCI_CMD_LE_CONFIRM_GKEY
-0x49 HCI_CMD_REJECT_JUSTWORK
-0x51 HCI_CMD_RESET_CHIP_REQ
-
-0x61 HCI_CMD_LE_SET_FIXED_PASSKEY
-
-0x76 HCI_CMD_DELETE_CUSTOMIZE_SERVICE
-0x77 HCI_CMD_ADD_SERVICE_UUID
-0x78 HCI_CMD_ADD_CHARACTERISTIC_UUID
-0x7a HCI_CMD_PASSKEY_ENTRY_INPUT
-0x7b HCI_CMD_LE_CREAT_CONN
-
-0x90 HCI_CMD_BLE_SET_PHY
-0x91 HCI_CMD_BLE_READ_CURRENT_PHY
-0x92 HCI_CMD_BLE_SET_DLE
-0x93 HCI_CMD_READ_CHIP_DATA
-0x94 HCI_CMD_WRITE_CHIP_DATA
-ifdef COMPILE_WECHAT
-0x95 HCI_CMD_WECHAT_SEND_DATA
-endif
-0xff HCI_CMD_CLOSE_LPM
-)
-
-(//event
-0x00 HCI_EVENT_SPP_CONN_REP
-0x01 HCI_EVENT_HID_CONN_REP
-0x02 HCI_EVENT_LE_CONN_REP
-0x03 HCI_EVENT_SPP_DIS_REP
-0x04 HCI_EVENT_HID_DIS_REP
-0x05 HCI_EVENT_LE_DIS_REP
-0x06 HCI_EVENT_CMD_RES
-0x07 HCI_EVENT_SPP_DATA_REP
-0x08 HCI_EVENT_LE_DATA_REP
-0x09 HCI_EVENT_STANDBY_REP
-
-0x0a HCI_EVENT_STATUS_RES
-
-0x0D HCI_EVENT_NVRAM_REP
-0x0e HCI_EVENT_GKEY
-0x0F HCI_EVENT_INVALID_PACKET
-0x10 HCI_EVENT_GET_PASSKEY
-0x11 HCI_EVENT_LE_TK
-0x12 HCI_EVENT_REMOTE_MTU
-0x14 HCI_EVENT_LE_PAIRING_STATE
-0X15 HCI_EVENT_LE_ENCRYPTION_STATE
-0x17 HCI_EVENT_LE_CONNECTION_UPDATE
-0x1d HCI_EVENT_LE_GKEY
-0x29 HCI_EVENT_UUID_HANDLE
-0x2b HCI_EVENT_LE_INPUT_GKEY
-
-0x40 HCI_BLE_UPDATE_PHY_EVENT
-ifdef COMPILE_WECHAT
-0x41 HCI_BLE_WECHAT_RECEIVE_PUSH_DATA
-endif
-)
-
-
-(//command HCI_CMD_SET_GPIO
-//byte 0
-0x00 HCI_CMD_CONFIG_GPIO_INPUT
-0x01 HCI_CMD_CONFIG_GPIO_OUTPUT
-//byte 1 input state
-0x00 GPIO_INPUT_PULLUP
-0x01 GPIO_INPUT_PULLDOWN
-0x02 GPIO_INPUT_HIGH_IMPEDANCE
-)
-
-
-
-
-
-(
-0x0080	FLAG_BLE_PAIRING_SUCCESS
-0x0180	FLAG_BLE_PAIRING_FAIL
-)
-
-
-(
-1	FLAG_EVENT_START_ENC
-0	FLAG_EVENT_PAUSE_ENC
-)
-
-(
-0 MOUDLE_STATE_BT_BIT
-1 MOUDLE_STATE_BLE_BIT
-)
-
-(
-5 BIT_OF_NOTIFY_AUTHENTICATED
-6 BIT_OF_READ_AUTHENTICATED
-7 BIT_OF_WRITE_AUTHENTICATED
-)
-
Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/app_mouse.format
===================================================================
--- /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/app_mouse.format	(revision 5679)
+++ /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/app_mouse.format	(nonexistent)
@@ -1,940 +0,0 @@
-
-memalloc mouse(
-2 mem_init_cnt
-2 mem_data_pre
-2 mem_data_current
-3 mem_data_sum
-2 mem_data_value
-//le report map
-820 mem_ui_le_uuid_table_new
-
-//audio
-0 mem_voice_raw_start
-719 mem_voice_raw
-1 mem_voice_raw_end
-
-120 mem_adpcm
-
-8 mem_voice_adpcm_buf_config
-0 mem_voice_adpcm_buf_start
-300 mem_voice_adpcm_buf
-1 mem_voice_queue_count
-
-60 mem_queue_buf
-
-0 mem_memalloc_mouse_param_end
-)
-
-xmemalloc g24_tx_hid_mouse(
-// Mouse Work Area
-0 mem_mouse_param_config
-1 mem_lbutton_gpio
-1 mem_mbutton_gpio
-1 mem_rbutton_gpio
-1 mem_bk_button_gpio
-1 mem_fw_button_gpio
-1 mem_dpi_button_gpio
-1 mem_mouse_sensor_sclk_gpio
-1 mem_mouse_sensor_sdio_gpio
-1 mem_select_sensor_angle_gpio
-1 mem_sensor_angle_default
-1 mem_sensor_angle_gnd
-1 mem_sensor_angle_vin
-1 mem_config_sensor_dpi	
-1 mem_whee_ta_data_gpio
-1 mem_whee_tb_data_gpio
-1 mem_matrix_public_gpio
-1 mem_config_select_device_button_gpio
-1 mem_customer_key_gpio
-1 mem_firebutton_gpio
-1 mem_dpi_another_button_gpio
-1 mem_mouse_logo_led_gpio
-1 mem_mouse_1io2led_multi_24gled
-1 mem_mouse_1io2led_multi_bt1led
-1 mem_mouse_1io2led_multi_bt2led
-1 mem_mouse_low_voltage_alarm_gpio
-1 mem_mouse_dpi_gpio
-0 mem_mouse_param_config_end
-
-1 mem_device_temp_gpio
-
-//LED
-//mediacy
-1 mem_mouse_multi_led_blink_enable
-1 mem_mouse_multi_led_type
-1 mem_mouse_multi_led_state
-1 mem_mouse_multi_led_blink_type				//00:rtn	01:24g blink	02:le blink		03:reconn blink 	04:low blink	05:dpi blink
-
-//time parm
-1 mem_mouse_le_reconn_blink_limit
-1 mem_mouse_multi_led_powon_timer_init		//power on time
-1 mem_mouse_multi_led_powon_timer
-1 mem_mouse_multi_24gled_blink_timer_init	//24gled blink time
-1 mem_mouse_multi_le_discovery_blink_timer_init	//le discovery blink time
-1 mem_mouse_multi_le_reconn_blink_timer_init	//le reconn blink time
-1 mem_mouse_dpi_led_blink_timer_init		//dpi blink time
-1 mem_mouse_multi_led_blink_timer
-1 mem_mouse_low_led_blink_timer			//low blink time
-1 mem_mouse_low_led_blink_half_timer
-//blink count
-1 mem_mouse_multi_24gled_blink_count_init	//24g count
-1 mem_mouse_multi_le_reconn_blink_count_init	//le reconn count
-1 mem_mouse_multi_led_blink_count
-1 mem_mouse_multi_lowled_blink_count_init	//low count
-1 mem_mouse_multi_low_led_blink_count
-2 mem_mouse_logo_led_on_time_init
-1 mem_mouse_dpi_led_delay_count
-1 mem_mouse_dpi_led_delay_count_init
-//LED end
-
-//lost-packet compensation
-1 mem_mouse_24g_fast_hop_count_2ms
-3 mem_mouse_24g_short_sleep_set_4ms
-3 mem_mouse_24g_long_sleep_set_4ms
-3 mem_mouse_24g_short_sleep_set_8ms
-3 mem_mouse_24g_long_sleep_set_8ms
-
-4 mem_mouse_24g_tsniff
-4 mem_mouse_24g_tsniff_2ms
-4 mem_mouse_24g_tsniff_4ms
-4 mem_mouse_24g_tsniff_8ms
-3 mem_mouse_24g_short_sleep_set_init
-
-1 mem_mouse_24g_tx_count
-6 mem_mouse_24g_tx_time_last
-4 mem_mouse_24g_tx_time_last_delt
-5 mem_mouse_24g_tx_time_sum
-1 mem_mouse_24g_tx_time_sum_count
-1 mem_mouse_24g_tx_time_offset
-1 mem_mouse_24g_sleep_miss
-4 mem_mouse_24g_sleep_time_temp
-4 mem_mouse_24g_sleep_miss_temp
-
-1 mem_mouse_sleep_deal_type
-
-//sensor param
-1 mem_sensor_id1
-1 mem_sensor_id2
-
-1 mem_mouse_move_flag
-
-1 mem_mouse_asm_flag
-2 mem_mouse_x_pre
-2 mem_mouse_y_pre
-1 mem_mouse_data_xtemp
-1 mem_mouse_data_ytemp
-
-0 mem_mouse_dpi_seting
-1 mem_320x_dpi_0
-1 mem_320x_dpi_1
-1 mem_320x_dpi_2
-1 mem_320x_dpi_3
-1 mem_3212_dpi_0
-1 mem_3212_dpi_1
-1 mem_3212_dpi_2
-1 mem_3212_dpi_3
-1 mem_ka8g2_dpi_0
-1 mem_ka8g2_dpi_1
-1 mem_ka8g2_dpi_2
-1 mem_ka8g2_dpi_3
-//S210x
-0 mem_sensor_s201_dpi
-1 mem_sensor_s201_dpi_0
-1 mem_sensor_s201_dpi_1
-1 mem_sensor_s201_dpi_2
-1 mem_sensor_s201_dpi_3
-1 mem_sensor_s201_dpi_4
-
-1 mem_mouse_cpi_count
-1 mem_mouse_dpi_button_state
-1 mem_mouse_dpi_long_press_flag
-
-10 mem_sensor_3212_init
-10 mem_sensor_3204_init
-10 mem_sensor_3205_init
-26 mem_sensor_32xx_init
-34 mem_sensor_32xx_init_1
-30 mem_sensor_8650_init
-30 mem_sensor_ka8ul_init
-16 mem_sensor_8009_init
-18 mem_sensor_ka8g2_init
-12 mem_sensor_p6520_init
-12 mem_sensor_ka5857_init
-8 mem_sensor_poweron_init
-8 mem_sensor_ka8g2_poweron_init
-	
-1 mem_mouse_clear_sensor_data_flag
-1 mem_config_sensor_type
-1 mem_config_sensor_angle
-1 mem_bluetooth_125hz_cnt
-
-
-// mouse key
-10 mem_customer_key_press_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_pbkey_press_status
-1 mem_mouse_customerkey_press_status
-1 mem_mouse_key_temp
-1 mem_mouse_key_status
-
-1 mem_mouse_matrix_key_cow_count
-1 mem_mouse_matrix_key_row_count
-1 mem_mouse_ghost_flag
-
-//fire key
-1 mem_fire_key_status
-4 mem_fire_key_delay
-1 mem_fire_key_flag
-
-//another dpi key
-1 mem_dpi_another_press_status
-1 mem_dpi_another_button_state
-1 mem_dpi_another_button_down_enable
-1 mem_mouse_key_temp_patch
-
-//le name modify
-1 mem_le_name_patch_len
-19 mem_le_name_patch
-
-//device otp data
-1 mem_device_flag_last
-1 mem_device_flag_value
-
-6 mem_mouse_le_addr1_last
-6 mem_mouse_le_addr1_temp
-6 mem_mouse_le_locall_addr1_last
-6 mem_mouse_le_locall_addr1_temp
-
-6 mem_mouse_le_addr2_last
-6 mem_mouse_le_addr2_temp
-6 mem_mouse_le_locall_addr2_last
-6 mem_mouse_le_locall_addr2_temp
-
-1 mem_mouse_dpi_last
-1 mem_mouse_dpi_temp
-1 mem_mouse_otp_dpi_value
-
-4 mem_mouse_24g_addr_last
-4 mem_mouse_24g_addr_temp
-
-2 mem_random_addr_increase_count_last
-2 mem_random_addr_increase_count_temp
-
-//otp store info offset
-2 mem_otp_offset_le_addr2
-2 mem_otp_offset_le_addr2_end
-
-2 mem_otp_offset_le_locall_addr2
-2 mem_otp_offset_le_locall_addr2_end
-
-2 mem_otp_offset_dpi
-2 mem_otp_offset_dpi_end
-
-2 mem_otp_offset_device_flag
-2 mem_otp_offset_device_flag_end
-
-2 mem_otp_offset_24g_addr
-2 mem_otp_offset_24g_addr_end
-
-2 mem_otp_offset_le_addr1
-2 mem_otp_offset_le_addr1_end
-
-2 mem_otp_offset_le_locall_addr1
-2 mem_otp_offset_le_locall_addr1_end
-
-2 mem_otp_offset_le_addr_increase_count
-2 mem_otp_offset_le_addr_increase_count_end
-
-2 mem_otp_offset_app_initflag
-
-//usb
-1 mem_usb_tx_interval_retention
-9 mem_usb_vid_pid_retention
-30 mem_usb_device_name_retention
-
-// commbation key
-1 mem_mouse_commbination_key_bt
-1 mem_mouse_commbination_key_24g
-1 mem_mouse_commbination_key_dpi
-1 mem_mouse_commbination_key_select_device
-1 mem_mouse_commbination_dpi_timer
-1 mem_mouse_commbination_select_device_timer
-1 mem_mouse_commbination_key_count
-1 mem_mouse_pair_flag
-//patch area
-1 mem_mouse_le_send_conn_param_update
-1 mem_mouse_le_send_conn_param_update_timer
-1 mem_att_write_resposnse_error_insufficient_auth
-//audio
-16 mem_ad_indexTable1
-356 mem_ad_stepsizeTable1
-
-4 mem_ad_state_valpred1
-4 mem_ad_state_index1
-1 mem_ad_in_numSamples1
-2 mem_ad_in_ptr1
-2 mem_ad_out_ptr1
-1 mem_ad_sign1
-1 mem_ad_delta1
-4 mem_ad_step1
-4 mem_ad_valpred1
-4 mem_ad_index1
-4 mem_ad_vpdiff1
-4 mem_ad_inputbuffer1
-1 mem_ad_bufferstep1
-
-4 mem_ad_val1
-4 mem_ad_outputbuffer1
-4 mem_ad_diff1
-
-1 mem_ms_audio_enable_flag
-1 mem_ms_audio_enable_timer
-1 mem_ms_adc_mode
-
-1 mem_voice_enable
-2 mem_adc_dma_rptr
-
-2 mem_adc_audio_saddr_ptr
-2 mem_adc_audio_eaddr_ptr
-
-//g24 buff
-62 mem_ms_24g_temp_buff
-3 mem_ms_nor_pro_temp_buff
-4 mem_24g_pair_addr_new
-
-//pack type
-1 mem_ms_rf_data_flag
-1 mem_ms_tx_data_type
-1 mem_device_tx_heart_data_flag
-
-//le handle
-2 mem_le_protocol_rx_handle
-2 mem_le_protocol_tx_handle
-2 mem_le_audio_tx_handle
-//le param
-8 mem_ms_le_interval_min_voice
-8 mem_ms_le_interval_min_new
-
-//key init
-1 mem_ms_le_lpm_flag
-1 mem_ms_audio_key_gpio
-1 mem_ms_audio_key_state
-1 mem_ms_audio_key_press_status
-1 mem_ms_audio_key_press_count
-1 mem_ms_one_pullup_key_gpio
-1 mem_ms_one_pullup_key_state
-1 mem_ms_one_pullup_key_press_status
-1 mem_ms_one_pullup_key_press_count
-1 mem_ms_transmit_key_gpio
-1 mem_ms_transmit_key_state
-1 mem_ms_transmit_key_press_status
-1 mem_ms_transmit_key_press_count
-
-//g24 nor pro
-1 mem_mouse_dpi_type
-1 mem_mouse_last_dpi
-1 mem_mouse_dpi_set_result
-1 mem_mouse_battery_type
-
-20 mem_mouse_device_type
-
-
-1 mem_ms_le_spi_reset_type
-//spi buff
-1 mem_spid_tbuf_new				/* spid buf: 03 addr[23:16] addr[15:8] addr[7:0] */
-1 mem_addr_hi_new
-4 mem_spid_rbuf_new
-
-//le buff
-80 mem_le_tx_buffer0_omemalloc_new
-80 mem_le_tx_buffer1_omemalloc_new
-80 mem_le_tx_buffer2_omemalloc_new
-80 mem_le_tx_buffer3_omemalloc_new
-
-ifdef UART_LOG
-//uart
-1 mem_app_uart_tx_gpio
-1 mem_app_uart_rx_gpio
-2 mem_app_uart_rx_buff_sptr
-2 mem_app_uart_rx_buff_eptr
-2 mem_app_uart_tx_buff_sptr
-2 mem_app_uart_tx_buff_eptr
-2 mem_app_uart_baud_rate
-8 mem_app_print_buffer
-0 mem_mouse_param_end
-
-0 mem_app_uart_rx_buff_start
-19 mem_app_uart_rx_buff
-1 mem_app_uart_rx_buff_end
-0 mem_app_uart_tx_buff_start
-299 mem_app_uart_tx_buff
-1 mem_app_uart_tx_buff_end
-endif
-
-10 mem_rxpayload_temp
-5 mem_mouse_key_fuction_info_temp
-0 mem_mouse_key_information_start
-5 mem_mouse_b4_fuction_info
-5 mem_mouse_b5_fuction_info
-5 mem_mouse_dpi_fuction_info
-1 mem_mouse_key_information_set_flag
-
-
-1 mem_store_key_info_delay_timer
-1 mem_store_key_info_delay_timer_init
-1 mem_mouse_fuction_key
-1 mem_mouse_fuction_key_last
-1 mem_mouse_m_key_press_flag
-1 mem_mouse_m_key_press_count
-0 mem_mouse_app_format_end
-
-1 mem_voice_empty_flag
-
-//zcode
-1 mem_zcode_temp_param0	//zcode num
-
-
-1 mem_zcode_current_number
-2 mem_eeprom_start_addr
-2 mem_eeprom_address
-3 mem_xip_flash_offset
-4 mem_zcode_head
-
-40 mem_sensor_8650_init_new
-2 mem_eeprom_att_list_base
-
-1 mem_mouse_le_delay_enter_lpm_time
-22 mem_sensor_ka8g2_init_new
-)
-
-//audio buf len
-(
-720 	AUDIO_BUF_LEN
-240 	AUDIO_BUF_UINT
-
-300 	VOICE_QUEUE_SIZE
-60 	VOICE_QUEUE_UNIT
-5	VOICE_QUEUE_MAX_COUNT
-)
-
-(
-//g24 interval
-0x0c AUDIO_INTERVAL
-)
-
-(
-//adc
-0 ADC_BATTERY
-1 ADC_AUDIO
-
-80 MOUSE_BLE_L2CAP_TXBUFF_SIZE_NEW
-)
-
-//data type
-(
-3 HEART_BIT
-4 HTTP_BIT
-5 AUDIO_BIT
-6 SPEC_PRO_BIT
-7 NOR_PRO_BIT
-)
-
-//protocol public
-(
-//report id
-0xC0 REPORT_ID_PRO_DATA
-0xCC REPORT_ID_AUDIO_DATA
-0x00 START_FLAG
-
-//payload data
-0x10 VOICE_START_DATA
-
-//key count val
-50 KEY_LONG_PRESS
-
-//data len
-5 KEY_STATE_INFO_LEN
-2 KEY_STATE_PAYLOAD_LEN
-7 APPKEY_LEN
-16 SECRET_LEN
-8 SN_CHIP_LEN
-31 AUTH_LEN
-48 DEVICE_INFO_LEN
-5 NOR_PRO_RES_LEN
-3 NOR_PRO_HEADER_LEN
-6 NOR_PRO_GET_DPI_LEN
-2 SET_DPI_LEN
-
-//dpi/battery type
-0 AUTO_IN
-1 APP_ASK
-
-)
-
-//spec pro
-(
-//key state val
-1 SIGNLE_PRESS
-2 DOUBLE_PRESS
-3 LONG_PRESS
-4 LONG_RELEASE
-
-//key long flag val bit or pro key index
-0 AUDIO_KEY_BIT
-1 ASK_KEY_BIT
-2 TRANSMIT_KEY_BIT
-3 AUDIO_CTRL_KEY_BIT
-4 WRITE_KEY_BIT
-5 SUMARY_KEY_BIT
-6 PPT_KEY_BIT
-7 DRAW_KEY_BIT
-8 PRTSCN_KEY_BIT
-9 AI_KEY_BIT
-10 ONE_PULLUP_KEY_BIT
-
-11 DPI_LEVEL_BIT
-12 BATTERY_BIT
-)
-
-//nor pro bit
-(
-0 APPKEY
-1 SECRET
-2 SN_CODE
-3 CHIP_ID
-4 VOICE_START
-5 VOICE_END
-6 DEVICE_INFO
-7 GET_DPI
-8 SET_DPI
-9 GET_BATTERY
-10 SET_KEY_FUCTION
-11 SET_SLEEP_TIMER
-12 GET_DEVICE_TYPE
-)
-
-//opcode
-(
-0x01 OPCODE_APPKEY
-0x02 OPCODE_SECRET
-0x03 OPCODE_SN
-0x04 OPCODE_CHIP_ID
-0x06 OPCODE_VOICE_START
-0x07 OPCODE_VOICE_END
-0x08 OPCODE_CONNECT_STATE
-
-0x10 OPCODE_GET_DEVICE_INFO
-0x11 OPCODE_GET_DPI
-0x12 OPCODE_SET_DPI
-0x13 OPCODE_GET_BATTERY
-0x14 OPCODE_SET_KEY_FUCTION
-
-0x16 OPCODE_GET_DEVICE_TYPE
-
-0x20 OPCODE_VOICE_KEY
-0x21 OPCODE_ASK_KEY
-0x22 OPCODE_TRANSMIT_KEY
-0x23 OPCODE_VOICE_CTRL_KEY
-0x24 OPCODE_WRITE_KEY
-0X25 OPCODE_SUMARY_KEY
-0X26 OPCODE_PPT_KEY
-0X27 OPCODE_DRAW_KEY
-0X28 OPCODE_PRSTCN_KEY
-0x29 OPCODE_AI_KEY
-0X30 OPCODE_ONE_PULLUP_KEY
-)
-
-(
-//combination
-0x01 MOUSE_L_BUTTON
-0X02 MOUSE_R_BUTTON
-0x03 MOUSE_LR_BUTTON
-0X04 MOUSE_M_BUTTON
-0X05 MOUSE_LM_BUTTON
-0X06 MOUSE_RM_BUTTON
-0X07 MOUSE_LMR_BUTTON
-0x09 MOUSE_L_BK_BUTTON
-0x0a MOUSE_R_BK_BUTTON
-0x11 MOUSE_L_FW_BUTTON
-0x12 MOUSE_R_FW_BUTTON
-0x12 MOUSE_M_BK_BUTTON
-0x14 MOUSE_M_FW_BUTTON
-0X18 MOUSE_BK_FW_BUTTON
-//mouse default gpio
-0x1B MOUSE_DEFAULT_XA_GPIO
-0x1C MOUSE_DEFAULT_XB_GPIO
-
-//ui led blink
-0X00C8  LED_RECONNECT_BLINK //200
-0X0190  LED_DPI_BLINK //400
-0X03E8  LED_DPI_BLINK_FIXED    //1000
-0X03E8  LED_DISCOVERY_BLINK    //1000
-0XFF    LED_LONG_BLINK
-0x05	LED_SENSOR_BLINK_CNT
-//mode device number
-0x00 MODE_24G_DEVICE
-0x01 MODE_BT_DEVICE1
-0x02 MODE_BT_DEVICE2
-0x03 MODE_BT_DEVICE3
-0x04 MODE_USB_DEVICE
-//mouse  flag
-0X00 WRITE_REQ_ENABLE_FLAG
-0X01 LL_START_ENC_FLAG
-0X02 LL_PAIRING_SUCCESS_FLAG
-
-
-//mouse_function_flag
-0x08 MOUSE_FLAG_LEN
-//byte 1
-0x00 MOUSE_SELECT_DEVICE_FLAG
-0x01 MOUSE_24G_PAIRING_FLAG
-0x02 MOUSE_STORE_EEPROM_FLAG
-0x03 MOUSE_BT_CANNEL_RECONN_FLAG
-0x04 MOUSE_LOW_VOLTAGE_FLAG
-0x05 MOUSE_BT_DISCOVERY_BUTTON_DOWN_FLAG
-0x06 MOUSE_BT_DISCOVERY_BUTTON_LONG_DOWN_FLAG
-0x07 MOUSE_ENABLE_SPI2
-
-//byte 2
-0x08 MOUSE_ENABLE_BLE_RANDOM_ADDRE
-0x09 MOUSE_ENABLE_2K_EEPROM
-0x0a MOUSE_ENABLE_WAKEUP_FROM_POWER
-0x0b MOUSE_ENABLE_16M
-0x0c MOUSE_ENABLE_USB
-0x0d MOUSE_ENABLE_24G_SEARCH_DONGLE
-0x0e MOUSE_ENABLE_LOAD_AND_STORE_DPI
-0x0f MOUSE_ENABLE_24G
-
-//byte 3
-0x10 MOUSE_ENABLE_FLASH
-0x11 MOUSE_ENABLE_EEPROM
-0x12 MOUSE_ENABLE_OTP
-0x13 MOUSE_ENABLE_ADC
-0x14 MOUSE_ENABLE_KEYBOARD
-0x15 MOUSE_ENABLE_DOUBLE_DPI_KEY
-0x16 MOUSE_ENABLE_SWITCH_GPIO_CONNECT_VIN
-
-//byte 4
-0x18 MOUSE_ENABLE_24G_250Hz
-0x19 MOUSE_ENABLE_24G_500Hz
-0x1a MOUSE_ENABLE_24G_1000
-0x1b MOUSE_ENABLE_BT_125Hz
-0x1c MOUSE_ENABLE_DPI_LEVEL_4
-0x1d MOUSE_ENABLE_USB_250
-0x1e MOUSE_ENABLE_USB_500
-0x1f MOUSE_ENABLE_USB_1000
-
-//byte 5
-0x20 MOUSE_ENABLE_1IO2LED
-0x21 MOUSE_ENABLE_BT_RECONN_LED_EFFECT
-0x22 MOUSE_ENABLE_LOW_LED_BLINK_LIMIT
-0x23 MOUSE_ENABLE_LOW_LED
-0x24 MOUSE_ENABLE_LOW_FOR_LED
-0x25 MOUSE_ENABLE_DPI_FOR_LED
-
-//byte 6
-0x28 MOUSE_ENABLE_SELECT_DEVICE_BY_DPI_BUTTON
-0x29 MOUSE_ENABLE_SELECT_DEVICE_BY_PB_BUTTON
-0x2a MOUSE_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO
-0x2b MOUSE_ENABLE_DPI_KEY_CONNECT_GND
-0x2c MOUSE_ENABLE_ANOTHER_DPI_KEY_CONNECT_GND
-0x2d MOUSE_ENABLE_PB_BUTTON_CONNECT_GND
-0x2e MOUSE_ENABLE_FIRE_KEY_CONNECT_GND
-0x2f MOUSE_ENABLE_CUSTOMER_KEY_CONNECT_VIN
-
-//byte 7 
-0x30 MOUSE_ENABLE_AUTO_24G_PARING
-0x31 MOUSE_ENABLE_24G_POWER_ON_PAIRING
-0x32 MOUSE_ENABLE_COMMBINATION_KEY_BY_24G_PAIRING
-0x33 MOUSE_ENABLE_BT_RECONNECT_TIMEOUT_ENTER_DISCOVERY
-0x34 MOUSE_ENABLE_PB_BUTTON_SHORT_PRESS_ENTER_DISCOVERY
-0x35 MOUSE_ENABLE_COMMBINATION_KEY_BY_BT_DISCOVERY
-0x36 MOUSE_ENABLE_DPI_KEY_LONG_PRESS_DISCONVERY
-0x37 MOUSE_ENABLE_PB_BUTTON_LONG_PRESS_DISCONVERY
-
-//byte 8
-0x38 MOUSE_ENABLE_SMOOTHER
-0x39 MOUSE_ENABLE_XY_OFFSET
-0x3a MOUSE_ENABLE_24G_AUTO_PAIR_NERVER_BEEN_PAIRED
-0x3b MOUSE_ENABLE_LE_BATTERY_SERVICE_CANCEL
-0x3c MOUSE_ENABLE_WHEEL_WAKE_UP_CANCEL
-0x3d MOUSE_ENABLE_24G_2M_PHY
-0x3e MOUSE_ENABLE_24G_FIRST_AUTO_PAIRING
-//mouse dpi level
-0x00 MOUSE_DPI_LEVEL1
-0x01 MOUSE_DPI_LEVEL2
-0x02 MOUSE_DPI_LEVEL3
-0x03 MOUSE_DPI_LEVEL4
-
-
-//mouse sensor angle
-0x00 MOUSE_6CLK_ANGLE
-0X01 MOUSE_9CLK_ANGLE
-0X02 MOUSE_12CLK_ANGLE
-0X03 MOUSE_3CLK_ANGLE
-
-
-//DPI button state 
-0x00 DPI_BUTTON_STATE_UP
-0x01 DPI_BUTTON_STATE_DOWN
-
-
-//PB button state 
-0x00 PB_BUTTON_STATE_UP
-0x01 PB_BUTTON_STATE_DOWN
-
-//Commbination_key state 
-0x00 COMMBINATION_KEY_STATE_UP
-0x01 COMMBINATION_KEY_STATE_DOWN
-
-
-//eeprom address offect
-0X00 MOUSE_INFO_EEPROM_OFFECT
-0x58 MOUSE_STORE_FLAG
-0X5A MOUSE_DPI_EEPROM_OFFECT	//1byte
-0X5B MOUSE_G24_ADDR_EEPROM_OFFECT	//4bytes
-0X5F MOUSE_RANDOM_ADDR_COUNT_EEPROM_OFFSET	//2bytes
-0X61 MOUSE_EEPROM_MODULE_INIT_FLAG
-
-0x82 MOUSE_AUTH_INFO_OFFSET
-0x8a MOUSE_VALUE_EEPROM_OFFECT
-0x99 MOUSE_VALUE_FLAG_OFFECT
-
-// Sensor id number
-0x30 P32XX_ID1
-0x31 P3065_ID1
-0x02 P3212_ID2
-0xD1 P3205_TJ3T_ID2
-0XD2 P3204_TJ3L_ID2
-0x54 PKA8_ID2
-0x70 P3065_XY_ID2
-0x00 P3065_ID2
-0x5a P_MX8650
-0xD8 P8009_ID2
-0x50 P6520A_ID2
-0x57 KA5857_ID2
-0x58 PKA8G2_ID1
-0x59 PKA8G2_ID2
-
-
-//Sensor type
-0X00 P3205
-0X01 P3065
-0X02 P3204
-0X03 P3212
-0X04 P3065_XY
-0x05 MX8650
-0x06 P8009
-0x07 P6520
-0X08 KA8
-0X09 KA8_UL
-0X0a KA8_HD
-0X0b KA8G2
-0X0c S201X
-0X0d KA5857
-
-
-//SENSOR REG
-0x00 PAN_REG_PID_L
-0x01 PAN_REG_PID_H
-0x02 PAN_REG_MOTION_STAUS
-0x03 PAN_REG_DELTA_X
-0x04 PAN_REG_DELTA_Y
-0x05 PAN_REG_OPRATION_MODE
-0x06 PAN_REG_CONFIG
-0x07 PAN_REG_IMAGE_QUALITY
-0x08 PAN_REG_OPRATION_STATE
-0x09 PAN_REG_WRITE_PROTECT
-0x0A PAN_REG_SLEEP_1
-0x0B PAN_REG_ENTER_TIME
-0x0C PAN_REG_SLEEP_2
-0x0D PAN_REG_IMAGE_THRESHOLD
-0x0E PAN_REG_IMAGE_RECGNITION
-
-
-0x06 MOUSE_DPI_ADDRESS
-0x05 MOUSE_P3610_DPI_ADDRESS
-0x0D MOUSE_P3212_DPI_XADDRESS
-0x0E MOUSE_P3212_DPI_YADDRESS
-
-)
-
-(
-0x01 ADV_FLAG_LIMITED_DISCOVERABLE
-0x04 ADV_FLAG_BREDR_NOT_SUPPORTED
-)
-
-(
-2 BIT_POWER_ON
-)
-
-(
-0x00 MOUSE_L_KEY
-0x01 MOUSE_R_KEY
-0x02 MOUSE_M_KEY
-0x03 MOUSE_BK_KEY
-0x04 MOUSE_FW_KEY
-0x05 MOUSE_DPI_KEY
-0x06 MOUSE_PB_KEY
-0x07 MOUSE_CUSTOMER_KEY
-
-0x00 MOUSE_DPI_ANOTHER_KEY
-0x01 MOUSE_AUDIO_KEY
-0x02 MOUSE_AI_KEY
-0x03 MOUSE_TRANSMIT_KEY
-0x04 MOUSE_ONE_PULLUP_KEY
-)
-
-(
-0 MULTI_LED_ON
-1 MULTI_LED_BLINK
-)
-
-(
-0x01 B4_FUCTION
-0x02 B5_FUCTION
-0x03 DPI_FUCTION
-)
-
-(
-0x08 BK_VALUE
-0x10 FW_VALUE
-0xff DPI_VALUE
-)
-
-(
-0x01 MS_KEY
-0x02 KB_KEY
-0x03 APP_KEY
-)
-
-(
-0x00 PRESS_SHORT
-0x01 PRESS_LONG
-)
-
-
-
-(
-//zcode
-0xe00 mem_zcode_buff   
-
-256 ZCODE_BUFF_SIZE
-64 ZCODE_CODE_SIZE
-0xff ZCODE_FLAG
-
-0x00 ZCODE_00
-0x01 ZCODE_01
-0x02 ZCODE_02
-0x03 ZCODE_03
-0x04 ZCODE_04
-0x05 ZCODE_05
-0x06 ZCODE_06
-0x07 ZCODE_07
-0x10 ZCODE_10
-0x11 ZCODE_11
-0x12 ZCODE_12
-0x13 ZCODE_13
-0x14 ZCODE_14
-0x15 ZCODE_15
-0x16 ZCODE_16
-0x17 ZCODE_17
-0x20 ZCODE_20
-0x21 ZCODE_21
-0x22 ZCODE_22
-0x23 ZCODE_23
-0x24 ZCODE_24
-0x25 ZCODE_25
-0x26 ZCODE_26
-0x27 ZCODE_27 
-0x30 ZCODE_30
-0x31 ZCODE_31
-0x32 ZCODE_32
-0x33 ZCODE_33
-0x34 ZCODE_34
-0x35 ZCODE_35
-0x36 ZCODE_36
-0x37 ZCODE_37 
-0x40 ZCODE_40
-0x41 ZCODE_41
-0x42 ZCODE_42
-0x43 ZCODE_43
-0x44 ZCODE_44
-0x45 ZCODE_45
-0x46 ZCODE_46
-0x47 ZCODE_47
-0x50 ZCODE_50
-0x51 ZCODE_51
-0x52 ZCODE_52
-0x53 ZCODE_53
-0x54 ZCODE_54
-0x55 ZCODE_55
-0x56 ZCODE_56
-0x57 ZCODE_57
-0x60 ZCODE_60
-0x61 ZCODE_61
-0x62 ZCODE_62
-0x63 ZCODE_63
-0x64 ZCODE_64
-0x65 ZCODE_65
-0x66 ZCODE_66
-0x67 ZCODE_67
-0x70 ZCODE_70
-0x71 ZCODE_71
-0x72 ZCODE_72
-0x73 ZCODE_73
-0x74 ZCODE_74
-0x75 ZCODE_75
-0x76 ZCODE_76
-0x77 ZCODE_77
-0x80 ZCODE_80
-0x81 ZCODE_81
-0x82 ZCODE_82
-0x83 ZCODE_83
-0x84 ZCODE_84
-0x85 ZCODE_85
-0x86 ZCODE_86
-0x87 ZCODE_87
-0x90 ZCODE_90
-0x91 ZCODE_91
-0x92 ZCODE_92
-0x93 ZCODE_93
-0x94 ZCODE_94
-0x95 ZCODE_95
-0x96 ZCODE_96
-0x97 ZCODE_97
-0xA0 ZCODE_A0
-0xA1 ZCODE_A1
-0xA2 ZCODE_A2
-0xA3 ZCODE_A3
-0xA4 ZCODE_A4
-0xA5 ZCODE_A5
-0xA6 ZCODE_A6
-0xA7 ZCODE_A7
-0xB0 ZCODE_B0
-0xB1 ZCODE_B1
-0xB2 ZCODE_B2
-0xB3 ZCODE_B3
-0xB4 ZCODE_B4
-0xB5 ZCODE_B5
-0xB6 ZCODE_B6
-0xB7 ZCODE_B7
-0xC0 ZCODE_C0
-0xC1 ZCODE_C1
-0xC2 ZCODE_C2
-0xC3 ZCODE_C3
-0xC4 ZCODE_C4
-0xC5 ZCODE_C5
-0xC6 ZCODE_C6
-0xC7 ZCODE_C7
-0xd0 ZCODE_D0
-0xd1 ZCODE_D1
-0xe0 ZCODE_e0
-0xe1 ZCODE_e1
-0xe2 ZCODE_e2
-)
Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/app_rec.format
===================================================================
--- /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/app_rec.format	(revision 5679)
+++ /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/app_rec.format	(nonexistent)
@@ -1,412 +0,0 @@
-
-memalloc rec(
-
-0 mem_malloc_rec_start
-
-//ota
-2 mem_rec_queue_ota_sptr
-2 mem_rec_queue_ota_eptr
-2 mem_rec_queue_ota_rptr
-2 mem_rec_queue_ota_wptr
-0 mem_rec_queue_ota_buf	//1280
-0 mem_rec_voice_raw_start
-799 mem_rec_voice_raw
-1 mem_rec_voice_raw_end
-
-//audio
-1 mem_rec_voice_queue_count
-20 mem_rec_queue_buf
-100 mem_rec_adpcm
-
-//nec
-255 mem_rec_nec_rx_start
-1 mem_rec_nec_rx_end
-255 mem_rec_nec_rx_store_start
-1 mem_rec_nec_rx_store_end
-
-4 mem_rec_ota_flash_buf_head
-0 mem_rec_ota_flash_buf	//300
-
-4 mem_rec_nec_flash_write_head
-0 mem_rec_nec_rx_info
-1 mem_rec_nec_rx_len
-2 mem_rec_nec_rx_perid_freq
-255 mem_rec_nec_rx_data
-1 mem_rec_nec_rx_analysis_end
-1 mem_rec_nec_rx_count
-
-1 mem_rec_nec_timer
-1 mem_rec_nec_timeout
-2 mem_rec_nec_usercode
-1 mem_rec_nec_datacode
-
-1 mem_rec_nec_learn_key_num
-1 mem_rec_nec_learn_key_state
-1 mem_rec_nec_learn_enable_flag
-4 mem_rec_nec_learn_timeout
-1 mem_rec_nec_learn_state
-
-20 mem_rec_period_cal
-2 mem_rec_period_cal_ptr
-1 mem_rec_period_cal_count
-20 mem_rec_nec_period_array
-
-2 mem_rec_nec_store_sptr
-2 mem_rec_nec_store_eptr
-2 mem_rec_nec_store_wptr
-
-1 mem_rec_nec_receive_data0
-1 mem_rec_nec_receive_data1
-1 mem_rec_nec_receive_data2
-3 mem_rec_nec_receive_data
-1 mem_rec_nec_data
-
-1 mem_rec_nec_period
-1 mem_rec_nec_duty
-1 mem_rec_nec_freq
-2 mem_rec_nec_carry_time
-
-4 mem_rec_nec_learn_stime
-4 mem_rec_nec_learn_ntime
-4 mem_rec_nec_learn_outtime
-1 mem_rec_nec_learn_succ
-2 mem_rec_nec_learn_succ_ptr
-
-1 mem_rec_nec_learn_send_flag
-1 mem_rec_nec_led_state
-1 mem_rec_nec_led_blink_count
-
-1 mem_malloc_rec_end
-)
-
-
-xmemalloc rec(
-0 mem_xmalloc_rec_start
-1215 mem_rec_le_att_list
-
-//led
-0 mem_rec_led_style
-1 mem_rec_led_style_type
-1 mem_rec_led_style_blink_count
-1 mem_rec_led_style_gpio
-2 mem_rec_led_style_on_time
-2 mem_rec_led_style_off_time
-2 mem_rec_led_style_on_callback
-2 mem_rec_led_style_off_callback
-
-//led2 
-0 mem_rec_led2_style
-1 mem_rec_led2_style_type
-1 mem_rec_led2_style_blink_count
-1 mem_rec_led2_style_gpio
-2 mem_rec_led2_style_on_time
-2 mem_rec_led2_style_off_time
-2 mem_rec_led2_style_on_callback
-2 mem_rec_led2_style_off_callback
-
-//led ble pair
-0 mem_rec_le_pair_led_style
-1 mem_rec_le_pair_led_style_type
-1 mem_rec_le_pair_led_style_blink_count
-1 mem_rec_le_pair_led_style_gpio
-2 mem_rec_le_pair_led_style_on_time
-2 mem_rec_le_pair_led_style_off_time
-
-//led ble reconn
-0 mem_rec_le_reconn_led_style
-1 mem_rec_le_reconn_led_style_type
-1 mem_rec_le_reconn_led_style_blink_count
-1 mem_rec_le_reconn_led_style_gpio
-2 mem_rec_le_reconn_led_style_on_time
-2 mem_rec_le_reconn_led_style_off_time
-
-//led adc low power
-0 mem_rec_adc_low_led_style
-1 mem_rec_adc_low_led_style_type
-1 mem_rec_adc_low_led_style_blink_count
-1 mem_rec_adc_low_led_style_gpio
-2 mem_rec_adc_low_led_style_on_time
-2 mem_rec_adc_low_led_style_off_time
-
-
-//10ms timer
-4 mem_rec_ui_timer_btclk
-1 mem_rec_ui_timer_count
-2 mem_rec_cb_timer
-
-//tscan
-1 mem_rec_tscan_timer
-1 mem_rec_tscan_timeout
-
-1 mem_rec_tscan_row_nums
-1 mem_rec_tscan_col_nums
-2 mem_rec_tscan_col_gpio_ptr
-1 mem_rec_tscan_row_scanned
-1 mem_rec_tscan_col_scanned
-1 mem_rec_tscan_record_row
-1 mem_rec_tscan_record_col
-10 mem_rec_tscan_row_gpio
-10 mem_rec_tscan_col_gpio
-1 mem_rec_tscan_sequence
-1 mem_rec_tscan_gpio_nums
-1 mem_rec_tscan_row_scan_loop_count
-0 mem_rec_key_state
-1 mem_rec_tscan_gndkey_state
-1 mem_rec_tscan_key_state
-2 mem_rec_tscan_record_temp
-1 mem_rec_tscan_key_need_send_flag
-1 mem_rec_tscan_current_key_num
-1 mem_rec_gpio_wakeup_source
-1 mem_rec_tscan_gndkey_record_temp
-1 mem_rec_tscan_gndkey_need_send_flag
-
-40 mem_rec_tscan_key_nums_list
-10 mem_rec_tscan_gndkey_nums_list
-
-//combin key
-8 mem_rec_tscan_key_num_bit
-8 mem_rec_tscan_combin_key_num_bit
-2 mem_rec_tscan_current_gpio_ptr
-2 mem_rec_tscan_record_now
-1 mem_rec_combin_key_timeout
-1 mem_rec_combin_key_timer
-
-//tscan debounce
-1 mem_rec_gpio_bit_first
-1 mem_rec_gpio_bit_second
-1 mem_rec_gpio_bit_check
-1 mem_rec_gpio_for_wake_pullup
-
-//keypad
-1 mem_rec_keypad_type
-160 mem_rec_key_keyboard_value_list
-48 mem_rec_key_consumer_value_list
-64 mem_rec_key_mouse_value_list
-48 mem_rec_key_nec_value_list
-
-0 mem_rec_key_press_le
-3 mem_rec_key1_press_le
-3 mem_rec_key2_press_le
-3 mem_rec_key3_press_le
-3 mem_rec_key4_press_le
-3 mem_rec_key5_press_le
-3 mem_rec_key6_press_le
-3 mem_rec_key7_press_le
-3 mem_rec_key8_press_le
-3 mem_rec_key9_press_le
-3 mem_rec_key10_press_le
-3 mem_rec_key11_press_le
-3 mem_rec_key12_press_le
-3 mem_rec_key13_press_le
-3 mem_rec_key14_press_le
-3 mem_rec_key15_press_le
-3 mem_rec_key16_press_le
-3 mem_rec_key17_press_le
-3 mem_rec_key18_press_le
-3 mem_rec_key19_press_le
-3 mem_rec_key20_press_le
-3 mem_rec_key21_press_le
-
-3 mem_rec_key_release_le
-21 mem_rec_key_map
-1 mem_rec_gnd_key_offset
-1 mem_rec_keypad_fun
-
-
-//ble param
-1 mem_rec_le_enable_notify
-1 mem_rec_le_data_len
-1 mem_rec_le_connect_state
-
-//gatt
-2 mem_rec_report_id1_handle
-2 mem_rec_report_id2_handle
-2 mem_rec_report_id3_handle
-2 mem_rec_report_id4_handle
-
-//queue
-1 mem_rec_queue_each_size
-1 mem_rec_queue_length
-1 mem_rec_queue_curr_num
-1 mem_rec_queue_read_ptr
-1 mem_rec_queue_write_ptr
-32 mem_rec_queue_ele
-
-//adpcm
-16 mem_rec_ad_indexTable1
-356 mem_rec_ad_stepsizeTable1
-
-4 mem_rec_ad_state_valpred1
-4 mem_rec_ad_state_index1
-1 mem_rec_ad_in_numSamples1
-2 mem_rec_ad_in_ptr1
-2 mem_rec_ad_out_ptr1
-1 mem_rec_ad_sign1
-1 mem_rec_ad_delta1
-4 mem_rec_ad_step1
-4 mem_rec_ad_valpred1
-4 mem_rec_ad_index1
-4 mem_rec_ad_vpdiff1
-4 mem_rec_ad_inputbuffer1
-1 mem_rec_ad_bufferstep1	
-
-4 mem_rec_ad_val1
-4 mem_rec_ad_outputbuffer1
-4 mem_rec_ad_diff1
-
-1 mem_rec_voice_enable
-20 mem_rec_voice_notify
-2 mem_rec_adc_dma_rptr
-
-2 mem_rec_voice_notify_apk_handle
-2 mem_rec_voice_notify_box_handle
-2 mem_rec_control_notify_apk_handle
-2 mem_rec_control_notify_box_handle
-
-//filter policy
-1 mem_rec_white_list_num
-1 mem_rec_le_scan_filter_policy
-4 mem_rec_white_list_flash_write_head
-48 mem_rec_white_list
-1 mem_rec_le_req_type
-
-//nec 
-1 mem_rec_nec_send_gpio
-1 mem_rec_nec_receive_gpio
-
-//ota
-2 mem_rec_ota_write_index
-4 mem_rec_ota_write_length
-2 mem_rec_ota_write_data_addr
-3 mem_rec_ota_write_flash_addr
-3 mem_rec_ota_write_flash_addr_start
-4 mem_rec_ota_total_sum
-1 mem_rec_ota_update_flash_mode
-
-2 mem_rec_ota_version
-2 mem_rec_ota_buck_size
-2 mem_rec_ota_packet_max_len
-1 mem_rec_ota_work_mode
-
-2 mem_rec_ota_notify_handle
-1 mem_rec_ota_notify_opcode
-1 mem_rec_ota_notify_result
-9 mem_rec_ota_notify_data
-
-0 mem_rec_ota_le_conn_update_param
-2 mem_rec_ota_le_interval_min
-2 mem_rec_ota_le_interval_max
-2 mem_rec_ota_le_latency
-2 mem_rec_ota_le_timeout
-
-1 mem_rec_ota_reset_timeout
-1 mem_rec_ota_le_conn_param_update
-1 mem_rec_ota_enable
-1 mem_rec_le_packet_size
-
-3 mem_rec_ota_flash_base_addr
-3 mem_rec_ota_flash_offset_addr
-
-2 mem_rec_queue_ota_count
-2 mem_rec_ota_queue_size
-
-3 mem_rec_code_a_flash_addr
-3 mem_rec_code_b_flash_addr
-
-
-
-1 mem_xmalloc_rec_end
-)
-
-
-(
-1 KEY_DOWN 
-0 KEY_UP 
-)
-
-(
-0x00 KEYPAD_TYPE_CONSUMER
-0x01 KEYPAD_TYPE_MOUSE
-0x02 KEYPAD_TYPE_KEYPAD
-0x03 KEYPAD_TYPE_NEC
-)
-
-(
-0x03 MAX_QUEUE_UNIT
-)
-
-(
-0x100 NEC_STORE_BUF_SIZE
-0x3fff NEC_LEAR_HEAD
-)
-
-(
-0 INDEX_0
-1 INDEX_1
-2 INDEX_2
-3 INDEX_3
-4 INDEX_4
-5 INDEX_5
-6 INDEX_6
-7 INDEX_7
-8 INDEX_8
-9 INDEX_9
-10 INDEX_10
-11 INDEX_11
-12 INDEX_12
-13 INDEX_13
-14 INDEX_14
-15 INDEX_15
-16 INDEX_16
-17 INDEX_17
-18 INDEX_18
-19 INDEX_19
-20 INDEX_20
-)
-
-(
-0x00 NONE_FILTER
-0x01 WHITE_LIST_SCAN_FILTER
-0x02 WHITE_LIST_CONNECT_FILTER
-0x03 WHITE_LIST_CONN_SCAN_FILTER
-)
-
-(
-0xAB OTA_EVENT
-0xBA OTA_COMMAND
-)
-
-(
-0x10 OTA_PORTOCOL_VERSION_REQUEST
-0x11 OTA_BUCK_SIZE_REQUEST
-0x12 OTA_WORK_MODE_REQUEST
-0x13 OTA_SWITCH_WORK_MODE_REQUEST
-0x14 OTA_FLASH_CHECKSUM_REQUEST
-0x15 OTA_START_REQUEST
-0x16 OTA_DATA_WRITE_CMD
-0x17 OTA_DATA_WRITE_REQUEST
-0x18 OTA_END_REQUEST
-)
-
-(
-0x00 OTA_UPDATE_FLASH_NORMAL
-)
-
-(
-0x00 OTA_RESULT_SUCCESS
-0x01 OTA_RESULT_WORKMODE_NOT_SUPPORT
-0x02 OTA_RESULT_WORKMODE_ERROR
-0x03 OTA_RESULT_FLASHMODE_NOT_SUPPORT
-0x04 OTA_RESULT_INDEX_ERROR
-0x05 OTA_RESULT_LENGTH_ERROR
-0x06 OTA_RESULT_BUCK_SIZE_ERROR
-0x07 OTA_RESULT_WRITE_FLASH_ERROR
-0xFF OTA_RESULT_ERROR
-)
-
-(
-0x01 OTA_LE_CONN_PARAM_UPDATE_ENABLE
-0x00 OTA_LE_CONN_PARAM_UPDATE_DISABLE
-)
-
-
Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/app_remote_car.format
===================================================================
--- /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/app_remote_car.format	(revision 5679)
+++ /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/app_remote_car.format	(nonexistent)
@@ -1,43 +0,0 @@
-
-xmemalloc g24_tx_remote(
-
-4 mem_remote_lpm_gpio_config_flag
-1 mem_remote_lpm_gpio_config_io_temp
-
-1 mem_24g_tx_led_map
-1 mem_24g_led_count
-2 mem_24g_lpm_timer_count
-2 mem_24g_lpm_enter_count	
-6 mem_remote_otp_lot_xy_temp
-4 mem_remote_full_control_remote_lap
-
-0 mem_remote_car_key_conf0
-1 mem_remote_car_key_conf0_pin
-0 mem_remote_car_key_conf1
-1 mem_remote_car_key_conf1_pin
-0 mem_remote_car_key_conf2
-1 mem_remote_car_key_conf2_pin
-0 mem_remote_car_key_conf3
-1 mem_remote_car_key_conf3_pin
-0 mem_remote_car_key_conf4
-1 mem_remote_car_key_conf4_pin
-0 mem_remote_car_key_conf5
-1 mem_remote_car_key_conf5_pin
-0 mem_remote_car_key_conf6
-1 mem_remote_car_key_conf6_pin
-
-1 mem_remote_le_24g_recv_ack_flag
-1 mem_key_public_gpio
-1 mem_remote_mult_key
-
-2 mem_remote_le_24g_ch_count
-1 mem_le_24g_tx_send_flag
-1 mem_remote_le_24g_tx_pair_mode
-4 mem_remote_24g_addr_other
-
-12 mem_remote_24g_tx_payload_temp
-12 mem_remote_24g_rx_payload_temp
-
-)
-
-
Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/app_shutter.format
===================================================================
--- /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/app_shutter.format	(revision 5679)
+++ /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/app_shutter.format	(nonexistent)
@@ -1,194 +0,0 @@
-
-
-xmemalloc shutter(
-
-////////////////////////////////////
-//ble shutter configsuoy
-1 mem_ble_shutter_enable_notify
-2 mem_ble_shutter_reconn_adv_interval
-2 mem_ble_shutter_discovery_adv_interval
-2 mem_ble_shutter_reconn_timeout
-2 mem_ble_shutter_reconn_timer
-2 mem_ble_shutter_reconn_blink_on_time
-2 mem_ble_shutter_reconn_blink_off_time
-2 mem_ble_shutter_discovery_blink_on_time
-2 mem_ble_shutter_discovery_blink_off_time
-
-2 mem_ble_shutter_interval_min
-2 mem_ble_shutter_interval_max
-2 mem_ble_shutter_latency
-2 mem_ble_shutter_timeout
-
-2 mem_ble_shutter_interval_min_new
-2 mem_ble_shutter_interval_max_new
-2 mem_ble_shutter_latency_new
-2 mem_ble_shutter_timeout_new
-
-//////////////////shutter sleep timeout//////////////////
-2 mem_ble_shutter_discovery_timeout
-2 mem_ble_shutter_connect_timeout
-2 mem_shutter_sleep_timeout
-2 mem_shutter_sleep_timer
-
-/////////////////////////////////////////////////////////////////
-1 mem_shutter_hard_soft_switch_case
-1 mem_shutter_soft_switch_button_gpio
-1 mem_shutter_soft_switch_power_state
-1 mem_shutter_soft_switch_poweron_time
-1 mem_shutter_soft_switch_poweroff_time
-2 mem_shutter_soft_switch_poweron_callback_function
-2 mem_shutter_soft_switch_poweroff_callback_function
-
-0 mem_shutter_keyscan
-1 mem_shutter_key_num
-2 mem_cb_shutter_keycan
-1 mem_shutter_key_conf0
-1 mem_shutter_key_conf1
-
-5 mem_key0_press
-5 mem_key1_press
-5 mem_key2_press
-
-5 mem_key0_release
-5 mem_key1_release
-5 mem_key2_release
-
-5 mem_ble_data_buffer1
-5 mem_ble_data_buffer2
-5 mem_ble_data_buffer3
-5 mem_ble_data_buffer4
-5 mem_ble_data_buffer5
-5 mem_ble_data_buffer6
-5 mem_ble_data_buffer7
-5 mem_ble_data_buffer8
-50 mem_ble_data_buffer9_58
-
-1 mem_queue_each_size
-1 mem_queue_length
-1 mem_queue_curr_num
-1 mem_queue_read_ptr
-1 mem_queue_write_ptr
-32 mem_queue_ele
-
-170 mem_shutter_nv_data
-
-0 mem_shutter_led_struct_app_led
-1 mem_shutter_led_struct_app_led_type
-1 mem_shutter_led_struct_app_led_blink_count
-1 mem_shutter_led_struct_app_led_gpio
-2 mem_shutter_led_struct_app_led_on_time
-2 mem_shutter_led_struct_app_led_off_time
-2 mem_shutter_led_struct_app_led_on_callback
-2 mem_shutter_led_struct_app_led_off_callback
-
-0 mem_shutter_power_off_led_style
-1 mem_shutter_power_off_led_style_type
-1 mem_shutter_power_off_led_style_blink_count
-1 mem_shutter_power_off_led_style_gpio
-2 mem_shutter_power_off_led_style_on_time
-2 mem_shutter_power_off_led_style_off_time
-2 mem_shutter_power_off_led_style_on_callback
-2 mem_shutter_power_off_led_style_off_callback
-
-1 mem_shutter_soft_swtich_botton_down
-11 mem_shutter_soft_swtich_led_struct_temp
-1 mem_shutter_power_off_timeout
-1 mem_shutter_power_off_timer
-2 mem_shutter_key_conf0_temp
-1 mem_shutter_led_struct_app_led_gpio_temp
-1 mem_shutter_hard_soft_switch_case_temp
-1 mem_shutter_soft_switch_button_gpio_temp
-
-1 mem_shutter_soft_switch_first_power_on
-1 mem_shutter_dy_conf
-)
-
-
-
-
-(
-0 BLE_SHUTTER
-1 CLASSIC_SHUTTER
-)
-
-(
-0x0000 NVRAM_EEPROM_OFFSET
-)
-
-(
-0x1b3a SHUTTER_EEPROM_CONFIG_CRC
-)
-
-(
-5 MAX_QUEUE_NUM
-5 SHUTTER_BLE_DATA_BUFFER
-5 SHUTTER_CLASSIC_DATA_BUFFER
-)
-
-
-(
-0x13	GATT_CONSUMER_NOTIFY_HANDLE
-0x14	GATT_CONSUMER_WRITE_HANDLE
-0x17	GATT_KEYBOARD_NOTIFY_HANDLE
-0x18	GATT_KEYBOARD_WRITE_HANDLE
-)
-
-(
-//20ms
-0x0020	FAST_ADV_INTERVAL_VALUE
-//100ms
-0x00a0	SLOW_ADV_INTERVAL_VALUE
-)
-
-
-(
-0 ATT_BIT_NOTIFICATION
-1 ATT_BIT_INDICATION
-)
-///////////////////////////////////////////////////////////////////////////////////////
-
-(
-0 HARD_SWITCH
-1 SOFT_SWITCH
-)
-
-
-(
-1  FLAG_SHUTTER_HID_DISCONN_TIMEOUT
-5 FLAG_SHUTTER_CABLE_UNPLUG_TIMEOUT
-)
-
-(//Data Rom Buffer Addr
-313		BLE_GATT_LIST_SIZE
-487		BT_SDP_LIST_SIZE
-40		BLE_KEY_VALUE_LIST_SIZE
-40		BT_KEY_VALUE_LIST_SIZE
-)
-
-
-(//soft switch power state
-0		SS_STATE_POWER_UP
-1		SS_STATE_POWER_ON
-2		SS_STATE_POWER_OFF
-)
-
-(
-0		SS_POWER_STATE_OFFSET
-1		SS_POWER_ON_TIME
-2		SS_POWER_OFF_TIME
-3		SS_POWER_ON_CB
-5		SS_POWER_OFF_CB
-
-)
-
-(
-
-0x4FFE SIM_IIC_SCL_GPIO_NUM
-0x4FFF SIM_IIC_SDA_GPIO_NUM
-
-)
-
-(
-0 SHUTTER_TYPE
-1 SHUTTER_DY_TYPE
-)
Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/app_shutter_dy.format
===================================================================
--- /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/app_shutter_dy.format	(revision 5679)
+++ /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/app_shutter_dy.format	(nonexistent)
@@ -1,287 +0,0 @@
-
-
-xmemalloc shutter_dy(
-
-////////////////////////////////////
-//shutter common config
-
-//timers
-1 mem_shutter_1s_timer
-2 mem_shutter_timer_625us
-
-//patch variable
-11 mem_rf_init_data_new
-2 mem_key_value_xmem
-230 mem_shutter_le_hid_map
-412 mem_shutter_le_uuid_sup
-2 mem_shutter_le_map_len_android
-2 mem_shutter_le_map_len_ios
-16 mem_dy_le_search_service_uuid
-1 mem_iphone_flag
-1 mem_send_data_delay
-4 mem_key_send_clk
-10 mem_shutter_key_state0
-10 mem_shutter_key_state1
-10 mem_shutter_key_state2
-10 mem_shutter_key_state3
-10 mem_shutter_key_state4
-10 mem_shutter_key_state5
-10 mem_shutter_key_state6
-10 mem_shutter_key_state7
-10 mem_shutter_key_state8
-
-10 mem_dy_key0_press
-10 mem_dy_key1_press
-10 mem_dy_key2_press
-10 mem_dy_key3_press
-10 mem_dy_key4_press
-10 mem_dy_key5_press
-10 mem_dy_key6_press
-10 mem_dy_key7_press
-10 mem_dy_key8_press
-
-15 mem_key0_release_new
-15 mem_key1_release_new
-15 mem_key2_release_new
-15 mem_key3_release_new
-15 mem_key4_release_new
-15 mem_key5_release_new
-15 mem_key6_release_new
-15 mem_key7_release_new
-15 mem_key8_release_new
-
-3 mem_key0_long_press
-3 mem_key1_long_press
-3 mem_key2_long_press
-3 mem_key3_long_press
-3 mem_key4_long_press
-3 mem_key5_long_press
-3 mem_key6_long_press
-3 mem_key7_long_press
-3 mem_key8_long_press
-
-3 mem_key0_long_release
-3 mem_key1_long_release
-3 mem_key2_long_release
-3 mem_key3_long_release
-3 mem_key4_long_release
-3 mem_key5_long_release
-3 mem_key6_long_release
-3 mem_key7_long_release
-3 mem_key8_long_release
-
-2 mem_combine_key0
-2 mem_combine_key1
-2 mem_combine_key2
-2 mem_combine_key3
-2 mem_combine_key4
-2 mem_combine_key5
-
-2 mem_combine_key_state0
-
-10 mem_combine_key0_press
-10 mem_combine_key1_press
-10 mem_combine_key2_press
-10 mem_combine_key3_press
-10 mem_combine_key4_press
-10 mem_combine_key5_press
-10 mem_combine_key_release
-
-4 mem_shutter_move_data
-
-10 mem_key0_press_i
-10 mem_key1_press_i
-10 mem_key2_press_i
-10 mem_key3_press_i
-10 mem_key4_press_i
-10 mem_key5_press_i
-10 mem_key6_press_i
-10 mem_key7_press_i
-
-15 mem_key0_release_new_i
-15 mem_key1_release_new_i
-15 mem_key2_release_new_i
-15 mem_key3_release_new_i
-15 mem_key4_release_new_i
-15 mem_key5_release_new_i
-15 mem_key6_release_new_i
-15 mem_key7_release_new_i
-15 mem_key8_release_new_i
-
-3 mem_key0_long_press_i
-3 mem_key1_long_press_i
-3 mem_key2_long_press_i
-3 mem_key3_long_press_i
-3 mem_key4_long_press_i
-3 mem_key5_long_press_i
-3 mem_key6_long_press_i
-3 mem_key7_long_press_i
-3 mem_key8_long_press_i
-
-3 mem_key0_long_release_i
-3 mem_key1_long_release_i
-3 mem_key2_long_release_i
-3 mem_key3_long_release_i
-3 mem_key4_long_release_i
-3 mem_key5_long_release_i
-3 mem_key6_long_release_i
-3 mem_key7_long_release_i
-3 mem_key8_long_release_i
-
-
-10 mem_key3_release_new_t
-10 mem_key3_release_new_i_t
-1 mem_key3_press_count
-1 mem_shutter_like_timeout
-1 mem_shutter_key_pressed
-1 mem_shutter_combine_key_release
-550 mem_shutter_mousekey_value_list
-1 mem_shutter_back_count
-1 mem_shutter_le_conned
-
-0 mem_move_config
-1 mem_shutter_iphone_beyond_x_count
-1 mem_shutter_iphone_beyond_y_count
-2 mem_shutter_move_data_x
-2 mem_shutter_move_data_y
-1 mem_last_shutter_le_iphone_flag
-0 mem_move_config_end
-1 mem_shutter_back_count_cache
-1 mem_shutter_iphone_beyond_x_cache
-1 mem_shutter_iphone_beyond_y_cache
-10 mem_shutter_iphone_move_mid
-1 mem_shutter_long_key_released_flag
-1 mem_shutter_move_mid_timer
-1 mem_shutter_pairing_success
-2 mem_combine_key_release_value
-1 mem_last_press_key_value
-1 mem_shutter_first_move
-1 mem_move_mode_set
-1 mem_move_mode_key_index
-1 mem_move_mode_trigger_enable
-5 mem_shutter_android_move_mid
-10 mem_shutter_iphone_up_mid
-10 mem_shutter_iphone_like_mid
-1 mem_shutter_key_num_conf
-9 mem_shutter_dy_key_conf
-11 mem_le_dy_adv_data
-12 mem_le_dy_scan_data
-8 mem_ble_shutter_dy_interval_min_android
-8 mem_ble_shutter_dy_interval_min_ios
-8 mem_shutter_ble_discovery_time_conf
-2 mem_queue_dy_each_size
-
-7 mem_shutter_led_on_light_dark_led_conf
-7 mem_shutter_led_off_light_dark_led_conf
-4 mem_shutter_reconn_blink_on_time_conf
-4 mem_shutter_discovery_blink_on_time_conf
-2 mem_shutter_efuse_start_offset
-2 mem_shutter_efuse_end_offset
-
-0 mem_initial_move_conf
-2 mem_android_initial_move_x
-2 mem_android_initial_move_y
-2 mem_iphone_initial_move_x
-2 mem_iphone_initial_move_y
-//淇敼澧炲姞淇濆瓨鍙傛暟
-0 mem_otp_move_config
-2 mem_otp_shutter_move_data_x
-2 mem_otp_shutter_move_data_y
-1 mem_otp_last_shutter_le_iphone_flag
-0 mem_otp_move_config_end
-2 mem_otp_write_offset_addr
-2 mem_otp_read_offset_addr
-2 mem_otp_read_ios_android_addr
-2 mem_shutter_le_pairing_handle
-2 mem_shutter_temp_count
-1 mem_shutter_first_read_flag
-1 mem_shutter_valid_data_flag
-1 mem_shutter_volume_timer
-1 mem_shutter_link_timer
-8 mem_shutter_link_data
-8 mem_shutter_link_data_i
-1 mem_shutter_link_loop_flag
-0 mem_shutter_end
-)
-
-
-(
-10 MAX_QUEUE_NUM_COMBINEKEY
-15 MAX_QUEUE_NUM_RELEASE
-3 MAX_QUEUE_NUM_LONG
-3 MAX_QUEUE_NUM_LONG_RELEASE
-10 MAX_QUEUE_NEW_PRESS
-
-10 EVERY_PAYLOAD_LEN
-)
-
-
-(
-0x24	GATT_KEYBOARD_WRITE_HANDLE_NEW
-)
-
-
-///////////////////////////////////////////////////////////////////////////////////////
-
-(//Data Rom Buffer Addr
-640		BT_DY_KEY_VALUE_LIST_SIZE
-)
-
-//otp address offset
-(
-0x05   SHUTTER_PARA_TOTAL_NUM
-//0x7b0  SHUTTER_EFUSE_START_OFFECT	//璧峰鍦板潃
-//0x680  SHUTTER_EFUSE_END_OFFECT	       //缁撴潫鍦板潃
-)
-
-
-(
-//uart config
-115200 UART_BAUD
-)
-
-(
-10 SHUTTER_KEY_CONF_SATE_BYTES
-0 KEY_STATE_PRESS_CLK_OFFSET
-4 KEY_STATE_PRESS_COUNT_OFFSET
-5 KEY_STATE_RELEASE_CLK_OFFSET
-9 KEY_STATE_LONGPRESS_OFFSET
-4 KEY_STATE_PRESS_CLK_LENGTH
-1 KEY_STATE_PRESS_COUNT_LENGTH
-4 KEY_STATE_RELEASE_CLK_LENGTH
-1 KEY_STATE_LONGPRESS_LENGTH
-)
-
-(
-0  SHUTTER_RIGHT_KEY_NUM
-1  SHUTTER_LIKE_KEY_NUM
-2  SHUTTER_DOWN_KEY_NUM
-3  SHUTTER_PHOTO_KEY_NUM
-4  SHUTTER_UP_KEY_NUM
-5  SHUTTER_LEFT_KEY_NUM
-6  SHUTTER_MOVE_KEY_NUM
-7  SHUTTER_FUN_KEY_NUM
-)
-
-(
-//0xaa ANDROID_INITIAL_MOVE_X //170
-//0x78 ANDROID_INITIAL_MOVE_Y //120
-//0x69 IPHONE_INITIAL_MOVE_X
-//0x38 IPHONE_INITIAL_MOVE_Y
-0X55 ANDROID_EVERY_MOVE_SIZE
-0x07 IPHONE_EVERY_MOVE_SIZE
-0xfff IPHONE_ONCE_MAX_MOVE_VALUE
-)
-
-(
-0x00 MOVE_COMBINE_KEY
-0x01 MOVE_SINGLE_KEY
-)
-
-(
-//6key or 7key conf
-6 SHUTTER_SIX_KEY
-7 SHUTTER_SEVEN_KEY
-8 SHUTTER_EIGHT_KEY
-)
-
Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/ble_protocol_stack/le.format
===================================================================
--- /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/ble_protocol_stack/le.format	(revision 5679)
+++ /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/ble_protocol_stack/le.format	(nonexistent)
@@ -1,441 +0,0 @@
-
-memalloc(
-260 mem_le_rxbuf
-
-/* security temp */
-4 mem_le_mic
-4 mem_le_peer_mic
-//8 mem_le_skdm
-//8 mem_le_skds
-16 mem_le_mrand
-
-
-/* ========= le context =========== */
-1 mem_le_state
-1 mem_le_mode
-2 mem_le_tsniff
-4 mem_le_anchor
-6 mem_le_clk_offset
-2 mem_le_receive_window
-6 mem_le_plap
-1 mem_le_conn_handle
-1 mem_le_arq
-1 mem_le_ch
-1 mem_le_hop
-2 mem_le_event_count
-4 mem_le_supervision_timer
-2 mem_le_instant
-1 mem_le_channels
-1 mem_le_op
-
-	/* these 3 should NOT be seperated */
-4 mem_le_access
-3 mem_le_crcinit
-1 mem_le_window_size
-
-	/* these 3 should NOT be seperated */
-2 mem_le_slave_latency
-2 mem_le_superto
-5 mem_le_channel_map
-
-
-1 mem_le_rx_phy
-1 mem_le_tx_phy
-
-9 mem_le_update_new_param
-
-16 mem_le_sk
-
-1 mem_le_peer_sca
-1 mem_le_err_code
-1 mem_le_ll_pairing_fail_reason
-
-/* ========= le context ending =========== */
-
-
-)
-
-amemalloc mem_le_update_new_param(
-//update connection parameter
-	0 mem_le_new_param
-	1 mem_le_new_transmitwindowsize
-	2 mem_le_new_transmitwindowoffset
-	2 mem_le_new_conninterval
-	2 mem_le_new_connslavelatency
-	2 mem_le_new_connsupervisiontimeout
-)
-
-amemalloc mem_le_update_new_param(
-//update map parameter
-	5 mem_le_new_map
-)
-
-amemalloc mem_le_update_new_param(
-//update phy parameter
-	1 mem_le_new_m2s_phy
-	1 mem_le_new_s2m_phy
-)
-
-amemalloc mem_le_rxbuf(
-//data channel PDU
-	1 mem_le_rxbuf_data_header
-	1 mem_le_rxbuf_data_length
-	255 mem_le_rxbuf_data_payload
-)
-
-amemalloc mem_le_rxbuf(
-//data channel LL control PDU
-	1 mem_le_rxbuf_data_ll_header
-	1 mem_le_rxbuf_data_ll_length
-	1 mem_le_rxbuf_data_ll_opcode
-	26 mem_le_rxbuf_data_ll_control_data
-)
-
-xmemalloc(
-1 mem_version
-2 mem_company_id
-2 mem_sub_version
-
-2 mem_le_dsniff
-2 mem_le_conn_interval
-1 mem_le_tx_ifs_defference
-1 mem_le_tx2m_delay
-
-1 mem_le_txheader
-1 mem_le_txlen
-256 mem_le_txpayload
-
-//modified name
-1 mem_le_name_len
-30 mem_le_name
-
-
-/* smp related */
-
-16 mem_le_ltk
-1 mem_ltk_exists
-16 mem_le_rconfirm
-16 mem_le_srand
-1 mem_le_iat
-1 mem_le_rat
-1 mem_le_preq
-1 mem_le_preq_iocap
-1 mem_le_preq_oob
-1 mem_le_preq_auth
-1 mem_le_preq_max_keysize
-1 mem_le_preq_init_key_distribution
-1 mem_le_preq_resp_key_distribution
-1 mem_le_pres
-1 mem_le_pres_iocap
-1 mem_le_pres_oob
-1 mem_le_pres_auth
-1 mem_le_pres_max_keysize
-1 mem_le_pres_init_key_distribution
-1 mem_le_pres_resp_key_distribution
-
-
-
-//START of LE conn parameter structure
-0 mem_le_conn_param
-1 mem_le_conn_peer_addr_type
-6 mem_le_conn_peer_addr
-1 mem_le_conn_own_addr_type
-2 mem_le_interval_min
-2 mem_le_interval_max
-2 mem_le_latency
-2 mem_le_timeout
-//START of LE conn parameter structure
-
-
-3 mem_le_lap
-1 mem_le_uap
-2 mem_le_nap
-
-
-2 mem_le_local_mtu
-2 mem_le_remote_mtu
-
-8 mem_le_skdm
-8 mem_le_skds
-
-2 mem_le_init_superto
-2 mem_ui_le_uuid_table
-
-1 mem_le_secure_connect_flag
-1 mem_le_secure_connect_state
-1 mem_le_sc_confirm_gkey_flag
-
-
-1 mem_le_pairing_state
-1 mem_le_enc_state
-1 mem_le_pairing_mode
-4 mem_le_tk
-2 mem_le_ediv
-8 mem_le_rand
-16 mem_le_irk
-
-//LE attribute list
-4 mem_le_transmit_window
-
-//ble General configuration 
-1 mem_le_configuration
-16 mem_le_fixed_ltk
-2 mem_le_pairing_handle
-
-
-1 mem_le_packet_llid
-
-//for continue
-2 mem_le_l2cap_size
-2 mem_le_packet_len_recved
-2 mem_le_payload_ptr
-
-/* test */
-1 mem_le_testtype
-1 mem_cmd_le_create_conn
-
-//ble gatt signaling
-1 mem_le_signaling_identifier
-2 mem_le_l2cap_signaling_conn_param_update_rsp_result
-
-1 mem_le_md_count
-2 mem_ble_l2cap_tx_buff0_ptr
-2 mem_ble_l2cap_tx_buff_size_ptr
-)
-
-(//mem_le_T_IFS
-150 PARAM_T_IFS_150US
-20000 PARAM_20MS_INIT
--11 PARAM_SYNC_TIME_DIFFERENCE
-40 PARAM_CODED_C1_TERM1_TIME_40US
-1666 PARAM_WINDOWN_SIZE
-//T_IFS = 150-modem(CRC time)
-15000 param_sifs
-)
-
-
-(
-0 DEFAULT_STATES
-1 IPHONE_LOST_LTK
-2 MODULE_LOST_LTK
-3 LTK_NOT_LOST
-)
-
-	//BLE ErrorCodes
-	(    
-	0x01 ERROR_UNKNOWN_HCI_COMMAND
-	0x02 ERROR_NO_CONNECTION
-	0x03 ERROR_HARDWARE_FAILURE
-	0x04 ERROR_PAGE_TIMEOUT
-	0x05 ERROR_AUTHENTICATION_FAILURE
-	0x06 ERROR_KEY_MISSING
-	0x07 ERROR_MEMORY_FULL
-	0x08 ERROR_CONNECTION_TIMEOUT
-	0x09 ERROR_MAX_CONNECTIONS
-	0x0A ERROR_MAX_SCO_CONNECTIONS
-	0x0B ERROR_MAX_ACL_CONNECTIONS
-	0x0C ERROR_COMMAND_DISALLOWED
-	0x0D ERROR_HOST_REJECT_LIMITED_RESOURCES
-	0x0E ERROR_HOST_REJECT_SECURITY_REASONS
-	0x0F ERROR_HOST_REJECT_REMOTE_IS_ONLY_PERSONAL
-	0x10 ERROR_HOST_TIMEOUT
-	0x11 ERROR_UNSUPPORTED_FEATURE_OR_PARAMETER_VALUE
-	0x12 ERROR_INVALID_HCI_COMMAND_PARAMETERS
-	0x13 ERROR_REMOTE_USER_TERMINATED_CONNECTION
-	0x14 ERROR_REMOTE_LOW_RESOURCES
-	0x15 ERROR_REMOTE_POWERING_OFF
-	0x16 ERROR_CONNECTION_TERMINATED_BY_LOCAL_HOST
-	0x17 ERROR_REPEATED_ATTEMPTS
-	0x18 ERROR_PAIRING_NOT_ALLOWED
-	0x19 ERROR_UNKNOWN_LMP_PDU
-	0x1A ERROR_UNSUPPORTED_REMOTE_FEATURE
-	0x1B ERROR_SCO_OFFSET_REJECTED
-	0x1C ERROR_SCO_INTERVAL_REJECTED
-	0x1D ERROR_SCO_AIR_MODE_REJECTED
-	0x1E ERROR_INVALID_LMP_PARAMETER
-	0x1F ERROR_UNSPECIFIED_ERROR
-	0x20 ERROR_UNSUPPORTED_LMP_PARAMETER_VALUE
-	0x21 ERROR_ROLE_CHANGE_NOT_ALLOWD
-	0x22 ERROR_LMP_RESPONSE_TIMEOUT
-	0x23 ERROR_ERROR_TRANSACTION_COLLISION
-	0x24 ERROR_LMP_PDU_NOT_ALLOWED
-	0x25 ERROR_ENCRYPTION_MODE_NOT_ACCEPTABLE
-	0x26 ERROR_UNIT_KEY_USED
-	0x27 ERROR_QOS_NOT_SUPPORTED
-	0x28 ERROR_INSTANT_PASSED
-	0x29 ERROR_PAIRING_W_UNIT_KEY_NOT_SUPPORTED
-	0x2a ERROR_DIFFERENT_TRANSACTION_COLLISION
-	0x2c ERROR_QOS_UNACCEPTABLE_PARAMETER
-	0x2d ERROR_QOS_REJECTED
-	0x2e ERROR_CHANNEL_CLASSIFICATION_NOT_SUPPORTED
-	0x2f ERROR_INSUFFICIENT_SECURITY
-	0x30 ERROR_PARAMETER_OUT_OF_MANDATORY_PANGE
-	0x32 ERROR_ROLE_SWITCH_PENDING
-	0x34 ERROR_RESERVED_SLOT_VIOLATION
-	0x35 ERROR_ROLE_SWITCH_FAILED
-	0x36 ERROR_EXTENDED_INQUIRY_RESPONSE_TOO_LARGE
-	0x37 ERROR_SIMPLE_PAIRING_NOT_SUPPORTED_BY_HOST
-	0x38 ERROR_HOST_BUSY_PAIRING
-	0x3d ERROR_MIC_FAILURE
-	)
-
-
-	//modified_name
-	(
-	0X20 SPACE	
-	)
-	/* LE L2CAP CID */
-	(
-	0x0004 LE_L2CAP_CID_ATT
-	0x0005 LE_L2CAP_CID_SIGNAL
-	0x0006 LE_L2CAP_CID_SMP
-	)
-
-	//LE address type
-	(
-	0 LE_ADDR_TYPE_PUBLIC
-	1 LE_ADDR_TYPE_RANDOM
-	)
-	//LE address type bitmap
-	(
-	7 LE_RECEIVER_ADDR_BIT
-	6 LE_SENDER_ADDR_BIT
-	)
-	//LE SCAN TYPE
-	(
-	0x00 LE_SCAN_TYPE_PASSIVE //no SCAN_REQ shall be sent
-	0x01 LE_SCAN_TYPE_ACTIVE
-	)
-
-	//LE SCAN ENABLE
-	(
-	0x00 LE_SCAN_DISABLE
-	0x01 LE_SCAN_ENABLE
-	0x0101 LE_ACTIVE_SCAN_ENABLE
-	)
-
-	//LE FIND INFORMATION RESPONSE
-	//THE FORMAT OF THE INFORMATION DATA
-	(
-	0x01 UUID_SIZE_16BIT
-	0x02 UUID_SIZE_128BIT
-	)
-
-//	le_state_map 0-2 is reserved for state_inconn,state_insniff and state_sco
-(
-3 lestate_got_first_packet
-4 lestate_encryption
-5 lestate_update_param
-6 lestate_update_map
-7 lestate_update_phy
-)
-
-// 	le mode
-(
-0 lemode_idle
-1 lemode_slave
-3 lemode_master
-5 lemode_2m
-6 lemode_lr
-7 lemode_lr_s8
-
-0x20 mode_2m
-0x40 mode_lr_s2
-0xc0 mode_lr_s8
-
-)
-
-(
-0 llid0
-1 llid1
-2 nesn
-3 sn
-4 md
-5 wak
-6 txdat
-)
-
-(
-0x00 LLID_RESERVED
-0x01 LLID_CONTINUE
-0x02 LLID_START
-0x03 LLID_LE_LL
-0x01 LLID_EMPTY
-)
-
-(
-4 LE_TX_BUFF_COUNT
-3 LE_TX_BUFF_UPDATE_LOOPCNT //LE_TX_BUFF_COUNT-1
-
-12 LE_MD_MAX_COUNT
-)
-
-
-(
-0 LE_INITATOR_LTK_BIT
-1 LE_INITATOR_IRK_BIT
-2 LE_INITATOR_CSRK_BIT
-)
-
-
-
-
-
-(
-0  LE_FIND_BY_TYPE_VAL_RES_NOT_FOUND
-1  LE_FIND_BY_TYPE_VAL_RES_FOUND_STARTING_HANDLE
-2  LE_FIND_BY_TYPE_VAL_RES_FOUND_ENDING_HANDLE
-
-)
-
-(
-0 MASTER_PUBLIC_ADDR
-1 MASTER_RANDOM_ADDR
-)
-
-(
-0x06 LE_ERR_PIN_OR_KEY_MISSING
-)
-
-(
-39 LE_CCM_DIRECTIONBIT
-)
-(
-36 BR_CCM_0_LENGTH_CONTINUATION
-37 BR_CCM_DIRECTIONBIT
-)
-
-(
-96000 TIMER_SMP_PAIRING_TIMEOUT //30S
-)
-
-
-
-//mem_le_enc_state
-(
-0 FLAG_LE_ENC_NULL
-1 FLAG_LE_RCV_ENC_START
-2 FLAG_LE_ENC_PAUSE
-3 FLAG_LE_RCV_START_ENC_RSP
-4 FLAG_LE_SEND_START_ENC_RSP
-5 FLAG_LE_SEND_START_ENC_REQ
-0xff FLAG_LE_ENC_END
-)
-
-(//mem_le_configuration
-//bit0:use fixed key , ble passkey pairing
-0 BIT_BLE_PASSKEY_FIXED_KEY
-//bit1:ble pairing use fixed long term key
-1 BIT_BLE_PAIRING_FIXED_LTK
-//bit2:ble transmit packet will set more data flag
-2 BIT_BLE_TRANSMIT_PACKET_BY_MD
-//bit3:master read handle, with requires an authenticated link
-3 BIT_BLE_READ_AUTH
-//bit4:master write handle, with requires an authenticated link
-4 BIT_BLE_WRITE_AUTH
-//bit5:cannot enter long sleep
-5 BIT_BLE_SHORT_MULT
-//bit6:DEAL baseband packet
-6 BIT_BLE_DEAL_BB_PACKET
-)
-
Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/ble_protocol_stack/le_advertising.format
===================================================================
--- /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/ble_protocol_stack/le_advertising.format	(revision 5679)
+++ /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/ble_protocol_stack/le_advertising.format	(nonexistent)
@@ -1,104 +0,0 @@
-
-xmemalloc(
-// parameters
-1 mem_le_scan_enable
-2 mem_le_scan_interval
-2 mem_le_scan_window
-
-
-1 mem_le_adv_data_len
-31 mem_le_adv_data
-1 mem_le_scan_data_len
-31 mem_le_scan_data
-
-//START of LE adv parameter structure
-1 mem_le_adv_enable
-0 mem_le_adv_param
-2 mem_le_adv_interval
-1 mem_le_adv_type
-1 mem_le_adv_own_addr_type
-6 mem_le_adv_direct_addr
-1 mem_le_adv_channel_map
-//END of LE adv parameter structure
-
-//START of LE scan parameter structure
-0 mem_le_scan_params
-1 mem_le_scan_type
-1 mem_le_scan_own_addr_type
-//END of LE scan parameter structure
-)
-
-amemalloc mem_le_rxbuf(
-//advertising channel PDU
-	1 mem_le_rxbuf_adv_header
-	1 mem_le_rxbuf_adv_length
-	255 mem_le_rxbuf_adv_payload
-)
-
-amemalloc mem_le_rxbuf(
-//advertising channel PDU
-//Scan Req
-	1 mem_le_rxbuf_adv_scan_req_header
-	1 mem_le_rxbuf_adv_scan_req_length
-	6 mem_le_rxbuf_adv_scan_req_scan_address
-	6 mem_le_rxbuf_adv_scan_req_adv_address
-)
-
-amemalloc mem_le_rxbuf(
-//advertising channel PDU
-//Connect IND
-	1 mem_le_rxbuf_adv_connect_ind_header
-	1 mem_le_rxbuf_adv_connect_ind_length
-	6 mem_le_rxbuf_adv_connect_ind_init_address
-	6 mem_le_rxbuf_adv_connect_ind_adv_address
-	4 mem_le_rxbuf_adv_connect_ind_access_address
-	3 mem_le_rxbuf_adv_connect_ind_crc_init
-	1 mem_le_rxbuf_adv_connect_ind_win_size
-	2 mem_le_rxbuf_adv_connect_ind_win_offset
-	2 mem_le_rxbuf_adv_connect_ind_interval
-	2 mem_le_rxbuf_adv_connect_ind_latency
-	2 mem_le_rxbuf_adv_connect_ind_timeout
-	5 mem_le_rxbuf_adv_connect_ind_channel_map
-	1 mem_le_rxbuf_adv_connect_ind_hop_and_sca
-)
-
-(
-0x01	GAP_ADTYPE_FLAGS
-0x02	GAP_ADTYPE_16BIT_MORE
-0x03	GAP_ADTYPE_16BIT_COMPLETE
-0x04	GAP_ADTYPE_32BIT_MORE
-0x05	GAP_ADTYPE_32BIT_COMPLETE
-0x06	GAP_ADTYPE_128BIT_MORE
-0x07	GAP_ADTYPE_128BIT_COMPLETE
-0x08	GAP_ADTYPE_LOCAL_NAME_SHORT
-0x09	GAP_ADTYPE_LOCAL_NAME_COMPLETE
-0x0a	GAP_ADTYPE_POWER_LEVEL
-0x16	GAP_ADTYPE_SERVICE_DATA
-0x2a	GAP_ADTYPE_MESH_MESSAGE
-0x2b 	GAP_ADTYPE_MESH_BEACON
-0xff	GAP_ADTYPE_MANUFACTURER_SPECIFIC
-)
-
-/* advertising channel PDU type */
-(
-0 ADV_IND
-1 ADV_DIRECT_IND
-2 ADV_NONCONN_IND
-3 SCAN_REQ
-3 AUX_SCAN_REQ
-4 SCAN_RSP
-5 CONNECT_REQ
-5 AUX_CONNECT_REQ
-6 ADV_SCAN_IND
-)
-
-(
-0 BIT_ADV_CHANNEL_MAP_37
-1 BIT_ADV_CHANNEL_MAP_38
-2 BIT_ADV_CHANNEL_MAP_39
-)
-
-(
-0xa0 param_le_sca
-)
-
Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/ble_protocol_stack/le_l2cap_att.format
===================================================================
--- /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/ble_protocol_stack/le_l2cap_att.format	(revision 5679)
+++ /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/ble_protocol_stack/le_l2cap_att.format	(nonexistent)
@@ -1,205 +0,0 @@
-
-xmemalloc(
-	1 mem_le_l2cap_att_states
-
-
-	/* should be together */
-	1 mem_le_att_opcode
-	2 mem_le_att_handle
-	1 mem_le_search_res
-
-	2 mem_le_notify_handle
-	1 mem_le_search_uuid_length
-	16 mem_le_search_uuid
-)
-
-amemalloc mem_temp_block2(
-	2 mem_le_search_handle_start
-	2 mem_le_search_handle_end
-	0 mem_le_att_offset
-	1 mem_le_search_att_type_length
-	16 mem_le_search_att_type
-
-	1 mem_le_curr_att_len
-
-	2 mem_le_cur_attlist_start_ptr
-	2 mem_le_cur_handle_start
-	2 mem_le_cur_handle_end
-	1 mem_le_cur_uuid_length
-	16 mem_le_cur_uuid
-	2 mem_le_cur_handle
-)
-
-
-amemalloc mem_le_rxbuf(
-//data channel ATT start PDU
-	1 mem_le_rxbuf_data_att_header
-	1 mem_le_rxbuf_data_att_length
-	2 mem_le_rxbuf_data_att_l2cap_length
-	2 mem_le_rxbuf_data_att_cid
-	1 mem_le_rxbuf_data_att_opcode
-	250 mem_le_rxbuf_data_att_payload
-)
-
-
-amemalloc mem_le_rxbuf(
-//data channel ATT continue PDU
-	1 mem_le_rxbuf_data_continue_header
-	1 mem_le_rxbuf_data_continue_length
-	255 mem_le_rxbuf_data_continue_payload
-)
-
-amemalloc mem_le_rxbuf(
-//data channel ATT write request PDU
-	1 mem_le_rxbuf_data_att_write_header
-	1 mem_le_rxbuf_data_att_write_length
-	2 mem_le_rxbuf_data_att_write_l2cap_length
-	2 mem_le_rxbuf_data_att_write_cid
-	1 mem_le_rxbuf_data_att_write_opcode
-	2 mem_le_rxbuf_data_att_write_handle
-	248 mem_le_rxbuf_data_att_write_payload
-)
-
-amemalloc mem_le_rxbuf(
-//data channel ATT prepare write request PDU
-	1 mem_le_rxbuf_data_prepare_att_write_header
-	1 mem_le_rxbuf_data_prepare_att_write_length
-	2 mem_le_rxbuf_data_prepare_att_write_l2cap_length
-	2 mem_le_rxbuf_data_prepare_att_write_cid
-	1 mem_le_rxbuf_data_prepare_att_write_opcode
-	2 mem_le_rxbuf_data_prepare_att_write_handle
-	2 mem_le_rxbuf_data_prepare_att_write_offset
-	246 mem_le_rxbuf_data_prepare_att_write_payload
-)
-
-(//bit of mem_le_l2cap_att_states
-0 BLE_L2CAP_SEND_INDICATION_PACKET
-0 BLE_L2CAP_RECV_CONFIRMATION_PACKET
-1 BLE_L2CAP_DEAL_WITH_CONTINUE_PACKET
-)
-
-(//bit map of att handle
-14 BIT_OF_ATT_HANDLE_READ_AUTHENTICATED
-15 BIT_OF_ATT_HANDLE_WRITE_AUTHENTICATED
-)
-
-
-
-(
-0 BIT_CHARACTERISTIC_BROADCAST
-1 BIT_CHARACTERISTIC_READ
-2 BIT_CHARACTERISTIC_WRITE_WITHOUT_RESPONSE
-3 BIT_CHARACTERISTIC_WRITE
-4 BIT_CHARACTERISTIC_NOTIFY
-5 BIT_CHARACTERISTIC_INDICATE
-6 BIT_CHARACTERISTIC_SIGNED_WRITE
-7 BIT_CHARACTERISTIC_EXTENDED_PROPERTIES
-)
-
-/* ATT OPCODE */
-(
-0x01 ATTOP_ERROR_RESPONSE
-0x02 ATTOP_EXCHANGE_MTU_REQUEST
-0x03 ATTOP_EXCHANGE_MTU_RESPONSE
-0x04 ATTOP_FIND_INFORMATION_REQUEST
-0x05 ATTOP_FIND_INFORMATION_RESPONSE
-0x06 ATTOP_FIND_BY_TYPE_VALUE_REQUEST
-0x07 ATTOP_FIND_BY_TYPE_VALUE_RESPONSE
-0x08 ATTOP_READ_BY_TYPE_REQUEST
-0x09 ATTOP_READ_BY_TYPE_RESPONSE
-0x0A ATTOP_READ_REQUEST
-0x0B ATTOP_READ_RESPONSE
-0x0C ATTOP_READ_BLOB_REQUEST
-0x0D ATTOP_READ_BLOB_RESPONSE
-0x0E ATTOP_READ_MULTIPLE_REQUEST
-0x0F ATTOP_READ_MULTIPLE_RESPONSE
-0x10 ATTOP_READ_BY_GROUP_TYPE_REQUEST
-0x11 ATTOP_READ_BY_GROUP_TYPE_RESPONSE
-0x12 ATTOP_WRITE_REQUEST
-0x13 ATTOP_WRITE_RESPONSE
-0x16 ATTOP_PREPARE_WRITE_REQUEST
-0x17 ATTOP_PREPARE_WRITE_RESPONSE
-0x18 ATTOP_EXECUTE_WRITE_REQUEST
-0x19 ATTOP_EXECUTE_WRITE_RESPONSE
-0x1B ATTOP_HANDLE_VALUE_NOTIFICATION
-0x1D ATTOP_HANDLE_VALUE_INDICATION
-0x1E ATTOP_HANDLE_VALUE_CONFIRMATION
-0x52 ATTOP_WRITE_COMMAND
-0xD2 ATTOP_SIGNED_WRITE_COMMAND
-0x1f ATTOP_CONTINUE
-0x9e EMPTY_LE_DATA_PRE
-0x9f EMPTY_LE_DATA
-)
-
-/* ATT error code */
-(
-0x01 ATT_ERR_INVALID_HANDLE
-0x02 ATT_ERR_READ_NOT_PERMITTED
-0x03 ATT_ERR_WRITE_NOT_PERMITTED
-0x04 ATT_ERR_INVALID_PDU
-0x05 ATT_ERR_INSUFFICIENT_AUTHENTICATION
-0x06 ATT_ERR_REQUEST_NOT_SUPPORTED
-0x07 ATT_ERR_INVALID_OFFSET
-0x08 ATT_ERR_INSUFFICIENT_AUTHORIZATION
-0x09 ATT_ERR_PREPARE_QUEUE_FULL
-0x0A ATT_ERR_ATTRIBUTE_NOT_FOUND
-0x0B ATT_ERR_ATTRIBUTE_NOT_LONG
-0x0C ATT_ERR_INSUFFICIENT_ENCRYPTION_KEY_SIZE
-0x0D ATT_ERR_INVALID_ATTRIBUTE_VALUE_LENGTH
-0x0E ATT_ERR_UNLIKELY_ERROR
-0x0F ATT_ERR_INSUFFICIENT_ENCRYPTION
-0x10 ATT_ERR_UNSUPPORTED_GROUP_TYPE
-0x11 ATT_ERR_INSUFFICIENT_RESOURCES
-)
-
-/* GATT Specifications*/
-(
-0X2900 CHARACTERTIC_EXTENDED_PROPERTIES
-0X2901 CHARACTERTIC_USER_DESCRIPTION
-0X2902 CLIENT_CHARACTERTIC_CONFIGURATION
-0X2903 SERVER_CHARACTERTIC_CONFIGURATION
-0X2904 CHARACTERTIC_PRESENTATION_FORMAT
-0X2905 CHARACTERTIC_AGGREGATE
-0X2906 VALID_RANGE
-0X2907 EXTERNAL_REPORT_REFERENCE
-0X2908 REPORT_REFERENCE
-0X290B ENVIR_SENSING_CONFIGURATION
-0X290C ENVIR_SENSING_MEASUREMENT
-0X290D ENVIR_SENSING_TRIGGER_SETTING
-)
-
-
-/*	SERVICE UUID	*/
-(
-0x1800 UUID_SERVICE_GENERIC_ACC
-0x1801 UUID_SERVICE_GENERIC_ATT
-0x180a UUID_SERVICE_DEVICE_INFO
-0x180f UUID_SERVICE_BATTERY
-0x1812 UUID_SERVICE_HIDS
-0x2800 UUID_GATT_PRIMARY_SERVICE
-0x2801 UUID_GATT_SECONDARY_SERVICE
-0X2802 UUID_GATT_INCLUDE
-0X2803 UUID_GATT_CHARACTERISTIC
-0X2A00 UUID_CHRCTR_DEVICE_NAME
-0X2A19 UUID_CHRCTR_BATTERY_LEVEL
-0X2A22 UUID_CHRCTR_KEYBOARD_INPUT
-0X2A23 UUID_CHRCTR_SYSTEM_ID 
-0X2A25 UUID_CHRCTR_SERIAL_NUMBER
-0X2A26 UUID_CHRCTR_FIRMWARE
-0X2A32 UUID_CHRCTR_KEYBOARD_OUTPUT
-0X2A33 UUID_CHRCTR_MOUSE_INPUT
-0X2A4A UUID_CHRCTR_HID_INFO
-0X2A4B UUID_CHRCTR_REPORT_MAP
-0X2A4C UUID_CHRCTR_HID_CTRL_POINT
-0X2A4D UUID_CHRCTR_REPORT
-0X2A4E UUID_CHRCTR_PROTOCOL_MODE
-0X2A50 UUID_CHRCTR_PNP_ID
-)
-
-
-(
-23 ATT_DEFAULT_MTU 
-)
-
-
-
Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/ble_protocol_stack/le_l2cap_att_wechat.format
===================================================================
--- /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/ble_protocol_stack/le_l2cap_att_wechat.format	(revision 5679)
+++ /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/ble_protocol_stack/le_l2cap_att_wechat.format	(nonexistent)
@@ -1,85 +0,0 @@
-ifdef COMPILE_WECHAT
-
-amemalloc mem_temp_block2(
-	0 mem_wechat_initreq_base_request
-	2 mem_wechat_authreq_base_request
-	4 mem_wechat_authreq_protocol_version
-	2 mem_wechat_authreq_auth_protocol
-	2 mem_wechat_authreq_eam_mac_no_encrypt
-	2 mem_wechat_authreq_mac_address
-	6 mem_wechat_authreq_device_address
-
-	1 mem_wechat_indication_handle
-	1 mem_wechat_write_handle
-	2 mem_wechat_tx_buffer_ptr
-	2 mem_wechat_rx_buffer_ptr
-	2 mem_wechat_rx_push_data_cb
-	2 mem_wechat_tx_nSeq
-	2 mem_wechat_tx_len
-	2 mem_wechat_tx_address
-	2 mem_wechat_rx_len
-	2 mem_wechat_rx_address
-	1 mem_wechat_receive_push_data
-
-)
-
-xmemalloc(
-
-/*
-wechat Air sync protocol parse
-uint8_t indication handle
-uint8_t write handle
-
-*/
-2 mem_le_wechat_air_sync_ptr
-
-)
-
-(
-17 WECHAT_AIR_SYNC_STRUCT_SIZE
-)
-
-(
-0x0000 ECI_NONE
-0x1127 ECI_REQ_AUTH
-0x1227 ECI_REQ_SEND_DATA
-0x1327 ECI_REQ_INIT
-0x214E ECI_RESPONSE_AUTH
-0x224E ECI_RESPONSE_SEND_DATA
-0x234E ECI_RESPONSE_INIT
-0x3175 ECI_PUSH_RECEIVE_DATA
-0x3275 ECI_PUSH_SWITCH_VIEW
-0x3375 ECI_PUSH_SWITCH_BACKGROUD
-0x2F75 ECI_ERR_DECODE
-)
-
-(
-2 ECI_REQ_INIT_MESSAGE_LENGTH
-18 ECI_REQ_AUTH_MESSAGE_LENGTH
-)
-
-(
-0xFE WECHAT_HEAD_MAGIC_NUMBER
-0x01 WECAHT_HEAD_VERSION
-0x01FE WECHAT_RX_HEAD
-)
-
-(
-//push data
-0x0a 	TAG_RecvDataPush_BasePush
-0x12	TAG_RecvDataPush_Data
-0x18	TAG_RecvDataPush_Type
-)
-
-
-(
-0 WECHAT_PROTOCOL_MESSAGE_B_MAGIC_NUMBER
-1 WECHAT_PROTOCOL_MESSAGE_B_VER
-2 WECHAT_PROTOCOL_MESSAGE_N_LENGTH
-4 WECHAT_PROTOCOL_MESSAGE_N_CMD_ID
-6 WECHAT_PROTOCOL_MESSAGE_N_SEQ
-8 WECHAT_PROTOCOL_MESSAGE_PAYLOAD
-)
-
-endif
-
Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/ble_protocol_stack/le_l2cap_signalling.format
===================================================================
--- /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/ble_protocol_stack/le_l2cap_signalling.format	(revision 5679)
+++ /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/ble_protocol_stack/le_l2cap_signalling.format	(nonexistent)
@@ -1,14 +0,0 @@
-
-/* L2CAP Signaling OPCODE */
-(
-0x12 L2CAP_CONNECTION_PARAMETER_UPDATE_REQUEST
-0x13 L2CAP_CONNECTION_PARAMETER_UPDATE_RESPONSE
-)
-
-(
-0x0000 BLE_SIGNALING_CONNECT_PARAMETER_UPDATE_ACCEPTED
-0x0001 BLE_SIGNALING_CONNECT_PARAMETER_UPDATE_REJECTED
-)
-
-
-
Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/ble_protocol_stack/le_l2cap_smp.format
===================================================================
--- /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/ble_protocol_stack/le_l2cap_smp.format	(revision 5679)
+++ /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/ble_protocol_stack/le_l2cap_smp.format	(nonexistent)
@@ -1,113 +0,0 @@
-
-
-(
-0x00 LE_PAIRING_MODE_NONE
-0x01 LE_PAIRING_MODE_LAGACY_JUSTWORK
-0x02 LE_PAIRING_MODE_LAGACY_PASSKEY
-0x04 LE_PAIRING_MODE_LAGACY_PASSKEY_RES_INPUT
-0x81 LE_PAIRING_MODE_SECURE_CONNECT_JUSTWORK
-0x82 LE_PAIRING_MODE_SECURE_CONNECT_NUMERIC
-0x83 LE_PAIRING_MODE_SECURE_CONNECT_PASSKEY
-0x84 LE_PAIRING_MODE_SECURE_CONNECT_PASSKEY_RES_INPUT
-
-7 LE_PAIRING_MODE_SECURE_CONNECT_BIT
-)
-
-
-(
-0 FLAG_IOCAP_DISPLAYONLY
-1 FLAG_IOCAP_DISPLAYYESNO
-2 FLAG_IOCAP_KEYBOARDONLY
-3 FLAG_IOCAP_NOINPUTNOOUTPUT
-4 FLAG_IOCAP_KEYBOARDDISPLAY
-
-0x00 FLAG_OOB_DATA_FLAG_NO
-)
-
-(
-0x00 FLAG_LE_NO_BONDING_NO_MITM
-0x01 FLAG_LE_BONDING_NO_MITM
-0x04 FLAG_LE_NO_BONDING_MITM
-0x05 FLAG_LE_BONDING_MITM
-0x09 FLAG_LE_BONDING_NO_MITM_SECURE
-0x0D FLAG_LE_BONDING_MITM_SECURE
-
-2 LE_AUTH_MITM_BIT
-3 LE_AUTH_SECURE_CONNECTION_PAIRING_BIT
-)
-
-//mem_le_pairing_state
-(
-0 FLAG_LE_PAIRING_NULL
-1 FLAG_LE_PAIRING_START
-2 FLAG_LE_PAIRING_SEND_RECURITY_REQ
-3 FLAG_LE_PAIRING_RCV_PAIRING_REQ
-4 FLAG_LE_PAIRING_WAIT_STK_GENERATION
-5 FLAG_LE_PAIRING_RECEIVE_PAIRING_CONFIRM
-6 FLAG_LE_PAIRING_SEND_PAIRING_CONFIRM
-7 FLAG_LE_PAIRING_RECEIVE_PAIRING_RANDOM
-8 FLAG_LE_PAIRING_SEND_PAIRING_RANDOM
-9 FLAG_LE_PAIRING_AFTER_AUTH
-10 FLAG_LE_PAIRING_SEND_START_ENC_RSP
-11 FLAG_LE_PARING_SEND_ENC_INFORMATION
-12 FLAG_LE_PARING_SEND_MASTER_IDENTIFICATION 
-13 FLAG_LE_PARING_SEND_INDENTITY_INFORMATION
-0xff FLAG_LE_PAIRING_END
-)
-
-/* Security Manager Protocol Code */
-(
-0x01 SMP_PAIRING_REQUEST
-0x02 SMP_PAIRING_RESPONSE
-0x03 SMP_PAIRING_CONFIRM
-0x04 SMP_PAIRING_RANDOM
-0x05 SMP_PAIRING_FAILED
-0x06 SMP_ENCRYPTION_INFORMATION
-0x07 SMP_MASTER_IDENTIFICATION
-0x08 SMP_IDENTITY_INFORMATION
-0x09 SMP_IDENTITY_ADDRESS_INFORMATION
-0x0A SMP_SIGNING_INFORMATION
-0x0B SMP_SECURITY_REQUEST
-0x0c SMP_PAIRING_PUBLIC_KEY
-0x0d SMP_PAIRING_DHKEY_CHECK
-)
-
-(// pairing failed reason
-0x00 PAIRING_FAILED_RESERVED
-0X01 PAIRING_FAILED_PASSKEY_ENTRY_FAILED
-0X02 PAIRING_FAILED_OOB_NOT_AVAILABLE
-0X03 PAIRING_FAILED_AUTHENTICATION_REQUIRE
-0X04 PAIRING_FAILED_CONFIRM_VALUE_FAILED
-0X05 PAIRING_FAILED_PAIRING_NOT_SUPPORTED
-0X06 PAIRING_FAILED_ENCRYPTION_KEY_SIZE
-0X07 PAIRING_FAILED_COMMAND_NOT_SUPPORTED
-0X08 PAIRING_FAILED_UNSPECIFIED_REASON
-0X09 PAIRING_FAILED_REPEATED_ATTEMPTS
-0X0A PAIRING_FAILED_INVALID_PARAMETERS
-0X0B PAIRING_FAILED_DHKEY_CHECK_FAILED
-0X0C PAIRING_FAILED_NUMERIC_COMPARISON_FAILED
-0X0D PAIRING_FAILED_BR_EDR_PAIRING_IN_PROGRESS
-0X0E PAIRING_FAILED_KEY_DERIVATION_GENERATION_NOT_ALLOWED
-)
-
-/*LE secure connect state */
-(
-0x00 LE_SC_STAT_NULL
-0x01 LE_SC_STAT_RECEIVE_PUBLIC_KEY
-0x02 LE_SC_STAT_WAIT_SEND_PUBLIC_KEY
-0x03 LE_SC_STAT_SEND_PUBLIC_KEY
-0x04 LE_SC_STAT_RECEIVE_RANDOM
-0x05 LE_SC_STAT_SEND_RANDOM
-0x06 LE_SC_STAT_RECEIVE_DHKEY
-0x07 LE_SC_STAT_WAIT_CONFIRM_GKEY
-0x08 LE_SC_STAT_PASSKEY_WAIT_CONFIRM
-)
-
-
-(
-0 FLAG_LE_SC_CONFRIM_NULL
-1 FLAG_LE_SC_CONFRIM_GKEY_OK
-)
-
-
-
Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/ble_protocol_stack/le_ll.format
===================================================================
--- /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/ble_protocol_stack/le_ll.format	(revision 5679)
+++ /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/ble_protocol_stack/le_ll.format	(nonexistent)
@@ -1,120 +0,0 @@
-xmemalloc(
-8 mem_le_local_feature
-1 mem_le_tx_phys
-1 mem_le_rx_phys
-
-2 mem_remote_rx_max_octets
-2 mem_remote_rx_max_time
-2 mem_remote_tx_max_octets
-2 mem_remote_tx_max_time
-2 mem_local_rx_max_octets
-2 mem_local_rx_max_time
-2 mem_local_tx_max_octets
-2 mem_local_tx_max_time
-
-)
-
-/* LE control packet type */
-(
-0x00 LL_CONNECTION_UPDATE_IND
-0x01 LL_CHANNEL_MAP_IND
-0x02 LL_TERMINATE_IND
-0x03 LL_ENC_REQ
-0x04 LL_ENC_RSP
-0x05 LL_START_ENC_REQ
-0x06 LL_START_ENC_RSP
-0x07 LL_UNKNOWN_RSP
-0x08 LL_FEATURE_REQ
-0x09 LL_FEATURE_RSP
-0x0A LL_PAUSE_ENC_REQ
-0x0B LL_PAUSE_ENC_RSP
-0x0C LL_VERSION_IND
-0x0D LL_REJECT_IND
-0x0E LL_SLAVE_FEATURE_REQ
-0x0F LL_CONNECTION_PARAM_REQ
-0x10 LL_CONNECTION_PARAM_RSP
-0x11 LL_REJECT_IND_EXT
-0x12 LL_PING_REQ
-0x13 LL_PING_RSP
-0x14 LL_LENGTH_REQ
-0x15 LL_LENGTH_RSP
-0x16 LL_PHY_REQ
-0x17 LL_PHY_RSP
-0x18 LL_PHY_UPDATE_IND
-0x19 LL_MIN_USED_CHANNELS_IND
-0x1A LL_CTE_REQ
-0x1B LL_CTE_RSP
-0x1C LL_PERIODIC_SYNC_IND
-0x1D LL_CLOCK_ACCURACY_REQ
-0x1E LL_CLOCK_ACCURACY_RSP
-0x1F LL_CIS_REQ
-0x20 LL_CIS_RSP
-0x21 LL_CIS_IND
-0x22 LL_CIS_TERMINATE_IND
-0x23 LL_POWER_CONTROL_REQ
-0x24 LL_POWER_CONTROL_RSP
-0x25 LL_POWER_CHANGE_IND
-)
-
-
-
-(//bit map of mem_le_ll_feature
-//LL_FEATURE_REQ
-0 BIT_LL_FEATURE_LE_ENCRYPTION
-1 BIT_LL_FEATURE_CONNECTION_PARAMETERS_REQUEST_PROCEDURE
-2 BIT_LL_FEATURE_EXTENDED_REJECT_INDICATION
-3 BIT_LL_FEATURE_SLAVE_INITIATED_FEATURES_EXCHANGE
-4 BIT_LL_FEATURE_LE_PING
-5 BIT_LL_FEATURE_LE_DATA_PACKET_LENGTH_EXTENSION
-6 BIT_LL_FEATURE_LL_PRIVACY
-7 BIT_LL_FEATURE_EXTENDED_SCANNER_FILTER_POLICIES
-8 BIT_LL_FEATURE_LE_2M_PHY
-9 BIT_LL_FEATURE_STABLE_MODULATION_INDEX_TRANSMITTER
-10 BIT_LL_FEATURE_STABLE_MODULATION_INDEX_RECEIVER
-11 BIT_LL_FEATURE_LE_CODED_PHY
-12 BIT_LL_FEATURE_LE_EXTENDED_ADVERTISING
-13 BIT_LL_FEATURE_LE_PERIODIC_ADVERTISING
-14 BIT_LL_FEATURE_CHANNEL_SELECTION_ALGORITHM
-15 BIT_LL_FEATURE_LE_POWER_CLASS_1
-16 BIT_LL_FEATURE_MINIMUM_NUMBER_OF_USED_CHANNELS_PROCEDURE
-)
-(//function map of mem_le_ll_feature
-//LL_FEATURE_REQ
-0x1 FUN_LL_FEATURE_LE_ENCRYPTION
-0x2 FUN_LL_FEATURE_CONNECTION_PARAMETERS_REQUEST_PROCEDURE
-0x4 FUN_LL_FEATURE_EXTENDED_REJECT_INDICATION
-0x8 FUN_LL_FEATURE_SLAVE_INITIATED_FEATURES_EXCHANGE
-0x10 FUN_LL_FEATURE_LE_PING
-0x20 FUN_LL_FEATURE_LE_DATA_PACKET_LENGTH_EXTENSION
-0x40 FUN_LL_FEATURE_LL_PRIVACY
-0x80 FUN_LL_FEATURE_EXTENDED_SCANNER_FILTER_POLICIES
-0x100 FUN_LL_FEATURE_LE_2M_PHY
-0x200 FUN_LL_FEATURE_STABLE_MODULATION_INDEX_TRANSMITTER
-0x400 FUN_LL_FEATURE_STABLE_MODULATION_INDEX_RECEIVER
-0x800 FUN_LL_FEATURE_LE_CODED_PHY
-0x1000 FUN_LL_FEATURE_LE_EXTENDED_ADVERTISING
-0x2000 FUN_LL_FEATURE_LE_PERIODIC_ADVERTISING
-0x4000 FUN_LL_FEATURE_CHANNEL_SELECTION_ALGORITHM
-0x8000 FUN_LL_FEATURE_LE_POWER_CLASS_1
-0x10000 FUN_LL_FEATURE_MINIMUM_NUMBER_OF_USED_CHANNELS_PROCEDURE
-)
-
-(//bit of mem_le_tx_phys and mem_le_rx_phys
-0x00 BIT_LE_1M_PHY
-0x01 BIT_LE_2M_PHY
-0x02 BIT_LE_CODED_PHY
-
-0x02 BIT_LE_CODED_PHY_S2
-0x07 BIT_LE_CODED_PHY_S8
-)
-
-(//map of mem_le_tx_phys and mem_le_rx_phys
-0x01 FUN_TX_LL_1M_PHY
-0x02 FUN_TX_LL_2M_PHY
-0x04 FUN_TX_LL_CODED_PHY
-
-0x01 FUN_RX_LL_1M_PHY
-0x02 FUN_RX_LL_2M_PHY
-0x04 FUN_RX_LL_CODED_PHY
-)
-
Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/bt.format
===================================================================
--- /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/bt.format	(revision 5679)
+++ /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/bt.format	(nonexistent)
@@ -1,654 +0,0 @@
-
-	width = 32
-	const length = 12000
-
-	/* ========= memory ============== */
-memalloc(
- 1 mem_le_adv_transmit
-1 mem_le_adv_waitcnt
-1 mem_le_adv_rcv
-1 mem_le_req_rcv
-1 mem_le_scanrsp_rcv
-1 mem_le_conn_rcv
-
-1 mem_current_context
-1 mem_le_ch_mapped
-1 mem_last_freq
-1 mem_rssi
-2 mem_context_ptr
-2 mem_rx_window
-
-
-/* lpo related */
-1 mem_lpm_adjust
-6 mem_sync_clke
-1 mem_lpm_current_mult
-12 mem_gpio_wakeup_cfg
-
-
-4 mem_clkn_bt
-4 mem_clke_bt
-4 mem_dpll_clkn
-
-2 mem_slot_offset
-
-
-1 mem_loadcode_times
-1 mem_select_list_item
-0 mem_temp_reconn_record
-1 mem_record_bt_mode
-2 mem_list_item_ptr
-
-1 mem_rssi_hex
-
-
-2 mem_param_tx_setup
-2 mem_param_rf_setup
-2 mem_param_conn_access
-2 mem_param_clke_cal
-2 mem_param_pll_setup
-2 mem_param_rx_setup
-2 mem_param_dpll_start_delay
-2 mem_param_rt_rthalfslot
-2 mem_param_clke_cal_le_1m
-2 mem_param_clke_cal_le_2m
-2 mem_param_clke_cal_le_coded
-
-)
-
-memalloc test (
-/* test related */
-2 mem_le_test_sync
-2 mem_le_test_pcnt
-2 mem_tst_pktcnt_crc
-2 mem_tst_pktcnt_dmh
-3 mem_tmp_buffer_head
-80 mem_tmp_buffer
-
-)
-
-
-xmemalloc(
-/* patch enable 0x4000-0x403f  */
-
-1 mem_patch00
-1 mem_patch01
-1 mem_patch02
-1 mem_patch03
-1 mem_patch04
-1 mem_patch05
-1 mem_patch06
-1 mem_patch07
-1 mem_patch08
-1 mem_patch09
-1 mem_patch0a
-1 mem_patch0b
-1 mem_patch0c
-1 mem_patch0d
-1 mem_patch0e
-1 mem_patch0f
-1 mem_patch10
-1 mem_patch11
-1 mem_patch12
-1 mem_patch13
-1 mem_patch14
-1 mem_patch15
-1 mem_patch16
-1 mem_patch17
-1 mem_patch18
-1 mem_patch19
-1 mem_patch1a
-1 mem_patch1b
-1 mem_patch1c
-1 mem_patch1d
-1 mem_patch1e
-1 mem_patch1f
-1 mem_patch20
-1 mem_patch21
-1 mem_patch22
-1 mem_patch23
-1 mem_patch24
-1 mem_patch25
-1 mem_patch26
-1 mem_patch27
-1 mem_patch28
-1 mem_patch29
-1 mem_patch2a
-1 mem_patch2b
-1 mem_patch2c
-1 mem_patch2d
-1 mem_patch2e
-1 mem_patch2f
-1 mem_patch30
-1 mem_patch31
-1 mem_patch32
-1 mem_patch33
-1 mem_patch34
-1 mem_patch35
-1 mem_patch36
-1 mem_patch37
-1 mem_patch38
-1 mem_patch39
-1 mem_patch3a
-1 mem_patch3b
-1 mem_patch3c
-1 mem_patch3d
-1 mem_patch3e
-1 mem_patch3f
-
-	/* 3 device contexts  */
-83 mem_context
-1 mem_current_amaddr
-1 mem_lpm_mode
-4 mem_last_clkn
-
-	/* parameters */
-1 mem_fcomp_div
-2 mem_rx_window_sniff
-2 mem_rf_init_ptr
-
-
-1 mem_rf_rccal
-1 mem_handle_num
-
-
-	/* lpm related */
-2 mem_chip_functions
-2 mem_lpm_wake_lock
-2 mem_lpm_interval
-1 mem_lpm_overhead
-1 mem_lpm_hibernate_switch
-1 mem_sniff_unint_lost
-4 mem_sleep_counter   
-4 mem_sleep_counter_all
-6 mem_sleep_clkn
-3 mem_sniff_rcv
-3 mem_sniff_lost
-3 mem_clks_per_lpo
-
-1 mem_lpm_mult
-1 mem_lpm_mult_timeout
-1 mem_lpm_mult_cnt
-
-1 mem_lpm_xtalcnt
-1 mem_lpm_buckcnt
-1 mem_lpm_ldocnt
-1 mem_lpm_isogate
-1 mem_lpm_isogate_stage2
-1 mem_lpm_isogate_final
-1 mem_lpm_ldo_sel
-1 mem_lpm_sysctl
-1 mem_lpm_hv_sel
-
-24 mem_saved_gpio	 
-3 mem_saved_gsel
-8 mem_saved_mark
-1 mem_saved_spidctrl
-2 mem_patch_ptr
-2 mem_patch_len
-
-32 mem_timers
-
-
-/* HCI */
-1 mem_hci_cmd
-1 mem_hci_conn_handle
-3 mem_hci_plap
-1 mem_hci_puap
-2 mem_hci_pnap
-
-
-1 mem_xtal_c_sel
-24 mem_ghpc_table
-12 mem_aac_res_table
-1 mem_tx_power
-1 mem_modem_rssi
-1 mem_gain_fix
-3 mem_gain_table
-1 mem_gain_second_agc_en
-1 mem_system_clk
-
-ifdef DEBUG_RF_INIT
-20 mem_rf_init_data
-endif
-1 mem_otp_charge_pump_x
-1 mem_otp_dpll_ibais_x
-
-1 mem_xtal_freq
-)
-
-(//mem_system_clk
-12 SYSTEM_CLK_12M
-24 SYSTEM_CLK_24M
-)
-
-(//bluetooth tx power
-0x00 TX_POWER_0DB
-0x03 TX_POWER_3DB
-0x05 TX_POWER_5DB
-0x06 TX_POWER_6DB
-0x07 TX_POWER_7DB
-0x0a TX_POWER_10DB
-
-0x83 TX_POWER_F3DB
-0x85 TX_POWER_F5DB
-0x8a TX_POWER_F10DB
-0x94 TX_POWER_F20DB
-0x9e TX_POWER_F30DB
-0xaa TX_POWER_FACTORY
-)
-
-
-	/* context */
-(
-0x01 coffset_mode
-0x02 coffset_tsniff
-0x04 coffset_sniff_anchor
-0x08 coffset_clk_offset
-0x0e coffset_rx_window
-0x10 coffset_plap
-0x16 coffset_conn_handle
-0x17 coffset_arq
-	/* 3.0 only */
-	
-	/* le only */
-0x18 coffset_le_ch
-0x19 coffset_le_hop
-0x1a coffset_le_event_cnt
-0x1c coffset_le_supervision_timer
-0x20 coffset_le_instant
-0x22 coffset_le_channels
-0x23 coffset_le_op
-0x24 coffset_le_access
-0x28 coffset_le_crcinit
-0x2b coffset_le_window_size
-0x2c coffset_le_slave_latency
-0x2e coffset_le_slave_superto
-0x30 coffset_le_channel_map
-0x35 coffset_le_rx_phy
-0x36 coffset_le_tx_phy
-0x37 coffset_le_new_map
-0x37 coffset_le_new_m2s_phy
-0x38 coffset_le_new_s2m_phy
-0x37 coffest_le_new_transmitwindowsize
-0x38 coffest_le_new_transmitwindowoffset
-0x3a coffest_le_new_conninterval
-0x3c coffest_le_new_connslavelatency
-0x3e coffest_le_new_connsupervisiontimeout
-0x40 coffset_le_sk
-0x50 coffset_le_peer_sca
-0x53 coffset_le_transmit_window
-	
-83 context_size
-1 context_num
-)
-
-(
-0 lpm_flag_wake
-1 lpm_flag_loadcode
-)
-
-/* ========= parameters ============== */
-(
-0x0a00 param_snooze_setup_orig
-0x5353 param_snooze_ahead_orig
-
-/* 24Mhz clock setting */
-ifdef CLK24M
-0x1c86 param_tx_setup
-0x0c00 param_rf_setup
-0x0c00 param_conn_access 
-0x1a00 param_rx_setup
-0x0776 param_clke_cal
-0x0a00 param_pll_setup
-4000 param_dpll_start_delay
-7500 param_halfclk
-60084 param_halfclk_neg
--60084 param_halfclk_neg1
-else
-/* 12Mhz clock setting */
-0x0e43 param_tx_setup
-0x0600 param_rf_setup
-0x0600 param_conn_access 
-0x03bb param_clke_cal
-0x0500 param_pll_setup		// 120 is minimum
-0x0d00 param_rx_setup	// 114us before sync
-2000 param_dpll_start_delay
-3750 param_rt_rthalfslot
-
-480 param_clke_cal_le_1m	//preamble(1B) & access address(4B) time (1+4)*8*1 * 12
-288 	param_clke_cal_le_2m	//preamble(2B) & access address(4B) time (1+4)*8*1 * 12
-282 param_clke_cal_le_coded	//preamble(80us) & access address(256us)-312.5us(0.5slot)
-endif
-
-110 param_lpm_fix
-10 param_lpo_extra
-200 param_lpm_adjmax
-
--1 param_hibernate_clks
-
-ifdef SIM
-1 param_chgpump_delay_100us
-6 param_chgpump_delay_500us
-12 param_chgpump_delay_1ms
-else
-1000 param_chgpump_delay_100us
-6000 param_chgpump_delay_500us
-12000 param_chgpump_delay_1ms
-endif
-
-
-0x000a04 param_lmp_version
-0x12e9 param_lmp_subversion
-0x0012 param_tisw
-0x0012 param_tpsw
-0x1000 param_tisi
-0x0800 param_tpsi
-39 param_fcomp_div
-2 param_fcomp_mul
-
-)
-
-
-/* ========== flag[6] =============== */
-(
-0        always        /* always 1 */
-1        true          /* set/rstn by verify,compare,icompare (true) */
-2        positive      /* set/rstn by all alu operations (opcode = 0x03,0x13,0x0f,0x1f), if alu output >= 0 */
-3        timeout       /* read only, the timeout from timers */
-4        init_adpcm
-5        zero          /* set/rstn by all alu operations (opcode = 0x03,0x13,0x0f,0x1f), if alu output == 0 */
-6        crc_failed    /* level, cleared by hop_start */
-7        enable_white  /* outside mux decide whether to load bt_clk or response_X */
-8        enable_parity /* level */
-9        enable_crc    /* level */
-10       enable_hec    /* level */
-11       decode_fec1   /* level */
-12       decode_fec2   /* level */
-13       decode_fec0   /* level */
-14       encrypt       /* level */
-15       crc16       /* for caculate ccitt crc16 */
-16       swfine	/* =0 stop_watch count based on oneslot =1 on 1 clock */
-20       rqst_freq    /* pulse, to start calculating frequency */
-21       recalc        /* pulse, to recalculate the fhs_parity */
-22       init_encrypt  /* pulse, issued to initialize encrption */
-23       mhalfbnd    /* half slot boundary of clke_rt, or when clke_bt[0] toggles */
-24       sync          /* sync found as a result of correlation,set/rstn by correlate opcode */
-25       user10    /* user10 */
-26       kc_p_activate  /* pulse to recalc the kc_p */
-27       encode_fec1   /* level */
-28       encode_fec2   /* level */
-29       encode_fec0   /* level */
-30       packet_end    /* pulse */
-32       is_tx         /* level */
-33       is_rx         /* level */
-34       halfslot     /* pulse, read only, when clkn_bt[0] toggles */
-35       oneslot      /* pulse, read only, when clkn_bt[1] toggles */
-36       mslotbnd     /* pulse, read only, when clke_bt[1] toggles */
-37       expire       /* level, read only, when selected clock source exceed timeup value */
-38       meet         /* level, read only, when selected clock source meet timeup value */
-39       tx_clear     /* level, read only, indicate tx pipe is cleared */
-40       user         /* user0 */
-41       master        /* user1 */
-42       rxon         /* user2 */
-43       wake           /* user3 */
-44       user2        /* user4 */
-45       match         /* user5 */
-46       attempt        /* user6 */
-47       user3          /* user7 */
-48       clknt         /* user8 */
-49	   user7 	/* user9 */
-50       synchronize   /* synchronize lpo and regular version of the clock */
-51       lpo_edge  /* read only, 3 clocks after risling edge of lpo clock */
-52       blank         /* C0 only, means pdata == 0 */
-53       modone          /* set divide operation is done */
-55       aes_ready	/* set when aes is ok */
-56       encode_fec3   /* level */
-57       dewhiten_code_calc   /* dewhiten code calculate */
-58       lr_s2en       /* long range s2 enable */
-60	   ble_coded_info	//1:s2 0:s8
-63       never         /* read only, always 0 */
-)
-
-default flag = always
-
-/* ========== reg[6] =============== */
-(
-0        mark   /* for keeping strobes, more permanent */
-1        type   /* save and verify during rx */     /* rw */
-2        temp   /* general purpose register, 64 bits */
-3        contu  /* contr uart */
-3	 contru	/*contr uart*/
-3	 contwu	/*contw uart*/
-4        am_addr      /* verify during rx, read and send during tx */ /* ro */
-5        contw        /* last mem_addr during write */
-6        contr        /* last mem_addr during read */
-7        queue    /* the index of qset*,qisolate* commands, ie, if queue = 3, qset/qisolate operate on bit3 */
-8        debug    /* can be wired out for observation */
-9        access   /* the 72 bit access word */
-10       contus   /* contw uart */
-11       timeup        /* when does certain counter expire */
-12       pwindow       /* bit 71-61 of pdata; because on rx, bits shifts in from 71 down */
-13       fhs_parity    /* re-gernated based on bt_adr( {nap,uap,lap} ) when recalc flag is pulsed */
-14       white_init    /* init value of the whitening */
-15       crc24_init        /* init crc24 lfsr, 24 bits */
-16       contue    /* set interrupts, 40 bits */
-17       rega          /* general purpose register, 32 bits */
-18       regb          /* general purpose register, 32 bits */
-19       regc          /* general purpose register, 17 bits */
-20       regab         /* concat of {rega,regb}, thus 64 bits */
-21       radio_ctrl   /* radio i/f direct i/o ctrl, check following "radio_ctrl" section */
-
-23       freq_index   /* 7 bit read only */
-24       regd    /* 32 bit regext[1,0] */
-25       clkn              /* {clkn_bt, clkn_rt} */
-26       clke              /* {clke_bt, clke_rt} */
-27       stop_watch		
-28       fhs_misc   /* SR, SP, pscan mode */
-29       fhs_class  /* class field in fhs */
-30       fhs0   /* read only, bit 0-71 of fhs word */
-31       fhs1   /* read only, bit 72-142 of fhs word */
-32       bt_adr /* r/w, the bt_addr to access gen and freq hopping, contain only lap and uap */
-33       bt_clk /* r/w, the bt_clk for freq hopping */
-34       clkn_bt  /* read only, native bluetooth clock, free running 3.2KHz  or controlled by RTHALFSLOT register */
-35       clkn_rt  /* read only, native realtime clock, free running 12MHz, count from 0-3749, or controlled by RTHALFSLOT register */
-36       freq_mode
-37       xin   /* x parameter, read only */
-38       N_tx_slot /* the N factor in equations for Xi,Xp,Xprm,Xprs */
-39 	   auxcnt
-40       clke_bt  /* r/w,  external bluetooth clock , free running 3.2KHz or controlled by RTHALFSLOT register */
-41       clke_rt  /* r/w,  external realtime clock, , free running 12MHz, count from 0-3749, or controlled by RTHALFSLOT register */
-42       branch_addr	/* last branch address */
-43       rege         /* 64bit regext[3,2] */
-44       lap
-45       uap
-46       nap         
-47       regext		/* r/w extended 12x32bit registers,  indexed by regext_index */
-48       alarm             /* r/w, lpo wake up time, this is also how lpo and current clock keep sync */
-49       lpo_time          /* read only, this is the value to be copied back to clkn/clke after wakeup */
-50       kc_ls             /* secret key,                71: 0 */
-51       kc_ms             /* secret key,               127:72 */
-52       g1l               /* encryption length                */
-53		mask3ff		/* for mask 0x3ff operation */
-54       aes_ctrl		
-55       regf			/* 64bit regext[5,4] */
-56       regext_index   /* index of regext */
-57	     loopcnt
-58      stack			/* current return address */
-59       stack_ptr		/* stack depth */
-61         pc /* direct goto */
-62       null              /* to nowhere */
-63       pdata /* the shift register */
-)
-default reg = pdata
-
-/* regext_index */
-(
-0 regidx_data
-4 regidx_key
-8 regidx_xor
-12 regidx_result
-)
-/* ========== radio_ctrl========= */
-(
-0 TXGFSK
-1 PSK
-2 PSK3M
-3 RESET
-)
-/* assign BPWR = radio_ctrl[0]; */
-/* assign PARAMP = radio_ctrl[1]; */
-/* assign XTALPU = radio_ctrl[2]; */
-/* assign SYNTHPU = radio_ctrl[3]; */
-/* assign TXPU = radio_ctrl[4]; */
-/* assign RXPU = radio_ctrl[5]; */
-/* assign SLCTRL = radio_ctrl[6]; */
-/* assign XTALSEL_MUX_SEL = radio_ctrl[7] */
-
-
-/* =========== destination[4] ============== */
-(
-0 bucket
-1 rxf
-2 back
-3 mod
-)
-default dest = bucket
-
-/* =========== source[4] ============= */
-(
-1 txf
-3 demod
-)
-default source = 0
-
-
-/* ============== mark ============= */
-(
-5  mark_loopback
-9  mark_context
-13 mark_lpm_mult_enable
-14 mark_usb_first_resp
-15 mark_old_packet
-16 mark_adv
-35 mark_isstr
-36 mark_loadcode
-37 mark_ext_patch
-38 mark_24g
-39 mark_24g_rxmode
-40 mark_eeprom_size
-41 mark_ble_tx_md
-42 mark_ble_rx_md
-43 mark_otp_encrypt
-44 mark_temp
-45 mark_ble_2M
-46 mark_ble_lr_s8
-47 mark_ble_lr
-48 mark_ble_crc_fail
-50 mark_ble_encryption
-51 mark_first_packet
-)
-
-(
-1 reload_type_otp
-2 reload_type_spi
-3 reload_type_iic
-)
-
-
-/* ============== soft timers ============== */
-(
-0 le_adv_interval_timer
-2 le_scan_interval_timer
-9 key_scan_timer
-7 smp_pairing_timer
-11  ui_led_blink  
-
-8 G24_TIMER_NODATA
-6 G24_TIMER_KB_BIT_CONSUMER_BLANK
-13 G24_TIMER_MS_BLANK
-12 G24_TIMER_KB_MUL_BLANK
-10 G24_TIMER_KB_SYS_CRTL_BLANK
-14 G24_TIMER_KB_BLANK
-
-1 USB_TIMER_NAK
-15 USB_TIMER_WAKEUP
-
-3 app_ms_key_scan_timer
-)
-
-(
-
-27 hci_cmd_le_create_conn
-29 hci_cmd_le_disconn
-30 hci_cmd_le_att_req
-)
-
-
-
-/* ============== mode ==========*/
-(
-0 mode_le
-1 mode_master
-)
-
-(
-0 state_inconn
-1 state_insniff
-)
-(
-3 op_disconn
-)
-
-
-
-//mem_lpm_wake_lock
-(
-0 wake_lock_ble_rx
-1 wake_lock_ble_tx
-
-3 wake_lock_key_press
-4 wake_lock_ble_tx_patch
-5 wake_lock_uart_tx
-6 wake_lock_uart_rx
-7 wake_lock_button
-8 wake_lock_cmd
-9 wake_lock_app
-12 wake_lock_l2cap_tx
-13 wake_lock_l2cap_rx
-14 wake_lock_ipc_c512bt
-15 wake_lock_ipc_bt2c51
-
-)
-
-(//mem_fcomp_div
-0x18 XTAL_24M
-0x10 XTAL_16M
-)
-
-( //verion
-6 BLUETOOTH_CORE_SPECIFICATION_4_0
-7 BLUETOOTH_CORE_SPECIFICATION_4_1
-8 BLUETOOTH_CORE_SPECIFICATION_4_2
-9 BLUETOOTH_CORE_SPECIFICATION_5_0
-10 BLUETOOTH_CORE_SPECIFICATION_5_1
-)
-
-(
-0x050e COMPANY_ID_YICHIP
-)
-
-(
-0x33  REC_3_MODE
-0x34  REC_4_MODE
-0x35  REC_4_MODE_STATIC_ADDRESS
-0x36  REC_4_MODE_RANDOM_RESOLVABLE_PRIVATE_ADDRESS
-0x37  REC_4_MODE_RANDOM_NON_RESOLVABLE_PRIVATE_ADDRESS
-)
-
-(
-0 bt_disabled
-1 ble_disabled
-2 module_disable
-)
-
Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/command.format
===================================================================
--- /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/command.format	(revision 5679)
+++ /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/command.format	(nonexistent)
@@ -1,1446 +0,0 @@
-
-/* Parse Command:
-TX: take bits from tx fifo, jam it into shift and a destination (rf,bucket)
-RX: take bits from demod,  jam it into shift and a destination (acl,sco,bucket) */
-
-/* Inject Command:
-TX: 0 into shift, send tail of shift into a destination (rf,bucket)
-RX: 0 into shift, send tail of shift into a destination (acl,sco,bucket) */
-
-format
-  ! 15 romdat
-  % d0
-  % d1
-  % d2
-  % d3
-  [8] d0
-  [8] d1
-  [8] d2
-  [8] d3
-end
-
-format
-  ! 15 enable   /* set flag to 1 */
-  % flag
-  [5] opcode
-  [6] 1
-  [6] flag
-  [6] null
-  [9] 0
-end
- /* High 5 bytes of channel map */
-format
-  ! 15 pulse   /* set flag to 1 */
-  % flag
-  [5] opcode
-  [6] 1
-  [6] flag
-  [6] null
-  [9] 0
-end
-
-format
-  ! 15 disable   /* set flag to 0 */
-  % flag
-  [5] opcode
-  [6] 2
-  [6] flag
-  [6] null
-  [9] 0
-end
-
-format
-  ! 15 set0  /* set selected bit of reg to 0 */
-  % immediate
-  % reg
-  [5] opcode
-  [6] 9
-  [6] never
-  [6] reg
-  [9] immediate
-end
-
-format
-  ! 15 set1  /* set selected bit of reg to 1 */
-  % immediate
-  % reg
-  [5] opcode
-  [6] 9          /* alu op demux */
-  [6] always
-  [6] reg
-  [9] immediate
-end
-
-format
-  ! 15 setflag  /* set selected bit of the reg to the polarity of the flag */
-  % flag
-  % immediate
-  % reg
-  [5] opcode
-  [6] 9
-  [6] flag
-  [6] reg
-  [9] immediate
-end
-
-format
-  ! 15 nsetflag  /* set the selected bit of the reg to the opposite polarity of the flag */
-  % flag
-  % immediate
-  % reg
-  [5] opcode
-  [6] 0x29
-  [6] flag
-  [6] reg
-  [9] immediate
-end
-
-format
-  ! 15 setflip    /* invert the selected bit of the reg */
-  % immediate
-  % reg
-  [5] opcode
-  [6] 10            /* this is alu op */
-  [6] always
-  [6] reg
-  [9] immediate
-end
-
-format
-  ! 0x1f qset1      /* demux the lowest 4 bit of queue and OR it with regr into regw */
-  % reg             /* in short, set the bit in reg indexed by queue to 1 */
-  [5] opcode
-  [6] 9
-  [6] always
-  [6] reg
-  [9] 0
-end
-  
-format
-  ! 0x1f qset0      /* demux the lowest 4 bit of queue and AND it with regr into regw */
-  % reg             /* in short, set the bit in reg indexed by queue to 0 */
-  [5] opcode
-  [6] 9
-  [6] never
-  [6] reg
-  [9] 0
-end
-
-format 
-  ! 0x1f qsetflag   /* set the bit in reg index by queue to same as flag */
-  % flag
-  % reg
-  [5] opcode
-  [6] 9
-  [6] flag
-  [6] reg
-  [9] 0
-end
-
-format 
-  ! 0x1f nqsetflag   /* set the bit in the reg index by queue to opposite of flag */
-  % flag
-  % reg
-  [5] opcode
-  [6] 0x29
-  [6] flag
-  [6] reg
-  [9] 0
-end
-
-format
-  ! 0x1f qsetflip      /* flip the bit in reg index by queue */
-  % reg
-  [5] opcode
-  [6] 10
-  [6] always
-  [6] reg
-  [9] 0
-end
-
-format
-  ! 1 parse       /* take bits out of source (sco_tx,tx_buffer,rx-elas) into pdata and dest (sco_rx,rx_fifo,tx-elas) */
-  % source
-  % dest
-  % immediate
-  [5] opcode
-  [4] source      /* voice, data, demod */
-  [2] 0
-  [6] 0    
-  [2] 0           /* parse or inject */ 
-  [4] dest        /* acl, sco, mod, bucket */
-  [9] immediate   /* number of bits to parse off */
-end
-
-format
-  ! 1 inject      /* shift data from pdata into destination (tx-elas,rx_fifo,sco_rx) */
-  % destination
-  % immediate
-  [5] opcode
-  [4] 0
-  [2] 0
-  [6] 1
-  [2] 0
-  [4] destination /* acl,sco,mod,bucket */
-  [9] immediate   /* number of bits to be injected */
-end
-
-format
-  ! 1 iinject
-  % destination
-  % regr
-  [5] opcode
-  [6] regr       /* contain the number of bits to inject */
-  [6] 3
-  [2] 0
-  [4] destination /* acl,sco,mod,bucket */
-  [9] 0 
-end
-
-format
-  ! 1 stuff  /* automatic parse, stuff_counter decrement on every bit until hits zero */
-  % source
-  % destination
-  [5] opcode
-  [4] source
-  [2] 0
-  [6] 2
-  [2] 0
-  [4] destination
-  [9] 0
-end
-
-format    /* force immediate value into registers */
-  ! 3 force
-  % immediate
-  % regw
-  [5] opcode
-  [6] 0
-  [6] 0    /* alu operation force */
-  [6] regw  /* destination register */
-  [9] immediate
-end
-
-format    /* force whatever is on shift_reg to regsiters */
-  ! 0x13 iforce
-  % regw
-  [5] opcode
-  [6] 0
-  [6] 0    /* alu operation force */
-  [6] regw  /* destination register */
-  [9] 0
-end
-
-format    /* force immediate value into registers */
-  ! 3 increase
-  % immediate
-  % reg
-  [5] opcode
-  [6] reg
-  [6] 1    /* alu operation add */
-  [6] reg
-  [9] immediate
-end
-
-format
-  ! 3 pincrease
-  % immediate
-  [5] opcode
-  [6] -1  /* pdata */
-  [6] 1   /* alu add */
-  [6] -1  /* back to pdata */
-  [9] immediate
-end
-
-format    /* force immediate value into registers */
-  ! 3 and_into
-  % immediate
-  % reg
-  [5] opcode
-  [6] reg
-  [6] 2    /* alu operation and into */
-  [6] reg
-  [9] immediate
-end
-
-format
-  ! 3 and
-  % regr
-  % immediate
-  % regw
-  [5] opcode
-  [6] regr
-  [6] 2    /* alu operation and into */
-  [6] regw
-  [9] immediate
-end
-  
-format
-  ! 0x13 iand    /* pdata & regr -> regw */
-  % regr
-  % regw
-  [5] opcode
-  [6] regr
-  [6] 2    /* alu operation and into */
-  [6] regw
-  [9] 0
-end
-  
-
-format    /* and whatever is in shiftreg with reg */
-  ! 0x13 iand_into
-  % reg
-  [5] opcode
-  [6] reg
-  [6] 2    /* alu operation and into */
-  [6] reg
-  [9] 0
-end
-
-format
-  ! 3 or_into
-  % immediate
-  % reg
-  [5] opcode
-  [6] reg
-  [6] 3    /* alu operation or into */
-  [6] reg
-  [9] immediate
-end
-
-format
-  ! 3 or
-  % regr
-  % immediate
-  % regw
-  [5] opcode
-  [6] regr
-  [6] 3    /* alu operation or into */
-  [6] regw
-  [9] immediate
-end
-
-format
-  ! 0x13 ior
-  % regr
-  % regw
-  [5] opcode
-  [6] regr
-  [6] 3    /* alu operation or into */
-  [6] regw
-  [9] 0
-end
-
-format
-  ! 0x13 ior_into
-  % reg
-  [5] opcode
-  [6] reg
-  [6] 3    /* alu operation or into */
-  [6] reg
-  [9] 0
-end
-
-format
-  ! 3 skip_to   /* jump to location stored in reg */
-  % reg
-  [5] opcode
-  [6] reg
-  [6] 4   /* alu operation copy */
-  [6] rom_addr
-  [9] 0
-end
-
-format
-  ! 3 copy
-  % regr
-  % regw
-  [5] opcode
-  [6] regr
-  [6] 4   /* alu operation copy */
-  [6] regw
-  [9] 0
-end
-
-format
-  ! 3 deposit   /* copy the register content thru alu to shift register, not prealigned like preload */
-  % reg
-  [5] opcode
-  [6] reg
-  [6] 4   /* alu operation copy */
-  [6] -1  /* pdata */
-  [9] 0
-end
-
-format
-  ! 3 icopy     /* copy the shift register lsb content directly to register, not aligned */
-  % regw
-  [5] opcode
-  [6] -1  /* pdata */
-  [6]  4  /* alu copy */
-  [6] regw
-  [9] 0
-end
-
-format
-  ! 3 add
-  % regr
-  % immediate
-  % regw
-  [5] opcode
-  [6] regr
-  [6] 1
-  [6] regw
-  [9] immediate
-end
-
-format
-  ! 0x13 iadd       /* regr + pdata -> regw */
-  % regr
-  % regw
-  [5] opcode
-  [6] regr
-  [6] 1
-  [6] regw
-  [9] 0
-end
-
-format
-  ! 3 sub          /* immediate - regr -> regw */
-  % regr
-  % immediate
-  % regw
-  [5] opcode
-  [6] regr
-  [6] 12
-  [6] regw
-  [9] immediate
-end
-
-format
-  ! 0x13 isub       /* pdata - regr -> regw */
-  % regr
-  % regw
-  [5] opcode
-  [6] regr
-  [6] 12
-  [6] regw
-  [9] 0
-end
-
-
-format
-  ! 3 flip
-  % immediate
-  % reg
-  [5] opcode
-  [6] reg
-  [6] 5
-  [6] reg
-  [9] immediate
-end
-  
-format
-  ! 0x13 iflip  /* use shift register as immediate to do xor */
-  % regr
-  % regw
-  [5] opcode
-  [6] regr
-  [6] 5
-  [6] regw
-  [9] 0
-end
-  
-format
-  ! 3 xor
-  % regr
-  % immediate
-  % regw
-  [5] opcode
-  [6] regr
-  [6] 5
-  [6] regw
-  [9] immediate
-end
-
-format
-  ! 3 xor_into
-  % immediate
-  % reg
-  [5] opcode
-  [6] reg
-  [6] 5
-  [6] reg
-  [9] immediate
-end
-  
-format
-  ! 0x13 ixor  /* pdata xor regr and store result in regw */
-  % regr
-  % regw
-  [5] opcode
-  [6] regr
-  [6] 5
-  [6] regw
-  [9] 0
-end
-  
-format
-  ! 3 invert
-  % regr
-  % regw
-  [5] opcode
-  [6] regr
-  [6] 8
-  [6] regw
-  [9] 0
-end
-
-format
-  ! 3 pinvert    /* invert pdata into itself */
-  [5] opcode
-  [6] -1
-  [6] 8
-  [6] -1
-  [9] 0
-end
-
-format
-  ! 3 div                 /* regr div immediate div */
-  % reg
-  % immediate
-  [5] opcode
-  [6] reg
-  [6] 13                   /* generate diven pulse to div */
-  [6] null
-  [9] immediate
-end
-
-format
-  ! 0x13 idiv           /* pdata div regr data ready at most after 41 nops */
-  % reg
-  [5] opcode
-  [6] reg
-  [6] 13                   /* generate diven pulse to div */
-  [6] null
-  [9] 0
-end
-
-format
-  ! 0x13 idiv48           /* pdata div regr data 48bit */
-  % reg
-  [5] opcode
-  [6] reg
-  [6] 17                   /* generate diven pulse to div */
-  [6] null
-  [9] 0
-end
-
-format
-  ! 3 remainder            /* harvest div remainder */
-  % regw
-  [5] opcode
-  [6] 0
-  [6] 14
-  [6] regw
-  [9] 0
-end
-
-format
-  ! 3 quotient             /* harvest div quotient */
-  % regw
-  [5] opcode
-  [6] 0
-  [6] 15
-  [6] regw
-  [9] 0
-end
-
-format
-  ! 3 rshift
-  % regr
-  % regw
-  [5] opcode
-  [6] regr
-  [6] 6
-  [6] regw
-  [9] 0
-end
-
-format
-  ! 3 rshift2
-  % regr
-  % regw
-  [5] opcode
-  [6] regr
-  [6] 22
-  [6] regw
-  [9] 0
-end
-
-format
-  ! 3 rshift3
-  % regr
-  % regw
-  [5] opcode
-  [6] regr
-  [6] 18
-  [6] regw
-  [9] 0
-end
-
-format
-  ! 3 rshift4
-  % regr
-  % regw
-  [5] opcode
-  [6] regr
-  [6] 35
-  [6] regw
-  [9] 0
-end
-
-format
-  ! 3 rshift8
-  % regr
-  % regw
-  [5] opcode
-  [6] regr
-  [6] 25
-  [6] regw
-  [9] 0
-end
-
-format
-  ! 3 rshift16
-  % regr
-  % regw
-  [5] opcode
-  [6] regr
-  [6] 34
-  [6] regw
-  [9] 0
-end
-
-format
-  ! 3 rshift32
-  % regr
-  % regw
-  [5] opcode
-  [6] regr
-  [6] 30
-  [6] regw
-  [9] 0
-end
-
-format
-  ! 3 lshift
-  % regr
-  % regw
-  [5] opcode
-  [6] regr
-  [6] 7
-  [6] regw
-  [9] 0
-end
-
-format
-  ! 3 lshift2
-  % regr
-  % regw
-  [5] opcode
-  [6] regr
-  [6] 23
-  [6] regw
-  [9] 0
-end
-
-format
-  ! 3 lshift8
-  % regr
-  % regw
-  [5] opcode
-  [6] regr
-  [6] 26
-  [6] regw
-  [9] 0
-end
-
-  
-format
-  ! 3 lshift3
-  % regr
-  % regw
-  [5] opcode
-  [6] regr
-  [6] 19
-  [6] regw
-  [9] 0
-end
-
-format
-  ! 3 lshift4
-  % regr
-  % regw
-  [5] opcode
-  [6] regr
-  [6] 36
-  [6] regw
-  [9] 0
-end
-  
-
-format
-  ! 3 lshift16
-  % regr
-  % regw
-  [5] opcode
-  [6] regr
-  [6] 32
-  [6] regw
-  [9] 0
-end
-
-format
-  ! 0x13 bcrc         // calculate regr's byte crc value into pdata
-  % regr
-  [5] opcode
-  [6] regr
-  [6] 24
-  [6] 63
-  [9] 0
-end
-
-
-format
-  ! 3 random               /* random number into regw */
-  % reg
-  [5] opcode
-  [6] 0
-  [6] 20
-  [6] reg
-  [9] 0
-end
-
-format                     /* bit reverse within a byte */
-  ! 3 reverse
-  % reg
-  % regw
-  [5] opcode
-  [6] reg
-  [6] 27
-  [6] regw
-  [9] 0
-end
-
-format
-  ! 3 priority    /* priority encode reg into regw, lsb is the top priority, ie, priority(8'b00010000) = 4 */
-  % reg
-  % regw
-  [5] opcode
-  [6] reg
-  [6] 21
-  [6] regw
-  [9] 0
-end
-
-format
-  ! 7 setsect   /* set a section of pdata */
-  % section    /* 0 sets 17:0 of pdata with set_data, 1 sets 35:18, 2 sets 53:36, 3 sets 71:54 */
-  % set_data
-  [5] opcode
-  [7] 0
-  [2] section
-  [18] set_data
-end
-
-format
-  ! 10 preload   /* load stuff into pdata according to fhs format, check us.v */
-  % reg
-  [5] opcode
-  [6] reg
-  [6] 0
-  [6] -1
-  [9] 0
-end
-
-format  /* load register with pdata content, according to fhs format, check us.v */
-  ! 10 ialigned   /* all bits are in position */
-  % regw
-  [5] opcode
-  [6] -1
-  [6] 0
-  [6] regw
-  [9] 0
-end
-
-format  /* load register to another according to fhs format */
-  ! 10 aligned
-  % regr
-  % regw
-  [5] opcode
-  [6] regr
-  [6] 0
-  [6] regw
-  [9] 0
-end
-
-format
-  ! 4 branch
-  % addr
-  % flag
-  [5] opcode
-  [6] 1
-  [6] flag
-  [15] addr
-end
-
-format
-  ! 4 call
-  % addr
-  % flag
-  [5] opcode
-  [6] 2
-  [6] flag
-  [15] addr
-end
-
-format
-  ! 4 rtn
-  % flag
-  [5] opcode
-  [6] 3
-  [6] flag
-  [15] 0
-end
-
-format
-  ! 0x0d fetch          /* read from memory, data into pdata, address from immediate then mem_ptr */
-  % num_bytes
-  % addr
-  [5] opcode
-  [6] 63
-  [1] addr
-  [1] 0
-  [4] num_bytes
-  [15] addr
-end
-
-format
-  ! 0x0d fetcht          /* read from memory, data into temp, address from immediate won't increment */
-  % num_bytes
-  % addr
-  [5] opcode
-  [6] 2
-  [1] addr
-  [1] 1
-  [4] num_bytes
-  [15] addr
-end
-
-format
-  ! 0x1d ifetch         /* read from memory, data into pdata, address from regr then mem_ptr */
-  % num_bytes
-  % reg
-  [5] opcode
-  [6] 63
-  [2] 0
-  [4] num_bytes
-  [9] 0
-  [6] reg
-end
-
-format
-  ! 0x1d ifetcht         /* read from memory, data into temp, address from regr won't increment */
-  % num_bytes
-  % reg
-  [5] opcode
-  [6] 2
-  [2] 0
-  [4] num_bytes
-  [9] 0
-  [6] reg
-end
-
-format
-  ! 0x0c store          /* write to memory, data from pdata, address from immediate then mem_ptr */
-  % num_bytes
-  % addr
-  [5] opcode
-  [6] 63
-  [1] addr
-  [1] 0
-  [4] num_bytes
-  [15] addr
-end
-
-format
-  ! 0x0c storet          /* write to memory, data from temp, address from immediate won't increment */
-  % num_bytes
-  % addr
-  [5] opcode
-  [6] 2
-  [1] addr
-  [1] 1
-  [4] num_bytes
-  [15] addr
-end
-
-format
-  ! 0x1c istore        /* write pdata to memory, address from regaddr */
-  % num_bytes
-  % regaddr
-  [5] opcode
-  [6] 63            
-  [2] 0
-  [4] num_bytes
-  [9] 0
-  [6] regaddr
-end
-
-format
-  ! 0x1c istoret        /* write temp to memory, address from regaddr */
-  % num_bytes
-  % regaddr
-  [5] opcode
-  [6] 2            
-  [2] 0
-  [4] num_bytes
-  [9] 0
-  [6] regaddr
-end
-
-
-format
-  ! 0x0d crc         // read from memory, count from loopcnt, put crc result into pdata 
-  % addr
-  [5] opcode
-  [6] 63
-  [6] 0
-  [15] addr
-end
-
-format
-  ! 0x1d icrc         /* read from memory, address from reg, count from loopcnt, put crc result into pdata */
-  % reg
-  [5] opcode
-  [6] 63
-  [15] 0
-  [6] reg
-end
-
-
-format
-  ! 0x0c storer          /* write reg to memory, address from immediate then mem_ptr */
-  % reg
-  % num_bytes
-  % addr
-  [5] opcode
-  [6] reg               
-  [1] addr
-  [1] 0
-  [4] num_bytes
-  [15] addr
-end
-
-
-format
-  ! 0x1c istorer        /* write regr to memory, address from regaddr */
-  % regr
-  % num_bytes
-  % regaddr
-  [5] opcode
-  [6] regr            
-  [2] 0
-  [4] num_bytes
-  [9] 0
-  [6] regaddr
-end
-
-
-format
-  ! 0x1c lstorer        /* write regr to memory, address from regaddr, length from loopcnt */
-  % regr
-  % regaddr
-  [5] opcode
-  [6] regr            
-  [6] 0
-  [9] 0
-  [6] regaddr
-end
-
-format
-  ! 0x1c lstore        /* write pdata to memory, address from regaddr, length from loopcnt */
-  % regaddr
-  [5] opcode
-  [6] 63            
-  [6] 0
-  [9] 0
-  [6] regaddr
-end
-
-format
-  ! 0x1c lstorew        /* 32bit write pdata to memory, address from regaddr, length from loopcnt */
-  % regaddr
-  [5] opcode
-  [6] 63
-  [6] 42
-  [9] 0
-  [6] regaddr
-end
-
-
-format
-  ! 0x0d fetchr          /* read reg from memory, address from immediate then mem_ptr */
-  % reg
-  % num_bytes
-  % addr
-  [5] opcode
-  [6] reg               
-  [1] addr
-  [1] 0
-  [4] num_bytes
-  [15] addr
-end
-
-format
-  ! 0x1d ifetchr        /* read regr from memory, address from regaddr */
-  % regr
-  % num_bytes
-  % regaddr
-  [5] opcode
-  [6] regr
-  [2] 0
-  [4] num_bytes
-  [9] 0
-  [6] regaddr
-end
-
-
-
-
-format
-  ! 0x0e jam
-  % immediate
-  % addr
-  [5] opcode
-  [3] 0
-  [16] addr
-  [8] immediate
-end
-
-format			/* 0x242... */
-  ! 4 nbranch
-  % addr
-  % flag
-  [5] opcode
-  [1] 1
-  [5] 1
-  [6] flag
-  [15] addr
-end
-
-format
-  ! 4 ncall
-  % addr
-  % flag
-  [5] opcode
-  [1] 1
-  [5] 2
-  [6] flag
-  [15] addr
-end
-
-format
-  ! 4 nrtn
-  % flag
-  [5] opcode
-  [1] 1
-  [5] 3
-  [6] flag
-  [15] 0
-end
-
-format
-  ! 4 nop
-  % addr  /* no-op for addr+2 clocks */
-  [5] opcode
-  [6] 0     
-  [6] 0     /* always */ 
-  [15] addr
-end
-
-format
-  ! 4 clear_stack
-  [5] opcode
-  [6] 4
-  [6] 0    /* always */
-  [15] 0
-end
-
-format
-  ! 6 until
-  % reg
-  % flag
-  [5] opcode
-  [6] reg
-  [6] flag
-  [6] 1
-  [9] 0
-end
-  
-format
-  ! 6 correlate   /* quit if 1. flag is true 2, regr time up 3, found sync,(cond_true) */
-  % reg          /* expire counter to check against */
-  % flag
-  [5] opcode
-  [6] reg
-  [6] flag
-  [6] 2           /* correlate */
-  [9] 0           
-end
-
-format
-  ! 5 compare   /* sets cond flag,  if reg equals immediate */
-  % immediate
-  % reg
-  % mask
-  [5] opcode
-  [6] reg
-  [3] 0
-  [9] mask
-  [9] immediate
-end
-
-format
-  ! 0x15 icompare   /* sets cond flag,  if reg equals pdata */
-  % mask
-  % reg
-  [5] opcode
-  [6] reg
-  [3] 0
-  [9] mask
-  [9] 0
-end
-
-format   /* sets cond. flag, if reg equals LS half of shift reg with MS half of reg being mask */
-  ! 5 iverify
-  % reg
-  [5] opcode
-  [6] reg
-  [3] 2
-  [18] 0
-end
-
-format
-  ! 0x15 qisolate1
-  % reg
-  [5] opcode
-  [6] reg
-  [3] 3
-  [18] -1
-end
-
-format
-  ! 0x15 qisolate0
-  % reg
-  [5] opcode
-  [6] reg
-  [3] 3
-  [18] 0
-end
-
-	/* REVAB bug: cannot access bit above 35 */
-format
-  ! 5 isolate1
-  % addr
-  % reg
-  [5] opcode
-  [6] reg
-  [3] 3
-  [9] -1
-  [9] addr
-end
-
-format
-  ! 5 isolate0
-  % addr
-  % reg
-  [5] opcode
-  [6] reg
-  [3] 3
-  [9] 0
-  [9] addr
-end
-
-format
-  ! 11 setarg
-  % immediate
-  [5] opcode
-  [27] immediate
-end
-
-format
-  ! 0x1b arg
-  % immediate
-  % reg
-  [5] opcode
-  [6] reg
-  [21] immediate
-end
-
-  
-format
-  ! 0 sleep
-  [5] opcode
-  [27] 0
-end
-
-format
-  ! 0 snooze
-  [5] opcode
-  [6] -1
-  [21] 0
-end
-
-format
-  ! 0 revision
-  % rev_num
-  [5] opcode
-  [27] rev_num
-end
-
-format
-  ! 0x18 loop   /* branch when loopcnt is NOT zero, and decrease loopcnt */
-  % addr
-  [5] opcode
-  [4] 4
-  [8] 0
-  [15] addr
-end
-
-format
-  ! 0x18 beq   /* branch when pdata is equal to immediate */
-  % imme
-  % addr
-  [5] opcode
-  [4] 0
-  [8] imme
-  [15] addr
-end
-
-format
-  ! 0x18 bne   /* branch when pdata is NOT equal to immediate */
-  % imme
-  % addr
-  [5] opcode
-  [4] 1
-  [8] imme
-  [15] addr
-end
-
-format
-  ! 0x18 rtneq   /* return when pdata is equal to immediate */
-  % imme
-  [5] opcode
-  [4] 2
-  [8] imme
-  [15] 0
-end
-
-format
-  ! 0x18 rtnne   /* return when pdata is NOT equal to immediate */
-  % imme
-  [5] opcode
-  [4] 3
-  [8] imme
-  [15] 0
-end
-
-format
-  ! 0x18 bbit1   /* branch when pdata's imme bit is 1 */
-  % imme
-  % addr
-  [5] opcode
-  [4] 5
-  [8] imme
-  [15] addr
-end
-
-format
-  ! 0x18 bbit0   /* branch when pdata's imme bit is 0 */
-  % imme
-  % addr
-  [5] opcode
-  [4] 6
-  [8] imme
-  [15] addr
-end
-
-format
-  ! 0x18 rtnbit1   /* return when pdata's imme bit is 0 */
-  % imme
-  [5] opcode
-  [4] 7
-  [8] imme
-  [15] 0
-end
-
-format
-  ! 0x18 rtnbit0   /* return when pdata's imme bit is 0 */
-  % imme
-  [5] opcode
-  [4] 8
-  [8] imme
-  [15] 0
-end
-
-format
-  ! 8	bpatch
-  % imme
-  % addr
-  [5] opcode
-  [4] 9
-  [8] imme
-  [15] addr
-end
-
-format
-  ! 8	bpatchx
-  % imme
-  % addr
-  [5] opcode
-  [4] 14
-  [8] imme
-  [15] addr
-end
-
-format
-  ! 0x18 bmark1   /* branch when mark's imme bit is 1 */
-  % imme
-  % addr
-  [5] opcode
-  [4] 10
-  [8] imme
-  [15] addr
-end
-
-format
-  ! 0x18 bmark0   /* branch when mark's imme bit is 0 */
-  % imme
-  % addr
-  [5] opcode
-  [4] 11
-  [8] imme
-  [15] addr
-end
-
-format
-  ! 0x18 rtnmark1   /* return when mark's imme bit is 0 */
-  % imme
-  [5] opcode
-  [4] 12
-  [8] imme
-  [15] 0
-end
-
-format
-  ! 0x18 rtnmark0   /* return when mark's imme bit is 0 */
-  % imme
-  [5] opcode
-  [4] 13
-  [8] imme
-  [15] 0
-end
-
-format
-  ! 3 mul32                  /* immediate mult regr */ 
-  % regr
-  % immediate                                  
-  % regw
-  [5] opcode
-  [6] regr
-  [6] 31           
-  [6] regw
-  [9] immediate
-end
-
-format
-  ! 0x13 imul32           /* pdata mult regr 32x32=64bit */  
-  % regr
-  % regw
-  [5] opcode
-  [6] regr
-  [6] 31                   
-  [6] regw
-  [9] 0
-end
-
-format
-  ! 0x13 imults           /* pdata mult regr 32x32=64bit, signed */  
-  % regr
-  % regw
-  [5] opcode
-  [6] regr
-  [6] 16
-  [6] regw
-  [9] 0
-end
-
-
-format
-  ! 3 byteswap
-  % regr
-  % regw
-  [5] opcode
-  [6] regr
-  [6] 33
-  [6] regw
-  [9] 0
-end
-
-format
-  ! 3 shasx          /* SHA256 Sx operation, immediate is Sx */
-  % regr
-  % immediate
-  % regw
-  [5] opcode
-  [6] regr
-  [6] 28
-  [6] regw
-  [9] immediate
-end
-
-
-format
-  ! 0x13 regexrot 	/* regext[0] <- regext[7], regext[1] <- regext[0], regext[2] <- regext[1] ... */
-  [5] opcode
-  [6] 0
-  [6] 29
-  [6] null
-  [9] 0
-end
-
-format
-  ! 0x13 adpcm         // encode adpcm from regr into regw
-  % regr
-  % regw
-  [5] opcode
-  [6] regr
-  [6] 43
-  [6] regw
-  [9] 0
-end
-
-format
-  ! 0x13 pcm         // decode adpcm from regr into regw
-  % regr
-  % regw
-  [5] opcode
-  [6] regr
-  [6] 44
-  [6] regw
-  [9] 0
-end
-
-
Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/debug.format
===================================================================
--- /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/debug.format	(revision 5679)
+++ /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/debug.format	(nonexistent)
@@ -1,6 +0,0 @@
-xmemalloc(
-
-1 mem_rf_debug_rx_gpio
-1 mem_rf_debug_tx_gpio
-)
-
Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/g24_protocol_stack/24g.format
===================================================================
--- /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/g24_protocol_stack/24g.format	(revision 5679)
+++ /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/g24_protocol_stack/24g.format	(nonexistent)
@@ -1,80 +0,0 @@
-
-xmemalloc g24(
-6 mem_24g_lap
-34 mem_24g_rxbuf
-32 mem_24g_txbuf
-36 mem_24g_txpayload
-32 mem_24g_rxpayload
-1 mem_24g_rxdata_length
-1 mem_24g_pid
-1 mem_24g_no_ack
-3 mem_24g_sta_crc
-3 mem_24g_last_crc
-1 mem_24g_sta_pid
-1 mem_24g_last_pid
-1 mem_24g_datalen
-1 mem_24g_data_type
-1 mem_24g_txlen
-2 mem_24g_rx_window
-1 mem_24g_ch
-1 mem_24g_current_ch_number
-4 mem_24g_addr
-4 mem_24g_ch_map1
-4 mem_24g_ch_map2
-4 mem_24g_ch_map3
-4 mem_24g_ch_map4
-4 mem_24g_tx_btclk
-1 mem_24g_interval
-1 mem_24g_interval_min
-1 mem_24g_interval_max
-2 mem_24g_syncword
-1 mem_24g_syncword_crc8
-1 mem_24g_get_syncword_crc8
-1 mem_24g_pair_switch
-8 mem_24g_enter_hibernate
-
-1 mem_24g_rx_phy
-1 mem_24g_tx_phy
-
-1 mem_24g_ch_map_update
-4 mem_24g_ch_update_map1
-4 mem_24g_ch_update_map2
-4 mem_24g_ch_update_map3
-4 mem_24g_ch_update_map4
-
-1 mem_24g_disable_fec1
-1 mem_24g_off_type
-)
-
-
-xmemalloc g24_tx(
-1 mem_rssi_hex_received
-
-)
-
-
-
-(//mem_24g_data_type
-1 TYPE_MS
-2 TYPE_KB
-0x07 bits_data
-//0-2 data type
-3 bit_abort
-4 bit_hop
-5 bit_sync
-//6-7 channel offset
-)
-
-
-(
-0 ERR_NULL
-1 ERR_SYNC_TO
-2 ERR_HEC
-3 ERR_LR_LEN
-4 ERR_TYPE
-5 ERR_LEN_OVER
-6 ERR_CRC
-)
-
-
-
Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/g24_protocol_stack/24g_pair.format
===================================================================
--- /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/g24_protocol_stack/24g_pair.format	(revision 5679)
+++ /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/g24_protocol_stack/24g_pair.format	(nonexistent)
@@ -1,52 +0,0 @@
-
-
-xmemalloc g24(
-4 mem_24g_pair_addr
-1 mem_24g_pair_ch
-1 mem_24g_pair_tx_power
-
-)
-
-xmemalloc g24_tx(
-1 mem_24g_pair_sm
-1 mem_24g_pair_no_ack
-2 mem_24g_pair_timeout_init
-2 mem_24g_pair_timeout
-2 mem_24g_pair_count
-)
-
-xmemalloc g24_rx(
-1 mem_24g_device1_bind_step
-1 mem_24g_device2_bind_step
-1 mem_24g_bind_device_status
-8 mem_24g_bind_payload
-1 mem_24g_device1_bind_disable
-1 mem_24g_device2_bind_disable
-
-)
-
-(//mem_24g_pair_sm
-0 STATE_24G_PAIRING_NULL
-1 STATE_24G_PAIRING_1
-2 STATE_24G_PAIRING_2
-3 STATE_24G_PAIRING_3
-4 STATE_24G_PAIRING_4
-0X11 STATE_24G_PAIRING_1_WAITING_ACK
-0X12 STATE_24G_PAIRING_2_WAITING_ACK
-0X13 STATE_24G_PAIRING_3_WAITING_ACK
-0X14 STATE_24G_PAIRING_4_WAITING_ACK
-0XFF STATE_24G_PAIRING_SUCCESS
-)
-
-(
-0x01 DATATYPE_DEVICE1	//mouse
-0x02 DATATYPE_DEVICE2	//keyboard
-0xaa DATATYPE_BIND		//bind step 1
-0x55 DATATYPE_CONFIG	//bind step 2
-0x22 DATATYPE_OK		//bind step 3
-0xff DATATYPE_ATTEMP	//reconn
-)
-
-(
-5 BIND_MODE_CONTINUE
-)
Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/g24_protocol_stack/24g_receiver.format
===================================================================
--- /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/g24_protocol_stack/24g_receiver.format	(revision 5679)
+++ /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/g24_protocol_stack/24g_receiver.format	(nonexistent)
@@ -1,50 +0,0 @@
-
-
-xmemalloc g24_rx(
-2 mem_cb_24g_receive_process
-2 mem_cb_24g_ackpayload
-2 mem_cb_24g_data_device1
-2 mem_cb_24g_data_device2
-34 mem_24g_rxdata_temp
-1 mem_24g_abort_packet
-4 mem_24g_hop_btclk
-1 mem_24g_hop_interval
-1 mem_24g_pair_mode
-1 mem_24g_ackpayload_enable
-1 mem_24g_hop_packet
-1 mem_24g_mode_switch
-1 mem_24g_nodata_timer_enable
-
-1 mem_24g_mode_init
-1 mem_24g_work_mode
-1 mem_24g_time_slice
-1 mem_24g_self_last_ch
-1 mem_24g_self_ch_number
-1 mem_24g_self_config_ch_once
-1 mem_24g_device1_last_ch
-1 mem_24g_device1_ch_number
-1 mem_24g_device1_config_ch_once
-1 mem_24g_device2_last_ch
-1 mem_24g_device2_ch_number
-1 mem_24g_device2_config_ch_once
-1 mem_24g_led_status
-1 mem_24g_bind_mode_continue
-
-1 mem_tx_power_temp
-
-1 mem_24g_mode_B_S_switch
-1 mem_24g_mode_B_S_switch_init
-2 mem_24g_mode_B_S_switch_cnt
-1 mem_24g_mode_B_S_switch_exit
-1 mem_24g_B_S_time_slice
-1 mem_24g_B_S_mode_switch_disable
-
-1 mem_24g_bind_device_living
-)
-
-
-(
-0 bit_ack_24g
-)
-
-
Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/g24_protocol_stack/24g_reconn.format
===================================================================
--- /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/g24_protocol_stack/24g_reconn.format	(revision 5679)
+++ /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/g24_protocol_stack/24g_reconn.format	(nonexistent)
@@ -1,30 +0,0 @@
-xmemalloc g24_tx(
-2 mem_24g_reconn_timeout_init
-2 mem_24g_reconn_timeout
-2 mem_24g_reconn_count
-1 mem_24g_reconn_type
-1 mem_24g_fast_conn_enable
-4 mem_24g_fast_conn_addr
-4 mem_24g_receiver_addr
-1 mem_24g_fast_conn_temp_ch
-1 mem_24g_receiver_temp_ch
-1 mem_24g_device_temp_ch
-
-)
-
-xmemalloc g24_rx(
-4 mem_24g_transmitter_addr
-4 mem_24g_device1_addr
-4 mem_24g_device2_addr
-
-)
-
-(//mem_24g_reconn_type
-0 DEFAULT_24G_DEVICE
-1 FAST_CONN_AND_RECEIVER
-2 FAST_CONN_AND_3_0_ADDR
-3 RECEIVER_AND_3_0_ADDR
-4 PAIR_AND_3_0_ADDR
-5 PAIR_AND_RECEIVER
-)
-
Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/g24_protocol_stack/24g_rssi.format
===================================================================
--- /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/g24_protocol_stack/24g_rssi.format	(revision 5679)
+++ /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/g24_protocol_stack/24g_rssi.format	(nonexistent)
@@ -1,40 +0,0 @@
-
-xmemalloc g24(
-1 mem_rssi_buff_index
-)
-
-
-xmemalloc g24_tx(
-1 mem_rssi_signal_index
-2 mem_rssi_signal_buf_ptr
-
-)
-
-
-xmemalloc g24_rx(
-1 mem_rssi_noise_avg
-1 mem_rssi_noise_index
-
-1 mem_rssi_noise_self_avg
-1 mem_rssi_noise_device1_avg
-1 mem_rssi_noise_device2_avg
-1 mem_rssi_noise_self_index
-1 mem_rssi_noise_device1_index
-1 mem_rssi_noise_device2_index
-
-2 mem_rssi_noise_buffer_ptr
-2 mem_rssi_noise_self_buffer_ptr
-2 mem_rssi_noise_device1_buffer_ptr
-2 mem_rssi_noise_device2_buffer_ptr
-
-)
-
-
-
-(
-0x50 RSSI_THRESH_NOISE
-)
-
-
-
-
Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/g24_protocol_stack/24g_transmitter.format
===================================================================
--- /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/g24_protocol_stack/24g_transmitter.format	(revision 5679)
+++ /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/g24_protocol_stack/24g_transmitter.format	(nonexistent)
@@ -1,67 +0,0 @@
-
-
-xmemalloc g24_tx(
-2 mem_cb_24g_transmit_data
-2 mem_cb_24g_search_receiver
-2 mem_cb_24g_lpm_before
-2 mem_cb_24g_transmit_short_sleep
-2 mem_cb_24g_transmit_long_sleep
-
-1 mem_24g_conn_sm
-
-1 mem_24g_ensure
-2 mem_24g_txfail_cnt
-1 mem_24g_attempt_fail_flag
-
-1 mem_24g_retry
-1 mem_24g_abort_pac
-1 mem_24g_max_retry
-4 mem_24g_device_addr
-3 mem_24g_short_sleep_set
-8 mem_24g_long_sleep_set
-4 mem_24g_long_sleep_set1
-
-1 mem_24g_pac_index
-1 mem_24g_transmit_by_interrupt
-2 mem_24g_transmit_by_interrupt_exit_count
-2 mem_24g_transmit_by_interrupt_exit_count_init
-2 mem_24g_long_sleep_param_update_timer_init
-2 mem_24g_long_sleep_param_update_timer
-
-1 mem_24g_fast_hop_count
-2 mem_24g_retransmit
-)
-
-(
-1 NO_ACK_24G
-0 WITH_ACK_24G
-)
-
-(//mem_24g_conn_sm
-0 STATE_24G_STOP
-0 STATE_24G_START
-1 STATE_24G_PAIR
-2 STATE_24G_RECONN
-)
-
-(//mem_24g_transmit_by_interrupt
-1 G24_TX_TIMER_INT_ENABLE
-0 G24_TX_TIMER_INT_DISABLE
-)
-
-
-(
-1 OFFSET_DATA_TYPE
-2 OFFSET_LR_DATA_TYPE
-)
-
-(
-0x017700 G24_LONG_SLEEP_STEP1	//8ms
-0x36ee80 G24_LONG_SLEEP_STEP2	//300ms
-0x124f80 G24_LONG_SLEEP_STEP3	//100ms
-63500 G24_8MS_INTERVAL_PARAM		//8ms
-12210 G24_4MS_INTERVAL_PARAM
-)
-
-
-
Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/g24_protocol_stack/24g_txpower_ctrl.format
===================================================================
--- /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/g24_protocol_stack/24g_txpower_ctrl.format	(revision 5679)
+++ /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/g24_protocol_stack/24g_txpower_ctrl.format	(nonexistent)
@@ -1,20 +0,0 @@
-
-xmemalloc g24_tx(
-1 mem_rssi_avg_received
-1 mem_power_ctrl_level
-1 mem_power_ctrl_pac_succ_cnt
-1 mem_power_ctrl_pac_succ_cnt_init
-
-1 mem_rssi_dis_min_24g
-1 mem_rssi_dis_max_24g
-1 mem_rssi_hex_received_max_value
-
-1 mem_rssi_dis_min_ble
-1 mem_rssi_dis_max_ble
-)
-
-
-(
-50 POWER_CTRL_DECRS_THRESHOLD
-)
-
Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/hci.format
===================================================================
--- /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/hci.format	(revision 5679)
+++ /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/hci.format	(nonexistent)
@@ -1,520 +0,0 @@
-
-
-memalloc hci_boot(
-2 mem_hci_opcode_ocf
-1 mem_hci_opcode_ogf
-
-//event head
-1 mem_hci_event_head_type
-1 mem_hci_event_head_event_code
-1 mem_hci_event_para_total_length
-
-//command complete
-1 mem_hci_command_complete_num_hci_command_packet
-0 mem_hci_command_complete_command_opcode
-2 mem_hci_opcode
-0 mem_hci_command_complete_return_parameter
-1 mem_hci_command_complete_return_parameter_status
-0 mem_hci_command_complete_return_parameter_chip_id
-
-)
-
-xmemalloc hci_boot(
-1 mem_hci_uart_tx_gpio
-1 mem_hci_uart_rx_gpio
-1 mem_hci_uart_rts_gpio
-1 mem_hci_uart_cts_gpio
-1 mem_hci_pwm_12mhz_gpio
-)
-
-(
-0x07 HCI_UART_TX_GPIO_NUM
-0x06 HCI_UART_RX_GPIO_NUM
-0x09 HCI_UART_RTS_GPIO_NUM
-0x0a HCI_UART_CTS_GPIO_NUM
-0x0c HCI_PMW_12MHZ_GPIO_NUM
-)
-
-(
-0x00 COMMAND_SUCCEEDED
-0x01 COMMAND_UNKNOWN
-0x0c COMMAND_DISALLOWED
-)
-
-//HCI H4 Packet TYPE
-(
-0x01 HCI_H4_TYPE_CMD
-0x02 HCI_H4_TYPE_ACL
-0x04 HCI_H4_TYPE_EVENT
-)
-
-(
-0x00 BT_ACL_START_NO_FLUSH
-0x01 BT_ACL_CONT
-0x02 BT_ACL_START
-)
-
-// HCI command opcode group field values
-(
-0x01 HCI_OGF_LINK_CONTROL
-0x02 HCI_OGF_LINK_POLICY
-0x03 HCI_OGF_CONTROLLER_AND_BASEBAND
-0x04 HCI_OGF_INFOMATIONAL_PARAM
-0x05 HCI_OGF_STATUS_PARAM
-0x06 HCI_OGF_TEST
-0x08 HCI_OGF_LE_CONTROLLER
-0x3f HCI_OGF_VENDOR_SPECIFIC_DEBUG
-)
-
-// HCI link control opcode command field values, OGF=1
-(
-0x01 HCI_INQUIRY 
-0x02 HCI_INQUIRY_CANCEL 
-0x03 HCI_PERIODIC_INQUIRY_MODE 
-0x04 HCI_EXIT_PERIODIC_INQUIRY_MODE 
-0x05 HCI_CREATE_CONNECTION 
-0x06 HCI_DISCONNECT 
-0x07 HCI_ADD_SCO_CONNECTION 
-0x08 HCI_CREATE_CONNECTION_CANCEL
-0x09 HCI_ACCEPT_CONNECTION 
-0x0A HCI_REJECT_CONNECTION 
-0x0B HCI_LINK_KEY_REQUEST_REPLY 
-0x0C HCI_LINK_KEY_REQUEST_NEGATIVE_REPLY 
-0x0D HCI_PIN_CODE_REQUEST_REPLY 
-0x0E HCI_PIN_CODE_REQUEST_NEGATIVE_REPLY 
-0x0F HCI_CHANGE_CONNECTION_PACKET_TYPE 
-0x11 HCI_AUTHENTICATION_REQUESTED 
-0x13 HCI_SET_CONNECTION_ENCRYPTION 
-0x15 HCI_CHANGE_CONNECTION_LINK_KEY 
-0x17 HCI_MASTER_LINK_KEY 
-0x19 HCI_REMOTE_NAME_REQUEST 
-0x1A HCI_REMOTE_NAME_REQUEST_CANCEL
-0x1B HCI_READ_REMOTE_SUPPORTED_FEATURES 
-0x1C HCI_READ_REMOTE_EXT_FEATURES 
-0x1D HCI_READ_REMOTE_VERSION_INFORMATION 
-0x1F HCI_READ_CLOCK_OFFSET 
-0x20 HCI_READ_LMP_HANDLE
-0x28 HCI_SETUP_SCO_CONNECTION
-0x29 HCI_ACCEPT_SCO_CONNECTION
-0x2A HCI_REJECT_SCO_CONNECTION
-0x2B HCI_IO_CAP_REQUEST_REPLY
-0x2C HCI_USER_CONFIRMATION_REQUEST_REPLY
-0x2D HCI_USER_CONFIRMATION_REQUEST_NEGATIVE_REPLY
-0x2E HCI_USER_PASSKEY_REQUEST_REPLY
-0x2F HCI_USER_PASSKEY_REQUEST_NEGATIVE_REPLY
-0x30 HCI_REMOTE_OOB_DATA_REQUEST_REPLY
-0x33 HCI_REMOTE_OOB_DATA_REQUEST_NEGATIVE_REPLY
-0x34 HCI_IO_CAPABILITY_REQUEST_NEGATIVE_REPLY
-0x35 HCI_CREATE_PHYSICAL_LINK
-0x36 HCI_ACCEPT_PHYSICAL_LINK
-0x37 HCI_DISCONNECT_PHYSICAL_LINK
-0x38 HCI_CREATE_LOGICAL_LINK
-0x39 HCI_ACCEPT_LOGICAL_LINK
-0x3A HCI_DISCONNECT_LOGICAL_LINK
-0x3B HCI_LOGICAL_LINK_CANCEL
-0x3C HCI_FLOW_SPEC_MODIFY
-0x3D HCI_ENHANCED_SETUP_SYNCHRONOUS_CONNECTION
-0x3E HCI_ENHANCED_ACCEPT_SYNCHRONOUS_CONNECTION_REQUEST
-0x3F HCI_TRUNCATED_PAGE
-0x40 HCI_TRUNCATED_PAGE_CANCEL
-0x41 HCI_SET_CONNECTIONLESS_SLAVE_BROADCAST
-0x42 HCI_SET_CONNECTIONLESS_SLAVE_BROADCAST_RECEIVE
-0x43 HCI_START_SYNCHRONIZATION_TRAIN
-0x44 HCI_RECEIVE_SYNCHRONIZATION_TRAIN
-0x45 HCI_REMOTE_OOB_EXTENDED_DATA_REQUEST_REPLY
-)
-
-
-// HCI link policy commands OCF value, OGF=2
-(
-0x01 HCI_HOLD_MODE 
-0x03 HCI_SNIFF_MODE 
-0x04 HCI_EXIT_SNIFF_MODE 
-0x05 HCI_PARK_MODE 
-0x06 HCI_EXIT_PARK_MODE 
-0x07 HCI_QOS_SETUP 
-0x09 HCI_ROLE_DISCOVERY 
-0x0B HCI_SWITCH_ROLE 
-0x0C HCI_READ_LINK_POLICY_SETTINGS 
-0x0D HCI_WRITE_LINK_POLICY_SETTINGS 
-0x0e HCI_READ_DEFAULT_LINK_POLICY_SETTINGS
-0x0f HCI_WRITE_DEFAULT_LINK_POLICY_SETTINGS
-0x10 HCI_FLOW_SPECIFICATION
-0x11 HCI_SNIFF_SUBRATING
-)
-
-// HCI host controller and baseband commands OCF values, OGF=3
-(
-0x01 HCI_SET_EVENT_MASK 
-0x03 HCI_RESET 
-0x05 HCI_SET_EVENT_FILTER 
-0x08 HCI_FLUSH 
-0x09 HCI_READ_PIN_TYPE 
-0x0A HCI_WRITE_PIN_TYPE 
-0x0B HCI_CREATE_NEW_UNIT_KEY 
-0x0D HCI_READ_STORED_LINK_KEY 
-0x11 HCI_WRITE_STORED_LINK_KEY 
-0x12 HCI_DELETE_STORED_LINK_KEY 
-0x13 HCI_WRITE_LOCAL_NAME 
-0x14 HCI_READ_LOCAL_NAME 
-0x15 HCI_READ_CONN_ACCEPT_TIMEOUT 
-0x16 HCI_WRITE_CONN_ACCEPT_TIMEOUT 
-0x17 HCI_READ_PAGE_TIMEOUT 
-0x18 HCI_WRITE_PAGE_TIMEOUT 
-0x19 HCI_READ_SCAN_ENABLE 
-0x1A HCI_WRITE_SCAN_ENABLE 
-0x1B HCI_READ_PAGE_SCAN_ACTIVITY 
-0x1C HCI_WRITE_PAGE_SCAN_ACTIVITY 
-0x1D HCI_READ_INQUIRY_SCAN_ACTIVITY 
-0x1E HCI_WRITE_INQUIRY_SCAN_ACTIVITY 
-0x1F HCI_READ_AUTHENTICATION_ENABLE 
-0x20 HCI_WRITE_AUTHENTICATION_ENABLE 
-0x21 HCI_READ_ENCRYPTION_MODE 
-0x22 HCI_WRITE_ENCRYPTION_MODE 
-0x23 HCI_READ_CLASS_OF_DEVICE 
-0x24 HCI_WRITE_CLASS_OF_DEVICE 
-0x25 HCI_READ_VOICE_SETTING 
-0x26 HCI_WRITE_VOICE_SETTING 
-0x27 HCI_READ_AUTOMATIC_FLUSH_TIMEOUT 
-0x28 HCI_WRITE_AUTOMATIC_FLUSH_TIMEOUT 
-0x29 HCI_READ_NUM_BROADCAST_RETRANSMISSIONS 
-0x2A HCI_WRITE_NUM_BROADCAST_RETRANSMISSIONS 
-0x2B HCI_READ_HOLD_MODE_ACTIVITY 
-0x2C HCI_WRITE_HOLD_MODE_ACTIVITY 
-0x2D HCI_READ_TRANSMIT_POWER_LEVEL 
-0x2E HCI_READ_SCO_FLOW_CONTROL_ENABLE 
-0x2F HCI_WRITE_SCO_FLOW_CONTROL_ENABLE 
-0x31 HCI_SET_CONTROLLER_TO_HOST_FLOW_CONTROL 
-0x33 HCI_HOST_BUFFER_SIZE 
-0x35 HCI_HOST_NUM_COMPLETED_PACKETS 
-0x36 HCI_READ_LINK_SUPERVISION_TIMEOUT 
-0x37 HCI_WRITE_LINK_SUPERVISION_TIMEOUT 
-0x38 HCI_READ_NUMBER_OF_SUPPORTED_IAC 
-0x39 HCI_READ_CURRENT_IAC_LAP 
-0x3A HCI_WRITE_CURRENT_IAC_LAP 
-0x3B HCI_READ_PAGE_SCAN_PERIOD_MODE 
-0x3C HCI_WRITE_PAGE_SCAN_PERIOD_MODE 
-0x3D HCI_READ_PAGE_SCAN_MODE 
-0x3E HCI_WRITE_PAGE_SCAN_MODE 
-0x3F HCI_SET_AFH_CHANNEL_CLASSIFICATION 
-
-
-0x42 HCI_READ_INQUIRY_SCAN_TYPE 
-0x43 HCI_WRITE_INQUIRY_SCAN_TYPE 
-0x44 HCI_READ_INQUIRY_MODE 
-0x45 HCI_WRITE_INQUIRY_MODE 
-0x46 HCI_READ_PAGE_SCAN_TYPE 
-0x47 HCI_WRITE_PAGE_SCAN_TYPE 
-
-0x48 HCI_READ_AFH_CHANNEL_ACCESSMENT_MODE 
-0x49 HCI_WRITE_AFH_CHANNEL_ACCESSMENT_MODE 
-0x51 HCI_READ_EXTENDED_INQUIRY_RESPONSE
-0x52 HCI_WRITE_EXTENDED_INQUIRY_RESPONSE
-0x53 HCI_REFRESH_ENCRYPTION_KEY
-0x55 HCI_READ_SIMPLE_PAIRING_MODE
-0x56 HCI_WRITE_SIMPLE_PAIRING_MODE
-0x57 HCI_READ_LOCAL_OOB_DATA
-0x58 HCI_READ_INQUIRY_RESPONSE_TRANSMIT_POWER_LEVEL
-0x59 HCI_WRITE_INQUIRY_TRANSMIT_POWER_LEVEL
-0x60 HCI_SEND_KEYPRESS_NOTIFICATION
-0x5A HCI_READ_DEFAULT_ERRONEOUS_DATA_REPORTING
-0x5B HCI_WRITE_DEFAULT_ERRONEOUS_DATA_REPORTING
-0x5F HCI_ENHANCED_FLUSH
-0x61 HCI_READ_LOGICAL_LINK_ACCEPT_TIMEOUT
-0x62 HCI_WRITE_LOGICAL_LINK_ACCEPT_TIMEOUT
-0x63 HCI_SET_EVENT_MASK_PAGE_2
-0x64 HCI_READ_LOCATION_DATA
-0x65 HCI_WRITE_LOCATION_DATA
-0x66 HCI_READ_FLOW_CONTROL_MODE
-0x67 HCI_WRITE_FLOW_CONTROL_MODE
-0x68 HCI_READ_ENHANCE_TRANSMIT_POWER_LEVEL
-0x69 HCI_READ_BEST_EFFORT_FLUSH_TIMEOUT
-0x6A HCI_WRITE_BEST_EFFORT_FLUSH_TIMEOUT
-0x6B HCI_SHORT_RANGE_MODE
-0x6C HCI_READ_LE_HOST_SUPPORT
-0x6D HCI_WRITE_LE_HOST_SUPPORT
-0x6E HCI_SET_MWS_CHANNEL_PARAMETERS
-0x6F HCI_SET_EXTERNAL_FRAME_CONFIGURATION
-0x70 HCI_SET_MWS_SIGNALING
-0x71 HCI_SET_MWS_TRANSPORT_LAYER
-0x72 HCI_SET_MWS_SCAN_FREQUENCY_TABLE
-0x73 HCI_SET_MWS_PATTERN_CONFIGURATION
-0x74 HCI_SET_RESERVED_LT_ADDR
-0x75 HCI_DELETE_RESERVED_LT_ADDR
-0x76 HCI_SET_CONNECTIONLESS_SLAVE_BROADCAST_DATA
-0x77 HCI_READ_SYNCHRONIZATION_TRAIN_PARAMETERS
-0x78 HCI_WRITE_SYNCHRONIZATION_TRAIN_PARAMETERS
-0x79 HCI_READ_SECURE_CONNECTIONS_HOST_SUPPORT
-0x7A HCI_WRITE_SECURE_CONNECTIONS_HOST_SUPPORT
-0x7B HCI_READ_AUTHENTICATED_PAYLOAD_TIMEOUT
-0x7C HCI_WRITE_AUTHENTICATED_PAYLOAD_TIMEOUT
-0x7D HCI_READ_LOCAL_OOB_EXTENDED_DATA
-0x7E HCI_READ_EXTENDED_PAGE_TIMEOUT
-0x7F HCI_WRITE_EXTENDED_PAGE_TIMEOUT
-0x80 HCI_READ_EXTENDED_INQUIRY_LENGTH
-0x81 HCI_WRITE_EXTENDED_INQUIRY_LENGTH
-)
-
-
-// HCI informational parameters OCF values, OGF=4
-(
-0x01 HCI_READ_LOCAL_VERSION_INFORMATION 
-0x02 HCI_READ_LOCAL_SUPPORTED_COMMANDS
-0x03 HCI_READ_LOCAL_SUPPORTED_FEATURES 
-0x04 HCI_READ_LOCAL_EXT_FEATURES 
-0x05 HCI_READ_BUFFER_SIZE 
-0x07 HCI_READ_COUNTRY_CODE 
-0x09 HCI_READ_BD_ADDR 
-0x0A HCI_REJECT_CONNECTION_REQUEST
-0x0B HCI_READ_LOCAL_SUPPORTED_CODECS
-)
-
-// HCI status parameters OCF values, OGF=5
-(
-0x01 HCI_READ_FAILED_CONTACT_COUNTER 
-0x02 HCI_RESET_FAILED_CONTACT_COUNTER 
-0x03 HCI_GET_LINK_QUALITY 
-0x05 HCI_READ_RSSI 
-0x06 HCI_READ_AFH_CHANNEL_MAP
-0x07 HCI_READ_BD_CLOCK
-0x08 HCI_READ_ENCRYPTION_KEY_SIZE
-0x09 HCI_READ_LOCAL_AMP_INFO
-0x0A HCI_READ_LOCAL_AMP_ASSOC
-0x0B HCI_WRITE_REMOTE_AMP_ASSOC
-0x0C HCI_GET_MWS_TRANSPORT_LAYER_CONFIGURATION
-0x0D HCI_SET_TRIGGERED_CLOCK_CAPTURE
-)
-
-// HCI testing command OCF values, OGF=6
-(
-0x01 HCI_READ_LOOPBACK_MODE 
-0x02 HCI_WRITE_LOOPBACK_MODE 
-0x03 HCI_ENABLE_DEVICE_UNDER_TEST_MODE 
-0x04 HCI_WRITE_SIMPLE_PAIRING_DEBUG_MODE
-0x07 HCI_ENABLE_AMP_RECEIVER_REPORTS
-0x08 HCI_AMP_TEST_END
-0x09 HCI_AMP_TEST
-0x0A HCI_WRITE_SECURE_CONNECTIONS_TEST_MODE
-)
-
-// HCI vendor specific command OCF values -OGF=3F
-(
-0x01 HCI_WRITE_BD_ADDR 
-0x02 HCI_READ_INQUIRY_RESPONSE_TIMEOUT 
-0x03 HCI_WRITE_INQUIRY_RESPONSE_TIMEOUT 
-0x04 HCI_READ_PAGE_SCAN_REPETITION_MODE 
-0x05 HCI_WRITE_PAGE_SCAN_REPETITION_MODE 
-0x06 HCI_READ_PAGE_RESPONSE_TIMEOUT 
-0x07 HCI_WRITE_PAGE_RESPONSE_TIMEOUT 
-0x08 HCI_READ_NEW_CONNECTION_TIMEOUT 
-0x09 HCI_WRITE_NEW_CONNECTION_TIMEOUT 
-0x0a HCI_INITIALIZE_BASEBAND 
-0x0b HCI_WRITE_LOCAL_SUPPORTED_FEATURES 
-0x0c HCI_WRITE_PARK_PARAMETERS 
-0x0d HCI_READ_PARK_PARAMETERS 
-0x0e HCI_WRITE_QUALITY_OF_SERVICE 
-0x0f HCI_NOT_USED 
-0x10 HCI_MODIFY_BEACON_PARAMETERS 
-0x11 HCI_UNPARK_USING_PM_ADDR 
-0x12 HCI_WRITE_HOPPING_CHANNELS 
-0x13 HCI_SLEEP_FOREVER_MODE 
-0x14 HCI_WRITE_AUTO_PAGE_SCAN_ENABLE 
-0x15 HCI_READ_AUTO_PAGE_SCAN_ENABLE 
-0x16 HCI_SET_ENCRYPTION_KEY_SIZE 
-0x17 HCI_INVALIDATE_FLASH_AND_REBOOT 
-0x18 HCI_UPDATE_UART_BAUD_RATE 
-0x19 HCI_WRITE_GPIO_1_4_AS_OUTPUT 
-0x1A HCI_WRITE_GPIO_2_LED 
-0x1B HCI_SET_TESTMODE_TYPE 
-0x1C HCI_WRITE_SCO_PCM_INT_PARAM 
-0x1D HCI_READ_SCO_PCM_INT_PARAM 
-0x1E HCI_WRITE_PCM_DATA_FORMAT_PARAM 
-0x1F HCI_READ_PCM_DATA_FORMAT_PARAM 
-0x20 HCI_WRITE_COMFORT_NOISE_PARAM 
-0x21 HCI_READ_COMFORT_NOISE_PARAM 
-0x22 HCI_WRITE_SCO_TS 
-0x23 HCI_READ_SCO_TS 
-0x24 HCI_WRITE_PCM_LOOPBACK_MODE 
-0x25 HCI_READ_PCM_LOOPBACK_MODE 
-0x26 HCI_SET_TRANSMIT_POWER 
-0x27 HCI_SET_SLEEPMODE_PARAM 
-0x28 HCI_READ_SLEEPMODE_PARAM 
-0x29 HCI_SLEEPMODE_CMD 
-0x2A HCI_DELAY_PERIPHERAL_SCO_STARTUP 
-0x2B HCI_WRITE_RECEIVE_ONLY 
-0x2C HCI_WRITE_RATE_CONTROL 
-0x2D HCI_TX_UNMOD_CARRIER 
-0x2E HCI_DOWNLOAD_MINIDRIVER 
-0x2F HCI_CRYSTAL_PPM 
-0x30 HCI_SET_POWER_AMP_BIAS 
-0x31 HCI_SET_HAM_BEHAVIOR 
-0x32 HCI_SET_AFH_BEHAVIOR 
-0x33 HCI_READ_USER_DEFINED_NVRAM 
-0x34 HCI_ENABLE_RADIO 
-0x35 HCI_READ_DIAGNOSTIC_INFO 
-0x36 HCI_GET_HID_DEVICE_LIST 
-0x37 HCI_ADD_HID_DEVICE 
-0x38 HCI_READ_APP_FW_CONFIG_VERSION 
-0x39 HCI_DELETE_HID_DEVICE 
-0x3B HCI_ENABLE_USB_HID_EMULATION 
-// 0x3A available
-// 0x3B available
-0x3C HCI_SEND_LMPDU 
-0x3D HCI_AUTO_PAIR_REQ 
-0x3E HCI_READ_VS_EXTENSION 
-0x3F HCI_WRITE_VS_EXTENSION 
-
-0x77 HCI_OPCODE_FC77
-0x79 HCI_OPCODE_FC79
-0xC4 HCI_DOWNLOAD_PATCH
-0xCC HCI_OPCODE_FCCC
-
-0x00 HCI_VENDOR_CMD_RESET
-0x01 HCI_VENDOR_CMD_CHIPID
-0x02 HCI_VENDOR_CMD_BAUD
-0x03 HCI_VENDOR_CMD_PATCH
-0x04 HCI_VENDOR_CMD_PATCH_DONE
-0x05 HCI_VENDOR_CMD_ECHO
-0x06 HCI_VENDOR_CMD_BDADDR
-
-0x07 HCI_VENDOR_CMD_ENTER_LPM
-0x08 HCI_VENDOR_CMD_COMMU_READY
-
-0x10 HCI_VENDOR_CMD_MEM
-0x11 HCI_VENDOR_CMD_EEP
-
-0X12 HCI_VENDOR_CMD_PATCH_SEC_INIT
-0X13 HCI_VENDOR_CMD_PATCH_SEC
-0x14 HCI_VENDOR_CMD_SET_FLOW_CONTROL
-)
-
-//HCI LE controller command OCF values, OGF=8
-(
-0x01 HCI_LE_SET_EVENT_MASK
-0x02 HCI_LE_READ_BUFFER_SIZE
-0x03 HCI_LE_READ_LOCAL_SUPPORTED_FEATURES
-0x05 HCI_LE_SET_RANDOM_ADDRESS
-0x06 HCI_LE_SET_ADVERTISING_PARAMETERS
-0x07 HCI_LE_READ_ADVERTISING_CHANNEL_TX_POWER
-0x08 HCI_LE_SET_ADVERTISING_DATA
-0x09 HCI_LE_SET_SCAN_RESPONSE_DATA
-0x0A HCI_LE_SET_ADVERTISE_ENABLE
-0x0B HCI_LE_SET_SCAN_PARAMETERS
-0x0C HCI_LE_SET_SCAN_ENABLE
-0x0D HCI_LE_CREATE_CONNECTION
-0x0E HCI_LE_CREATE_CONNECTION_CANCEL
-0x0F HCI_LE_READ_WHITE_LIST_SIZE
-0x10 HCI_LE_CLEAR_WHITE_LIST
-0x11 HCI_LE_ADD_DEVICE_TO_WHITE_LIST
-0x12 HCI_LE_REMOVE_DEVICE_FROM_WHITE_LIST
-0x13 HCI_LE_CONNECTION_UPDATE
-0x14 HCI_LE_SET_HOST_CHANNEL_CLASSIFICATION
-0x15 HCI_LE_READ_CHANNEL_MAP
-0x16 HCI_LE_READ_REMOTE_USED_FEATURES
-0x17 HCI_LE_ENCRYPT
-0x18 HCI_LE_RAND
-0x19 HCI_LE_START_ENCRYPTION
-0x1A HCI_LE_LONG_TERM_KEY_REQUEST_REPLY
-0x1B HCI_LE_LONG_TERM_KEY_REQUEST_NEGATIVE_REPLY
-0x1C HCI_LE_READ_SUPPORTED_STATES
-0x1D HCI_LE_RECEIVER_TEST
-0x1E HCI_LE_TRANSMITTER_TEST
-0x1F HCI_LE_TEST_END
-0x20 HCI_LE_REMOTE_CONNECTION_PARAMETER_REQUEST_REPLY
-0x21 HCI_LE_REMOTE_CONNECTION_PARAMETER_REQUEST_NEGATIVE_REPLY
-)
-// HCI event code
-(
-0x01 HCI_EVENT_INQUIRY_COMPLETE
-0x02 HCI_EVENT_INQUIRY_RESULT
-0x03 HCI_EVENT_CONNECTION_COMPLETE
-0x04 HCI_EVENT_CONNECTION_REQUEST
-0x05 HCI_EVENT_DISCONNECTION_COMPLETE
-0x06 HCI_EVENT_AUTHENTICATION_COMPLETE
-0x07 HCI_EVENT_REMOTE_NAME_REQUEST_COMPLETE
-0x08 HCI_EVENT_ENCRYPTION_CHANGE_COMPLETE
-0x09 HCI_EVENT_CHANGE_CONNECTION_LINK_KEY_COMPLETE
-0x0A HCI_EVENT_MASTER_LINK_KEY_COMPLETE
-0x0B HCI_EVENT_READ_REMOTE_FEATURES_COMPLETE
-0x0C HCI_EVENT_READ_REMOTE_VERSION_INFORMATION_COMPLETE
-0x0D HCI_EVENT_QOS_SETUP_COMPLETE
-0x0E HCI_EVENT_COMMAND_COMPLETE
-0x0F HCI_EVENT_COMMAND_STATUS
-0x10 HCI_EVENT_HARDWARE_ERROR
-0x11 HCI_EVENT_FLUSH_OCCURRED
-0x12 HCI_EVENT_ROLE_CHANGE
-0x13 HCI_EVENT_NUM_COMPLETED_PACKETS
-0x14 HCI_EVENT_MODE_CHANGE
-0x15 HCI_EVENT_RETURN_LINK_KEYS
-0x16 HCI_EVENT_PIN_CODE_REQUEST
-0x17 HCI_EVENT_LINK_KEY_REQUEST
-0x18 HCI_EVENT_LINK_KEY_NOTIFICATION
-0x19 HCI_EVENT_LOOPBACK_COMMAND
-0x1A HCI_EVENT_DATA_BUFFER_OVERFLOW
-0x1B HCI_EVENT_MAX_SLOTS_CHANGE
-0x1C HCI_EVENT_READ_CLOCK_OFFSET_COMPLETE
-0x1D HCI_EVENT_CONNECTION_PACKET_TYPE_CHANGED
-0x1E HCI_EVENT_QOS_VIOLATION
-0x1F HCI_EVENT_PAGE_SCAN_MODE_CHANGE
-0x20 HCI_EVENT_PAGE_SCAN_REPETITION_MODE_CHANGE
-0x21 HCI_EVENT_FLOW_SPECIFICATION_COMPLETE
-0x22 HCI_EVENT_INQUIRY_RESULT_WITHRSSI
-0x23 HCI_EVENT_READ_REMOTE_EXT_FEATURES_COMPLETE
-0x2C HCI_EVENT_SCO_CONNECTION_COMPLETE
-0x2D HCI_EVENT_SCO_CONNECTION_CHANGED
-0x2E HCI_EVENT_SNIFF_SUBRATING
-0x2F HCI_EVENT_EXT_INQUIRY_RESULT
-0x30 HCI_EVENT_ENCRYPT_KEY_REFRESH_COMPLETE
-0x31 HCI_EVENT_IO_CAP_REQ
-0x32 HCI_EVENT_IO_CAP_RESPONSE
-0x33 HCI_EVENT_USER_CONFIRMATION_REQUEST
-0x34 HCI_EVENT_UESR_PASSKEY_REQUEST
-0x35 HCI_EVENT_REMOTE_OOB_DATA_REQUEST
-0x36 HCI_EVENT_SIMPLE_PAIRING_COMPLETE
-0x38 HCI_EVENT_LINK_SUPERVISION_TIMEOUT_CHANGED
-0x39 HCI_EVENT_ENHANCED_FLUSH_COMPLETE
-0x3B HCI_EVENT_USER_PASSKEY_NOTIFICATION
-0x3C HCI_EVENT_KEYPRESS_NOTIFICATION
-0x3D HCI_EVENT_REMOTE_HOST_SUPPORTED_FEATURES_NOTIFICATION 
-0x3E HCI_EVENT_LE_META_EVENT
-0x40 HCI_EVENT_PHYSICAL_LINK_COMPLETE
-0x41 HCI_EVENT_CHANNEL_SELECTED
-0x42 HCI_EVENT_DISCONNECTION_PHYSICAL_LINK_COMPLETE
-0x43 HCI_EVENT_PHYSICAL_LINK_LOSS_EARLY_WARNING
-0x44 HCI_EVENT_PHYSICAL_LINK_RECOVERY
-0x45 HCI_EVENT_LOGICAL_LINK_COMPLETE
-0x46 HCI_EVENT_DISCONNECTION_LOGICAL_LINK_COMPLETE
-0x47 HCI_EVENT_FLOW_SPEC_MODIFY_COMPLETE
-0x48 HCI_EVENT_NUMBER_OF_COMPLETED_DATA_BLOCKS
-0x49 HCI_EVENT_AMP_START_TEST
-0x4A HCI_EVENT_AMP_TEST_END
-0x4B HCI_EVENT_AMP_RECEIVER_REPORT
-0x4C HCI_EVENT_SHORT_RANGE_MODE_CHANGE_COMPLETE
-0x4D HCI_EVENT_AMP_STATUS_CHANGE
-0x4E HCI_EVENT_TRIGGERED_CLOCK_CAPTURE
-0x4F HCI_EVENT_SYNCHRONIZATION_TRAIN_COMPLETE
-0x50 HCI_EVENT_SYNCHRONIZATION_TRAIN_RECEIVED
-0x51 HCI_EVENT_CONNECTIONLESS_SLAVE_BROADCAST_RECEIVE
-0x52 HCI_EVENT_CONNECTIONLESS_SLAVE_BROADCAST_TIMEOUT
-0x53 HCI_EVENT_TRUNCATED_PAGE_COMPLETE
-0x54 HCI_EVENT_SLAVE_PAGE_RESPONSE_TIMEOUT
-0x55 HCI_EVENT_CONNECTIONLESS_SLAVE_BROADCAST_CHANNEL_MAP_CHANGE
-0x56 HCI_EVENT_INQUIRY_RESPONSE_NOTIFICATION
-0x57 HCI_EVENT_AUTHENTICATED_PAYLOAD_TIMEOUT_EXPIRED
-
-0xFE HCI_EVENT_LOGO_TESTING
-0xFF HCI_EVENT_VENDOR_SPECIFIC
-)
-(
-0x01 HCI_VENDOR_EVENT_COMMU_READY
-)
-//HCI LE SUBEVENT CODE
-(
-0x01 HCI_LE_SUBEVENT_CONN_COMPLETE
-0x02 HCI_LE_SUBEVENT_ADV_REPORT
-0x03 HCI_LE_SUBEVENT_CONN_UPDATE_COMPLETE
-0x04 HCI_LE_SUBEVENT_REMOTE_FEATURE_COMPLETE
-0x05 HCI_LE_SUBEVENT_LTK_REQUEST
-0x06 HCI_LE_SUBEVENT_REMOTE_CONN_PARAM_REQ
-)
-
Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/hid.format
===================================================================
--- /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/hid.format	(revision 5679)
+++ /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/hid.format	(nonexistent)
@@ -1,228 +0,0 @@
-
-//dpi eeprom addr
-xmemalloc g24_tx_hid(
-
-// adc
-//adc struct
-0 mem_device_vdd_calculate_set
-2 mem_device_vdd_full_vol
-2 mem_device_vdd_empty_vol
-2 mem_device_vdd_low_vol
-2 mem_device_vdd_now_vol
-1 mem_adc_channel_gpio
-1 mem_adc_low_volatage_led_timer_count
-1 mem_device_adc_last_low_voltage_flag
-2 mem_device_discovery_timeout
-2 mem_device_24g_pair_timeout_init
-1 mem_device_direct_timeout
-1 mem_device_24g_reconn_timeout_init
-1 mem_device_24g_pair_tx_power
-1 mem_device_normal_tx_power
-1 mem_rssi_dis_min_24g_init
-1 mem_rssi_dis_max_24g_init
-1 mem_rssi_hex_received_max_value_init
-1 mem_rssi_dis_min_ble_init
-1 mem_rssi_dis_max_ble_init
-
-1 mem_mouse_key
-2 mem_mouse_x
-2 mem_mouse_y
-1 mem_mouse_z
-1 mem_mouse_tz
-1 mem_mouse_xy_h
-1 mem_mouse_key_last
-
-1 mem_device_switch_gpio
-1 mem_device_reuse_2ice_gpio
-1 mem_sensor_motion_gpio
-
-//mouse wheel
-1 mem_whee_a_data_gpio
-1 mem_whee_b_data_gpio
-1 mem_wheel_tb_old_pinlevel
-1 mem_wheel_tb_new_pinlevel
-1 mem_wheel_tog 
-1 mem_mouse_tz_data
-1 mem_mwheel_b_old_pinlevel
-1 mem_mwheel_b_new_pinlevel
-1 mem_mwheel_tog 
-1 mem_mouse_z_data
-1 mem_mouse_wheel_trigger
-1 mem_mouse_wheel_trigger_timer
-
-// usb
-1 mem_wire_usb_interval
-1 mem_usb_addr
-1 mem_usb_vdd_status
-1 mem_usb_keyboard_flag
-
-//three devices param
-//eeprom/flash
-0 mem_device_information_start
-1 mem_device_flag
-1 mem_device1_type
-6 mem_device1_addr
-6 mem_device1_locall_addr
-
-1 mem_device2_type
-6 mem_device2_addr
-6 mem_device2_locall_addr
-
-1 mem_device3_type
-6 mem_device3_addr
-6 mem_device3_locall_addr
-2 mem_store_flag
-1 mem_mouse_dpi
-4 mem_device_24g_addr
-2 mem_random_addr_increase_count
-
-1 mem_keyboard_24g_fn_lock
-1 mem_keyboard_bt1_fn_lock
-1 mem_keyboard_bt2_fn_lock
-1 mem_keyboard_bt3_fn_lock
-1 mem_keyboard_usb_fn_lock
-1 mem_keyboard_bt1_computer_system
-1 mem_keyboard_bt2_computer_system
-1 mem_keyboard_bt3_computer_system
-1 mem_backlight_on_flag
-1 mem_backlight_on_type
-1 mem_backlight_on_level
-1 mem_backlight_breath_speed
-67 mem_mouse_retention
-0 mem_device_information_end
-
-6 mem_device_compare_addr
-3 mem_flash_base
-4 mem_write_flash_head_temp
-1 mem_store_information_delay_timer
-1 mem_store_information_delay_timer_init
-
-// 2.4G
-1 mem_device_search_dongle_interval
-1 mem_device_search_dongle_ch
-1 mem_device_search_dongle_count
-1 mem_device_search_dongle_action
-1 mem_24g_enter_lpm_timer
-1 mem_mouse_24g_enter_lpm_enable
-1 mem_keyboard_led_status
-
-
-// mouse configured param
-8 mem_mouse_flag 
-1 mem_device_number
-1 mem_device_flag_temp
-1 mem_device_otp_flag_temp
-1 mem_device_fast_direct_timeout
-2 mem_device_24g_power_on_fast_conn_timer
-2 mem_device_24g_search_dongle_time_init
-2 mem_device_no_data_timeout
-1 mem_device_direct_timer
-
-10 mem_customer_key_press
-1 mem_customer_key
-1 mem_customer_data_trigger
-1 mem_customer_data_trigger_last
-3 mem_device_set_analog_bit_set
-1 mem_bt_discovery_count
-1 mem_select_device_count
-1 mem_mouse_commbination_key
-1 mem_select_device_button_statue
-1 mem_commbination_key_statue
-1 mem_combination_ui_button_count
-
-
-1 mem_24g_shutdown_flag
-1 mem_24g_long_sleep_set_level
-
-2 mem_tx_power_factory_param
-
-1 mem_mouse_24g_long_sleep_flag
-
-//no motion pin
-1 mem_mouse_long_mult_count
-1 mem_mouse_long_mult_flag
-1 mem_mouse_current_mult_timer
-
-1 mem_reconn_times
-1 mem_reconn_times_init
-2 mem_device_no_data_timer
-8 mem_mouse_rssi_signal_buf				
-4 mem_btclk_sensor
-1 mem_device_fast_conn_flag
-2 mem_device_discovery_timer
-1 mem_device_need_soft_reset
-
-// le
-1 mem_device_le_bb_connected_flag
-1 mem_device_le_reconnect_flag
-1 mem_device_send_secutiry_request_timer
-
-3 mem_device_le_lap_temp
-3 mem_le_adv_ind
-3 mem_le_adv_direct_ind
-20 mem_le_adv_swift_pair
-1 mem_le_data_len
-2 mem_le_keyboard_handle
-2 mem_le_multimedia_handle
-2 mem_le_systemctrl_handle
-2 mem_le_battery_level_handle
-1 mem_le_battery_level_percentage
-2 mem_le_battery_level_updata_timer_init
-2 mem_le_battery_level_updata_timer
-1 mem_le_conn_param_reject
-64 mem_le_tx_buffer0_omemalloc
-0 mem_le_tx_buffer1_omemalloc
-0 mem_le_tx_buffer2_omemalloc
-0 mem_le_tx_buffer3_omemalloc
-//g24 buff
-0 mem_le_rx_buffer
-70 mem_24g_txbuf_new
-75 mem_24g_txpayload_new
-//auth info
-7 mem_ms_auth_appkey
-16 mem_ms_auth_secret
-6 msm_ms_auth_sn
-2 mem_ms_auth_chip_id
-1 mem_ms_version
-8 mem_ms_recv_ackpayload_temp
-//type
-2 mem_ms_tx_pro_key_flag
-1 mem_ms_tx_pro_key_val
-2 mem_ms_long_press_key_index
-2 mem_ms_tx_nor_pro_data_flag
-//rom
-1 mem_le_connect_status_flag
-1 mem_le_start_encrypt_timer
-7 mem_device_addr_temp
-1 mem_lpm_mult_init
-1 mem_qdec_set_flag
-//patch area
-)
-
-
-(
-0 G24_DISCONN_STATE
-1 G24_CONN_STATE
-
-8 G24_CH_NUMBER
-16 G24_CH_POLL_COUNT
-
-0x20 MOUSE_BLE_L2CAP_TXBUFF_SIZE
-
-0x5a USB_INTERFACE_INSERT
-0xa5 USB_INTERFACE_REMOVE
-
-
-10 LE_LPM_DISABLE_TO
-1 LE_LPM_DISABLE
-0 LE_LPM_ENABLE
-
-12 LE_INTERVAL_15MS
-9 LE_INTERVAL_11_25MS//11.25ms
-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
-
-)
\ No newline at end of file
Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/l2cap.format
===================================================================
--- /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/l2cap.format	(revision 5679)
+++ /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/l2cap.format	(nonexistent)
@@ -1,40 +0,0 @@
-
-
-
-xmemalloc(
-0 mem_l2cap_xmem_start
-
-//*******************L2CAP malloc********************//
-1 mem_used_map
-0 mem_tx_fifo0
-1 mem_tx_fifo0_map
-2 mem_tx_fifo0_ptr
-0 mem_tx_fifo1
-1 mem_tx_fifo1_map
-2 mem_tx_fifo1_ptr
-0 mem_tx_fifo2
-1 mem_tx_fifo2_map
-2 mem_tx_fifo2_ptr
-0 mem_tx_fifo3
-1 mem_tx_fifo3_map
-2 mem_tx_fifo3_ptr
-0 mem_tx_fifo_end
-
-2 mem_l2cap_lpm_txbuf_ptr
-0 mem_l2cap_xmem_end
-
-)
-
-
-//mem_l2cap_lpm_txbuf
-(
-256 l2cap_lpm_txbuf_len
-)
-
-(
-4 L2CAP_TX_FIFO_SIZE
-8 L2CAP_TX_BUFF_CNT
-
-)
-
-
Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/memblocks.format
===================================================================
--- /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/memblocks.format	(revision 5679)
+++ /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/memblocks.format	(nonexistent)
@@ -1,40 +0,0 @@
-//
-//
-//Large memory blocks defined in this file.
-//Blocks Shall be defined with absolute address.
-//Blocks' length Shall be specified in comment following Blocks' names.
-//Different blocks MAY be overlap.
-//Blocks defined in this file Shall NOT be overlap with variable in memmap.format.
-
-
-(
-0xf00 mem_dcoc_buf
-0xff0 mem_dcoc_buf_end
-)
-
-
-//l2cap RX buffers
-(
-0xf00 mem_le_l2cap_buf		//0x100
-)
-
-//l2cap TX buffers
-(
-0xd00 mem_ble_tx_buff0
-0x60 mem_ble_l2cap_tx_buff_size
-)
-
-
-//uart buffer
-(
-0xc00 mem_h5rx_buf//0x400
-0xeff mem_h5rx_buf_end
-0xf00 mem_h5tx_buf
-0xfff mem_h5tx_buf_end
-)
-
-
-(
-0x4c00 mem_savelist
-)
-
Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/patch.format
===================================================================
--- /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/patch.format	(revision 5679)
+++ /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/patch.format	(nonexistent)
@@ -1,516 +0,0 @@
-
-(
-	  0 patch00_0
-	  1 patch00_1
-	  2 patch00_2
-	  3 patch00_3
-	  4 patch00_4
-	  5 patch00_5
-	  6 patch00_6
-	  7 patch00_7
-	  8 patch01_0
-	  9 patch01_1
-	 10 patch01_2
-	 11 patch01_3
-	 12 patch01_4
-	 13 patch01_5
-	 14 patch01_6
-	 15 patch01_7
-	 16 patch02_0
-	 17 patch02_1
-	 18 patch02_2
-	 19 patch02_3
-	 20 patch02_4
-	 21 patch02_5
-	 22 patch02_6
-	 23 patch02_7
-	 24 patch03_0
-	 25 patch03_1
-	 26 patch03_2
-	 27 patch03_3
-	 28 patch03_4
-	 29 patch03_5
-	 30 patch03_6
-	 31 patch03_7
-	 32 patch04_0
-	 33 patch04_1
-	 34 patch04_2
-	 35 patch04_3
-	 36 patch04_4
-	 37 patch04_5
-	 38 patch04_6
-	 39 patch04_7
-	 40 patch05_0
-	 41 patch05_1
-	 42 patch05_2
-	 43 patch05_3
-	 44 patch05_4
-	 45 patch05_5
-	 46 patch05_6
-	 47 patch05_7
-	 48 patch06_0
-	 49 patch06_1
-	 50 patch06_2
-	 51 patch06_3
-	 52 patch06_4
-	 53 patch06_5
-	 54 patch06_6
-	 55 patch06_7
-	 56 patch07_0
-	 57 patch07_1
-	 58 patch07_2
-	 59 patch07_3
-	 60 patch07_4
-	 61 patch07_5
-	 62 patch07_6
-	 63 patch07_7
-	 64 patch08_0
-	 65 patch08_1
-	 66 patch08_2
-	 67 patch08_3
-	 68 patch08_4
-	 69 patch08_5
-	 70 patch08_6
-	 71 patch08_7
-	 72 patch09_0
-	 73 patch09_1
-	 74 patch09_2
-	 75 patch09_3
-	 76 patch09_4
-	 77 patch09_5
-	 78 patch09_6
-	 79 patch09_7
-	 80 patch0a_0
-	 81 patch0a_1
-	 82 patch0a_2
-	 83 patch0a_3
-	 84 patch0a_4
-	 85 patch0a_5
-	 86 patch0a_6
-	 87 patch0a_7
-	 88 patch0b_0
-	 89 patch0b_1
-	 90 patch0b_2
-	 91 patch0b_3
-	 92 patch0b_4
-	 93 patch0b_5
-	 94 patch0b_6
-	 95 patch0b_7
-	 96 patch0c_0
-	 97 patch0c_1
-	 98 patch0c_2
-	 99 patch0c_3
-	100 patch0c_4
-	101 patch0c_5
-	102 patch0c_6
-	103 patch0c_7
-	104 patch0d_0
-	105 patch0d_1
-	106 patch0d_2
-	107 patch0d_3
-	108 patch0d_4
-	109 patch0d_5
-	110 patch0d_6
-	111 patch0d_7
-	112 patch0e_0
-	113 patch0e_1
-	114 patch0e_2
-	115 patch0e_3
-	116 patch0e_4
-	117 patch0e_5
-	118 patch0e_6
-	119 patch0e_7
-	120 patch0f_0
-	121 patch0f_1
-	122 patch0f_2
-	123 patch0f_3
-	124 patch0f_4
-	125 patch0f_5
-	126 patch0f_6
-	127 patch0f_7
-	128 patch10_0
-	129 patch10_1
-	130 patch10_2
-	131 patch10_3
-	132 patch10_4
-	133 patch10_5
-	134 patch10_6
-	135 patch10_7
-	136 patch11_0
-	137 patch11_1
-	138 patch11_2
-	139 patch11_3
-	140 patch11_4
-	141 patch11_5
-	142 patch11_6
-	143 patch11_7
-	144 patch12_0
-	145 patch12_1
-	146 patch12_2
-	147 patch12_3
-	148 patch12_4
-	149 patch12_5
-	150 patch12_6
-	151 patch12_7
-	152 patch13_0
-	153 patch13_1
-	154 patch13_2
-	155 patch13_3
-	156 patch13_4
-	157 patch13_5
-	158 patch13_6
-	159 patch13_7
-	160 patch14_0
-	161 patch14_1
-	162 patch14_2
-	163 patch14_3
-	164 patch14_4
-	165 patch14_5
-	166 patch14_6
-	167 patch14_7
-	168 patch15_0
-	169 patch15_1
-	170 patch15_2
-	171 patch15_3
-	172 patch15_4
-	173 patch15_5
-	174 patch15_6
-	175 patch15_7
-	176 patch16_0
-	177 patch16_1
-	178 patch16_2
-	179 patch16_3
-	180 patch16_4
-	181 patch16_5
-	182 patch16_6
-	183 patch16_7
-	184 patch17_0
-	185 patch17_1
-	186 patch17_2
-	187 patch17_3
-	188 patch17_4
-	189 patch17_5
-	190 patch17_6
-	191 patch17_7
-	192 patch18_0
-	193 patch18_1
-	194 patch18_2
-	195 patch18_3
-	196 patch18_4
-	197 patch18_5
-	198 patch18_6
-	199 patch18_7
-	200 patch19_0
-	201 patch19_1
-	202 patch19_2
-	203 patch19_3
-	204 patch19_4
-	205 patch19_5
-	206 patch19_6
-	207 patch19_7
-	208 patch1a_0
-	209 patch1a_1
-	210 patch1a_2
-	211 patch1a_3
-	212 patch1a_4
-	213 patch1a_5
-	214 patch1a_6
-	215 patch1a_7
-	216 patch1b_0
-	217 patch1b_1
-	218 patch1b_2
-	219 patch1b_3
-	220 patch1b_4
-	221 patch1b_5
-	222 patch1b_6
-	223 patch1b_7
-	224 patch1c_0
-	225 patch1c_1
-	226 patch1c_2
-	227 patch1c_3
-	228 patch1c_4
-	229 patch1c_5
-	230 patch1c_6
-	231 patch1c_7
-	232 patch1d_0
-	233 patch1d_1
-	234 patch1d_2
-	235 patch1d_3
-	236 patch1d_4
-	237 patch1d_5
-	238 patch1d_6
-	239 patch1d_7
-	240 patch1e_0
-	241 patch1e_1
-	242 patch1e_2
-	243 patch1e_3
-	244 patch1e_4
-	245 patch1e_5
-	246 patch1e_6
-	247 patch1e_7
-	248 patch1f_0
-	249 patch1f_1
-	250 patch1f_2
-	251 patch1f_3
-	252 patch1f_4
-	253 patch1f_5
-	254 patch1f_6
-	255 patch1f_7
-	  0 patch20_0
-	  1 patch20_1
-	  2 patch20_2
-	  3 patch20_3
-	  4 patch20_4
-	  5 patch20_5
-	  6 patch20_6
-	  7 patch20_7
-	  8 patch21_0
-	  9 patch21_1
-	 10 patch21_2
-	 11 patch21_3
-	 12 patch21_4
-	 13 patch21_5
-	 14 patch21_6
-	 15 patch21_7
-	 16 patch22_0
-	 17 patch22_1
-	 18 patch22_2
-	 19 patch22_3
-	 20 patch22_4
-	 21 patch22_5
-	 22 patch22_6
-	 23 patch22_7
-	 24 patch23_0
-	 25 patch23_1
-	 26 patch23_2
-	 27 patch23_3
-	 28 patch23_4
-	 29 patch23_5
-	 30 patch23_6
-	 31 patch23_7
-	 32 patch24_0
-	 33 patch24_1
-	 34 patch24_2
-	 35 patch24_3
-	 36 patch24_4
-	 37 patch24_5
-	 38 patch24_6
-	 39 patch24_7
-	 40 patch25_0
-	 41 patch25_1
-	 42 patch25_2
-	 43 patch25_3
-	 44 patch25_4
-	 45 patch25_5
-	 46 patch25_6
-	 47 patch25_7
-	 48 patch26_0
-	 49 patch26_1
-	 50 patch26_2
-	 51 patch26_3
-	 52 patch26_4
-	 53 patch26_5
-	 54 patch26_6
-	 55 patch26_7
-	 56 patch27_0
-	 57 patch27_1
-	 58 patch27_2
-	 59 patch27_3
-	 60 patch27_4
-	 61 patch27_5
-	 62 patch27_6
-	 63 patch27_7
-	 64 patch28_0
-	 65 patch28_1
-	 66 patch28_2
-	 67 patch28_3
-	 68 patch28_4
-	 69 patch28_5
-	 70 patch28_6
-	 71 patch28_7
-	 72 patch29_0
-	 73 patch29_1
-	 74 patch29_2
-	 75 patch29_3
-	 76 patch29_4
-	 77 patch29_5
-	 78 patch29_6
-	 79 patch29_7
-	 80 patch2a_0
-	 81 patch2a_1
-	 82 patch2a_2
-	 83 patch2a_3
-	 84 patch2a_4
-	 85 patch2a_5
-	 86 patch2a_6
-	 87 patch2a_7
-	 88 patch2b_0
-	 89 patch2b_1
-	 90 patch2b_2
-	 91 patch2b_3
-	 92 patch2b_4
-	 93 patch2b_5
-	 94 patch2b_6
-	 95 patch2b_7
-	 96 patch2c_0
-	 97 patch2c_1
-	 98 patch2c_2
-	 99 patch2c_3
-	100 patch2c_4
-	101 patch2c_5
-	102 patch2c_6
-	103 patch2c_7
-	104 patch2d_0
-	105 patch2d_1
-	106 patch2d_2
-	107 patch2d_3
-	108 patch2d_4
-	109 patch2d_5
-	110 patch2d_6
-	111 patch2d_7
-	112 patch2e_0
-	113 patch2e_1
-	114 patch2e_2
-	115 patch2e_3
-	116 patch2e_4
-	117 patch2e_5
-	118 patch2e_6
-	119 patch2e_7
-	120 patch2f_0
-	121 patch2f_1
-	122 patch2f_2
-	123 patch2f_3
-	124 patch2f_4
-	125 patch2f_5
-	126 patch2f_6
-	127 patch2f_7
-	128 patch30_0
-	129 patch30_1
-	130 patch30_2
-	131 patch30_3
-	132 patch30_4
-	133 patch30_5
-	134 patch30_6
-	135 patch30_7
-	136 patch31_0
-	137 patch31_1
-	138 patch31_2
-	139 patch31_3
-	140 patch31_4
-	141 patch31_5
-	142 patch31_6
-	143 patch31_7
-	144 patch32_0
-	145 patch32_1
-	146 patch32_2
-	147 patch32_3
-	148 patch32_4
-	149 patch32_5
-	150 patch32_6
-	151 patch32_7
-	152 patch33_0
-	153 patch33_1
-	154 patch33_2
-	155 patch33_3
-	156 patch33_4
-	157 patch33_5
-	158 patch33_6
-	159 patch33_7
-	160 patch34_0
-	161 patch34_1
-	162 patch34_2
-	163 patch34_3
-	164 patch34_4
-	165 patch34_5
-	166 patch34_6
-	167 patch34_7
-	168 patch35_0
-	169 patch35_1
-	170 patch35_2
-	171 patch35_3
-	172 patch35_4
-	173 patch35_5
-	174 patch35_6
-	175 patch35_7
-	176 patch36_0
-	177 patch36_1
-	178 patch36_2
-	179 patch36_3
-	180 patch36_4
-	181 patch36_5
-	182 patch36_6
-	183 patch36_7
-	184 patch37_0
-	185 patch37_1
-	186 patch37_2
-	187 patch37_3
-	188 patch37_4
-	189 patch37_5
-	190 patch37_6
-	191 patch37_7
-	192 patch38_0
-	193 patch38_1
-	194 patch38_2
-	195 patch38_3
-	196 patch38_4
-	197 patch38_5
-	198 patch38_6
-	199 patch38_7
-	200 patch39_0
-	201 patch39_1
-	202 patch39_2
-	203 patch39_3
-	204 patch39_4
-	205 patch39_5
-	206 patch39_6
-	207 patch39_7
-	208 patch3a_0
-	209 patch3a_1
-	210 patch3a_2
-	211 patch3a_3
-	212 patch3a_4
-	213 patch3a_5
-	214 patch3a_6
-	215 patch3a_7
-	216 patch3b_0
-	217 patch3b_1
-	218 patch3b_2
-	219 patch3b_3
-	220 patch3b_4
-	221 patch3b_5
-	222 patch3b_6
-	223 patch3b_7
-	224 patch3c_0
-	225 patch3c_1
-	226 patch3c_2
-	227 patch3c_3
-	228 patch3c_4
-	229 patch3c_5
-	230 patch3c_6
-	231 patch3c_7
-	232 patch3d_0
-	233 patch3d_1
-	234 patch3d_2
-	235 patch3d_3
-	236 patch3d_4
-	237 patch3d_5
-	238 patch3d_6
-	239 patch3d_7
-	240 patch3e_0
-	241 patch3e_1
-	242 patch3e_2
-	243 patch3e_3
-	244 patch3e_4
-	245 patch3e_5
-	246 patch3e_6
-	247 patch3e_7
-	248 patch3f_0
-	249 patch3f_1
-	250 patch3f_2
-	251 patch3f_3
-	252 patch3f_4
-	253 patch3f_5
-	254 patch3f_6
-	255 patch3f_7
-
-)
Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/regs.format
===================================================================
--- /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/regs.format	(revision 5679)
+++ /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/regs.format	(nonexistent)
@@ -1,558 +0,0 @@
-(
-	0x8000 core_chipid
-	0x8001 core_revid
-	0x8003 core_kick
-	0x8004 core_write_wdt
-	0x8005 core_lpm_wr
-	0x8006 core_misc_ctrl
-	0x8007 core_otp_rdata
-	0x8007 core_efuse_rdata
-	0x800a core_ccm_ctrl
-	0x800b core_write_wdt2
-	0x8010 core_reset
-	0x8011 core_encrypt
-	0x8012 core_lpm_wr2
-	0x8020 core_set_bistfix
-	0x8022 core_ucode_hi
-	0x8023 core_ucode_ctrl
-	0x8024 core_ucode_low
-	0x8025 core_ucode_data
-
-	0x8040 core_halfslot
-	0x8042 core_clksel
-	0x8043 core_uart_clksel
-	0x8043 core_config
-	0x8044 core_otp_addr
-	0x8046 core_otp_din
-	0x8046 core_otp_ctrl2
-	0x8047 core_otp_ctrl
-	0x8047 core_otp_pab
-	0x8048 core_xtal_stable_time
-	0x8049 core_gpio_ds
-	0x804c core_lpm_reg
-	0x8050 core_clkoff
-	0x8052 core_uart_baud
-	0x8054 core_uart_rsaddr
-	0x8056 core_uart_readdr
-	0x8058 core_uart_rrptr
-	0x805a core_uart_tsaddr
-	0x805c core_uart_teaddr
-	0x805e core_uart_twptr
-	0x8060 core_uart_ctrl
-	0x8061 core_nec_ctrl
-	0x8062 core_nec_start_addr
-	0x8064 core_nec_end_addr
-	0x8066 core_nec_rptr
-	0x8068 core_ccm_input_playload_addr
-	0x806a core_ccm_output_playload_addr
-	0x806c core_ccm_aad0
-	0x806d core_ccm_aad1
-	0x806e core_ccm_aad2
-	0x806f  core_bist_ctrl
-	0x8070 core_gpio_conf
-	0x8080 core_spid_ctrl
-	0x8081 core_spid_delay
-	0x8082 core_spid_txlen
-	0x8084 core_spid_txaddr
-	0x8086 core_spid_rxaddr
-	0x8088 core_spid_rxlen
-	0x808a core_iicd_ctrl
-	0x808b core_iicd_scl_low
-	0x808c core_iicd_scl_high
-	0x808d core_iicd_start_setup
-	0x808e core_iicd_start_hold
-	0x808f core_iicd_stop_setup
-	0x8090 core_iicd_data_setup
-	0x8091 core_iicd_data_hold
-	0x8092 core_iicd_txlen
-	0x8094 core_iicd_txaddr
-	0x8096 core_iicd_rxaddr
-	0x8098 core_iicd_rxlen
-	0x809a core_pwm_en
-	0x809b core_pwm_init
-	0x809c core_pwm_pcnt0
-	0x809e core_pwm_ncnt0
-	0x80a0 core_pwm_pcnt1
-	0x80a2 core_pwm_ncnt1
-	0x80a4 core_pwm_pcnt2
-	0x80a6 core_pwm_ncnt2
-	0x80a8 core_pwm_pcnt3
-	0x80aa core_pwm_ncnt3
-	0x80ac core_pwm_pcnt4
-	0x80ae core_pwm_ncnt4
-	0x80b0 core_pwm_pcnt5
-	0x80b2 core_pwm_ncnt5
-	0x80b4 core_pwm_pcnt6
-	0x80b6 core_pwm_ncnt6
-	0x80b8 core_pwm_pcnt7
-	0x80ba core_pwm_ncnt7
-	0x80bc core_pwm_sync
-	0x80bd core_pwm_timermode
-	0x80be core_pwm_autoload
-	0x80bf core_sum_ctrl
-	0x80c0 core_ccm_inptr
-	0x80c2 core_dac_ctrl	
-	0x80c3 core_dac_vol
-	0x80c4 core_dac_saddr
-	0x80c6 core_dac_len
-	0x80c8 core_dac_coef
-	0x80cb core_ccnt_bit
-	0x80cc core_sadc_ctrl
-	0x80cd core_sadc_clkdiv
-	0x80ce core_sadc_saddr
-	0x80d0 core_sadc_eaddr
-	0x80d2 core_keybuf_saddr
-	0x80d4 core_gpio_conf_hi
-
-	0x8100 core_clkn
-	0x8108 core_misc_status
-	0x8109 core_qdec_cntx
-	0x810a core_watchdog_cnt
-	0x810b core_uart_status
-	0x810c core_uart_rbaud
-	0x810e core_uart_txitems
-	0x8110 core_uart_trptr
-	0x8112 core_uart_rxitems
-	0x8114 core_uart_rdptr
-	0x8116 core_uart_rwptr
-	0x8118 core_debug_baud
-	0x811a core_ccm_outptr
-	0x811c core_gpio_in
-	0x811d core_gpio_in1
-	0x811e core_adc_sum
-	0x8120 core_nec_wptr
-	0x8122 core_current_otp_addr
-	0x8122 core_adc_dma_wptr
-	0x8124 core_spid_remain
-	0x8126 core_iicd_remain
-	0x8128 core_dma_status
-	0x8129 core_perf_status
-	0x812a core_adc_in
-	0x812c core_nec_rxitem
-	0x812e core_otpd_remain
-	0x8130 core_lpm_ctrl
-	0x8132 core_lpm_isogate
-	0x8133 core_lpm_ldosel
-	0x8134 core_io_vsel
-	0x8135 core_io_doze_en
-	0x813a core_xtal_cap
-	0x813d core_xtal_ib
-	0x813e core_lpm_xtalcnt
-	0x813f core_lpm_buckcnt
-	0x8140 core_lpm_ldocnt
-	0x8141 core_puwakeup
-	0x8142 core_lpm_sysctl
-	0x8143 core_ucode_flag
-	0x8144 core_peripheral_lock
-	0x8145 core_mpu_s0_saddr
-	0x8147 core_mpu_s0_eaddr
-	0x8149 core_mpu_s1_saddr
-	0x814b core_mpu_s1_eaddr
-	0x814d core_gpio_wakeup_cfg
-	0x8155 core_aes_decode_key_init
-	0x815b core_clk_counter
-	0x815e core_bist_done
-	0x8160 core_bist_fail
-	0x8162 core_dac_rptr	
-	0x8164 core_sadc_data	
-	0x8166 core_rccnt_counter
-		
-	0x8203 core_ice_ctrl
-	0x8204 core_ice_status
-	0x8205 core_ice_break0
-	0x8207 core_ice_break1
-  
-
-	0x8900 modem_en
-	0x8960 core_rf_rx_agc_ctrl
-	0x8961 core_rf_rx_gain_fix
-	0x8968 core_agc_wb_sat_th
-	0x8969 core_agc_nb_sat_th
-	0x89a0 modem_rssi
-	0x89a1 modem_wb_pow
-	0x89a2 modem_nb_pow
-	0x89a3 modem_gain
-	0x89a4 modem_status
-
-	0x8a00 core_bbpll_ctrl0              
-	0x8a01 core_bbpll_ctrl1              
-	0x8a02 core_bbpll_cfg0               
-	0x8a03 core_bbpll_cfg1               
-	0x8a04 core_bbpll_cfg2               
-	0x8a05 core_bbpll_cfg3               
-	0x8a06 core_bbpll_cfg4               
-	0x8a07 core_gpadc_ctrl
-	0x8a08 core_gpadc_cfg0
-	0x8a09 core_gpadc_cfg1
-	0x8a0a core_gpadc_cfg2
-	0x8a0b core_gpadc_cfg3
-	0x8a0c core_gpadc_status
-	0x8a0d core_vtest_ctrl0
-	0x8a0e core_vtest_ctrl1
-	0x8a0f core_ldo_trx_ctrl0
-	0x8a10 core_ldo_trx_ctrl1
-	0x8a11 core_ldo_trx_ctrl2
-	0x8a12 core_ldo_rfpll_ctrl
-    0x8a13 core_ldo_trx_cfg0
-    0x8a14 core_ldo_trx_cfg1
-    0x8a15 core_ldo_trx_cfg2
-    0x8a16 core_ldo_rfpll_mnc_cfg2
-
-    0x8a20 core_rfpll_afc_ctrl0
-    0x8a21 core_rfpll_afc_ctrl1
-    0x8a22 core_rfpll_afc_ctrl2
-    0x8a23 core_rfpll_en_ctrl0
-    0x8a24 core_rfpll_en_ctrl1
-    0x8a25 core_rf_en_ctrl0
-    0x8a26 core_rf_en_ctrl1
-
-	0x8a30 core_rx_force_en_ctrl
-	0x8a31 core_rx_gc_force_val
-	0x8a32 core_rx_lna_isel_force_val
-
-	0x8a40 core_rx_lna_hg_isel_gc7        
-	0x8a41 core_rx_lna_hg_isel_gc6        
-	0x8a42 core_rx_lna_hg_isel_gc5        
-	0x8a43 core_rx_lna_lg_isel_gc4        
-	0x8a44 core_rx_lna_lg_isel_gc3        
-	0x8a45 core_rx_lna_lg_isel_gc2        
-	0x8a46 core_rx_lna_lg_isel_gc1        
-	0x8a47 core_rx_lna_lg_isel_gc0        
-	0x8a48 core_rx_abb_gc_gc8              
-	0x8a49 core_rx_abb_gc_gc7              
-	0x8a4a core_rx_abb_gc_gc6              
-	0x8a4b core_rx_abb_gc_gc5              
-	0x8a4c core_rx_abb_gc_gc4              
-	0x8a4d core_rx_abb_gc_gc3              
-	0x8a4e core_rx_abb_gc_gc2              
-	0x8a4f core_rx_abb_gc_gc1              
-	0x8a50 core_rx_abb_gc_gc0              
-
-	0x8a60 core_tx_ctrl0
-	0x8a61 core_tx_ctrl1
-	0x8a62 core_tx_ctrl2
-	0x8a63 core_tx_ctrl3
-
-	0x8a70 core_rfpll_cal_ctrl0
-	0x8a71 core_rfpll_cal_ctrl1
-	0x8a72 core_rfpll_cal_ctrl2
-	0x8a73 core_rfpll_cal_ctrl3
-	0x8a74 core_rfpll_cal_ctrl4
-	0x8a75 core_rfpll_cal_ctrl5
-	0x8a76 core_rfpll_cal_ctrl6
-	0x8a77 core_rfpll_cal_ctrl7
-	0x8a78 core_rfpll_cal_ctrl8
-	0x8a79 core_rfpll_cal_ctrl9
-	0x8a7a core_rfpll_cal_ctrl10
-	0x8a7b core_rfpll_cal_ctrl11
-	0x8a7c core_rfpll_cal_result0
-	0x8a7d core_rfpll_cal_result1
-	0x8a7e core_rfpll_cal_result2
-
-    0x8a80 core_rfpll_cfg0
-    0x8a81 core_rfpll_cfg1
-    0x8a82 core_rfpll_cfg2
-    0x8a83 core_rfpll_cfg3
-    0x8a84 core_rfpll_cfg4
-    0x8a85 core_rfpll_cfg5
-    0x8a86 core_rfpll_cfg6
-    0x8a87 core_rfpll_cfg7
-
-    0x8a88 core_rx_cfg0
-    0x8a89 core_rx_cfg1
-    0x8a8a core_rx_cfg2
-    0x8a8b core_rx_cfg3
-    0x8a8c core_rx_cfg4
-    0x8a8d core_rx_cfg5
-    0x8a8e core_rx_cfg6
-    0x8a8f core_rx_cfg7
-    0x8a90 core_rx_cfg8
-
-	0x8aa0 core_rx_tiai_dcoc_gc0          
-	0x8aa1 core_rx_tiaq_dcoc_gc0          
-	0x8aa2 core_rx_tiai_dcoc_gc1          
-	0x8aa3 core_rx_tiaq_dcoc_gc1          
-	0x8aa4 core_rx_tiai_dcoc_gc2          
-	0x8aa5 core_rx_tiaq_dcoc_gc2          
-	0x8aa6 core_rx_tiai_dcoc_gc3          
-	0x8aa7 core_rx_tiaq_dcoc_gc3          
-	0x8aa8 core_rx_tiai_dcoc_gc4          
-	0x8aa9 core_rx_tiaq_dcoc_gc4          
-	0x8aaa core_rx_tiai_dcoc_gc5          
-	0x8aab core_rx_tiaq_dcoc_gc5          
-	0x8aac core_rx_tiai_dcoc_gc6          
-	0x8aad core_rx_tiaq_dcoc_gc6          
-	0x8aae core_rx_tiai_dcoc_gc7          
-	0x8aaf core_rx_tiaq_dcoc_gc7          
-	0x8ab0 core_rx_abbi_dcoc_gc0
-	0x8ab1 core_rx_abbq_dcoc_gc0
-	0x8ab2 core_rx_abbi_dcoc_gc1
-	0x8ab3 core_rx_abbq_dcoc_gc1           
-	0x8ab4 core_rx_abbi_dcoc_gc2
-	0x8ab5 core_rx_abbq_dcoc_gc2
-	0x8ab6 core_rx_abbi_dcoc_gc3
-	0x8ab7 core_rx_abbq_dcoc_gc3
-	0x8ab8 core_rx_abbi_dcoc_gc4
-	0x8ab9 core_rx_abbq_dcoc_gc4
-	0x8aba core_rx_abbi_dcoc_gc5
-	0x8abb core_rx_abbq_dcoc_gc5
-	0x8abc core_rx_abbi_dcoc_gc6
-	0x8abd core_rx_abbq_dcoc_gc6
-	0x8abe core_rx_abbi_dcoc_gc7
-	0x8abf core_rx_abbq_dcoc_gc7
-	0x8ac0 core_rx_abbi_dcoc_gc8
-	0x8ac1 core_rx_abbq_dcoc_gc8
-	0x8ac2 core_rx_tiai_dcoc_force
-	0x8ac3 core_rx_tiaq_dcoc_force
-	0x8ac4 core_rx_abbi_dcoc_force
-	0x8ac5 core_rx_abbq_dcoc_force
-	0x8ac8 core_chgpump_ctrl
-
-	0x8c00 core_usb_config
-	0x8c01 core_usb_addr
-	0x8c02 core_usb_rx_saddr
-	0x8c04 core_usb_rx_eaddr
-	0x8c06 core_usb_rxptr
-	0x8c08 core_usb_tx_saddr0
-	0x8c0a core_usb_tx_saddr1
-	0x8c0c core_usb_tx_saddr2
-	0x8c0e core_usb_tx_saddr3
-	0x8c10 core_usb_epmap
-	0x8c11 core_usb_pupd
-	0x8c12 core_usb_hmode
-	0x8c13 core_usb_int_mask
-	0x8c18 core_usb_trig
-	0x8c19 core_usb_stall
-	0x8c1a core_usb_toggle
-	0x8c1b core_usb_clear_nak
-	0x8c20 core_usb_rx_wptr
-	0x8c22 core_usb_status
-	0x8c24 core_usb_stall_status
-	0x8c25 core_usb_txbusy
-	0x8c26 core_usb_sof_cnt
-	0x8c28 core_usb_rxcnt
-
-	
-
-
-
-    
-    
-)
-
-(
-
-4 BIST_CTRL_FIX_SCHED_RAM
-5 BIST_CTRL_FIX_XRAM
-6 BIST_CTRL_FIX_PATCH_RAM
-
-7 AES_EN
-)
-
-(
-4 rx_freq_offset
-2 tx_freq_offset
-)
-
-(
-/* bit difinitions */
-  4 whiteoff_bit
-  6 clksel_rc
-  1 clksel_dpll_24M
-  5 clksel_dpll
-  4 clksel_xtal
-  5 adc_rccal
-  0 bpf_rccal
-  1 demod_clkoff
-)
-
-// retention mem ctrl
-(
-  4 cold_wake
-  5 gpio_latch
-  6 retmem_cs
-  7 isogate
-)
-
-// sys ctrl
-(
-  2 fast_wake
-  3 ice_mode
-  4 reload_code
-)
-
-// lpm_write
-(
-1 lpmreg_sel_counter
-2 lpmreg_sel_scanmode
-)
-
-// lock bits
-(
-0 SPI_LOCK_BIT
-1 PWM_LOCK_BIT
-2 UART_LOCK_BIT
-3 IIC_LOCK_BIT
-4 ADPCM_LOCK_BIT
-5 ROM_LOCK_BIT
-6 OPTION_LOCK
-6 OTP_NOT_LIMIT
-7 OTP_LIMIT
-)
-
-(
-4 LPM_DOZE_EN_BIT	
-)
-
-// misc ctrl
-(
-  0x01 RCCNT_START
-  0x02 SPID_START
-  0x04 IICD_START
-  0x08 OTP_KEY_LOCK
-  0x10 INIT_KEY
-  0x20 SHIFT_KEY
-  0X80 CCNT_START
-)
-// DMA STATUS BIT
-(
-  0 OTPD_CRCOK
-  1 OTPD_DONE
-  2 SPID_CRCOK
-  3 SPID_DONE
-  4 IICD_CRCOK
-  5 IICD_DONE
-  6 IICD_ACK
-)
-
-//bit map of core_uart_status
-(
-1 UART_STATUS_TX_BUSY
-2 UART_STATUS_RX_FIFO_EMPTY
-3 UART_STATUS_RX_FIFO_FULL
-4 UARTB_STATUS_TX_BUSY
-5 UARTB_STATUS_RX_FIFO_EMPTY
-6 UARTB_STATUS_RX_FIFO_FULL
-)
-
-(//core_uart_clksel
-0 UART_CLOCK_SELECT_BIT
-0xFE UART_CLOCK_SELECT_CRYSTAL
-0x01 UART_CLOCK_SELECT_DPLL
-
-24000000 uart_clock_freq_24M
-48000000 uart_clock_freq_48M
-)
-
-
-(//bit map of core_uart_ctrl
-0 BIT_UART_CONTROL_ENABLE
-1 BIT_UART_CONTROL_PARITY
-2 BIT_UART_CONTROL_DATA_LENGTH
-3 BIT_UART_CONTROL_STOP_BIT_SIZE
-4 BIT_UART_CONTROL_FLOW_CONTROL
-5 BIT_UART_CONTROL_7816_SMART_CARD_PROTOCOL
-6 BIT_UART_CONTROL_HALF_DUPLEX_SINGLE_LINE_UART
-7 BIT_UART_CONTROL_RATE_BAUD_SETTING
-)
-(//FUN of core_uart_ctrl
-0x01 FUN_UART_CONTROL_ENABLE
-0x06 FUN_UART_CONTROL_PARITY_ODD
-0x04 FUN_UART_CONTROL_PARITY_EVEN
-0x08 FUN_UART_CONTROL_STOP_2BIT
-0x00 FUN_UART_CONTROL_STOP_1BIT
-0x10 FUN_UART_CONTROL_FLOW_CONTROL_ENABLE
-0x20 FUN_UART_CONTROL_7816_SMART_CARD_PROTOCOL
-0x40 FUN_UART_CONTROL_HALF_DUPLEX_SINGLE_LINE_UART
-0x80 FUN_UART_CONTROL_SETTING_RATE_BAUD
-)
-
-(//bit map of core_nec_control
-0x00 BIT_NEC_ENABLE
-0x01 BIT_NEC_CLK_DIVIDE_NUM
-)
-
-(//FUN  of core_nec_control
-0x01 FUN_NEC_ENABLE
-0x30 FUN_NEC_CLK_DIVIDE_24	//24M , 
-)
-
-0x8b uart_ctrl_default //BCSP
-0x81 uart_ctrl_h4 //H4
-0x81 uart_ctrl_normal
-0x91 uart_ctrl_5line
-0x81 uart_ctrl_57600
-2 uart_baud_len
-0x00 uartclk_crystal
-0x01 uartclk_dpll
-0x1a0 uart_baud_115200
-0xbb uart_baud_256000
-0x340 uart_baud_57600
-0x34 uart_baud_921600
-0x9c4 uart_baud_9600
-
-//core_clkoff
-(
-	0 CLOCK_OFF_AUTH_ROM
-	1 CLOCK_OFF_UC_ROM
-	2 CLOCK_OFF_DEBUG_UART
-	3 CLOCK_OFF_SCHED_RAM
-	4 CLOCK_OFF_TRANCE_FIFO
-	5 CLOCK_OFF_CORDIC
-	6 CLOCK_OFF_OTPD
-	7 CLOCK_OFF_I2C
-	8 CLICK_OFF_SARADC_DMA
-	9 CLOCK_OFF_KEYSCAN
-	9 CLOCK_OFF_NEC
-	0x0a CLOCK_OFF_USB
-	0x0b CLOCK_OFF_QDECODER
-	0x0c CLOCK_OFF_SPI
-	0x0d CLOCK_OFF_PWM
-	0x0e CLOCK_OFF_UARTB
-	0x0f CLOCK_OFF_UART
-)
-
-// gpio config types
-(
-  0 gpcfg_input
-  6 gpcfg_dac_p  
-  7 gpcfg_dac_n
-  8 gpcfg_uart_txd
-  9 gpcfg_uart_rxd
-  10 gpcfg_uart_rts
-  11 gpcfg_uart_cts
-  
-  16 gpcfg_pwm_out0
-  17 gpcfg_pwm_out1
-  18 gpcfg_pwm_out2
-  19 gpcfg_pwm_out3
-  20 gpcfg_pwm_out4
-  21 gpcfg_pwm_out5
-  22 gpcfg_pwm_out6
-  23 gpcfg_pwm_out7
-  24 gpcfg_nec_input
-  
-  31 gpcfg_spid_miso
-  32 gpcfg_spid_ncs
-  33 gpcfg_spid_sck
-  34 gpcfg_spid_mosi
-  35 gpcfg_spid_sdio
-  
-  44 gpcfg_iic_scl
-  45 gpcfg_iic_sda
-  
-  62 gpcfg_output_low
-  63 gpcfg_output_high
-  
-  0x00 gpcfg_high_impedance
-  0x40 gpcfg_pullup
-  0x80 gpcfg_pulldown
-  0xc0 gpcfg_no_ie
-)
-
-(
-16	GPIO_NUMBER
-8	GPIO_NUMBER_EXT
-0xFF  GPIO_DISABLE
-)
-
Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/security.format
===================================================================
--- /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/security.format	(revision 5679)
+++ /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/security.format	(nonexistent)
@@ -1,63 +0,0 @@
-
-memalloc (
-16 mem_input_store
-
-2 mem_ec_loopc
-1 mem_aes_cmac_data_length
-
-96 mem_dat
-
-/* ecc calculation */
-32 mem_ax_256 //32 bytes
-32 mem_ay_256 // 32 bytes
-32 mem_az_256 // 32 bytes
-32 mem_bx_256 // 32 bytes
-32 mem_by_256 // 31 bytes
-
-0 mem_bz_256  //32 bytes
-0 mem_tmp1
-24 memahbak
-8 mem_tmp5
-32 mem_cx_256  //32 bytes
-31 mem_cy_256  // 32 bytes
-1 mem_cy5_256 // 1 byte
-32 mem_cz_256 // 32 bytes
-32 mem_k_256 //32 bytes
-32  mem_tmp1_256 //32 bytes
-
-32 mem_tmp5_256
-32  mem_tmp2_256
-0 mem_tmp3_256
-32 mem_t1_256
-0 mem_tmp0_256
-32 mem_t0_256
-32 mem_t2_256
-32 mem_t3_256
-32 mem_t7_256
-
-24 mem_p
-24 mem_a
-24 mem_b
-24 mem_gx
-24 mem_gy
-32 memh0
-
-32 mem_p_256		
-32 mem_a_256
-32 mem_gx_256
-32 mem_gy_256
-16 mem_le_slat
-
-)
-
-xmemalloc(
-5 mem_ccm_pcnt_tx
-5 mem_ccm_pcnt_rx
-4 mem_ccm_last_mic
-0 mem_ccm_iv
-4 mem_ccm_ivm
-4 mem_ccm_ivs
-2 mem_ccm_len
-2 mem_ccm_rx_ptr
-)
-
Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/simple_pairing.format
===================================================================
--- /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/simple_pairing.format	(revision 5679)
+++ /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/simple_pairing.format	(nonexistent)
@@ -1,68 +0,0 @@
-
-ifdef SECURE_CONNECTION
-
-memalloc(
-0 mem_sp_state_start
-1 mem_sp_dhkey_invalid
-4 mem_gkey
-0 mem_sp_state_end
-
-32 mem_le_pubkey_remote_x_256
-32 mem_le_pubkey_remote_y_256
-32 mem_le_dhkey_256
-
-16 mem_sp_confirm_remote
-)
-
-xmemalloc(
-1 mem_sc_only_mode
-1 mem_sp_debug_mode
-1 mem_secure_connections_enable
-1 mem_sc_calc
-1 mem_sc_local_key_invalid
-
-
-32 mem_sc_private_key_256
-32 mem_sc_pubkey_local_x_256
-32 mem_sc_pubkey_local_y_256
-
-
-0 mem_sp_state_xmem
-1 mem_authentication_passkey_times
-1 mem_passkey_1bit
-0 mem_sp_state_xmem_end
-)
-endif
-
-/* simple pairing status flag */
-(
-  0x00   SP_FLAG_STANDBY
-  0x02   LE_SP_FLAG_COMMIT_256
-
-)
-
-/* simple pairing calc flag */
-(
-  0x00   SP_CALC_STANDBY
-  0x03   SP_CALC_PUBKEY_256
-  0x04   SP_CALC_DHKEY_256
-)
-
-
-
-/* simple paring invalid flag */
-(
-  0x00   SP_KEY_INVALID
-  0x03   SP_KEY_VALID_256
-
-)
-
-
-//mem_secure_connections_enable
-(
-0 SECURE_CONNECTIONS_LE_BIT
-1 SECURE_CONNECTIONS_BR_BIT
-)
-
-
-  
Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/ui.format
===================================================================
--- /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/ui.format	(revision 5679)
+++ /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/ui.format	(nonexistent)
@@ -1,148 +0,0 @@
-/*****************************************************************************/
-/* RCS HEADER -- DO NOT ERASE                                                */
-/* $Author: Administrator $                                                           */
-/* $Id: bt_ui_format.upper,v 1.1 2009-09-28 04:06:17 Administrator Exp $     */
-/************************************************************************/
-
-
-	/* ========= memory ============== */
-memalloc(
-1 mem_ipc_skip_continue_proc
-) 
-
-xmemalloc(
-//UI Work area
-1 mem_ipc_lock_bt
-1 mem_ipc_lock_c51
-8 mem_ipc_fifo_bt2c51
-8 mem_ipc_fifo_c512bt
-
-1 mem_ui_button_timer
-1 mem_ui_button_last_state
-4 mem_ui_timer_last_btclk
-2 mem_ui_state_map
-
-1 mem_ui_button_timeout
-1 mem_ui_button_gpio
-1 mem_ui_led_init_state_set
-
-1 mem_ui_led_struct_num
-2 mem_ui_led_struct_ptr
-
-)
-
-
-//mem_ui_state_map
-(
-9 UI_STATE_BLE_CONNECTED
-10 UI_STATE_BLE_WRITE_RCV
-11 UI_STATE_BLE_ADV
-12 UI_STATE_BTN_DOWN
-)
-
-
-
-/* memui_Commands */
-(
-0 BT_CMD_STANDBY
-13 BT_CMD_START_ADV
-14 BT_CMD_STOP_ADV
-15 BT_CMD_START_DIRECT_ADV
-16 BT_CMD_STOP_DIRECT_ADV
-17 BT_CMD_LE_DISCONNECT
-18 BT_CMD_LE_UPDATE_CONN
-19 BT_CMD_LED_OFF
-20 BT_CMD_LED_ON
-21 BT_CMD_LED_BLINK
-22 BT_CMD_LE_START_CONN
-23 BT_CMD_LE_START_SCAN
-24 BT_CMD_LE_STOP_SCAN
-25 BT_CMD_ENTER_HIBERNATE
-27 BT_CMD_LE_SMP_SECURITY_REQUEST
-31 BT_CMD_STORE_RECONN_INFO_LE
-34 BT_CMD_START_24G
-35 BT_CMD_STOP_24G
-36 BT_CMD_PAIR_24G
-)
-
-(
-0x00 BT_EVT_NULL
-0x0F BT_EVT_DISCOVERY_STOPED
-0x10 BT_EVT_BUTTON_LONG_PRESSED
-0x14 BT_EVT_LE_CONNECTED
-0X15 BT_EVT_LE_DISCONNECTED
-0x17 BT_EVT_BUTTON_ENTER_HIBERNATE
-0x25 BT_EVT_BUTTON_ADJUST_DPI
-0x28 BT_EVT_LE_WRITE_REQUEST
-0x29 BT_EVT_LE_ENC_INFO
-0x2c BT_EVT_BUTTON_DOWN
-0x2d BT_EVT_BUTTON_UP
-0x2e BT_EVT_REMOTE_UNSNIFF
-0x30 BT_EVT_LE_PAIRING_FAIL
-0x31 BT_EVT_LE_PAIRING_SUCCESS
-0x32 BT_EVT_LE_START_ENC
-0X33 BT_EVT_LE_PAUSE_ENC
-0X34 BT_EVT_LE_TK_GENERATE
-0x35 BT_EVT_BT_GKEY_GENERATE
-0x36 BT_EVT_BT_GET_PASSKEY
-0x39 BT_EVT_24G_PAIRING_COMPLETE
-0x3a BT_EVT_24G_ATTEMPT_FAIL
-0x3b BT_EVT_LE_GKEY_GENERATE
-0x3c BT_EVT_24G_ATTEMPT_SUCCESS
-0x3d BT_EVT_STORE_NVRAM
-0x3e BT_EVT_LE_PAIRING_COMPLETE
-0x3F BT_EVT_LE_RECONNECT_COMPLETE
-0x40 BT_EVT_LE_PARSE_CONN_PAPA_UPDATE_RSP
-0x41 BT_EVT_LE_LTK_LOST
-0x42 BT_EVT_LE_UPDATE_PHY
-0x43 BT_EVT_LE_GET_PASSKEY
-0x44 BT_EVT_LE_PARSE_CONN_PARAM_ACCEPTED
-)
-//switch
-(
-0 OFF
-1 ON
-)
-
-
-(
-	160 UI_HUNDRED_MILLISECOND_TIME
-	0XFF UI_BUTTON_GPIO_DISABLE
-)
-
-(
-0x00 UI_BUTTON_STATE_DOWN
-0x01 UI_BUTTON_STATE_UP
-)
-
-//mem_ipc_skip_continue_proc
-(
-	0 IPC_CONTINUE_PROCESS
-	1 IPC_SKIP_CONTINUE_PROCESS
-)
-
-
-(//led style struct 
-0 		LED_OFFSET_LED_TYPE
-1 		LED_OFFSET_BLINK_COUNT
-2		LED_OFFSET_LED_GPIO
-3		LED_OFFSET_ON_TIME
-5		LED_OFFSET_OFF_TIME
-7 		LED_OFFSET_CB_LEDON
-9		LED_OFFSET_CB_LEDOFF
-11		LED_OFFSET_LENGTH
-)
-
-(//LED state
-0 UI_LED_STATE_BLINK_STOP
-1 UI_LED_STATE_BLINK_START
-2 UI_LED_STATE_LIGHTING
-3 UI_LED_STATE_DARKING
-4 UI_LED_STATE_BLINK_LIGHTING
-5 UI_LED_STATE_BLINK_DARKING
-
-0xFF LED_INFINITE_FLASH_NUM
-
-)
-
-
Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/usb.format
===================================================================
--- /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/usb.format	(revision 5679)
+++ /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/usb.format	(nonexistent)
@@ -1,258 +0,0 @@
-memalloc usb(
-2 mem_usb_status
-1 mem_usb_fifo_empty
-2 mem_usb_read_len
-65 mem_usb_txbuf
-10 mem_usb_txbuf1
-10 mem_usb_txbuf2
-64 mem_usb_rxbuf
-1 mem_usb_rxbuf_end
-2 mem_bufptr
-1 mem_remain
-2 mem_hidreportdesc_kb
-2 mem_hidreportdesc_m
-19 mem_devicedesc
-60 mem_confdesc
-5 mem_string0
-30 mem_string1
-30 mem_string2
-30 mem_string3
-2 mem_cb_usb_config
-
-1 mem_usb_tx_interval
-9 mem_usb_vid_pid
-2 mem_usb_zero_packet
-2 mem_usb_ones_packet
-2 mem_usb_two_packet
-1 mem_usb0_state
-1 mem_usb_offline_check_gpio
-
-0 mem_usb_clear_mem_start
-0 mem_usb_setup
-1 mem_usb_setup_bmRequestType
-1 mem_usb_setup_bRequest
-1 mem_usb_setup_bValue
-1 mem_usb_setup_bValueH
-2 mem_usb_setup_wIndex
-1 mem_usb_setup_bLength
-1 mem_usb_setup_bLengthH
-64 mem_usb0_set_report_data
-64 mem_usb0_get_report_data
-2 mem_usb_setup_bValue_temp
-1 mem_usb0_get_set_report
-1 mem_usb0_data_ready_report
-1 mem_usb_tx_win_enable
-1 mem_usb_tx_mac_enable
-1 mem_usb_idle_flag
-1 mem_usb_idle_rate
-1 mem_usb_get_protocol_flag
-1 mem_usb_set_protocol_status
-1 mem_usb_set_protocol_value
-1 mem_usb_state
-1 mem_usb_remote_wakeup
-1 mem_usb_clear_remote_wakeup
-1 mem_sdsystem_wakeup_flag
-1 mem_usb_ep0_stall_status
-1 mem_usb_ep1_stall_status
-1 mem_usb_ep2_stall_status
-1 mem_usb_ep3_stall_status
-2 mem_dsc_info_data_pointer
-1 mem_dsc_info_len
-1 mem_usb_ep1_data
-1 mem_usb_ep2_data
-1 mem_usb_tx_enable
-1 mem_usb_device_enumeration_endflag
-1 mem_usb_wakestate_onetime_flag
-1 mem_usb_mac_wakeup_trig
-1 mem_usb_set_high_addr_flag
-1 mem_usb_clear_halt
-16 mem_usb_mouse_data
-16 mem_usb_kb_data
-16 mem_usb_kb_n_key_rollvoer_data
-8 mem_usb_kb_multikey
-8 mem_usb_kb_system
-2 mem_usb_test_cnt
-10 mem_usb_test_kb
-0 mem_usb_clear_mem_end
-64 mem_usb_ccid_buf
-)
-
-//class type
-(
-0x00 STANDARD_REQ
-0x01 CLASS_REQ
-0x02 MANUFACTURER_REQ
-)
-//Standard Request Codes
-(
-0x00 GET_STATUS                // Code for Get Status
-0x01 CLEAR_FEATURE             // Code for Clear Feature
-0x03 SET_FEATURE              // Code for Set Feature
-0x05 SET_ADDRESS              // Code for Set Address
-0x06 GET_DESCRIPTOR           // Code for Get Descriptor
-0x07 SET_DESCRIPTOR           // Code for Set Descriptor(not used)
-0x08 GET_CONFIGURATION        // Code for Get Configuration
-0x09 SET_CONFIGURATION        // Code for Set Configuration
-0x0A GET_INTERFACE            // Code for Get Interface
-0x0B SET_INTERFACE            // Code for Set Interface
-0x0C SYNCH_FRAME              // Code for Synch Frame(not used)
-)
-//Standard Descriptor Types
-(
-0x01 DSC_DEVICE               // Device Descriptor
-0x02 DSC_CONFIG               // Configuration Descriptor
-0x03 DSC_STRING               // String Descriptor
-0x04 DSC_INTERFACE            // Interface Descriptor
-0x05 DSC_ENDPOINT             // Endpoint Descriptor
-)
-//HID Descriptor Types
-(
-0x21 DSC_HID			      // HID Class Descriptor
-0x22 DSC_HID_REPORT			  // HID Report Descriptor
-)
-//Define bmRequestType bitmaps
-(
-0x80 IN_DEVICE                // Request made to device,
-                              // direction is IN
-0x00 OUT_DEVICE               // Request made to device,
-                              // direction is OUT
-0x81 IN_INTERFACE             // Request made to interface,
-                              // direction is IN
-0x01 OUT_INTERFACE            // Request made to interface,
-                              // direction is OUT
-0x82 IN_ENDPOINT              // Request made to endpoint,
-                              // direction is IN
-0x02 OUT_ENDPOINT             // Request made to endpoint,
-)
-//HID Request Codes
-(
-0x01 GET_REPORT 		       // Code for Get Report
-0x02 GET_IDLE				   // Code for Get Idle
-0x03 GET_PROTOCOL			   // Code for Get Protocol
-0x09 SET_REPORT				   // Code for Set Report
-0x0A SET_IDLE				   // Code for Set Idle
-0x0B SET_PROTOCOL			   // Code for Set Protocol
-0xF2 HID_REPORT_ID           
-64 EP0_PACKET_SIZE         
-6 EP1_PACKET_SIZE         
-16 HID_REPORT_SIZE         
-0x001B HID_REPORT_DESCRIPTOR_SIZE    
-)
-//math cordic
-(
-0 TYPE_SIN		
-1 TYPE_ATAN	
-2 TYPE_MULT	
-3 TYPE_DIV		
-4 TYPE_ASIN	
-5 TYPE_SQRT	
-6 TYPE_COS		
-7 TYPE_TAN		 
-)
-   
-(
-0 DFIFO0_IN_EMPTY
-1 DFIFO1_IN_EMPTY
-2 DFIFO2_IN_EMPTY
-3 DFIFO3_IN_EMPTY
-4 DFIFO0_OUT_EMPTY
-5 DFIFO1_OUT_EMPTY
-6 DFIFO2_OUT_EMPTY
-7 DFIFO3_OUT_EMPTY
-)
-
-(
-)
-
-(
-0 USB_STATUS_SETUP
-1 USB_STATUS_SUSPEND
-2 USB_STATUS_NAK
-3 USB_STATUS_RESET
-4 USB_STATUS_ACK
-5 USB_STATUS_RXREADY
-6 USB_STATUS_RXFULL
-7 USB_STATUS_TXDONE0
-8 USB_STATUS_TXDONE1
-9 USB_STATUS_TXDONE2
-10 USB_STATUS_TXDONE3
-)
-
-(
-1 USB_GOT_REPORT_REQ
-2 USB_CONNECTED
-3 USB_SLEEP
-4 USB_RESUME
-5 USB_SETIDLE_1
-)
-
-(
-0x10 USB_EP1_KB
-0x20 USB_EP2_MS
-0x21 USB_EP2_MULTIKEY
-0x22 USB_EP2_SYSTEMKEY
-0x23 USB_EP2_BIT_CONSUMER
-0x24 USB_EP2_N_KEY_ROLLOVER
-0x01 MAC_BOOT_MODE
-0x02 R_KEY
-0x03 LR_KEY
-)
-
-
-(
-0x01ba PC_GET_REPORT
-0x02ba PC_SET_REPORT
-0x0200 PC_SET_REPORT_bValue
-0x0000 PC_SET_REPORT_wIndex
-0x0001 PC_SET_REPORT_bLength
-0xba PC_REPORT_ID
-
-0x01 PC_GET_DATA
-0x00 PC_GET_NONDATA
-)
-
-(
-//--------------------------------------------------
-// Define device states
-0x00 DEV_ATTACHED	// Device is in Attached State
-0x01 DEV_POWERED	// Device is in Powered State
-0x02 DEV_DEFAULT		// Device is in Default State
-0x03 DEV_ADDRESS	// Device is in Addressed State
-0x04 DEV_CONFIGURED	// Device is in Configured State
-0x05 DEV_SUSPENDED	// Device is in Suspended State
-)
-
-(
-// Define wIndex bitmaps
-0x81 IN_EP1                    // Index values used by Set and Clear
-0x01 OUT_EP1                   // commands for Endpoint_Halt
-0x82 IN_EP2              
-0x02 OUT_EP2             
-0x83 IN_EP3              
-0x03 OUT_EP3             
-)
-
-(
-0 EP0_STALL
-1 EP1_IN_STALL
-2 EP1_OUT_STALL
-3 EP2_IN_STALL
-4 EP2_OUT_STALL
-5 EP3_IN_STALL
-6 EP3_OUT_STALL
-)
-
-(
-// Define wValue bitmaps for Standard Feature Selectors
-0x00 ENDPOINT_HALT             // Endpoint_Halt feature selector
-0x01 DEVICE_REMOTE_WAKEUP      // Remote wakeup feature(not used)
-0x00 BOOT_PROTOCOL
-0x01 REPORT_PROTOCOL
-0x01 USB_MAX_NUM_CFG
-)
-
-(
-640 TIMER_NAK_DELAY
-5000 TIMER_WAKEUP_DELAY
-)
-
Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/utility.format
===================================================================
--- /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/utility.format	(revision 5679)
+++ /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/format/utility.format	(nonexistent)
@@ -1,72 +0,0 @@
-
-memalloc(
-
-1 mem_fifo_temp
-
-8 mem_pdatatemp
-8 mem_temp //8 bytes
-4 mem_timeup // 4 bytes
-4 mem_rega //4 bytes
-4 mem_regb //4 bytes
-3 mem_regc //3 bytes
-2 mem_contr //2 bytes
-2 mem_contw //2 bytes
-2 mem_contus
-2 mem_contue
-2 mem_contu
-2 mem_queue
-2 mem_loopcnt
-
-4 mem_saved_gpio_in
-
-0 mem_module_rx_error_data_buffer
-0 mem_le_adv_channel_map_temp
-0 mem_le_data_len_temp	//1byte
-0 mem_event_cmd_response_content	//2byte
-0 mem_le_prand		//16byte
-0 mem_AES_CMAC_k	 //16 bytes
-0 mem_regext_index 	//1 bytes
-1 mem_temp_block0
-0 mem_le_data_temp	//15bytes
-15 mem_temp_block1
-0 mem_le_tx_buf_temp //48byte
-0 mem_le_aes_128	//16byte
-0 mem_regext   //64 bytes
-0 mem_AES_CMAC_k1  //16 bytes
-16 mem_temp_block2
-0 mem_AES_CMAC_k2  //16 bytes
-16 mem_temp_block3
-0 mem_AES_CMAC_temp  // 16 bytes
-16 mem_temp_block4
-0 mem_AES_CMAC_M_last // 16 bytes
-1 mem_module_uart_cmd
-1 mem_module_uart_opcode
-1 mem_module_uart_len
-1 mem_module_temp_nl_discard_packet
-12 mem_temp_block5
-0 mem_le_mackey //16 bytes
-0 mem_app_receive_temp
-2 mem_key_value_temp
-2 mem_key_value
-1 mem_key_value_temp1
-1 mem_key_value_temp2
-1 mem_key_value_temp3
-1 mem_key_value_temp4
-1 mem_key_value_temp5
-1 mem_key_value_temp6
-6 mem_temp_block6
-
-3 mem_scale_ratio
-3 mem_xcnt
-2 mem_scale_ratio_temp
-)
-
-
-//util fifo param
-(
-
-8 UTIL_FIFO_LEN
--1 UTIL_FIFO_OFFSET
-)
-
-
Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/merge_ble_uud_list_files.bat
===================================================================
--- /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/merge_ble_uud_list_files.bat	(revision 5679)
+++ /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/merge_ble_uud_list_files.bat	(nonexistent)
@@ -1,50 +0,0 @@
-@echo off
-setlocal enabledelayedexpansion
-
-REM Set file paths
-set EEPROM_FILE=output\eeprom.dat
-set UUID_FILE=ai_mouse_ble_att_uuid_list.dat
-:: 0x3400 offset address
-set MAX_LINES=13312  
-@REM set OUTPUT_FILE=output\eeprom_merged.dat
-set OUTPUT_FILE=output\eeprom.dat
-echo Processing file merge...
-
-
-REM Count lines in eeprom.dat
-for /f %%i in ('type "%EEPROM_FILE%" ^| find /c /v ""') do set EEPROM_LINES=%%i
-
-echo eeprom.dat bytes: %EEPROM_LINES%
-echo Maximum allowed bytes: %MAX_LINES%
-
-REM Check if eeprom.dat exceeds maximum lines
-if %EEPROM_LINES% GTR %MAX_LINES% (
-    echo Error: eeprom.dat exceeds maximum allowed bytes ^(0x3400 = %MAX_LINES%^)
-    exit /b 1
-)
-
-REM Create new file instead of modifying original file
-echo Creating merged file: %OUTPUT_FILE%
-
-REM Copy original eeprom.dat content to new file
-copy "%EEPROM_FILE%" "%OUTPUT_FILE%" >nul
-
-REM Calculate how many "00" lines to add to reach 0x3400 line position
-set /a FILL_LINES=%MAX_LINES%-%EEPROM_LINES%
-
-REM echo Adding %FILL_LINES% "00" lines to reach 0x3400 line position
-
-REM Add "00" lines until reaching 0x3400 line position
-for /l %%i in (1,1,%FILL_LINES%) do echo 00>> "%OUTPUT_FILE%"
-
-REM Append ai_mouse_ble_att_uuid_list.dat content to output file
-type "%UUID_FILE%" >> "%OUTPUT_FILE%"
-
-echo Files merged successfully!
-echo Final line count in %OUTPUT_FILE%:
-for /f %%i in ('type "%OUTPUT_FILE%" ^| find /c /v ""') do echo %%i bytes
-
-echo.
-echo Merge completed! New file: %OUTPUT_FILE%
-
-endlocal
\ No newline at end of file
Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/output/eeprom.dat
===================================================================
--- /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/output/eeprom.dat	(revision 5679)
+++ /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/output/eeprom.dat	(nonexistent)
@@ -1,14133 +0,0 @@
-00
-02
-8f
-ab
-f1
-00
-3c
-ae
-c6
-03
-78
-5c
-8d
-07
-e0
-71
-35
-1e
-aa
-55
-10
-1f
-b1
-a4
-02
-b3
-d0
-ad
-a4
-ab
-52
-a6
-69
-fb
-ad
-01
-a8
-77
-5e
-60
-8c
-ea
-f3
-02
-6f
-3d
-e9
-3a
-de
-dd
-17
-58
-b7
-d7
-7e
-9f
-b6
-5c
-32
-c7
-af
-35
-07
-f8
-c0
-a4
-17
-c8
-a0
-61
-78
-b9
-2e
-9d
-93
-44
-71
-36
-4b
-0f
-3c
-03
-e5
-97
-fc
-d4
-c1
-17
-e0
-6d
-f9
-ac
-60
-c8
-e0
-2a
-b2
-df
-eb
-bb
-d9
-ef
-09
-7d
-10
-23
-61
-7b
-7f
-e3
-68
-d2
-76
-85
-64
-05
-3f
-e8
-e7
-b5
-44
-2a
-88
-9d
-be
-03
-c4
-27
-98
-1c
-ed
-02
-9c
-bc
-4e
-6b
-65
-f0
-1a
-39
-b0
-20
-17
-80
-0a
-6c
-ad
-b3
-67
-71
-d5
-d2
-fa
-d6
-82
-33
-18
-8a
-9a
-2f
-2a
-58
-d0
-2d
-7d
-73
-5e
-34
-7d
-51
-78
-88
-49
-0b
-83
-61
-be
-86
-d7
-a2
-52
-15
-6b
-88
-61
-61
-c7
-00
-9c
-a7
-d1
-a6
-fa
-2f
-ef
-9e
-cd
-2f
-e9
-46
-51
-34
-37
-dd
-d9
-03
-76
-aa
-23
-3f
-3b
-1a
-95
-cb
-09
-ee
-2a
-07
-32
-65
-c9
-1b
-fd
-4d
-9d
-65
-c9
-97
-a8
-94
-94
-a7
-6d
-05
-5a
-e0
-36
-44
-87
-b1
-d8
-3a
-69
-ec
-0e
-1b
-51
-cb
-e4
-f2
-6c
-78
-3c
-8a
-07
-ee
-a7
-15
-76
-41
-b8
-90
-85
-42
-23
-c3
-22
-aa
-9c
-11
-e9
-13
-57
-6b
-18
-57
-ec
-5b
-2f
-2b
-10
-b1
-0c
-26
-3b
-fa
-a3
-d0
-04
-1b
-9d
-14
-ed
-09
-e3
-f5
-5e
-81
-9a
-42
-d7
-50
-93
-e4
-6c
-66
-d0
-29
-e0
-60
-8f
-19
-39
-a8
-20
-d4
-36
-af
-af
-fb
-6e
-51
-44
-eb
-51
-b5
-95
-41
-1a
-fa
-02
-d0
-73
-05
-88
-3d
-58
-06
-cc
-34
-bc
-94
-a7
-4b
-5d
-86
-6e
-35
-bc
-96
-1e
-23
-f6
-b4
-a7
-b2
-72
-f9
-bf
-f4
-bd
-7d
-b6
-dd
-e5
-fc
-1d
-96
-16
-44
-57
-25
-8e
-6c
-17
-05
-3a
-2d
-e2
-18
-dc
-f4
-43
-ad
-ff
-f1
-63
-53
-5d
-5c
-31
-24
-7f
-21
-4f
-95
-76
-45
-58
-30
-f9
-b7
-3c
-b0
-fe
-e7
-a8
-79
-4e
-b5
-48
-80
-48
-81
-46
-cb
-5d
-67
-c4
-cf
-8c
-dd
-5b
-44
-6d
-9d
-e0
-f7
-ed
-bb
-ef
-70
-02
-0d
-10
-46
-1c
-3a
-6a
-51
-26
-0c
-53
-bb
-f6
-f9
-19
-99
-da
-c7
-4d
-34
-c9
-28
-47
-d5
-db
-5f
-17
-4c
-6a
-52
-83
-e0
-10
-3a
-e0
-c5
-24
-64
-b1
-8c
-af
-91
-bd
-0a
-35
-23
-ec
-bd
-b3
-05
-2d
-c9
-62
-0f
-74
-b8
-07
-a4
-d9
-ea
-f5
-cb
-86
-24
-cc
-18
-4d
-de
-38
-08
-f0
-55
-78
-a0
-2b
-90
-d0
-73
-16
-c2
-c0
-ba
-a5
-ea
-2c
-5c
-50
-1d
-39
-15
-3a
-bd
-d2
-83
-8d
-be
-de
-f0
-8b
-b3
-6a
-70
-72
-a9
-86
-b4
-ef
-31
-c1
-66
-bc
-59
-af
-e2
-f4
-69
-b7
-0a
-db
-d3
-78
-3e
-aa
-24
-85
-ff
-bd
-a3
-51
-34
-ae
-76
-8f
-74
-86
-b6
-75
-e0
-70
-d6
-d5
-4d
-71
-9d
-ce
-67
-c2
-cd
-da
-00
-4f
-df
-96
-04
-f3
-25
-ef
-0d
-a3
-74
-44
-b1
-ef
-b1
-d3
-57
-93
-4b
-7a
-06
-87
-99
-fa
-2f
-bd
-be
-31
-9e
-e5
-a6
-42
-01
-52
-e7
-e9
-aa
-3e
-19
-75
-bc
-9e
-5a
-d9
-a2
-b7
-74
-b7
-93
-66
-9d
-fd
-b7
-e4
-38
-71
-57
-6f
-38
-0b
-39
-5a
-2c
-ac
-cc
-12
-2b
-a3
-aa
-12
-2a
-6b
-c0
-4f
-da
-5e
-43
-10
-de
-94
-2a
-a0
-c0
-2d
-3e
-82
-c4
-8d
-ac
-52
-c5
-b9
-5d
-cb
-48
-05
-d2
-44
-c7
-8b
-ff
-69
-9b
-61
-b7
-37
-de
-07
-58
-e4
-0a
-14
-d5
-3d
-16
-3c
-81
-b4
-22
-73
-12
-e2
-86
-32
-1e
-09
-8e
-99
-b3
-f5
-3c
-5a
-c0
-c1
-eb
-8b
-09
-bb
-1f
-67
-ed
-40
-53
-8b
-d7
-cb
-ee
-d2
-f6
-c0
-96
-ba
-c6
-aa
-d3
-52
-2e
-e5
-40
-1e
-61
-c7
-4d
-06
-b1
-5e
-09
-58
-83
-5d
-51
-6d
-a3
-3a
-ee
-69
-ec
-a8
-67
-b5
-0c
-f6
-38
-ba
-18
-23
-ad
-9f
-66
-7e
-c0
-0d
-3e
-82
-83
-0b
-01
-b8
-ac
-89
-a4
-a3
-37
-85
-64
-af
-2b
-77
-7f
-49
-ba
-27
-82
-3b
-0b
-10
-ec
-10
-d8
-cc
-fa
-42
-5c
-fe
-6b
-76
-87
-60
-c8
-0d
-cb
-38
-42
-7e
-58
-24
-e2
-39
-36
-ff
-be
-5c
-72
-19
-f4
-0d
-ef
-55
-f2
-8f
-7f
-39
-ff
-16
-b9
-aa
-47
-2e
-ab
-62
-30
-0c
-ce
-5a
-aa
-40
-fb
-a1
-a7
-40
-dd
-0f
-53
-5d
-11
-f4
-4d
-23
-d3
-67
-2a
-96
-01
-15
-0a
-08
-2c
-42
-75
-83
-74
-f6
-7f
-c5
-c8
-d3
-14
-06
-08
-18
-8c
-c6
-ae
-05
-2d
-b6
-20
-87
-a8
-70
-4c
-68
-43
-f6
-d5
-cc
-62
-46
-c4
-6a
-4f
-c3
-f8
-ac
-e8
-2a
-c8
-d0
-ac
-30
-26
-01
-0c
-aa
-2f
-68
-3c
-8c
-57
-87
-b3
-e3
-43
-b6
-6f
-76
-f5
-7a
-0f
-d5
-dd
-f5
-6b
-11
-ca
-0e
-39
-f5
-d5
-59
-a1
-c0
-96
-61
-9e
-88
-c2
-26
-6b
-11
-76
-13
-cd
-c1
-dc
-48
-b2
-6e
-43
-08
-9d
-55
-fb
-94
-62
-8e
-7e
-f8
-66
-61
-38
-e0
-03
-98
-66
-62
-d6
-c7
-58
-0a
-cc
-9c
-d8
-b5
-c4
-bf
-e5
-fe
-39
-d3
-0b
-7a
-77
-a6
-3f
-a5
-1c
-b0
-57
-bc
-d3
-fa
-c2
-7c
-a8
-aa
-c1
-03
-e8
-89
-dc
-97
-3e
-b7
-fb
-ec
-b3
-5f
-df
-ef
-b9
-e8
-4e
-e5
-03
-70
-0c
-6b
-53
-80
-e9
-1a
-dc
-ea
-94
-64
-06
-6a
-c1
-fa
-60
-e7
-c1
-94
-bd
-86
-a0
-ab
-e2
-cf
-ac
-f5
-5a
-28
-a9
-b0
-a1
-e6
-aa
-4f
-f8
-8f
-fd
-27
-17
-56
-15
-ed
-a9
-ed
-1a
-bd
-2a
-0d
-23
-eb
-43
-76
-7a
-2b
-eb
-03
-87
-bc
-fe
-2f
-48
-9d
-d2
-4c
-97
-14
-6b
-fe
-61
-c6
-49
-9b
-fc
-9d
-b2
-78
-a2
-35
-97
-6c
-6c
-1a
-c4
-74
-9f
-30
-cc
-42
-98
-e4
-b9
-31
-d5
-2f
-3e
-97
-9c
-b6
-70
-73
-e1
-2a
-fd
-08
-e2
-e8
-d4
-47
-92
-66
-32
-a0
-23
-ff
-00
-87
-6d
-94
-18
-c0
-53
-4d
-d4
-d7
-57
-02
-f6
-02
-99
-30
-85
-41
-7c
-a7
-a1
-54
-07
-4a
-12
-58
-23
-d9
-55
-41
-a0
-2e
-35
-a7
-c9
-96
-82
-60
-25
-f5
-f4
-6f
-7b
-f8
-d0
-b4
-94
-42
-e5
-b9
-ea
-9a
-27
-67
-a3
-bf
-4b
-08
-98
-21
-aa
-28
-ed
-bd
-8a
-51
-f3
-c2
-6a
-6e
-8d
-fd
-02
-1b
-58
-8f
-54
-6d
-9b
-8a
-91
-c0
-ed
-f7
-46
-42
-98
-a8
-0f
-89
-fc
-17
-47
-a5
-63
-5c
-36
-49
-d9
-ee
-4f
-44
-46
-31
-8f
-8c
-7d
-06
-d8
-1d
-41
-07
-47
-5d
-79
-19
-5b
-8c
-7a
-49
-40
-4d
-be
-59
-bb
-59
-b1
-c6
-8d
-4d
-f4
-ec
-f5
-d7
-7e
-ae
-26
-42
-54
-32
-8a
-a9
-3f
-4c
-e8
-80
-ae
-3f
-f3
-18
-9c
-df
-79
-72
-e9
-af
-60
-25
-4d
-49
-26
-f5
-74
-83
-f2
-8f
-99
-a1
-4a
-d8
-fe
-64
-bd
-28
-f0
-be
-cd
-4d
-00
-df
-51
-eb
-47
-1e
-0d
-10
-2b
-e8
-79
-96
-26
-76
-61
-7a
-28
-8f
-43
-dc
-4a
-d5
-9d
-7c
-1a
-44
-06
-9a
-f1
-38
-9d
-5d
-68
-5e
-25
-6c
-02
-91
-59
-09
-23
-fe
-81
-21
-4a
-b9
-b0
-43
-63
-8b
-6c
-38
-4d
-6d
-5f
-3f
-a7
-e3
-54
-cf
-60
-0b
-1e
-6d
-b9
-eb
-b0
-98
-a6
-5c
-0c
-b6
-c0
-e1
-f6
-49
-28
-ab
-6c
-d5
-3f
-bc
-cd
-da
-09
-5c
-8a
-e2
-7c
-b0
-07
-b9
-f9
-7b
-55
-64
-0a
-b6
-ec
-c1
-0e
-5c
-c1
-ee
-fc
-f9
-cd
-c4
-2c
-ed
-2c
-7c
-2a
-02
-ac
-1d
-e3
-35
-80
-5b
-e5
-0c
-bf
-ef
-5d
-8d
-9d
-e6
-64
-b3
-c6
-25
-69
-51
-a5
-63
-01
-bd
-61
-f3
-6a
-71
-26
-97
-2b
-3b
-bc
-7a
-70
-50
-d9
-55
-0e
-10
-8a
-3e
-68
-ea
-3b
-d4
-01
-14
-e6
-0b
-ff
-85
-4a
-f9
-9d
-56
-52
-d4
-8b
-62
-4c
-64
-fd
-2b
-ea
-f8
-5e
-57
-cf
-ed
-1c
-4f
-e1
-d1
-64
-63
-4f
-57
-14
-42
-d8
-96
-8d
-c0
-a8
-11
-53
-e2
-23
-0f
-e3
-0c
-8c
-7d
-82
-d9
-66
-9e
-db
-d8
-78
-5e
-cc
-e5
-68
-1a
-94
-5f
-71
-88
-b5
-f9
-1a
-06
-bb
-2b
-7a
-0d
-ed
-8a
-85
-69
-d1
-ab
-ea
-df
-e0
-1b
-49
-55
-e7
-f9
-6d
-ef
-75
-4b
-69
-35
-dd
-f5
-ed
-b4
-62
-48
-da
-8b
-b8
-51
-1e
-ca
-76
-a9
-0d
-48
-bf
-33
-3a
-75
-87
-ce
-32
-25
-0f
-2f
-5d
-60
-77
-ad
-13
-df
-f6
-2a
-55
-14
-64
-47
-08
-28
-47
-61
-d8
-af
-18
-06
-3e
-9a
-fe
-0c
-82
-6c
-0c
-0b
-f8
-06
-6a
-1c
-3e
-1e
-41
-4c
-6c
-aa
-a2
-4d
-ca
-9a
-6d
-3e
-e0
-cf
-f3
-62
-06
-87
-0b
-d8
-4e
-bf
-67
-31
-e9
-7b
-0f
-dd
-43
-bd
-ff
-f7
-56
-35
-8f
-5f
-e4
-f5
-84
-98
-4b
-c3
-a8
-cd
-d4
-10
-69
-ac
-61
-61
-93
-25
-d2
-2f
-aa
-30
-de
-f2
-25
-42
-1e
-43
-60
-c7
-82
-8c
-82
-41
-ea
-7a
-54
-97
-60
-0f
-5c
-8f
-c4
-91
-d8
-2f
-97
-12
-39
-e9
-65
-ec
-01
-3f
-6e
-0b
-60
-f6
-88
-bd
-46
-cb
-ec
-e7
-2d
-10
-d4
-f7
-4e
-f9
-8b
-80
-41
-5c
-c2
-52
-7f
-36
-88
-5b
-d8
-3f
-4f
-22
-af
-3b
-d7
-25
-4c
-8c
-79
-b1
-97
-79
-1a
-25
-74
-a4
-d7
-66
-78
-81
-22
-7b
-3f
-c5
-af
-11
-9d
-1d
-89
-bd
-db
-a3
-11
-c8
-cc
-5c
-97
-b7
-e7
-0f
-c2
-a3
-4c
-6c
-57
-84
-44
-50
-04
-cf
-3c
-47
-2b
-8b
-16
-87
-2d
-03
-ca
-ee
-36
-7c
-8c
-e1
-55
-87
-bf
-1c
-fb
-4a
-fc
-46
-72
-7b
-c3
-e5
-42
-3e
-22
-ba
-21
-bb
-1f
-2b
-e0
-b5
-be
-b3
-ec
-3c
-b4
-d0
-15
-29
-45
-ed
-0f
-fd
-72
-cd
-70
-bc
-84
-ad
-38
-9c
-da
-c4
-9b
-40
-e5
-7f
-26
-be
-5f
-1a
-e1
-e4
-0b
-3b
-48
-82
-6e
-af
-6a
-e8
-64
-22
-16
-4c
-48
-ea
-bd
-aa
-cd
-2f
-b1
-ef
-f6
-dc
-b8
-7c
-e2
-24
-3f
-5b
-56
-73
-2f
-25
-11
-41
-fc
-c3
-97
-a5
-d0
-1b
-f5
-25
-60
-11
-cb
-49
-c8
-58
-2e
-40
-7d
-fe
-0c
-ed
-5d
-ec
-02
-50
-44
-8b
-cf
-0b
-15
-9f
-37
-70
-66
-5d
-7f
-66
-42
-f7
-fd
-fb
-f0
-e3
-0d
-3a
-c3
-b4
-02
-08
-e5
-87
-76
-17
-e9
-91
-3d
-5c
-59
-38
-18
-a1
-4d
-c7
-4d
-05
-3f
-0d
-0c
-df
-02
-d0
-9b
-2d
-d0
-82
-80
-00
-58
-fb
-8b
-9f
-eb
-c0
-09
-52
-24
-21
-fa
-67
-6f
-9e
-0a
-f7
-7e
-0f
-19
-d3
-92
-ce
-3b
-ed
-95
-1c
-8a
-a5
-b1
-70
-c0
-0d
-1e
-d4
-84
-d1
-50
-06
-5a
-81
-7f
-c9
-fd
-a5
-c6
-24
-4f
-4d
-d5
-e6
-63
-30
-70
-9f
-a7
-54
-bb
-8d
-b2
-1e
-39
-70
-1e
-40
-23
-67
-31
-04
-e5
-85
-f8
-ef
-b7
-6e
-24
-cd
-57
-79
-c8
-6c
-b9
-8a
-1c
-91
-c6
-f6
-d2
-a3
-3a
-0b
-f8
-1c
-d9
-da
-73
-37
-e2
-8a
-42
-50
-8f
-52
-40
-0e
-b1
-f7
-60
-2a
-f5
-8a
-6c
-8e
-6e
-bf
-e0
-b4
-c2
-53
-97
-ae
-99
-f5
-b4
-f5
-1f
-52
-03
-60
-ad
-0c
-63
-9a
-2a
-b2
-e4
-e8
-7c
-75
-09
-86
-04
-04
-19
-19
-6b
-ec
-fb
-a6
-66
-e5
-c2
-61
-6b
-86
-97
-1d
-34
-8f
-00
-9d
-71
-22
-86
-5e
-98
-1d
-8c
-4d
-b6
-34
-4b
-ab
-df
-c4
-95
-f3
-ea
-a7
-2a
-38
-17
-fa
-43
-82
-f9
-25
-c7
-f0
-19
-25
-32
-9d
-75
-cc
-77
-bf
-50
-e2
-02
-f8
-9b
-67
-e2
-a6
-f7
-59
-f8
-76
-1e
-df
-bf
-28
-ef
-4d
-a3
-36
-74
-01
-b0
-65
-e2
-42
-49
-b6
-f0
-2e
-ea
-f3
-ea
-2a
-61
-4c
-db
-5d
-50
-2c
-bc
-8a
-fe
-7a
-b8
-30
-e6
-26
-40
-bc
-d4
-02
-a9
-b7
-4f
-8f
-b1
-8b
-c4
-d9
-58
-a3
-6c
-d2
-ba
-f5
-a1
-af
-1f
-8f
-17
-8d
-aa
-95
-7b
-a3
-75
-0a
-70
-ac
-7d
-5a
-d7
-75
-28
-f4
-37
-da
-bd
-99
-24
-67
-14
-69
-d4
-67
-f3
-7c
-53
-2d
-d6
-d3
-70
-45
-0c
-40
-be
-1b
-15
-0c
-b4
-6a
-36
-bd
-1c
-1b
-0b
-db
-e5
-2d
-76
-07
-b1
-37
-66
-99
-93
-b4
-d3
-42
-97
-1a
-08
-a4
-a8
-80
-72
-31
-dc
-77
-e9
-8f
-92
-6e
-46
-65
-d8
-38
-75
-96
-e6
-be
-10
-b3
-2a
-b2
-a3
-d4
-67
-f6
-2b
-85
-7e
-3e
-6e
-6d
-c0
-93
-32
-6b
-0f
-00
-c0
-a7
-df
-13
-96
-b1
-4b
-eb
-4f
-4c
-61
-3e
-0c
-96
-08
-fb
-25
-6e
-06
-3b
-a7
-3b
-fd
-0c
-b6
-34
-57
-f5
-54
-cd
-7b
-4d
-51
-67
-dc
-4a
-09
-66
-f6
-b9
-05
-a3
-73
-94
-bf
-4d
-61
-de
-fc
-0d
-cf
-ee
-94
-5c
-71
-45
-d2
-52
-e0
-ba
-a7
-0f
-3f
-8e
-5f
-0d
-96
-05
-04
-05
-18
-f9
-64
-87
-27
-55
-fd
-f0
-f1
-44
-c7
-e4
-50
-b9
-42
-7a
-8a
-48
-7b
-18
-98
-5a
-aa
-eb
-17
-c4
-9d
-04
-b1
-d2
-f7
-c3
-4b
-77
-62
-34
-b8
-46
-15
-f6
-73
-36
-de
-33
-37
-50
-df
-be
-58
-0d
-f1
-4e
-ec
-1b
-c0
-89
-23
-11
-d2
-ae
-74
-ca
-c7
-3d
-50
-54
-1c
-0c
-5e
-ba
-a6
-80
-38
-8f
-c6
-ee
-7b
-d7
-91
-c6
-ce
-17
-97
-fa
-67
-d7
-36
-2b
-da
-44
-0e
-07
-88
-d2
-95
-b5
-06
-07
-1b
-36
-61
-99
-0b
-5f
-d2
-ea
-b1
-9d
-02
-cc
-e7
-a1
-04
-34
-06
-ff
-34
-3a
-5f
-83
-6a
-ea
-d9
-46
-28
-57
-7d
-a7
-5c
-c7
-69
-87
-9c
-44
-07
-94
-a2
-b2
-b9
-54
-11
-a0
-c7
-1b
-d8
-06
-43
-10
-83
-48
-17
-ab
-bc
-56
-79
-96
-e1
-af
-34
-f1
-66
-d3
-65
-c8
-67
-b6
-ab
-17
-2a
-cd
-3d
-68
-72
-fd
-9d
-d4
-07
-95
-36
-a0
-84
-cd
-65
-1e
-81
-22
-6b
-ce
-b0
-42
-dc
-8e
-4c
-3c
-6d
-3b
-fb
-ec
-33
-c5
-1b
-7a
-55
-ce
-72
-2d
-e7
-09
-f5
-b6
-64
-76
-8e
-1a
-63
-af
-ed
-ae
-c5
-c7
-03
-c3
-57
-c3
-88
-af
-3e
-66
-20
-d5
-04
-55
-15
-e5
-c0
-b4
-4c
-7d
-1b
-9a
-f5
-ee
-ad
-4a
-d0
-f8
-ce
-ff
-d5
-bf
-17
-d6
-5e
-c6
-3e
-eb
-87
-ed
-22
-50
-cf
-46
-5b
-b2
-52
-cf
-8b
-d8
-b5
-84
-96
-45
-03
-d5
-d9
-d3
-f9
-95
-63
-d5
-5f
-0e
-06
-44
-10
-e2
-14
-ce
-c7
-5e
-fc
-5f
-e8
-0e
-25
-46
-4d
-ea
-ea
-a9
-6e
-b0
-ae
-f9
-3b
-24
-96
-86
-f9
-a5
-4d
-2b
-48
-b5
-1d
-6c
-4d
-a0
-67
-6d
-2f
-cd
-5f
-c9
-b8
-a8
-f8
-e0
-48
-17
-d6
-06
-56
-57
-f7
-1c
-db
-4e
-cd
-6c
-da
-07
-20
-91
-a6
-d8
-ac
-48
-aa
-6a
-28
-2c
-bc
-0c
-74
-c9
-66
-db
-ad
-88
-ca
-d9
-2b
-8b
-2f
-9f
-ab
-17
-e2
-cd
-c4
-19
-97
-f6
-36
-fe
-9c
-21
-3a
-2e
-da
-4c
-da
-96
-99
-f4
-79
-6b
-df
-43
-81
-50
-50
-dd
-9c
-36
-e5
-43
-7b
-98
-24
-4e
-90
-2c
-39
-36
-bc
-72
-15
-60
-9b
-1f
-08
-ed
-05
-95
-4e
-0c
-72
-4b
-69
-0d
-9c
-2a
-61
-b2
-21
-38
-36
-04
-41
-39
-87
-65
-23
-f7
-fb
-57
-e0
-6d
-0b
-7c
-79
-fb
-65
-2d
-5f
-66
-57
-e9
-77
-d5
-98
-2b
-6a
-48
-f6
-b9
-04
-d7
-ae
-35
-61
-48
-16
-b4
-a6
-a9
-39
-f3
-8c
-9a
-74
-a4
-f9
-ed
-ad
-9c
-6b
-ab
-bc
-d4
-f5
-52
-69
-f6
-1c
-66
-af
-9e
-7c
-f5
-fd
-0c
-ca
-2d
-1c
-03
-83
-c5
-aa
-91
-c5
-2e
-7b
-89
-ae
-94
-bd
-e9
-af
-54
-57
-65
-1e
-3c
-03
-c3
-2b
-71
-09
-c3
-9e
-b6
-f8
-be
-18
-cc
-53
-8f
-d5
-7d
-14
-46
-27
-8c
-6d
-e5
-7e
-03
-6b
-ce
-bf
-aa
-2c
-21
-37
-64
-70
-26
-2c
-e9
-d9
-eb
-93
-f0
-74
-06
-46
-85
-32
-4a
-b6
-d1
-fe
-c8
-22
-af
-f1
-10
-12
-dc
-6f
-8e
-cb
-10
-2e
-67
-01
-44
-01
-a5
-ab
-e8
-61
-1e
-d5
-c2
-bc
-5d
-55
-81
-9d
-56
-26
-be
-52
-d3
-d7
-03
-98
-95
-3d
-2c
-c2
-bd
-fa
-bc
-98
-d6
-cf
-d9
-90
-2d
-3a
-3d
-06
-f1
-91
-f9
-28
-8d
-8e
-7c
-21
-15
-91
-4f
-76
-5c
-99
-7c
-82
-d9
-50
-4b
-b1
-f4
-00
-70
-04
-d1
-21
-4e
-5e
-d0
-fc
-31
-17
-d0
-29
-80
-3e
-b9
-80
-9e
-c1
-e1
-4d
-fc
-e8
-d2
-7b
-51
-5d
-21
-e5
-cf
-c3
-5a
-1b
-c2
-5f
-ce
-9a
-a2
-53
-2a
-c6
-1b
-bf
-7e
-7b
-ad
-d4
-4f
-86
-2a
-9b
-64
-e9
-0b
-01
-c0
-92
-49
-b7
-0b
-e2
-8f
-48
-a9
-0f
-b9
-8e
-ae
-04
-cd
-ba
-d4
-2d
-d3
-5f
-01
-2b
-bd
-c1
-b7
-c9
-6e
-7c
-84
-e4
-de
-34
-6d
-01
-b7
-a4
-ab
-5a
-3f
-82
-81
-2b
-71
-f5
-66
-70
-70
-f0
-0f
-ad
-c6
-39
-74
-dd
-5e
-cc
-31
-d5
-29
-b1
-ce
-a4
-89
-e7
-7e
-61
-3f
-c5
-06
-be
-29
-d0
-51
-9d
-56
-db
-39
-aa
-99
-b6
-4d
-d1
-80
-f3
-59
-f7
-81
-96
-75
-09
-12
-e7
-79
-ec
-11
-01
-30
-23
-b4
-39
-89
-cc
-3a
-d7
-95
-18
-eb
-05
-92
-f2
-a8
-8c
-80
-38
-e7
-a9
-c8
-af
-eb
-b1
-7a
-d4
-9b
-83
-4b
-e1
-27
-ee
-aa
-89
-7a
-cb
-1b
-c4
-06
-6e
-48
-67
-e5
-66
-b5
-80
-cc
-4d
-54
-18
-17
-a1
-96
-c2
-7e
-0e
-97
-83
-f4
-06
-ec
-82
-cf
-d5
-57
-78
-a1
-a0
-02
-76
-0c
-7c
-5f
-7f
-d6
-4e
-d1
-61
-13
-04
-e0
-ca
-1a
-ed
-b0
-da
-e2
-7b
-5f
-6c
-e5
-c5
-a8
-ec
-f4
-ea
-54
-fc
-d5
-f4
-56
-6f
-80
-ef
-43
-b8
-02
-10
-08
-93
-c0
-39
-8b
-1d
-37
-c5
-48
-a9
-95
-1e
-cf
-d6
-5d
-fb
-43
-73
-0d
-9b
-59
-41
-77
-bf
-6c
-09
-d9
-2c
-56
-11
-55
-23
-d1
-9b
-a0
-bd
-2c
-30
-c0
-ab
-f0
-15
-85
-39
-b3
-3f
-e9
-2e
-78
-47
-8f
-25
-60
-50
-34
-ba
-10
-26
-32
-a1
-5a
-f1
-c5
-eb
-47
-9a
-a2
-cc
-9c
-ae
-22
-94
-09
-2c
-61
-a1
-45
-8e
-f7
-12
-92
-aa
-40
-1f
-d3
-8e
-65
-b9
-5d
-35
-c0
-71
-a6
-d0
-4f
-a2
-47
-14
-d5
-e9
-2b
-dc
-1d
-f6
-32
-5e
-7d
-e3
-10
-c5
-d3
-0a
-ad
-aa
-93
-66
-cc
-4c
-55
-d5
-2b
-64
-9f
-7a
-97
-5d
-b2
-86
-94
-28
-8f
-d3
-33
-db
-0e
-1b
-9a
-ff
-a0
-e8
-ba
-6d
-07
-82
-86
-59
-ed
-5c
-9a
-4c
-88
-30
-04
-f1
-44
-04
-7e
-11
-40
-cd
-eb
-b0
-95
-57
-3c
-e5
-5f
-23
-00
-90
-2a
-01
-16
-bd
-09
-cc
-ad
-b4
-88
-76
-9f
-c7
-ba
-9d
-5d
-81
-e9
-6b
-5e
-91
-74
-53
-ed
-43
-08
-a3
-dc
-f8
-66
-41
-3d
-0a
-50
-d4
-5a
-ad
-06
-9b
-96
-f9
-ca
-e3
-09
-4c
-ef
-33
-2d
-b0
-a0
-23
-f4
-2c
-9d
-19
-fb
-82
-41
-db
-97
-51
-d4
-21
-7c
-63
-66
-b5
-28
-f2
-ff
-6e
-62
-af
-94
-af
-06
-9e
-4a
-e2
-01
-20
-71
-82
-be
-3f
-90
-3b
-a8
-3b
-86
-bd
-20
-34
-8d
-64
-73
-da
-0d
-06
-21
-77
-c1
-33
-5c
-00
-3c
-e1
-de
-9c
-fa
-91
-cf
-26
-c6
-99
-a5
-61
-a2
-77
-a2
-3d
-ac
-21
-bf
-e6
-21
-07
-a3
-31
-05
-6d
-a4
-b1
-c7
-9d
-98
-14
-7a
-19
-31
-2f
-04
-e5
-65
-aa
-19
-06
-06
-6b
-e5
-b6
-e4
-bf
-63
-90
-35
-c6
-d9
-49
-91
-d1
-1c
-46
-3a
-25
-c6
-18
-83
-f4
-92
-cb
-ab
-8c
-81
-87
-77
-50
-02
-1b
-25
-51
-f9
-39
-c4
-3e
-31
-5b
-96
-50
-0b
-8f
-2b
-3b
-68
-b3
-93
-1e
-a0
-55
-49
-74
-6e
-18
-5f
-87
-03
-4b
-37
-0d
-42
-da
-85
-46
-d9
-63
-bf
-0f
-13
-aa
-a4
-cc
-fc
-35
-a9
-d7
-af
-98
-b1
-5b
-6a
-b5
-ec
-b3
-95
-11
-a6
-9c
-60
-c6
-40
-e9
-d8
-08
-38
-74
-4d
-88
-33
-b5
-a3
-46
-c9
-3e
-2d
-42
-aa
-9a
-54
-47
-c8
-fe
-e5
-25
-f3
-47
-23
-7b
-b8
-f7
-77
-b3
-6d
-ae
-96
-53
-ee
-09
-d6
-6c
-07
-a0
-1f
-aa
-db
-85
-b2
-58
-8f
-50
-01
-39
-48
-40
-74
-a5
-60
-61
-fc
-80
-1e
-63
-2a
-e6
-5d
-73
-b5
-cf
-88
-7f
-22
-da
-29
-2f
-ab
-9e
-51
-5a
-b6
-d7
-07
-51
-88
-82
-96
-f5
-9e
-bf
-53
-43
-3b
-90
-17
-9a
-6a
-f5
-74
-e4
-99
-f3
-62
-82
-c7
-47
-ad
-b5
-d0
-c9
-04
-1f
-73
-68
-4d
-b9
-f5
-d8
-3d
-44
-3e
-91
-29
-2c
-2b
-9d
-f5
-2f
-d9
-22
-db
-16
-8d
-15
-0e
-d9
-6e
-36
-5f
-9b
-05
-10
-15
-a0
-17
-a1
-cc
-20
-0c
-35
-32
-eb
-cf
-40
-a2
-84
-a2
-45
-9d
-8b
-45
-ae
-53
-a4
-78
-1a
-bd
-95
-82
-5e
-3e
-23
-eb
-04
-10
-87
-7d
-5d
-d0
-e3
-85
-9d
-c5
-65
-07
-18
-82
-37
-ab
-67
-41
-68
-f2
-08
-f7
-85
-d2
-46
-80
-d7
-d3
-15
-97
-bc
-5a
-d6
-02
-91
-77
-3e
-d7
-38
-25
-d4
-5f
-fa
-1f
-03
-c4
-84
-b5
-3a
-a7
-03
-e1
-0b
-4f
-4c
-50
-1a
-c8
-86
-69
-84
-dd
-18
-cb
-06
-c5
-b4
-fd
-23
-9e
-52
-f6
-12
-09
-c6
-ec
-e1
-c6
-bc
-36
-ae
-5b
-e5
-f8
-ab
-a4
-3b
-16
-bd
-d5
-2f
-fd
-10
-07
-3b
-37
-14
-71
-b9
-17
-79
-82
-66
-c3
-03
-d3
-6d
-fd
-ce
-ec
-70
-f1
-39
-a7
-c2
-f5
-3b
-54
-34
-42
-a9
-8b
-c1
-0d
-19
-67
-12
-b7
-62
-d7
-9b
-bb
-f9
-e2
-e8
-e1
-2c
-d9
-d0
-f0
-08
-3e
-0b
-9d
-c0
-74
-32
-e2
-ec
-24
-e5
-74
-44
-b5
-e2
-e2
-39
-fa
-84
-70
-76
-bd
-79
-08
-85
-00
-5b
-5a
-58
-f3
-2d
-c3
-8c
-fc
-74
-42
-b0
-6d
-d6
-ef
-70
-98
-37
-ef
-af
-9c
-46
-7e
-f1
-35
-fd
-2e
-19
-55
-24
-97
-3a
-dd
-bd
-16
-a0
-47
-dd
-2b
-1d
-ff
-c3
-2c
-65
-7a
-fe
-49
-b4
-8b
-b0
-2c
-be
-6f
-65
-14
-76
-80
-00
-ab
-56
-9a
-97
-38
-02
-c9
-cd
-2f
-70
-db
-e2
-b3
-d0
-f4
-b6
-e2
-42
-3e
-f9
-54
-d4
-03
-4b
-8f
-f0
-9d
-b8
-f4
-46
-10
-8f
-59
-ec
-6b
-54
-35
-22
-1e
-d9
-8b
-d2
-b2
-df
-c5
-6c
-8b
-33
-7c
-b5
-97
-5d
-6f
-3e
-8d
-1c
-19
-3b
-a5
-dd
-b6
-99
-d1
-0d
-06
-b2
-fa
-65
-09
-db
-e8
-e1
-3b
-c2
-94
-95
-3d
-da
-21
-3e
-37
-92
-0e
-86
-4d
-52
-c8
-dd
-d7
-84
-70
-ec
-7f
-6b
-ee
-54
-9a
-67
-81
-44
-81
-70
-9d
-1d
-ab
-24
-8c
-d7
-4a
-8e
-13
-0b
-11
-5f
-1c
-41
-10
-ab
-89
-7e
-c7
-77
-03
-b2
-77
-62
-e7
-61
-28
-c9
-05
-96
-f0
-7b
-e7
-62
-c9
-00
-d6
-15
-00
-68
-ff
-92
-c9
-f0
-6c
-cd
-17
-96
-fa
-31
-81
-05
-4a
-8e
-f0
-83
-69
-63
-95
-7b
-95
-1f
-71
-47
-fb
-02
-a2
-c4
-e6
-dc
-e8
-5f
-03
-6c
-e4
-86
-b5
-23
-42
-10
-48
-84
-70
-35
-41
-e0
-d8
-98
-3c
-1a
-d7
-e7
-e0
-08
-eb
-8b
-49
-03
-ed
-08
-78
-08
-a7
-74
-d7
-b9
-ff
-17
-a6
-4f
-79
-18
-27
-3e
-05
-87
-c2
-dd
-e0
-c4
-a0
-da
-34
-12
-5b
-21
-b5
-4e
-f0
-b6
-1a
-ca
-2f
-29
-a2
-35
-86
-cb
-11
-94
-9d
-aa
-ec
-99
-12
-7b
-2d
-3b
-11
-25
-68
-14
-73
-67
-35
-36
-d4
-f3
-32
-40
-08
-25
-46
-64
-b3
-e0
-51
-bd
-0b
-7f
-29
-45
-46
-cb
-0f
-23
-a7
-d7
-20
-62
-21
-75
-6b
-51
-28
-37
-81
-1a
-79
-25
-93
-7f
-c1
-00
-4f
-d8
-5f
-82
-e9
-dd
-d2
-35
-18
-28
-24
-21
-de
-c6
-94
-44
-1d
-4c
-46
-de
-d5
-7e
-9b
-6a
-d1
-b4
-7b
-dd
-07
-f6
-d5
-e7
-77
-81
-18
-c9
-a6
-ef
-0c
-3f
-15
-26
-3d
-41
-8f
-8b
-7a
-16
-80
-84
-af
-fa
-f5
-61
-33
-8d
-65
-e2
-5d
-02
-16
-0c
-a9
-a5
-11
-d6
-66
-90
-18
-ee
-c4
-09
-03
-34
-1b
-b4
-d3
-96
-d8
-37
-01
-55
-f4
-5d
-ba
-cf
-f9
-a9
-a5
-7c
-e3
-fd
-ec
-e2
-20
-6d
-9d
-97
-28
-ff
-1f
-76
-13
-9e
-cc
-a4
-b7
-77
-dd
-8b
-1c
-6b
-b1
-2c
-18
-8f
-ea
-02
-da
-ee
-36
-c4
-e4
-b4
-35
-3b
-28
-1a
-ab
-e4
-dd
-03
-0d
-48
-7d
-0c
-a4
-f5
-fe
-97
-37
-e1
-e2
-48
-37
-04
-e9
-e6
-5a
-9c
-f4
-35
-43
-18
-af
-55
-2b
-0d
-bb
-d0
-d8
-82
-ff
-18
-1c
-89
-c7
-e3
-8a
-32
-5f
-d3
-3f
-f1
-48
-52
-df
-07
-8f
-d3
-47
-8b
-9e
-36
-00
-47
-3e
-7e
-8c
-eb
-ca
-43
-7e
-ba
-66
-6a
-b1
-70
-aa
-bf
-a9
-7c
-aa
-05
-c4
-a5
-82
-df
-99
-6b
-09
-c4
-ba
-b3
-46
-94
-14
-67
-de
-ad
-4b
-38
-70
-50
-18
-b0
-a5
-51
-52
-1c
-4b
-f8
-5b
-d2
-c2
-90
-2a
-ac
-77
-a5
-2a
-34
-35
-39
-16
-d4
-63
-f7
-51
-c7
-11
-86
-3f
-9c
-3c
-59
-5c
-b2
-8d
-d3
-79
-60
-47
-68
-0c
-05
-1a
-e0
-08
-b7
-4d
-1f
-43
-c9
-e6
-e8
-02
-b0
-d5
-49
-99
-04
-bc
-ee
-f2
-94
-35
-d3
-0d
-0f
-08
-09
-6b
-17
-40
-9c
-4a
-9f
-77
-90
-d9
-14
-9b
-1e
-db
-f8
-ec
-9f
-37
-ce
-9c
-3f
-c7
-bc
-c2
-d4
-d5
-1a
-80
-1e
-9b
-56
-47
-4d
-fe
-ad
-ae
-b5
-b6
-3e
-1d
-e9
-50
-f7
-5c
-89
-3d
-bd
-40
-b4
-82
-2a
-8c
-5a
-7d
-1b
-68
-92
-63
-0a
-9e
-18
-8a
-06
-83
-98
-77
-a1
-fc
-29
-23
-5c
-97
-c9
-a6
-a5
-1a
-4b
-85
-5c
-f8
-e9
-99
-dd
-4d
-32
-37
-20
-4e
-a6
-23
-ce
-a5
-cc
-b0
-c3
-9a
-6a
-1a
-8d
-70
-f8
-98
-94
-6f
-5e
-4a
-a1
-6b
-f6
-11
-4f
-a9
-a7
-0b
-23
-66
-49
-f4
-78
-a1
-43
-b1
-87
-94
-5f
-5e
-b9
-87
-03
-aa
-49
-7f
-57
-06
-90
-7f
-27
-1e
-2f
-b2
-5b
-4e
-20
-d2
-d7
-ea
-64
-1c
-34
-2e
-1a
-f4
-16
-43
-2c
-ed
-0a
-cc
-bf
-b1
-f0
-2e
-81
-7f
-d3
-28
-37
-4d
-38
-c4
-a1
-fb
-f4
-2f
-fe
-ec
-68
-82
-1c
-db
-f8
-e5
-33
-20
-0f
-ac
-37
-de
-38
-97
-74
-74
-75
-c8
-bd
-75
-bb
-c1
-b1
-6c
-59
-2f
-8c
-90
-ec
-d5
-c7
-21
-a8
-69
-20
-b2
-4b
-84
-f5
-5f
-91
-bd
-55
-5b
-d6
-0c
-ef
-f2
-aa
-95
-c1
-a5
-be
-34
-04
-12
-6b
-c8
-f3
-81
-0d
-a1
-88
-7c
-d5
-6b
-d1
-49
-34
-7b
-a2
-43
-b9
-91
-f4
-b8
-1b
-51
-8f
-f3
-14
-61
-73
-86
-9f
-10
-17
-08
-f0
-63
-45
-b8
-23
-50
-b0
-9f
-4c
-33
-a7
-79
-a8
-07
-ff
-92
-1f
-7c
-f9
-79
-91
-d0
-96
-69
-86
-ce
-1b
-ac
-c2
-df
-2a
-af
-48
-3a
-24
-d1
-a1
-5a
-c9
-38
-e1
-56
-1c
-a7
-a4
-38
-80
-84
-92
-c7
-44
-38
-19
-38
-b0
-f3
-97
-63
-93
-a9
-35
-e5
-4f
-67
-81
-97
-50
-08
-0c
-59
-25
-fe
-fd
-2b
-2b
-2e
-5d
-44
-8f
-99
-af
-0e
-1a
-ee
-4b
-58
-e4
-d6
-b5
-64
-35
-b6
-1d
-46
-35
-b1
-61
-da
-34
-04
-a5
-16
-36
-8f
-3b
-a8
-d8
-8e
-14
-c4
-f2
-e0
-a1
-6f
-28
-b4
-4a
-a8
-a7
-a8
-ec
-7b
-58
-4b
-4b
-77
-c3
-5d
-e7
-58
-be
-91
-58
-a4
-6e
-ae
-c3
-f5
-72
-07
-71
-aa
-7e
-a2
-b8
-d1
-73
-49
-91
-ba
-33
-90
-53
-d5
-90
-fa
-33
-ed
-d5
-db
-1d
-42
-ad
-6e
-5e
-aa
-05
-4f
-ae
-bf
-d6
-98
-18
-8c
-e0
-93
-83
-18
-74
-b6
-67
-d7
-b3
-2b
-39
-61
-5d
-03
-5b
-32
-19
-e7
-60
-f5
-74
-d2
-3b
-0d
-73
-6d
-d8
-33
-7d
-4d
-ef
-4e
-a4
-2d
-d5
-9e
-b6
-67
-e0
-e8
-95
-d9
-18
-f5
-d5
-6a
-9a
-9e
-e1
-ab
-11
-e5
-8e
-10
-ea
-68
-d7
-61
-34
-32
-3b
-cc
-dc
-2b
-3e
-79
-d9
-98
-02
-96
-cd
-04
-91
-9c
-8c
-bd
-65
-05
-a5
-97
-ef
-d8
-be
-dd
-dc
-e4
-0e
-ee
-78
-7b
-b5
-92
-23
-61
-17
-e4
-4c
-89
-d9
-b5
-11
-df
-26
-4c
-aa
-51
-1e
-83
-91
-9d
-38
-44
-1f
-c7
-dc
-48
-51
-16
-75
-75
-a5
-17
-b9
-62
-32
-8d
-f4
-97
-5e
-f9
-f7
-77
-60
-c0
-9c
-49
-63
-31
-e2
-41
-67
-7d
-bd
-73
-bc
-86
-53
-09
-56
-d1
-97
-31
-35
-b3
-08
-57
-6e
-4b
-3c
-11
-44
-a8
-06
-1f
-67
-0a
-b8
-cc
-05
-a8
-dd
-af
-63
-0e
-a0
-00
-59
-bb
-a6
-fd
-f7
-89
-fc
-7f
-35
-9f
-5f
-d9
-e1
-84
-b3
-8b
-fc
-c7
-05
-b2
-3c
-21
-4f
-f8
-86
-1f
-b3
-49
-77
-b6
-ff
-c2
-a6
-4e
-f7
-3d
-b6
-3d
-84
-c3
-13
-ba
-ce
-35
-44
-f2
-5f
-6f
-bb
-8c
-5e
-15
-0f
-b4
-7f
-2d
-37
-5c
-cb
-91
-16
-9e
-3e
-f6
-14
-99
-fa
-04
-e4
-01
-4c
-46
-4d
-2c
-3c
-a1
-63
-5f
-a8
-30
-eb
-67
-74
-94
-91
-58
-73
-4f
-ee
-eb
-f1
-30
-2c
-03
-f7
-41
-2d
-06
-e8
-dd
-10
-6c
-82
-22
-9d
-53
-b2
-49
-cf
-ec
-da
-87
-59
-22
-40
-64
-0e
-b0
-7c
-93
-b7
-39
-e4
-63
-e7
-7e
-e9
-6e
-d1
-29
-05
-2d
-8c
-6c
-07
-53
-86
-5c
-1f
-9e
-0f
-d3
-af
-fc
-c8
-2b
-13
-19
-79
-53
-c7
-2a
-09
-92
-a4
-31
-1b
-ec
-b8
-60
-d6
-f1
-de
-8c
-d9
-44
-73
-4e
-1d
-92
-30
-a5
-16
-90
-47
-b0
-b1
-a7
-84
-e5
-2f
-65
-db
-7d
-7f
-72
-64
-3a
-9b
-1e
-f5
-a9
-6c
-76
-6c
-dc
-67
-40
-62
-22
-e5
-7f
-e4
-b8
-53
-d2
-cf
-9f
-6d
-a5
-98
-36
-1d
-b1
-41
-e9
-7e
-f0
-ae
-fa
-b0
-ae
-28
-07
-ec
-8c
-aa
-83
-07
-aa
-59
-a1
-01
-e9
-ec
-be
-ab
-f2
-4f
-74
-db
-a0
-d8
-95
-2d
-fa
-46
-8a
-28
-e0
-ce
-69
-e3
-5b
-f3
-e3
-67
-b2
-c9
-6e
-2e
-12
-8c
-70
-83
-ea
-ff
-bc
-83
-5f
-26
-37
-05
-25
-dc
-d2
-27
-c8
-01
-e4
-f5
-ce
-00
-d5
-91
-1e
-30
-3a
-33
-e1
-34
-ac
-39
-e3
-0e
-aa
-0a
-b5
-3d
-7b
-ab
-5e
-9f
-fc
-26
-f2
-a6
-11
-bd
-5c
-d5
-c9
-bd
-2a
-66
-89
-13
-67
-3f
-32
-e6
-ed
-b3
-d8
-be
-27
-b0
-eb
-fe
-b3
-ff
-5e
-a1
-ed
-67
-eb
-7b
-67
-40
-78
-80
-4e
-38
-47
-00
-1b
-bd
-71
-f6
-70
-87
-89
-df
-97
-5e
-6f
-32
-a8
-70
-21
-e1
-5d
-dd
-c5
-bc
-40
-68
-d7
-8f
-bf
-8a
-4f
-98
-c6
-2e
-8f
-bf
-95
-9f
-f0
-4b
-b9
-db
-d8
-4e
-ea
-ce
-17
-d6
-7a
-d6
-51
-63
-ff
-e0
-da
-de
-5d
-43
-0b
-af
-e0
-26
-ed
-ce
-5b
-13
-e2
-a1
-c4
-a4
-fa
-2c
-b2
-ed
-0d
-96
-98
-ce
-00
-93
-75
-00
-11
-f8
-43
-df
-f5
-6d
-a1
-32
-88
-ad
-ce
-6e
-79
-49
-ae
-96
-bd
-ba
-5e
-a1
-86
-06
-e5
-a8
-19
-fb
-07
-52
-26
-ad
-97
-04
-26
-43
-42
-52
-ec
-63
-e6
-c4
-4d
-20
-6a
-c1
-0e
-22
-49
-44
-be
-ba
-67
-ca
-ed
-e3
-d9
-73
-7a
-17
-48
-fb
-a7
-31
-83
-09
-e0
-03
-e6
-eb
-79
-28
-ac
-e3
-54
-cb
-50
-de
-d9
-6e
-bc
-fa
-db
-f8
-66
-f9
-1a
-60
-db
-f5
-2c
-18
-91
-07
-1e
-e5
-df
-a4
-f3
-39
-53
-90
-34
-28
-6d
-46
-a3
-98
-2f
-77
-b2
-92
-bb
-9f
-ab
-83
-a5
-c7
-65
-99
-83
-e7
-30
-9d
-72
-ed
-9b
-17
-cb
-7b
-e1
-e9
-e1
-b5
-5f
-01
-50
-e9
-2d
-78
-c2
-4a
-87
-d5
-e8
-63
-f2
-45
-2d
-a6
-c6
-28
-61
-44
-a1
-38
-83
-ba
-b9
-75
-84
-0d
-b3
-c1
-9d
-f3
-cb
-26
-92
-42
-2b
-90
-3c
-39
-18
-6b
-7e
-26
-61
-6a
-ec
-6b
-59
-58
-1a
-ca
-ef
-d5
-38
-69
-51
-37
-16
-b4
-31
-d3
-d2
-3f
-e7
-5c
-af
-c6
-52
-9a
-6a
-13
-c7
-21
-7d
-af
-2e
-1a
-79
-bc
-3a
-d3
-40
-fb
-a7
-7f
-bb
-26
-f1
-c7
-cb
-24
-b9
-cb
-2d
-9f
-fb
-00
-9c
-48
-66
-36
-f0
-0a
-cb
-6e
-da
-67
-20
-0a
-56
-85
-47
-22
-cd
-d9
-6e
-4c
-06
-a9
-ee
-ad
-b3
-53
-78
-4a
-ee
-53
-54
-29
-e9
-11
-27
-a9
-6d
-2f
-de
-f7
-ea
-93
-4f
-ea
-db
-22
-75
-e5
-78
-bd
-ac
-7d
-40
-37
-0d
-e7
-c7
-f8
-64
-92
-44
-e4
-1a
-da
-3a
-e9
-8f
-a8
-88
-7e
-de
-3b
-41
-e3
-8b
-a7
-33
-70
-0b
-b2
-40
-9b
-d4
-c3
-88
-e0
-e9
-81
-45
-09
-1a
-e6
-6a
-eb
-c4
-f5
-d4
-4d
-4c
-20
-12
-70
-2b
-03
-64
-1e
-40
-cf
-31
-07
-fa
-5e
-81
-87
-89
-69
-b1
-51
-a0
-ac
-fe
-a7
-b7
-82
-40
-d7
-e6
-e1
-15
-1f
-92
-f7
-18
-6e
-5d
-17
-0e
-24
-8b
-9b
-21
-1a
-2c
-1c
-09
-f5
-cc
-2b
-6e
-59
-ff
-8f
-c1
-dc
-c9
-ec
-44
-f5
-4b
-49
-16
-12
-8b
-b8
-73
-65
-2d
-ae
-f3
-94
-92
-f9
-e7
-47
-2c
-19
-1d
-b9
-84
-1f
-63
-1a
-f1
-d6
-8b
-16
-98
-5a
-a6
-d6
-30
-2a
-3d
-60
-c1
-00
-77
-8f
-40
-56
-56
-24
-8d
-7d
-34
-97
-b0
-80
-fe
-6b
-15
-16
-36
-bb
-22
-01
-bb
-6d
-b8
-19
-a4
-d1
-8e
-63
-73
-36
-e6
-5d
-d1
-b4
-d2
-36
-93
-2c
-80
-80
-9f
-50
-62
-e6
-a3
-de
-a9
-18
-a4
-5c
-51
-ca
-ee
-04
-ba
-66
-66
-b4
-d6
-59
-78
-af
-12
-c0
-12
-cb
-bf
-0b
-fb
-ce
-cd
-e8
-12
-30
-62
-89
-9e
-12
-39
-dd
-ce
-fa
-62
-4e
-e7
-48
-f5
-2b
-fa
-d7
-58
-79
-73
-c5
-32
-dd
-21
-2c
-15
-e9
-87
-14
-01
-50
-9d
-b5
-10
-c4
-b3
-52
-49
-ec
-85
-05
-cd
-3f
-40
-d0
-24
-85
-30
-3d
-16
-67
-8e
-30
-ea
-7b
-87
-eb
-65
-67
-dd
-16
-e2
-94
-fa
-cd
-c0
-1f
-c8
-08
-6b
-70
-75
-cb
-5d
-d0
-c6
-dd
-06
-af
-d0
-c1
-7a
-85
-a5
-c2
-a7
-81
-4c
-85
-50
-b0
-bf
-9e
-d3
-63
-c8
-cb
-f2
-9e
-3d
-d1
-29
-ac
-ae
-d0
-b9
-ee
-a0
-55
-bd
-49
-4b
-a6
-78
-88
-e0
-42
-11
-06
-94
-ac
-b7
-eb
-80
-d6
-40
-12
-6d
-0f
-31
-1b
-fc
-7d
-b6
-87
-e4
-dc
-73
-06
-69
-aa
-ff
-fd
-21
-21
-91
-1f
-3f
-f9
-da
-4c
-61
-56
-61
-ac
-e7
-e3
-2e
-91
-e1
-a4
-54
-ff
-f5
-46
-ee
-95
-0d
-8a
-c0
-bf
-b8
-e2
-72
-fd
-fb
-26
-79
-6a
-74
-fb
-b0
-97
-c2
-ed
-ba
-9b
-5b
-01
-6a
-ea
-70
-56
-3a
-d5
-20
-20
-89
-fe
-49
-24
-49
-18
-e2
-66
-28
-f2
-76
-0e
-69
-4f
-4c
-49
-0e
-00
-63
-2a
-53
-79
-32
-c7
-2c
-38
-63
-bd
-59
-ec
-e9
-f8
-1c
-2b
-69
-ab
-4c
-f0
-6f
-85
-92
-c1
-2b
-e9
-c3
-ec
-9d
-d8
-84
-a7
-aa
-5f
-17
-ee
-d3
-1d
-36
-1b
-c0
-bb
-75
-48
-44
-2e
-e3
-0b
-c4
-5e
-05
-15
-9f
-d9
-64
-87
-a0
-7c
-69
-28
-0f
-bc
-3b
-36
-50
-59
-4f
-1f
-66
-1b
-90
-ea
-b8
-02
-50
-c7
-15
-4c
-d9
-a5
-71
-7d
-59
-d8
-97
-6c
-02
-d4
-35
-1f
-72
-91
-bd
-0a
-0d
-bd
-0b
-94
-87
-b3
-a1
-87
-b0
-52
-a1
-cf
-03
-b2
-33
-82
-99
-02
-ea
-5d
-63
-a0
-3a
-91
-da
-0b
-67
-9e
-6c
-5a
-8d
-68
-2d
-d5
-01
-22
-4d
-c6
-1a
-44
-26
-21
-22
-78
-27
-b3
-65
-58
-92
-a7
-06
-e3
-90
-ed
-e5
-16
-cc
-c1
-6d
-6d
-d5
-32
-7b
-7e
-06
-42
-b6
-d6
-4c
-dd
-0d
-09
-62
-a2
-e3
-53
-20
-6b
-43
-31
-44
-5f
-c7
-c9
-c2
-d0
-11
-90
-f4
-cf
-dc
-12
-4e
-36
-b1
-65
-19
-65
-12
-5d
-64
-08
-cc
-66
-47
-26
-12
-7a
-18
-5c
-d3
-b1
-19
-82
-01
-cb
-3b
-c9
-ea
-5a
-c0
-ef
-60
-bf
-b7
-9e
-d3
-ea
-c7
-94
-fb
-1f
-26
-6a
-24
-0f
-34
-f0
-de
-0c
-c2
-29
-37
-af
-d6
-14
-5e
-f2
-96
-15
-f0
-19
-73
-dd
-26
-a2
-38
-59
-b4
-bb
-a2
-dc
-d6
-a6
-cf
-6b
-6e
-7f
-26
-3f
-e5
-d0
-38
-73
-0a
-5b
-c0
-bc
-9f
-6c
-1d
-81
-34
-12
-1d
-fe
-43
-84
-36
-8c
-73
-9b
-18
-20
-19
-b6
-be
-b3
-a1
-bc
-a9
-37
-29
-e8
-20
-16
-ca
-4d
-99
-af
-04
-68
-66
-ae
-4c
-fa
-b7
-ae
-11
-7e
-c1
-f1
-c8
-2f
-ef
-9e
-fa
-49
-f9
-36
-16
-2b
-21
-5f
-c6
-f1
-25
-7f
-9c
-59
-46
-83
-bd
-a7
-d0
-64
-82
-50
-0a
-32
-f8
-86
-6a
-31
-89
-c3
-ad
-4c
-0b
-d3
-56
-38
-6e
-a3
-ac
-03
-e9
-99
-a9
-c4
-03
-c1
-d1
-39
-2e
-e2
-1b
-5d
-39
-2f
-9d
-8b
-db
-96
-3c
-dd
-c8
-1c
-e7
-45
-ca
-76
-68
-7c
-ba
-74
-70
-2f
-7d
-60
-1e
-0f
-ba
-33
-55
-3a
-4f
-8f
-43
-43
-6c
-e0
-b7
-49
-de
-74
-c2
-a7
-70
-c2
-cc
-c9
-10
-da
-8d
-f7
-db
-e0
-f1
-8a
-42
-a4
-c8
-6a
-d5
-47
-96
-02
-2f
-d1
-1c
-de
-00
-69
-81
-03
-dc
-97
-86
-af
-69
-ae
-95
-bb
-a8
-15
-90
-3a
-66
-a5
-37
-fd
-f6
-b4
-c5
-36
-df
-14
-05
-4d
-7d
-a1
-48
-4d
-dd
-8b
-eb
-01
-69
-ee
-64
-7b
-b2
-bc
-97
-01
-c7
-f1
-a2
-98
-55
-86
-9b
-58
-44
-65
-5c
-92
-73
-db
-ec
-c0
-48
-b3
-57
-01
-f6
-9f
-4d
-02
-30
-ac
-2d
-65
-2b
-ac
-0f
-43
-11
-e4
-55
-76
-93
-7a
-fe
-cb
-61
-42
-a3
-6d
-31
-6c
-ce
-5b
-13
-8a
-b2
-8f
-2b
-28
-2c
-ea
-6c
-e4
-6a
-81
-0d
-55
-fa
-de
-29
-08
-81
-55
-7f
-19
-f4
-65
-73
-2c
-95
-4f
-07
-f0
-1d
-e4
-86
-ca
-94
-39
-8e
-dc
-e9
-5d
-10
-e5
-6c
-ab
-fa
-ce
-65
-32
-d2
-a0
-bf
-34
-e4
-3e
-05
-84
-8a
-b4
-0c
-79
-dc
-44
-34
-f4
-da
-15
-12
-c6
-31
-27
-27
-a3
-b7
-1a
-88
-67
-ab
-b7
-c5
-37
-83
-b9
-eb
-8c
-de
-95
-28
-f1
-7f
-7e
-ac
-53
-ec
-fb
-40
-94
-82
-e1
-55
-72
-d1
-7b
-2b
-34
-e2
-4e
-05
-f6
-16
-1a
-c4
-df
-bb
-2f
-4e
-f1
-83
-a0
-e0
-34
-2a
-56
-55
-e2
-5e
-78
-41
-cd
-70
-19
-68
-3d
-49
-40
-1e
-22
-35
-78
-1e
-b4
-93
-46
-b4
-2d
-74
-76
-4c
-3d
-86
-3d
-83
-84
-39
-50
-dc
-8f
-25
-4d
-e2
-30
-6d
-b7
-05
-8a
-33
-d2
-97
-ea
-10
-67
-33
-e7
-93
-8e
-bc
-74
-c5
-a3
-60
-88
-d0
-1c
-db
-c4
-95
-25
-fc
-1a
-6b
-ba
-ba
-30
-71
-1e
-08
-42
-50
-e6
-25
-ab
-93
-d3
-cf
-a1
-3f
-9f
-9d
-a1
-80
-81
-ba
-33
-3f
-0b
-79
-1a
-26
-c5
-17
-87
-78
-34
-ae
-a6
-35
-17
-de
-ee
-ee
-f6
-28
-43
-38
-0b
-da
-a7
-45
-77
-c4
-c4
-73
-83
-0f
-b0
-25
-00
-6e
-da
-f8
-ce
-55
-de
-ee
-fa
-4c
-f0
-b7
-26
-a0
-fb
-13
-25
-e5
-94
-9e
-88
-0b
-b4
-8a
-b4
-58
-18
-f8
-2b
-d6
-43
-52
-ec
-b5
-32
-37
-6b
-62
-28
-77
-1a
-a0
-1c
-28
-bd
-c8
-1b
-9a
-9d
-49
-37
-33
-29
-25
-69
-18
-cd
-cf
-b5
-29
-9e
-3e
-0d
-8e
-72
-6a
-df
-04
-c0
-95
-75
-08
-d8
-b4
-63
-b2
-74
-cc
-e4
-a0
-6b
-b5
-4c
-b3
-d8
-61
-96
-b3
-9c
-a9
-05
-30
-1c
-23
-83
-ee
-73
-44
-60
-7f
-c6
-31
-e4
-ec
-ba
-1e
-67
-f7
-48
-4b
-53
-7a
-76
-01
-14
-17
-c9
-51
-01
-ab
-01
-dc
-5f
-fb
-ce
-e3
-39
-b2
-08
-dd
-8c
-ff
-82
-d1
-75
-d9
-43
-65
-9e
-b0
-c7
-ff
-46
-6a
-2c
-bb
-c0
-79
-26
-2a
-bf
-71
-ae
-bc
-a5
-fc
-ab
-6c
-88
-e3
-1e
-8e
-31
-eb
-77
-12
-89
-a2
-08
-e1
-74
-b5
-75
-8e
-6f
-be
-88
-3a
-91
-70
-ec
-a7
-6d
-3b
-8e
-fc
-43
-46
-8a
-bb
-4b
-0f
-25
-ab
-2f
-c7
-a5
-a4
-61
-57
-67
-7f
-9e
-5b
-19
-b7
-c6
-9c
-d9
-48
-23
-eb
-d8
-0a
-d7
-61
-a8
-13
-fb
-d6
-64
-6e
-02
-dc
-24
-c5
-1a
-1f
-57
-e4
-fd
-6b
-66
-8c
-6b
-bd
-4f
-ed
-91
-92
-3c
-df
-f5
-11
-16
-f8
-a8
-28
-f1
-36
-81
-19
-24
-49
-0c
-3c
-6e
-b7
-38
-c9
-dc
-d6
-40
-e5
-ac
-8c
-cf
-61
-34
-1a
-22
-a2
-9c
-49
-74
-84
-24
-ad
-dc
-f5
-92
-53
-70
-de
-85
-72
-a8
-0b
-6f
-0b
-ef
-5e
-4e
-8d
-34
-e4
-52
-62
-8b
-57
-52
-b3
-16
-3a
-95
-45
-ae
-43
-34
-ff
-6a
-1f
-47
-45
-14
-f0
-73
-a4
-bb
-f5
-83
-ba
-80
-88
-5e
-1f
-37
-35
-66
-bc
-12
-07
-1e
-43
-f4
-79
-e0
-d6
-fe
-23
-22
-fb
-31
-17
-9f
-1a
-98
-ee
-91
-19
-a0
-c9
-df
-80
-f1
-b1
-34
-48
-0a
-3d
-35
-09
-57
-5d
-bc
-b1
-3c
-30
-8c
-10
-a4
-39
-34
-1f
-8f
-9f
-a7
-80
-e5
-31
-10
-fc
-7b
-12
-18
-9b
-af
-21
-80
-21
-e7
-b6
-77
-db
-62
-ea
-ff
-70
-23
-12
-fc
-f9
-82
-48
-79
-34
-b6
-09
-bc
-ff
-54
-77
-9b
-7a
-45
-00
-41
-d9
-0c
-04
-16
-a5
-88
-ee
-4c
-5a
-20
-35
-8d
-d3
-dc
-40
-a3
-d7
-46
-ed
-8e
-70
-f6
-86
-cc
-94
-b7
-4f
-87
-7e
-74
-eb
-a4
-fa
-72
-d1
-6b
-ba
-59
-17
-1c
-e9
-6a
-c7
-ed
-41
-0b
-07
-37
-4e
-cb
-5f
-f6
-d1
-96
-03
-a0
-6a
-a0
-56
-d8
-b7
-c9
-b5
-9d
-4b
-a7
-a1
-91
-15
-89
-7f
-67
-07
-3f
-72
-da
-04
-98
-a9
-0c
-c4
-75
-2c
-86
-f5
-37
-a8
-46
-ed
-3b
-dc
-3b
-19
-5b
-1a
-4c
-e9
-5a
-da
-5e
-f5
-37
-26
-28
-ca
-b0
-5c
-ea
-35
-8d
-50
-53
-2a
-5e
-b6
-63
-00
-72
-c0
-58
-8a
-1d
-5f
-94
-09
-82
-2f
-72
-9e
-b5
-6d
-42
-34
-36
-e7
-16
-1f
-53
-24
-f3
-b4
-f5
-20
-e6
-97
-18
-0d
-03
-66
-cc
-aa
-69
-2a
-17
-1e
-9d
-09
-d5
-82
-b2
-21
-da
-85
-c3
-62
-f6
-c3
-53
-25
-f0
-f0
-84
-d6
-b6
-5b
-0d
-7f
-70
-17
-7b
-ec
-7a
-b7
-9b
-4c
-b5
-1d
-74
-56
-0a
-bc
-7a
-46
-60
-da
-ed
-b3
-fd
-09
-3c
-f6
-78
-10
-5b
-0d
-49
-84
-8e
-fe
-fa
-cc
-23
-d1
-4e
-69
-76
-7b
-4f
-dd
-0c
-31
-40
-9c
-40
-be
-13
-70
-30
-13
-9d
-ff
-4a
-15
-b5
-4c
-eb
-6b
-c0
-e2
-c5
-8b
-9c
-b3
-2d
-e8
-05
-7f
-01
-d9
-1a
-5a
-2d
-00
-0a
-46
-4e
-d7
-87
-0e
-32
-c9
-13
-28
-c8
-26
-bf
-38
-42
-79
-39
-9f
-78
-20
-83
-d9
-e4
-e0
-c1
-1c
-d7
-eb
-db
-60
-93
-56
-7b
-c6
-c8
-de
-1e
-49
-5e
-c5
-6c
-6a
-57
-1b
-b9
-39
-6c
-42
-a7
-c9
-34
-77
-1c
-9c
-69
-8a
-f9
-c1
-f5
-10
-cd
-c0
-0a
-df
-56
-f0
-41
-65
-27
-13
-08
-f1
-7c
-5b
-9f
-31
-ea
-91
-a2
-45
-d3
-d6
-75
-aa
-55
-40
-00
-00
-40
-04
-00
-01
-06
-22
-01
-00
-00
-00
-00
-00
-00
-00
-00
-3c
-62
-88
-8b
-1b
-05
-20
-00
-00
-00
-00
-80
-00
-00
-00
-3c
-00
-80
-04
-00
-00
-00
-00
-00
-00
-00
-10
-00
-00
-00
-40
-00
-00
-00
-00
-00
-00
-89
-05
-1a
-00
-e0
-44
-30
-00
-00
-00
-00
-00
-00
-aa
-55
-08
-00
-0e
-47
-04
-85
-12
-01
-02
-22
-82
-17
-aa
-55
-05
-00
-65
-46
-ff
-05
-ff
-0b
-0a
-aa
-55
-1a
-00
-8d
-48
-0e
-08
-0f
-ff
-ff
-ff
-16
-17
-ff
-02
-02
-02
-00
-ff
-ff
-12
-07
-ff
-ff
-ff
-09
-01
-00
-03
-ff
-ff
-aa
-55
-02
-00
-ac
-48
-00
-0a
-aa
-55
-03
-00
-af
-48
-05
-02
-05
-aa
-55
-01
-00
-b4
-48
-14
-aa
-55
-01
-00
-b2
-48
-02
-aa
-55
-02
-00
-b6
-48
-02
-06
-aa
-55
-01
-00
-b9
-48
-0a
-aa
-55
-01
-00
-be
-48
-0a
-aa
-55
-02
-00
-bb
-48
-58
-02
-aa
-55
-02
-00
-51
-46
-58
-02
-aa
-55
-01
-00
-54
-46
-64
-aa
-55
-02
-00
-1a
-47
-05
-00
-aa
-55
-01
-00
-53
-46
-64
-aa
-55
-02
-00
-4f
-46
-b0
-04
-aa
-55
-01
-00
-19
-47
-0a
-aa
-55
-02
-00
-1e
-47
-70
-17
-aa
-55
-01
-00
-cf
-43
-08
-aa
-55
-01
-00
-16
-47
-03
-aa
-55
-01
-00
-94
-40
-01
-aa
-55
-01
-00
-c0
-40
-20
-aa
-55
-01
-00
-8b
-48
-20
-aa
-55
-03
-00
-2e
-47
-00
-00
-00
-aa
-55
-08
-00
-78
-46
-00
-34
-ff
-ff
-ff
-ff
-ff
-ff
-aa
-55
-07
-00
-86
-46
-34
-ff
-ff
-ff
-ff
-ff
-ff
-aa
-55
-07
-00
-93
-46
-34
-ff
-ff
-ff
-ff
-ff
-ff
-aa
-55
-0f
-00
-4f
-4e
-03
-00
-20
-20
-00
-03
-00
-22
-22
-00
-03
-00
-30
-23
-00
-aa
-55
-09
-00
-fd
-49
-00
-08
-00
-07
-00
-00
-00
-00
-00
-aa
-55
-01
-00
-be
-4a
-03
-aa
-55
-01
-00
-bd
-4a
-07
-aa
-55
-04
-00
-bf
-4a
-ff
-ff
-1e
-1e
-aa
-55
-01
-00
-60
-4e
-05
-aa
-55
-01
-00
-02
-45
-1e
-aa
-55
-06
-00
-08
-45
-24
-62
-81
-a1
-51
-61
-aa
-55
-05
-00
-fa
-45
-01
-0f
-0f
-0f
-0f
-aa
-55
-01
-00
-38
-47
-02
-aa
-55
-02
-00
-a2
-45
-c0
-12
-aa
-55
-01
-00
-bf
-48
-09
-aa
-55
-04
-00
-d0
-48
-c0
-5d
-00
-00
-aa
-55
-06
-00
-c0
-48
-6a
-63
-00
-80
-bb
-00
-aa
-55
-04
-00
-d4
-48
-f8
-bb
-00
-00
-aa
-55
-06
-00
-c6
-48
-1c
-1f
-01
-00
-77
-01
-aa
-55
-04
-00
-d8
-48
-00
-77
-01
-00
-aa
-55
-01
-00
-55
-46
-94
-aa
-55
-03
-00
-c6
-45
-00
-48
-60
-aa
-55
-02
-00
-34
-46
-05
-00
-aa
-55
-02
-00
-32
-46
-50
-00
-aa
-55
-02
-00
-1c
-47
-64
-00
-aa
-55
-01
-00
-06
-47
-01
-aa
-55
-01
-00
-3c
-47
-02
-aa
-55
-06
-00
-dd
-42
-34
-47
-29
-51
-31
-41
-aa
-55
-01
-00
-97
-43
-07
-aa
-55
-08
-00
-c4
-43
-fb
-00
-48
-08
-fb
-00
-48
-08
-aa
-55
-02
-00
-7d
-47
-96
-00
-aa
-55
-02
-00
-74
-47
-1b
-00
-aa
-55
-02
-00
-9f
-43
-1f
-00
-aa
-55
-04
-00
-76
-47
-23
-00
-27
-00
-aa
-55
-02
-00
-34
-43
-39
-00
-aa
-55
-02
-00
-7a
-47
-13
-00
-aa
-55
-06
-00
-be
-4c
-36
-00
-2e
-00
-32
-00
-aa
-55
-0c
-00
-4c
-43
-1f
-02
-01
-05
-03
-03
-12
-18
-03
-19
-c2
-03
-aa
-55
-11
-00
-5f
-47
-06
-ff
-06
-00
-03
-00
-80
-09
-09
-41
-49
-20
-4d
-6f
-75
-73
-65
-aa
-55
-0b
-00
-6c
-43
-1f
-09
-09
-41
-49
-20
-4d
-6f
-75
-73
-65
-aa
-55
-09
-00
-6d
-42
-08
-41
-49
-20
-4d
-6f
-75
-73
-65
-aa
-55
-09
-00
-1e
-4a
-08
-41
-49
-20
-4d
-6f
-75
-73
-65
-aa
-55
-08
-00
-d5
-42
-06
-00
-09
-00
-20
-00
-2c
-01
-aa
-55
-06
-00
-59
-47
-03
-12
-18
-ff
-00
-00
-aa
-55
-03
-00
-fe
-46
-00
-50
-00
-aa
-55
-02
-00
-f4
-43
-80
-3a
-aa
-55
-01
-00
-fd
-43
-80
-aa
-55
-02
-00
-9b
-4e
-00
-34
-aa
-55
-01
-00
-67
-4e
-ff
-aa
-55
-02
-00
-6c
-4e
-00
-00
-aa
-55
-04
-00
-6f
-4e
-20
-20
-00
-40
-aa
-55
-02
-00
-68
-4e
-00
-00
-aa
-55
-01
-00
-4a
-08
-ff
-aa
-55
-01
-00
-41
-41
-01
-aa
-55
-01
-00
-e9
-45
-07
-aa
-55
-02
-00
-07
-46
-43
-47
-aa
-55
-02
-00
-57
-46
-85
-90
-aa
-55
-02
-00
-5a
-46
-75
-80
-aa
-55
-01
-00
-59
-46
-63
-aa
-55
-01
-00
-3e
-46
-7d
-aa
-55
-01
-00
-1a
-44
-01
-aa
-55
-01
-00
-1d
-44
-02
-aa
-55
-01
-00
-1f
-44
-0a
-aa
-55
-01
-00
-1e
-44
-09
-aa
-55
-06
-00
-44
-46
-94
-00
-78
-00
-80
-00
-aa
-55
-01
-00
-4c
-46
-0c
-aa
-55
-01
-00
-4e
-44
-01
-aa
-55
-04
-00
-b7
-4c
-25
-20
-15
-10
-aa
-55
-11
-00
-d0
-45
-01
-06
-1a
-3a
-4d
-00
-13
-23
-4c
-0f
-2c
-31
-43
-11
-15
-36
-48
-aa
-55
-17
-00
-53
-48
-01
-76
-29
-37
-93
-09
-76
-ff
-4a
-26
-37
-50
-61
-bf
-d1
-16
-bd
-cf
-3f
-77
-d3
-16
-95
-aa
-55
-01
-00
-72
-48
-01
-aa
-55
-0c
-00
-e5
-4c
-0b
-59
-43
-2d
-41
-49
-2d
-4d
-6f
-75
-73
-65
-aa
-55
-10
-00
-c4
-4c
-06
-00
-06
-00
-2b
-00
-90
-01
-06
-00
-09
-00
-20
-00
-2c
-01
-aa
-55
-01
-00
-d5
-4c
-08
-aa
-55
-01
-00
-d9
-4c
-0f
-aa
-55
-01
-00
-dd
-4c
-0e
-aa
-55
-01
-00
-27
-44
-00
-aa
-55
-04
-00
-72
-4c
-26
-0a
-f5
-0c
-aa
-55
-74
-01
-c8
-4a
-ff
-ff
-ff
-ff
-02
-04
-06
-08
-ff
-ff
-ff
-ff
-02
-04
-06
-08
-07
-00
-00
-00
-08
-00
-00
-00
-09
-00
-00
-00
-0a
-00
-00
-00
-0b
-00
-00
-00
-0c
-00
-00
-00
-0d
-00
-00
-00
-0e
-00
-00
-00
-10
-00
-00
-00
-11
-00
-00
-00
-13
-00
-00
-00
-15
-00
-00
-00
-17
-00
-00
-00
-19
-00
-00
-00
-1c
-00
-00
-00
-1f
-00
-00
-00
-22
-00
-00
-00
-25
-00
-00
-00
-29
-00
-00
-00
-2d
-00
-00
-00
-32
-00
-00
-00
-37
-00
-00
-00
-3c
-00
-00
-00
-42
-00
-00
-00
-49
-00
-00
-00
-50
-00
-00
-00
-58
-00
-00
-00
-61
-00
-00
-00
-6b
-00
-00
-00
-76
-00
-00
-00
-82
-00
-00
-00
-8f
-00
-00
-00
-9d
-00
-00
-00
-ad
-00
-00
-00
-be
-00
-00
-00
-d1
-00
-00
-00
-e6
-00
-00
-00
-fd
-00
-00
-00
-17
-01
-00
-00
-33
-01
-00
-00
-51
-01
-00
-00
-73
-01
-00
-00
-98
-01
-00
-00
-c1
-01
-00
-00
-ee
-01
-00
-00
-20
-02
-00
-00
-56
-02
-00
-00
-92
-02
-00
-00
-d4
-02
-00
-00
-1c
-03
-00
-00
-6c
-03
-00
-00
-c3
-03
-00
-00
-24
-04
-00
-00
-8e
-04
-00
-00
-02
-05
-00
-00
-83
-05
-00
-00
-10
-06
-00
-00
-ab
-06
-00
-00
-56
-07
-00
-00
-12
-08
-00
-00
-e0
-08
-00
-00
-c3
-09
-00
-00
-bd
-0a
-00
-00
-d0
-0b
-00
-00
-ff
-0c
-00
-00
-4c
-0e
-00
-00
-ba
-0f
-00
-00
-4c
-11
-00
-00
-07
-13
-00
-00
-ee
-14
-00
-00
-06
-17
-00
-00
-54
-19
-00
-00
-dc
-1b
-00
-00
-a5
-1e
-00
-00
-b6
-21
-00
-00
-15
-25
-00
-00
-ca
-28
-00
-00
-df
-2c
-00
-00
-5b
-31
-00
-00
-4b
-36
-00
-00
-b9
-3b
-00
-00
-b2
-41
-00
-00
-44
-48
-00
-00
-7e
-4f
-00
-00
-71
-57
-00
-00
-2f
-60
-00
-00
-ce
-69
-00
-00
-62
-74
-00
-00
-ff
-7f
-00
-00
-aa
-55
-01
-00
-48
-41
-0c
-aa
-55
-06
-00
-c3
-40
-35
-3f
-64
-db
-7b
-3b
-aa
-55
-01
-00
-a7
-40
-20
-aa
-55
-03
-00
-c9
-40
-00
-08
-b4
-aa
-55
-01
-00
-99
-40
-18
-aa
-55
-01
-00
-1c
-41
-4d
-aa
-55
-0c
-00
-16
-00
-00
-00
-20
-00
-00
-00
-00
-00
-00
-00
-00
-00
-aa
-55
-05
-00
-60
-41
-08
-0e
-05
-03
-00
-aa
-55
-01
-00
-6a
-41
-20
-aa
-55
-02
-00
-9a
-40
-00
-0c
-aa
-55
-05
-00
-43
-41
-ff
-04
-00
-00
-08
-aa
-55
-01
-00
-fa
-01
-5a
-aa
-55
-01
-00
-27
-44
-00
-aa
-55
-04
-00
-23
-44
-00
-07
-ff
-07
-aa
-55
-01
-00
-4f
-44
-a0
-aa
-55
-02
-00
-52
-44
-bc
-02
-aa
-55
-02
-00
-50
-44
-90
-01
-aa
-55
-02
-00
-54
-44
-03
-09
-aa
-55
-03
-00
-49
-41
-88
-40
-ff
-aa
-55
-02
-00
-9c
-40
-49
-41
-aa
-55
-11
-00
-05
-49
-03
-04
-01
-02
-20
-2a
-3f
-15
-14
-1b
-28
-0e
-8a
-8b
-83
-84
-88
-aa
-55
-5a
-00
-19
-49
-09
-5a
-26
-34
-19
-04
-09
-00
-ff
-ff
-09
-5a
-0d
-f0
-1d
-e3
-7d
-d2
-ff
-ff
-09
-5a
-0d
-10
-1d
-ed
-7d
-80
-ff
-ff
-1b
-35
-28
-b4
-29
-46
-2a
-96
-2b
-8c
-2c
-6e
-2d
-64
-38
-5f
-39
-0f
-3a
-32
-3b
-47
-42
-10
-ff
-ff
-54
-2e
-55
-f2
-61
-f4
-63
-70
-75
-52
-76
-41
-77
-ed
-78
-23
-79
-46
-7a
-e5
-7c
-48
-7e
-77
-7f
-01
-0b
-00
-7f
-00
-09
-00
-ff
-ff
-aa
-55
-26
-00
-73
-4e
-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
-a7
-ff
-b5
-d0
-b6
-00
-ff
-00
-09
-00
-ff
-ff
-aa
-55
-0c
-00
-d1
-49
-05
-b9
-09
-5a
-0b
-72
-0c
-52
-09
-00
-ff
-ff
-aa
-55
-40
-00
-91
-49
-09
-5a
-0d
-10
-0e
-c5
-5b
-9a
-10
-38
-11
-42
-28
-28
-41
-23
-49
-39
-4a
-b0
-4b
-a0
-4c
-90
-4d
-70
-09
-00
-ff
-ff
-09
-5a
-06
-02
-09
-69
-0d
-48
-0e
-9f
-0f
-ba
-09
-00
-ff
-ff
-09
-a5
-26
-34
-19
-04
-60
-07
-69
-04
-7d
-20
-7e
-00
-09
-00
-ff
-ff
-aa
-55
-1c
-00
-dd
-49
-09
-a5
-46
-34
-6a
-c0
-69
-24
-09
-00
-ff
-ff
-09
-5a
-0b
-f3
-09
-00
-ff
-ff
-09
-a5
-0b
-f3
-09
-00
-ff
-ff
-aa
-55
-14
-00
-9e
-4e
-09
-a5
-46
-34
-19
-04
-60
-07
-69
-04
-68
-c3
-7d
-20
-7e
-00
-09
-00
-ff
-ff
-aa
-55
-03
-00
-6c
-4e
-d5
-2d
-00
-55
-aa
-aa
-55
-9a
-f5
-ff
-20
-20
-00
-40
-c0
-30
-00
-04
-c0
-30
-80
-27
-20
-60
-00
-00
-6f
-e0
-cc
-bb
-20
-3a
-00
-07
-20
-20
-00
-17
-6f
-e0
-c5
-a0
-79
-20
-7e
-07
-67
-e0
-c7
-c2
-70
-47
-c3
-00
-6f
-e0
-cc
-e5
-1f
-e0
-fe
-02
-67
-e0
-c7
-c4
-70
-47
-c5
-16
-6f
-20
-cc
-e5
-d8
-c0
-4c
-e6
-d8
-a0
-47
-c6
-20
-40
-7c
-dc
-6f
-e0
-cc
-e5
-1f
-e0
-fe
-04
-67
-e0
-c5
-9f
-20
-60
-00
-00
-6f
-e0
-c5
-a0
-79
-20
-7e
-07
-67
-e0
-cc
-76
-70
-4c
-77
-00
-6f
-e0
-cc
-e5
-1f
-e0
-fe
-02
-67
-e0
-cc
-78
-70
-4c
-79
-16
-6f
-20
-cc
-e5
-d8
-c0
-4c
-e6
-d8
-a0
-4c
-7a
-20
-40
-7c
-dc
-68
-48
-cc
-e5
-18
-40
-84
-04
-da
-20
-4c
-76
-20
-20
-04
-e5
-6f
-e0
-cc
-bb
-20
-3a
-00
-2a
-20
-20
-00
-33
-6f
-e0
-c5
-a0
-79
-20
-7e
-07
-67
-e0
-c7
-c2
-70
-47
-c3
-00
-70
-47
-c4
-02
-70
-47
-c5
-14
-70
-47
-c6
-01
-70
-45
-9f
-05
-20
-60
-00
-00
-6f
-e0
-c5
-a0
-79
-20
-7e
-07
-67
-e0
-cc
-76
-70
-4c
-77
-00
-70
-4c
-78
-02
-70
-4c
-79
-14
-70
-4c
-7a
-01
-d8
-40
-00
-05
-da
-20
-4c
-76
-20
-20
-04
-e5
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-20
-20
-00
-40
-c0
-28
-00
-04
-c0
-28
-80
-1c
-20
-60
-00
-00
-6f
-e0
-cc
-bb
-20
-3a
-00
-07
-20
-20
-00
-11
-6f
-e0
-c5
-a0
-79
-20
-7e
-07
-67
-e0
-c7
-c2
-70
-47
-c3
-00
-70
-47
-c4
-02
-70
-47
-c5
-12
-6f
-e0
-cc
-e3
-67
-e0
-c7
-c6
-70
-45
-9f
-05
-20
-60
-00
-00
-6f
-e0
-c5
-a0
-79
-20
-7e
-07
-67
-e0
-cc
-76
-70
-4c
-77
-00
-70
-4c
-78
-02
-70
-4c
-79
-12
-6f
-e0
-cc
-e3
-67
-e0
-cc
-7a
-d8
-40
-00
-05
-da
-20
-4c
-76
-20
-20
-04
-e5
-6f
-e0
-cc
-bb
-20
-3a
-00
-1f
-20
-20
-00
-2b
-6f
-e0
-c5
-a0
-79
-20
-7e
-07
-67
-e0
-c7
-c2
-70
-47
-c3
-00
-70
-47
-c4
-03
-70
-47
-c5
-13
-6f
-e0
-c7
-7c
-67
-e0
-c7
-c6
-6f
-e0
-cc
-e4
-e7
-e0
-80
-05
-70
-45
-9f
-06
-20
-60
-00
-00
-6f
-e0
-c5
-a0
-79
-20
-7e
-07
-67
-e0
-cc
-76
-70
-4c
-77
-00
-70
-4c
-78
-03
-70
-4c
-79
-13
-6f
-e0
-c7
-7c
-67
-e0
-cc
-7a
-6f
-e0
-cc
-e4
-e7
-e0
-80
-05
-d8
-40
-00
-06
-da
-20
-4c
-76
-20
-20
-04
-e5
-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
-20
-00
-04
-c0
-20
-80
-21
-20
-60
-00
-00
-6f
-e0
-cc
-bb
-20
-3a
-00
-07
-20
-20
-00
-13
-6f
-e0
-c5
-a0
-79
-20
-7e
-07
-67
-e0
-c7
-c2
-70
-47
-c3
-00
-70
-47
-c4
-30
-70
-47
-c5
-10
-70
-45
-9f
-33
-df
-20
-00
-1f
-d8
-c0
-48
-53
-d8
-a0
-47
-c6
-20
-40
-7c
-dc
-20
-20
-04
-bd
-6f
-e0
-c5
-a0
-79
-20
-7e
-07
-67
-e0
-cc
-76
-70
-4c
-77
-00
-70
-4c
-78
-30
-70
-4c
-79
-10
-df
-20
-00
-1f
-d8
-c0
-48
-53
-d8
-a0
-4c
-7a
-20
-40
-7c
-dc
-20
-40
-04
-bd
-d8
-40
-00
-34
-da
-20
-4c
-76
-20
-20
-04
-e5
-6f
-e0
-cc
-bb
-20
-3a
-00
-24
-20
-20
-00
-30
-6f
-e0
-c5
-a0
-79
-20
-7e
-07
-67
-e0
-c7
-c2
-70
-47
-c3
-00
-70
-47
-c4
-03
-70
-47
-c5
-11
-6f
-e0
-c6
-a2
-67
-e0
-c7
-c6
-6f
-e0
-cc
-e1
-e7
-e0
-80
-05
-70
-45
-9f
-06
-20
-60
-00
-00
-6f
-e0
-c5
-a0
-79
-20
-7e
-07
-67
-e0
-cc
-76
-70
-4c
-77
-00
-70
-4c
-78
-03
-70
-4c
-79
-11
-6f
-e0
-c6
-a2
-67
-e0
-cc
-7a
-6f
-e0
-cc
-e1
-e7
-e0
-80
-05
-d8
-40
-00
-06
-da
-20
-4c
-76
-20
-20
-04
-e5
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-20
-20
-00
-40
-c0
-18
-00
-03
-20
-60
-00
-00
-6f
-e0
-cc
-bb
-20
-3a
-00
-0d
-6f
-e0
-c5
-a0
-79
-20
-7e
-04
-67
-e0
-cc
-76
-70
-4c
-77
-ff
-d8
-40
-00
-02
-da
-20
-4c
-76
-20
-20
-04
-e5
-20
-60
-00
-00
-70
-45
-9f
-02
-6f
-e0
-c5
-a0
-79
-20
-7e
-04
-67
-e0
-c7
-c2
-70
-47
-c3
-ff
-20
-60
-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
-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
-20
-20
-00
-40
-c0
-10
-00
-03
-20
-60
-00
-00
-6f
-e0
-c5
-77
-c0
-03
-00
-0c
-c0
-08
-00
-0e
-c0
-08
-80
-10
-c0
-09
-00
-12
-c0
-09
-80
-16
-c0
-0b
-00
-19
-c0
-0a
-00
-1b
-20
-60
-00
-00
-d8
-e0
-00
-04
-20
-20
-03
-dc
-d8
-e0
-00
-06
-20
-20
-03
-dc
-70
-4c
-e1
-01
-20
-20
-03
-70
-d8
-c0
-45
-75
-20
-40
-03
-aa
-d8
-e0
-00
-08
-20
-20
-03
-dc
-70
-4c
-e4
-01
-d8
-e0
-00
-09
-20
-20
-03
-dc
-d8
-e0
-00
-0c
-20
-20
-03
-dc
-70
-4e
-5e
-00
-d8
-c0
-45
-75
-20
-40
-03
-76
-d8
-e0
-00
-0a
-20
-20
-03
-dc
-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
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-20
-20
-00
-40
-c0
-08
-00
-05
-c0
-08
-80
-18
-c0
-09
-00
-24
-20
-60
-00
-00
-20
-40
-00
-24
-20
-40
-56
-40
-20
-40
-00
-10
-6f
-e0
-ce
-5e
-20
-5a
-00
-14
-6f
-e0
-c6
-a2
-67
-e0
-cc
-e2
-d8
-40
-00
-08
-da
-20
-48
-6a
-da
-40
-00
-82
-20
-20
-6c
-d7
-d8
-40
-00
-01
-da
-20
-4e
-5e
-da
-40
-00
-99
-20
-20
-6c
-d7
-d8
-40
-00
-0f
-da
-20
-4e
-4f
-da
-40
-00
-8a
-20
-20
-6c
-d7
-6f
-e0
-c5
-f9
-c0
-02
-d9
-8c
-c0
-00
-80
-1c
-20
-20
-59
-75
-6f
-e4
-47
-0e
-c2
-9f
-00
-20
-c2
-98
-00
-20
-20
-20
-59
-83
-6f
-e1
-45
-ed
-67
-e1
-45
-f5
-70
-45
-f9
-05
-20
-20
-35
-0a
-d8
-40
-03
-34
-da
-20
-06
-f2
-da
-40
-00
-00
-6f
-e1
-4e
-9b
-20
-20
-6c
-da
-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
-20
-20
-00
-40
-c0
-00
-00
-05
-c0
-00
-80
-0b
-c0
-01
-00
-15
-20
-60
-00
-00
-6f
-e4
-47
-0e
-c2
-9f
-59
-4b
-6f
-e0
-c6
-78
-c0
-00
-59
-3a
-20
-40
-02
-b6
-20
-20
-4d
-fa
-20
-40
-4d
-89
-58
-00
-4d
-00
-67
-e1
-43
-43
-58
-00
-00
-50
-67
-e1
-43
-45
-58
-00
-06
-f2
-67
-e1
-42
-f9
-70
-42
-e3
-46
-70
-46
-38
-0f
-20
-60
-00
-00
-20
-40
-4d
-83
-70
-45
-e1
-01
-70
-44
-4e
-01
-70
-0e
-a2
-00
-70
-48
-fa
-01
-70
-48
-ef
-10
-20
-60
-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
-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
-fc
-9c
-ff
-1e
-f0
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-01
-00
-02
-00
-28
-02
-00
-18
-02
-00
-02
-03
-28
-01
-0a
-03
-00
-02
-00
-2a
-14
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-04
-00
-02
-03
-28
-01
-02
-05
-00
-02
-01
-2a
-02
-c2
-03
-06
-00
-02
-03
-28
-01
-02
-07
-00
-02
-04
-2a
-08
-06
-00
-06
-00
-64
-00
-2c
-01
-08
-00
-02
-00
-28
-02
-01
-18
-09
-00
-02
-03
-28
-01
-20
-0a
-00
-02
-05
-2a
-00
-0b
-00
-02
-02
-29
-02
-00
-00
-0c
-00
-02
-00
-28
-02
-0a
-18
-0d
-00
-02
-03
-28
-01
-02
-0e
-00
-02
-29
-2a
-06
-59
-69
-43
-68
-69
-70
-0f
-00
-02
-03
-28
-01
-02
-10
-00
-02
-50
-2a
-07
-02
-8a
-24
-bb
-c0
-01
-00
-11
-00
-02
-00
-28
-02
-0f
-18
-12
-00
-02
-03
-28
-01
-12
-13
-00
-02
-19
-2a
-01
-64
-14
-00
-02
-02
-29
-02
-00
-00
-15
-00
-02
-03
-28
-01
-04
-16
-00
-02
-4c
-2a
-00
-17
-00
-02
-00
-28
-02
-12
-18
-18
-00
-02
-03
-28
-01
-06
-19
-00
-02
-4e
-2a
-01
-01
-1a
-00
-02
-03
-28
-01
-12
-1b
-00
-02
-4d
-2a
-08
-00
-00
-00
-00
-00
-00
-00
-00
-1c
-00
-02
-02
-29
-02
-00
-00
-1d
-00
-02
-08
-29
-02
-02
-01
-1e
-00
-02
-03
-28
-01
-1a
-1f
-00
-02
-4d
-2a
-07
-00
-00
-00
-00
-00
-00
-00
-20
-00
-02
-02
-29
-02
-00
-00
-21
-00
-02
-08
-29
-02
-01
-01
-22
-00
-02
-03
-28
-01
-12
-23
-00
-02
-4d
-2a
-02
-00
-00
-24
-00
-02
-02
-29
-02
-00
-00
-25
-00
-02
-08
-29
-02
-05
-01
-26
-00
-02
-03
-28
-01
-12
-27
-00
-02
-4d
-2a
-02
-00
-00
-28
-00
-02
-02
-29
-02
-00
-00
-29
-00
-02
-08
-29
-02
-04
-01
-2a
-00
-02
-03
-28
-01
-0e
-2b
-00
-02
-4d
-2a
-02
-00
-00
-2c
-00
-02
-08
-29
-02
-02
-02
-2d
-00
-02
-03
-28
-01
-12
-2e
-00
-02
-4d
-2a
-02
-00
-00
-2f
-00
-02
-02
-29
-02
-00
-00
-30
-00
-02
-08
-29
-02
-c0
-01
-31
-00
-02
-03
-28
-01
-12
-32
-00
-02
-4d
-2a
-02
-00
-00
-33
-00
-02
-02
-29
-02
-00
-00
-34
-00
-02
-08
-29
-02
-cc
-01
-35
-00
-02
-03
-28
-01
-0e
-36
-00
-02
-4d
-2a
-02
-00
-00
-37
-00
-02
-08
-29
-02
-c0
-02
-38
-00
-02
-03
-28
-01
-1a
-39
-00
-02
-33
-2a
-08
-00
-00
-00
-00
-00
-00
-00
-00
-3a
-00
-02
-02
-29
-02
-01
-00
-3b
-00
-02
-03
-28
-01
-02
-3c
-00
-02
-4a
-2a
-04
-01
-01
-00
-03
-3d
-00
-02
-03
-28
-01
-02
-3e
-00
-02
-4b
-2a
-20
-01
-05
-0c
-09
-01
-a1
-01
-85
-05
-15
-00
-25
-01
-75
-01
-95
-18
-0a
-83
-01
-09
-ea
-09
-e9
-09
-e2
-09
-b6
-09
-b5
-09
-cd
-09
-b7
-0a
-23
-02
-0a
-8a
-01
-0a
-94
-01
-0a
-2a
-02
-0a
-92
-01
-0a
-21
-02
-0a
-24
-02
-0a
-07
-03
-0a
-ae
-01
-09
-70
-09
-6f
-09
-30
-09
-b8
-0a
-25
-02
-0a
-26
-02
-0a
-27
-02
-81
-02
-c0
-05
-01
-09
-06
-a1
-01
-85
-02
-75
-01
-95
-08
-05
-07
-19
-e0
-29
-e7
-15
-00
-25
-01
-81
-02
-95
-01
-75
-08
-81
-03
-95
-05
-75
-01
-05
-08
-19
-01
-29
-05
-91
-02
-95
-01
-75
-03
-91
-03
-95
-06
-75
-08
-15
-00
-26
-ff
-00
-05
-07
-19
-00
-2a
-ff
-00
-81
-00
-c0
-05
-01
-09
-02
-a1
-01
-85
-01
-09
-01
-a1
-00
-05
-09
-19
-01
-29
-08
-15
-00
-25
-01
-75
-01
-95
-08
-81
-02
-05
-01
-09
-30
-09
-31
-16
-01
-f8
-26
-ff
-07
-75
-10
-95
-02
-81
-06
-09
-38
-15
-81
-25
-7f
-75
-08
-95
-01
-81
-06
-05
-0c
-0a
-38
-02
-95
-01
-81
-06
-c0
-c0
-05
-01
-09
-80
-a1
-01
-85
-04
-15
-00
-25
-01
-75
-01
-95
-03
-19
-81
-29
-83
-81
-02
-95
-01
-75
-05
-81
-03
-c0
-06
-01
-ff
-09
-01
-a1
-01
-15
-00
-26
-ff
-00
-75
-08
-85
-c0
-95
-3f
-09
-02
-81
-00
-95
-3f
-09
-03
-91
-02
-85
-cc
-95
-3f
-09
-04
-81
-00
-95
-04
-09
-05
-91
-02
-c0
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-
Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/output/flash.dat
===================================================================
--- /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/output/flash.dat	(revision 5679)
+++ /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/output/flash.dat	(nonexistent)
@@ -1,11742 +0,0 @@
-00
-02
-8f
-ab
-f1
-00
-3c
-ae
-c6
-03
-78
-5c
-8d
-07
-e0
-71
-35
-1e
-aa
-55
-10
-1f
-b1
-a4
-02
-b3
-d0
-ad
-a4
-ab
-52
-a6
-69
-fb
-ad
-01
-a8
-77
-5e
-60
-8c
-ea
-f3
-02
-6f
-3d
-e9
-3a
-de
-dd
-17
-58
-b7
-d7
-7e
-9f
-b6
-5c
-32
-c7
-af
-35
-07
-f8
-c0
-a4
-17
-c8
-a0
-61
-78
-b9
-2e
-9d
-93
-44
-71
-36
-4b
-0f
-3c
-03
-e5
-97
-fc
-d4
-c1
-17
-e0
-6d
-f9
-ac
-60
-c8
-e0
-2a
-b2
-df
-eb
-bb
-d9
-ef
-09
-7d
-10
-23
-61
-7b
-7f
-e3
-68
-d2
-76
-85
-64
-05
-3f
-e8
-e7
-b5
-44
-2a
-88
-9d
-be
-03
-c4
-27
-98
-1c
-ed
-02
-9c
-bc
-4e
-6b
-65
-f0
-1a
-39
-b0
-20
-17
-80
-0a
-6c
-ad
-b3
-67
-71
-d5
-d2
-fa
-d6
-82
-33
-18
-8a
-9a
-2f
-2a
-58
-d0
-2d
-7d
-73
-5e
-34
-7d
-51
-78
-88
-49
-0b
-83
-61
-be
-86
-d7
-a2
-52
-15
-6b
-88
-61
-61
-c7
-00
-9c
-a7
-d1
-a6
-fa
-2f
-ef
-9e
-cd
-2f
-e9
-46
-51
-34
-37
-dd
-d9
-03
-76
-aa
-23
-3f
-3b
-1a
-95
-cb
-09
-ee
-2a
-07
-32
-65
-c9
-1b
-fd
-4d
-9d
-65
-c9
-97
-a8
-94
-94
-a7
-6d
-05
-5a
-e0
-36
-44
-87
-b1
-d8
-3a
-69
-ec
-0e
-1b
-51
-cb
-e4
-f2
-6c
-78
-3c
-8a
-07
-ee
-a7
-15
-76
-41
-b8
-90
-85
-42
-23
-c3
-22
-aa
-9c
-11
-e9
-13
-57
-6b
-18
-57
-ec
-5b
-2f
-2b
-10
-b1
-0c
-26
-3b
-fa
-a3
-d0
-04
-1b
-9d
-14
-ed
-09
-e3
-f5
-5e
-81
-9a
-42
-d7
-50
-93
-e4
-6c
-66
-d0
-29
-e0
-60
-8f
-19
-39
-a8
-20
-d4
-36
-af
-af
-fb
-6e
-51
-44
-eb
-51
-b5
-95
-41
-1a
-fa
-02
-d0
-73
-05
-88
-3d
-58
-06
-cc
-34
-bc
-94
-a7
-4b
-5d
-86
-6e
-35
-bc
-96
-1e
-23
-f6
-b4
-a7
-b2
-72
-f9
-bf
-f4
-bd
-7d
-b6
-dd
-e5
-fc
-1d
-96
-16
-44
-57
-25
-8e
-6c
-17
-05
-3a
-2d
-e2
-18
-dc
-f4
-43
-ad
-ff
-f1
-63
-53
-5d
-5c
-31
-24
-7f
-21
-4f
-95
-76
-45
-58
-30
-f9
-b7
-3c
-b0
-fe
-e7
-a8
-79
-4e
-b5
-48
-80
-48
-81
-46
-cb
-5d
-67
-c4
-cf
-8c
-dd
-5b
-44
-6d
-9d
-e0
-f7
-ed
-bb
-ef
-70
-02
-0d
-10
-46
-1c
-3a
-6a
-51
-26
-0c
-53
-bb
-f6
-f9
-19
-99
-da
-c7
-4d
-34
-c9
-28
-47
-d5
-db
-5f
-17
-4c
-6a
-52
-83
-e0
-10
-3a
-e0
-c5
-24
-64
-b1
-8c
-af
-91
-bd
-0a
-35
-23
-ec
-bd
-b3
-05
-2d
-c9
-62
-0f
-74
-b8
-07
-a4
-d9
-ea
-f5
-cb
-86
-24
-cc
-18
-4d
-de
-38
-08
-f0
-55
-78
-a0
-2b
-90
-d0
-73
-16
-c2
-c0
-ba
-a5
-ea
-2c
-5c
-50
-1d
-39
-15
-3a
-bd
-d2
-83
-8d
-be
-de
-f0
-8b
-b3
-6a
-70
-72
-a9
-86
-b4
-ef
-31
-c1
-66
-bc
-59
-af
-e2
-f4
-69
-b7
-0a
-db
-d3
-78
-3e
-aa
-24
-85
-ff
-bd
-a3
-51
-34
-ae
-76
-8f
-74
-86
-b6
-75
-e0
-70
-d6
-d5
-4d
-71
-9d
-ce
-67
-c2
-cd
-da
-00
-4f
-df
-96
-04
-f3
-25
-ef
-0d
-a3
-74
-44
-b1
-ef
-b1
-d3
-57
-93
-4b
-7a
-06
-87
-99
-fa
-2f
-bd
-be
-31
-9e
-e5
-a6
-42
-01
-52
-e7
-e9
-aa
-3e
-19
-75
-bc
-9e
-5a
-d9
-a2
-b7
-74
-b7
-93
-66
-9d
-fd
-b7
-e4
-38
-71
-57
-6f
-38
-0b
-39
-5a
-2c
-ac
-cc
-12
-2b
-a3
-aa
-12
-2a
-6b
-c0
-4f
-da
-5e
-43
-10
-de
-94
-2a
-a0
-c0
-2d
-3e
-82
-c4
-8d
-ac
-52
-c5
-b9
-5d
-cb
-48
-05
-d2
-44
-c7
-8b
-ff
-69
-9b
-61
-b7
-37
-de
-07
-58
-e4
-0a
-14
-d5
-3d
-16
-3c
-81
-b4
-22
-73
-12
-e2
-86
-32
-1e
-09
-8e
-99
-b3
-f5
-3c
-5a
-c0
-c1
-eb
-8b
-09
-bb
-1f
-67
-ed
-40
-53
-8b
-d7
-cb
-ee
-d2
-f6
-c0
-96
-ba
-c6
-aa
-d3
-52
-2e
-e5
-40
-1e
-61
-c7
-4d
-06
-b1
-5e
-09
-58
-83
-5d
-51
-6d
-a3
-3a
-ee
-69
-ec
-a8
-67
-b5
-0c
-f6
-38
-ba
-18
-23
-ad
-9f
-66
-7e
-c0
-0d
-3e
-82
-83
-0b
-01
-b8
-ac
-89
-a4
-a3
-37
-85
-64
-af
-2b
-77
-7f
-49
-ba
-27
-82
-3b
-0b
-10
-ec
-10
-d8
-cc
-fa
-42
-5c
-fe
-6b
-76
-87
-60
-c8
-0d
-cb
-38
-42
-7e
-58
-24
-e2
-39
-36
-ff
-be
-5c
-72
-19
-f4
-0d
-ef
-55
-f2
-8f
-7f
-39
-ff
-16
-b9
-aa
-47
-2e
-ab
-62
-30
-0c
-ce
-5a
-aa
-40
-fb
-a1
-a7
-40
-dd
-0f
-53
-5d
-11
-f4
-4d
-23
-d3
-67
-2a
-96
-01
-15
-0a
-08
-2c
-42
-75
-83
-74
-f6
-7f
-c5
-c8
-d3
-14
-06
-08
-18
-8c
-c6
-ae
-05
-2d
-b6
-20
-87
-a8
-70
-4c
-68
-43
-f6
-d5
-cc
-62
-46
-c4
-6a
-4f
-c3
-f8
-ac
-e8
-2a
-c8
-d0
-ac
-30
-26
-01
-0c
-aa
-2f
-68
-3c
-8c
-57
-87
-b3
-e3
-43
-b6
-6f
-76
-f5
-7a
-0f
-d5
-dd
-f5
-6b
-11
-ca
-0e
-39
-f5
-d5
-59
-a1
-c0
-96
-61
-9e
-88
-c2
-26
-6b
-11
-76
-13
-cd
-c1
-dc
-48
-b2
-6e
-43
-08
-9d
-55
-fb
-94
-62
-8e
-7e
-f8
-66
-61
-38
-e0
-03
-98
-66
-62
-d6
-c7
-58
-0a
-cc
-9c
-d8
-b5
-c4
-bf
-e5
-fe
-39
-d3
-0b
-7a
-77
-a6
-3f
-a5
-1c
-b0
-57
-bc
-d3
-fa
-c2
-7c
-a8
-aa
-c1
-03
-e8
-89
-dc
-97
-3e
-b7
-fb
-ec
-b3
-5f
-df
-ef
-b9
-e8
-4e
-e5
-03
-70
-0c
-6b
-53
-80
-e9
-1a
-dc
-ea
-94
-64
-06
-6a
-c1
-fa
-60
-e7
-c1
-94
-bd
-86
-a0
-ab
-e2
-cf
-ac
-f5
-5a
-28
-a9
-b0
-a1
-e6
-aa
-4f
-f8
-8f
-fd
-27
-17
-56
-15
-ed
-a9
-ed
-1a
-bd
-2a
-0d
-23
-eb
-43
-76
-7a
-2b
-eb
-03
-87
-bc
-fe
-2f
-48
-9d
-d2
-4c
-97
-14
-6b
-fe
-61
-c6
-49
-9b
-fc
-9d
-b2
-78
-a2
-35
-97
-6c
-6c
-1a
-c4
-74
-9f
-30
-cc
-42
-98
-e4
-b9
-31
-d5
-2f
-3e
-97
-9c
-b6
-70
-73
-e1
-2a
-fd
-08
-e2
-e8
-d4
-47
-92
-66
-32
-a0
-23
-ff
-00
-87
-6d
-94
-18
-c0
-53
-4d
-d4
-d7
-57
-02
-f6
-02
-99
-30
-85
-41
-7c
-a7
-a1
-54
-07
-4a
-12
-58
-23
-d9
-55
-41
-a0
-2e
-35
-a7
-c9
-96
-82
-60
-25
-f5
-f4
-6f
-7b
-f8
-d0
-b4
-94
-42
-e5
-b9
-ea
-9a
-27
-67
-a3
-bf
-4b
-08
-98
-21
-aa
-28
-ed
-bd
-8a
-51
-f3
-c2
-6a
-6e
-8d
-fd
-02
-1b
-58
-8f
-54
-6d
-9b
-8a
-91
-c0
-ed
-f7
-46
-42
-98
-a8
-0f
-89
-fc
-17
-47
-a5
-63
-5c
-36
-49
-d9
-ee
-4f
-44
-46
-31
-8f
-8c
-7d
-06
-d8
-1d
-41
-07
-47
-5d
-79
-19
-5b
-8c
-7a
-49
-40
-4d
-be
-59
-bb
-59
-b1
-c6
-8d
-4d
-f4
-ec
-f5
-d7
-7e
-ae
-26
-42
-54
-32
-8a
-a9
-3f
-4c
-e8
-80
-ae
-3f
-f3
-18
-9c
-df
-79
-72
-e9
-af
-60
-25
-4d
-49
-26
-f5
-74
-83
-f2
-8f
-99
-a1
-4a
-d8
-fe
-64
-bd
-28
-f0
-be
-cd
-4d
-00
-df
-51
-eb
-47
-1e
-0d
-10
-2b
-e8
-79
-96
-26
-76
-61
-7a
-28
-8f
-43
-dc
-4a
-d5
-9d
-7c
-1a
-44
-06
-9a
-f1
-38
-9d
-5d
-68
-5e
-25
-6c
-02
-91
-59
-09
-23
-fe
-81
-21
-4a
-b9
-b0
-43
-63
-8b
-6c
-38
-4d
-6d
-5f
-3f
-a7
-e3
-54
-cf
-60
-0b
-1e
-6d
-b9
-eb
-b0
-98
-a6
-5c
-0c
-b6
-c0
-e1
-f6
-49
-28
-ab
-6c
-d5
-3f
-bc
-cd
-da
-09
-5c
-8a
-e2
-7c
-b0
-07
-b9
-f9
-7b
-55
-64
-0a
-b6
-ec
-c1
-0e
-5c
-c1
-ee
-fc
-f9
-cd
-c4
-2c
-ed
-2c
-7c
-2a
-02
-ac
-1d
-e3
-35
-80
-5b
-e5
-0c
-bf
-ef
-5d
-8d
-9d
-e6
-64
-b3
-c6
-25
-69
-51
-a5
-63
-01
-bd
-61
-f3
-6a
-71
-26
-97
-2b
-3b
-bc
-7a
-70
-50
-d9
-55
-0e
-10
-8a
-3e
-68
-ea
-3b
-d4
-01
-14
-e6
-0b
-ff
-85
-4a
-f9
-9d
-56
-52
-d4
-8b
-62
-4c
-64
-fd
-2b
-ea
-f8
-5e
-57
-cf
-ed
-1c
-4f
-e1
-d1
-64
-63
-4f
-57
-14
-42
-d8
-96
-8d
-c0
-a8
-11
-53
-e2
-23
-0f
-e3
-0c
-8c
-7d
-82
-d9
-66
-9e
-db
-d8
-78
-5e
-cc
-e5
-68
-1a
-94
-5f
-71
-88
-b5
-f9
-1a
-06
-bb
-2b
-7a
-0d
-ed
-8a
-85
-69
-d1
-ab
-ea
-df
-e0
-1b
-49
-55
-e7
-f9
-6d
-ef
-75
-4b
-69
-35
-dd
-f5
-ed
-b4
-62
-48
-da
-8b
-b8
-51
-1e
-ca
-76
-a9
-0d
-48
-bf
-33
-3a
-75
-87
-ce
-32
-25
-0f
-2f
-5d
-60
-77
-ad
-13
-df
-f6
-2a
-55
-14
-64
-47
-08
-28
-47
-61
-d8
-af
-18
-06
-3e
-9a
-fe
-0c
-82
-6c
-0c
-0b
-f8
-06
-6a
-1c
-3e
-1e
-41
-4c
-6c
-aa
-a2
-4d
-ca
-9a
-6d
-3e
-e0
-cf
-f3
-62
-06
-87
-0b
-d8
-4e
-bf
-67
-31
-e9
-7b
-0f
-dd
-43
-bd
-ff
-f7
-56
-35
-8f
-5f
-e4
-f5
-84
-98
-4b
-c3
-a8
-cd
-d4
-10
-69
-ac
-61
-61
-93
-25
-d2
-2f
-aa
-30
-de
-f2
-25
-42
-1e
-43
-60
-c7
-82
-8c
-82
-41
-ea
-7a
-54
-97
-60
-0f
-5c
-8f
-c4
-91
-d8
-2f
-97
-12
-39
-e9
-65
-ec
-01
-3f
-6e
-0b
-60
-f6
-88
-bd
-46
-cb
-ec
-e7
-2d
-10
-d4
-f7
-4e
-f9
-8b
-80
-41
-5c
-c2
-52
-7f
-36
-88
-5b
-d8
-3f
-4f
-22
-af
-3b
-d7
-25
-4c
-8c
-79
-b1
-97
-79
-1a
-25
-74
-a4
-d7
-66
-78
-81
-22
-7b
-3f
-c5
-af
-11
-9d
-1d
-89
-bd
-db
-a3
-11
-c8
-cc
-5c
-97
-b7
-e7
-0f
-c2
-a3
-4c
-6c
-57
-84
-44
-50
-04
-cf
-3c
-47
-2b
-8b
-16
-87
-2d
-03
-ca
-ee
-36
-7c
-8c
-e1
-55
-87
-bf
-1c
-fb
-4a
-fc
-46
-72
-7b
-c3
-e5
-42
-3e
-22
-ba
-21
-bb
-1f
-2b
-e0
-b5
-be
-b3
-ec
-3c
-b4
-d0
-15
-29
-45
-ed
-0f
-fd
-72
-cd
-70
-bc
-84
-ad
-38
-9c
-da
-c4
-9b
-40
-e5
-7f
-26
-be
-5f
-1a
-e1
-e4
-0b
-3b
-48
-82
-6e
-af
-6a
-e8
-64
-22
-16
-4c
-48
-ea
-bd
-aa
-cd
-2f
-b1
-ef
-f6
-dc
-b8
-7c
-e2
-24
-3f
-5b
-56
-73
-2f
-25
-11
-41
-fc
-c3
-97
-a5
-d0
-1b
-f5
-25
-60
-11
-cb
-49
-c8
-58
-2e
-40
-7d
-fe
-0c
-ed
-5d
-ec
-02
-50
-44
-8b
-cf
-0b
-15
-9f
-37
-70
-66
-5d
-7f
-66
-42
-f7
-fd
-fb
-f0
-e3
-0d
-3a
-c3
-b4
-02
-08
-e5
-87
-76
-17
-e9
-91
-3d
-5c
-59
-38
-18
-a1
-4d
-c7
-4d
-05
-3f
-0d
-0c
-df
-02
-d0
-9b
-2d
-d0
-82
-80
-00
-58
-fb
-8b
-9f
-eb
-c0
-09
-52
-24
-21
-fa
-67
-6f
-9e
-0a
-f7
-7e
-0f
-19
-d3
-92
-ce
-3b
-ed
-95
-1c
-8a
-a5
-b1
-70
-c0
-0d
-1e
-d4
-84
-d1
-50
-06
-5a
-81
-7f
-c9
-fd
-a5
-c6
-24
-4f
-4d
-d5
-e6
-63
-30
-70
-9f
-a7
-54
-bb
-8d
-b2
-1e
-39
-70
-1e
-40
-23
-67
-31
-04
-e5
-85
-f8
-ef
-b7
-6e
-24
-cd
-57
-79
-c8
-6c
-b9
-8a
-1c
-91
-c6
-f6
-d2
-a3
-3a
-0b
-f8
-1c
-d9
-da
-73
-37
-e2
-8a
-42
-50
-8f
-52
-40
-0e
-b1
-f7
-60
-2a
-f5
-8a
-6c
-8e
-6e
-bf
-e0
-b4
-c2
-53
-97
-ae
-99
-f5
-b4
-f5
-1f
-52
-03
-60
-ad
-0c
-63
-9a
-2a
-b2
-e4
-e8
-7c
-75
-09
-86
-04
-04
-19
-19
-6b
-ec
-fb
-a6
-66
-e5
-c2
-61
-6b
-86
-97
-1d
-34
-8f
-00
-9d
-71
-22
-86
-5e
-98
-1d
-8c
-4d
-b6
-34
-4b
-ab
-df
-c4
-95
-f3
-ea
-a7
-2a
-38
-17
-fa
-43
-82
-f9
-25
-c7
-f0
-19
-25
-32
-9d
-75
-cc
-77
-bf
-50
-e2
-02
-f8
-9b
-67
-e2
-a6
-f7
-59
-f8
-76
-1e
-df
-bf
-28
-ef
-4d
-a3
-36
-74
-01
-b0
-65
-e2
-42
-49
-b6
-f0
-2e
-ea
-f3
-ea
-2a
-61
-4c
-db
-5d
-50
-2c
-bc
-8a
-fe
-7a
-b8
-30
-e6
-26
-40
-bc
-d4
-02
-a9
-b7
-4f
-8f
-b1
-8b
-c4
-d9
-58
-a3
-6c
-d2
-ba
-f5
-a1
-af
-1f
-8f
-17
-8d
-aa
-95
-7b
-a3
-75
-0a
-70
-ac
-7d
-5a
-d7
-75
-28
-f4
-37
-da
-bd
-99
-24
-67
-14
-69
-d4
-67
-f3
-7c
-53
-2d
-d6
-d3
-70
-45
-0c
-40
-be
-1b
-15
-0c
-b4
-6a
-36
-bd
-1c
-1b
-0b
-db
-e5
-2d
-76
-07
-b1
-37
-66
-99
-93
-b4
-d3
-42
-97
-1a
-08
-a4
-a8
-80
-72
-31
-dc
-77
-e9
-8f
-92
-6e
-46
-65
-d8
-38
-75
-96
-e6
-be
-10
-b3
-2a
-b2
-a3
-d4
-67
-f6
-2b
-85
-7e
-3e
-6e
-6d
-c0
-93
-32
-6b
-0f
-00
-c0
-a7
-df
-13
-96
-b1
-4b
-eb
-4f
-4c
-61
-3e
-0c
-96
-08
-fb
-25
-6e
-06
-3b
-a7
-3b
-fd
-0c
-b6
-34
-57
-f5
-54
-cd
-7b
-4d
-51
-67
-dc
-4a
-09
-66
-f6
-b9
-05
-a3
-73
-94
-bf
-4d
-61
-de
-fc
-0d
-cf
-ee
-94
-5c
-71
-45
-d2
-52
-e0
-ba
-a7
-0f
-3f
-8e
-5f
-0d
-96
-05
-04
-05
-18
-f9
-64
-87
-27
-55
-fd
-f0
-f1
-44
-c7
-e4
-50
-b9
-42
-7a
-8a
-48
-7b
-18
-98
-5a
-aa
-eb
-17
-c4
-9d
-04
-b1
-d2
-f7
-c3
-4b
-77
-62
-34
-b8
-46
-15
-f6
-73
-36
-de
-33
-37
-50
-df
-be
-58
-0d
-f1
-4e
-ec
-1b
-c0
-89
-23
-11
-d2
-ae
-74
-ca
-c7
-3d
-50
-54
-1c
-0c
-5e
-ba
-a6
-80
-38
-8f
-c6
-ee
-7b
-d7
-91
-c6
-ce
-17
-97
-fa
-67
-d7
-36
-2b
-da
-44
-0e
-07
-88
-d2
-95
-b5
-06
-07
-1b
-36
-61
-99
-0b
-5f
-d2
-ea
-b1
-9d
-02
-cc
-e7
-a1
-04
-34
-06
-ff
-34
-3a
-5f
-83
-6a
-ea
-d9
-46
-28
-57
-7d
-a7
-5c
-c7
-69
-87
-9c
-44
-07
-94
-a2
-b2
-b9
-54
-11
-a0
-c7
-1b
-d8
-06
-43
-10
-83
-48
-17
-ab
-bc
-56
-79
-96
-e1
-af
-34
-f1
-66
-d3
-65
-c8
-67
-b6
-ab
-17
-2a
-cd
-3d
-68
-72
-fd
-9d
-d4
-07
-95
-36
-a0
-84
-cd
-65
-1e
-81
-22
-6b
-ce
-b0
-42
-dc
-8e
-4c
-3c
-6d
-3b
-fb
-ec
-33
-c5
-1b
-7a
-55
-ce
-72
-2d
-e7
-09
-f5
-b6
-64
-76
-8e
-1a
-63
-af
-ed
-ae
-c5
-c7
-03
-c3
-57
-c3
-88
-af
-3e
-66
-20
-d5
-04
-55
-15
-e5
-c0
-b4
-4c
-7d
-1b
-9a
-f5
-ee
-ad
-4a
-d0
-f8
-ce
-ff
-d5
-bf
-17
-d6
-5e
-c6
-3e
-eb
-87
-ed
-22
-50
-cf
-46
-5b
-b2
-52
-cf
-8b
-d8
-b5
-84
-96
-45
-03
-d5
-d9
-d3
-f9
-95
-63
-d5
-5f
-0e
-06
-44
-10
-e2
-14
-ce
-c7
-5e
-fc
-5f
-e8
-0e
-25
-46
-4d
-ea
-ea
-a9
-6e
-b0
-ae
-f9
-3b
-24
-96
-86
-f9
-a5
-4d
-2b
-48
-b5
-1d
-6c
-4d
-a0
-67
-6d
-2f
-cd
-5f
-c9
-b8
-a8
-f8
-e0
-48
-17
-d6
-06
-56
-57
-f7
-1c
-db
-4e
-cd
-6c
-da
-07
-20
-91
-a6
-d8
-ac
-48
-aa
-6a
-28
-2c
-bc
-0c
-74
-c9
-66
-db
-ad
-88
-ca
-d9
-2b
-8b
-2f
-9f
-ab
-17
-e2
-cd
-c4
-19
-97
-f6
-36
-fe
-9c
-21
-3a
-2e
-da
-4c
-da
-96
-99
-f4
-79
-6b
-df
-43
-81
-50
-50
-dd
-9c
-36
-e5
-43
-7b
-98
-24
-4e
-90
-2c
-39
-36
-bc
-72
-15
-60
-9b
-1f
-08
-ed
-05
-95
-4e
-0c
-72
-4b
-69
-0d
-9c
-2a
-61
-b2
-21
-38
-36
-04
-41
-39
-87
-65
-23
-f7
-fb
-57
-e0
-6d
-0b
-7c
-79
-fb
-65
-2d
-5f
-66
-57
-e9
-77
-d5
-98
-2b
-6a
-48
-f6
-b9
-04
-d7
-ae
-35
-61
-48
-16
-b4
-a6
-a9
-39
-f3
-8c
-9a
-74
-a4
-f9
-ed
-ad
-9c
-6b
-ab
-bc
-d4
-f5
-52
-69
-f6
-1c
-66
-af
-9e
-7c
-f5
-fd
-0c
-ca
-2d
-1c
-03
-83
-c5
-aa
-91
-c5
-2e
-7b
-89
-ae
-94
-bd
-e9
-af
-54
-57
-65
-1e
-3c
-03
-c3
-2b
-71
-09
-c3
-9e
-b6
-f8
-be
-18
-cc
-53
-8f
-d5
-7d
-14
-46
-27
-8c
-6d
-e5
-7e
-03
-6b
-ce
-bf
-aa
-2c
-21
-37
-64
-70
-26
-2c
-e9
-d9
-eb
-93
-f0
-74
-06
-46
-85
-32
-4a
-b6
-d1
-fe
-c8
-22
-af
-f1
-10
-12
-dc
-6f
-8e
-cb
-10
-2e
-67
-01
-44
-01
-a5
-ab
-e8
-61
-1e
-d5
-c2
-bc
-5d
-55
-81
-9d
-56
-26
-be
-52
-d3
-d7
-03
-98
-95
-3d
-2c
-c2
-bd
-fa
-bc
-98
-d6
-cf
-d9
-90
-2d
-3a
-3d
-06
-f1
-91
-f9
-28
-8d
-8e
-7c
-21
-15
-91
-4f
-76
-5c
-99
-7c
-82
-d9
-50
-4b
-b1
-f4
-00
-70
-04
-d1
-21
-4e
-5e
-d0
-fc
-31
-17
-d0
-29
-80
-3e
-b9
-80
-9e
-c1
-e1
-4d
-fc
-e8
-d2
-7b
-51
-5d
-21
-e5
-cf
-c3
-5a
-1b
-c2
-5f
-ce
-9a
-a2
-53
-2a
-c6
-1b
-bf
-7e
-7b
-ad
-d4
-4f
-86
-2a
-9b
-64
-e9
-0b
-01
-c0
-92
-49
-b7
-0b
-e2
-8f
-48
-a9
-0f
-b9
-8e
-ae
-04
-cd
-ba
-d4
-2d
-d3
-5f
-01
-2b
-bd
-c1
-b7
-c9
-6e
-7c
-84
-e4
-de
-34
-6d
-01
-b7
-a4
-ab
-5a
-3f
-82
-81
-2b
-71
-f5
-66
-70
-70
-f0
-0f
-ad
-c6
-39
-74
-dd
-5e
-cc
-31
-d5
-29
-b1
-ce
-a4
-89
-e7
-7e
-61
-3f
-c5
-06
-be
-29
-d0
-51
-9d
-56
-db
-39
-aa
-99
-b6
-4d
-d1
-80
-f3
-59
-f7
-81
-96
-75
-09
-12
-e7
-79
-ec
-11
-01
-30
-23
-b4
-39
-89
-cc
-3a
-d7
-95
-18
-eb
-05
-92
-f2
-a8
-8c
-80
-38
-e7
-a9
-c8
-af
-eb
-b1
-7a
-d4
-9b
-83
-4b
-e1
-27
-ee
-aa
-89
-7a
-cb
-1b
-c4
-06
-6e
-48
-67
-e5
-66
-b5
-80
-cc
-4d
-54
-18
-17
-a1
-96
-c2
-7e
-0e
-97
-83
-f4
-06
-ec
-82
-cf
-d5
-57
-78
-a1
-a0
-02
-76
-0c
-7c
-5f
-7f
-d6
-4e
-d1
-61
-13
-04
-e0
-ca
-1a
-ed
-b0
-da
-e2
-7b
-5f
-6c
-e5
-c5
-a8
-ec
-f4
-ea
-54
-fc
-d5
-f4
-56
-6f
-80
-ef
-43
-b8
-02
-10
-08
-93
-c0
-39
-8b
-1d
-37
-c5
-48
-a9
-95
-1e
-cf
-d6
-5d
-fb
-43
-73
-0d
-9b
-59
-41
-77
-bf
-6c
-09
-d9
-2c
-56
-11
-55
-23
-d1
-9b
-a0
-bd
-2c
-30
-c0
-ab
-f0
-15
-85
-39
-b3
-3f
-e9
-2e
-78
-47
-8f
-25
-60
-50
-34
-ba
-10
-26
-32
-a1
-5a
-f1
-c5
-eb
-47
-9a
-a2
-cc
-9c
-ae
-22
-94
-09
-2c
-61
-a1
-45
-8e
-f7
-12
-92
-aa
-40
-1f
-d3
-8e
-65
-b9
-5d
-35
-c0
-71
-a6
-d0
-4f
-a2
-47
-14
-d5
-e9
-2b
-dc
-1d
-f6
-32
-5e
-7d
-e3
-10
-c5
-d3
-0a
-ad
-aa
-93
-66
-cc
-4c
-55
-d5
-2b
-64
-9f
-7a
-97
-5d
-b2
-86
-94
-28
-8f
-d3
-33
-db
-0e
-1b
-9a
-ff
-a0
-e8
-ba
-6d
-07
-82
-86
-59
-ed
-5c
-9a
-4c
-88
-30
-04
-f1
-44
-04
-7e
-11
-40
-cd
-eb
-b0
-95
-57
-3c
-e5
-5f
-23
-00
-90
-2a
-01
-16
-bd
-09
-cc
-ad
-b4
-88
-76
-9f
-c7
-ba
-9d
-5d
-81
-e9
-6b
-5e
-91
-74
-53
-ed
-43
-08
-a3
-dc
-f8
-66
-41
-3d
-0a
-50
-d4
-5a
-ad
-06
-9b
-96
-f9
-ca
-e3
-09
-4c
-ef
-33
-2d
-b0
-a0
-23
-f4
-2c
-9d
-19
-fb
-82
-41
-db
-97
-51
-d4
-21
-7c
-63
-66
-b5
-28
-f2
-ff
-6e
-62
-af
-94
-af
-06
-9e
-4a
-e2
-01
-20
-71
-82
-be
-3f
-90
-3b
-a8
-3b
-86
-bd
-20
-34
-8d
-64
-73
-da
-0d
-06
-21
-77
-c1
-33
-5c
-00
-3c
-e1
-de
-9c
-fa
-91
-cf
-26
-c6
-99
-a5
-61
-a2
-77
-a2
-3d
-ac
-21
-bf
-e6
-21
-07
-a3
-31
-05
-6d
-a4
-b1
-c7
-9d
-98
-14
-7a
-19
-31
-2f
-04
-e5
-65
-aa
-19
-06
-06
-6b
-e5
-b6
-e4
-bf
-63
-90
-35
-c6
-d9
-49
-91
-d1
-1c
-46
-3a
-25
-c6
-18
-83
-f4
-92
-cb
-ab
-8c
-81
-87
-77
-50
-02
-1b
-25
-51
-f9
-39
-c4
-3e
-31
-5b
-96
-50
-0b
-8f
-2b
-3b
-68
-b3
-93
-1e
-a0
-55
-49
-74
-6e
-18
-5f
-87
-03
-4b
-37
-0d
-42
-da
-85
-46
-d9
-63
-bf
-0f
-13
-aa
-a4
-cc
-fc
-35
-a9
-d7
-af
-98
-b1
-5b
-6a
-b5
-ec
-b3
-95
-11
-a6
-9c
-60
-c6
-40
-e9
-d8
-08
-38
-74
-4d
-88
-33
-b5
-a3
-46
-c9
-3e
-2d
-42
-aa
-9a
-54
-47
-c8
-fe
-e5
-25
-f3
-47
-23
-7b
-b8
-f7
-77
-b3
-6d
-ae
-96
-53
-ee
-09
-d6
-6c
-07
-a0
-1f
-aa
-db
-85
-b2
-58
-8f
-50
-01
-39
-48
-40
-74
-a5
-60
-61
-fc
-80
-1e
-63
-2a
-e6
-5d
-73
-b5
-cf
-88
-7f
-22
-da
-29
-2f
-ab
-9e
-51
-5a
-b6
-d7
-07
-51
-88
-82
-96
-f5
-9e
-bf
-53
-43
-3b
-90
-17
-9a
-6a
-f5
-74
-e4
-99
-f3
-62
-82
-c7
-47
-ad
-b5
-d0
-c9
-04
-1f
-73
-68
-4d
-b9
-f5
-d8
-3d
-44
-3e
-91
-29
-2c
-2b
-9d
-f5
-2f
-d9
-22
-db
-16
-8d
-15
-0e
-d9
-6e
-36
-5f
-9b
-05
-10
-15
-a0
-17
-a1
-cc
-20
-0c
-35
-32
-eb
-cf
-40
-a2
-84
-a2
-45
-9d
-8b
-45
-ae
-53
-a4
-78
-1a
-bd
-95
-82
-5e
-3e
-23
-eb
-04
-10
-87
-7d
-5d
-d0
-e3
-85
-9d
-c5
-65
-07
-18
-82
-37
-ab
-67
-41
-68
-f2
-08
-f7
-85
-d2
-46
-80
-d7
-d3
-15
-97
-bc
-5a
-d6
-02
-91
-77
-3e
-d7
-38
-25
-d4
-5f
-fa
-1f
-03
-c4
-84
-b5
-3a
-a7
-03
-e1
-0b
-4f
-4c
-50
-1a
-c8
-86
-69
-84
-dd
-18
-cb
-06
-c5
-b4
-fd
-23
-9e
-52
-f6
-12
-09
-c6
-ec
-e1
-c6
-bc
-36
-ae
-5b
-e5
-f8
-ab
-a4
-3b
-16
-bd
-d5
-2f
-fd
-10
-07
-3b
-37
-14
-71
-b9
-17
-79
-82
-66
-c3
-03
-d3
-6d
-fd
-ce
-ec
-70
-f1
-39
-a7
-c2
-f5
-3b
-54
-34
-42
-a9
-8b
-c1
-0d
-19
-67
-12
-b7
-62
-d7
-9b
-bb
-f9
-e2
-e8
-e1
-2c
-d9
-d0
-f0
-08
-3e
-0b
-9d
-c0
-74
-32
-e2
-ec
-24
-e5
-74
-44
-b5
-e2
-e2
-39
-fa
-84
-70
-76
-bd
-79
-08
-85
-00
-5b
-5a
-58
-f3
-2d
-c3
-8c
-fc
-74
-42
-b0
-6d
-d6
-ef
-70
-98
-37
-ef
-af
-9c
-46
-7e
-f1
-35
-fd
-2e
-19
-55
-24
-97
-3a
-dd
-bd
-16
-a0
-47
-dd
-2b
-1d
-ff
-c3
-2c
-65
-7a
-fe
-49
-b4
-8b
-b0
-2c
-be
-6f
-65
-14
-76
-80
-00
-ab
-56
-9a
-97
-38
-02
-c9
-cd
-2f
-70
-db
-e2
-b3
-d0
-f4
-b6
-e2
-42
-3e
-f9
-54
-d4
-03
-4b
-8f
-f0
-9d
-b8
-f4
-46
-10
-8f
-59
-ec
-6b
-54
-35
-22
-1e
-d9
-8b
-d2
-b2
-df
-c5
-6c
-8b
-33
-7c
-b5
-97
-5d
-6f
-3e
-8d
-1c
-19
-3b
-a5
-dd
-b6
-99
-d1
-0d
-06
-b2
-fa
-65
-09
-db
-e8
-e1
-3b
-c2
-94
-95
-3d
-da
-21
-3e
-37
-92
-0e
-86
-4d
-52
-c8
-dd
-d7
-84
-70
-ec
-7f
-6b
-ee
-54
-9a
-67
-81
-44
-81
-70
-9d
-1d
-ab
-24
-8c
-d7
-4a
-8e
-13
-0b
-11
-5f
-1c
-41
-10
-ab
-89
-7e
-c7
-77
-03
-b2
-77
-62
-e7
-61
-28
-c9
-05
-96
-f0
-7b
-e7
-62
-c9
-00
-d6
-15
-00
-68
-ff
-92
-c9
-f0
-6c
-cd
-17
-96
-fa
-31
-81
-05
-4a
-8e
-f0
-83
-69
-63
-95
-7b
-95
-1f
-71
-47
-fb
-02
-a2
-c4
-e6
-dc
-e8
-5f
-03
-6c
-e4
-86
-b5
-23
-42
-10
-48
-84
-70
-35
-41
-e0
-d8
-98
-3c
-1a
-d7
-e7
-e0
-08
-eb
-8b
-49
-03
-ed
-08
-78
-08
-a7
-74
-d7
-b9
-ff
-17
-a6
-4f
-79
-18
-27
-3e
-05
-87
-c2
-dd
-e0
-c4
-a0
-da
-34
-12
-5b
-21
-b5
-4e
-f0
-b6
-1a
-ca
-2f
-29
-a2
-35
-86
-cb
-11
-94
-9d
-aa
-ec
-99
-12
-7b
-2d
-3b
-11
-25
-68
-14
-73
-67
-35
-36
-d4
-f3
-32
-40
-08
-25
-46
-64
-b3
-e0
-51
-bd
-0b
-7f
-29
-45
-46
-cb
-0f
-23
-a7
-d7
-20
-62
-21
-75
-6b
-51
-28
-37
-81
-1a
-79
-25
-93
-7f
-c1
-00
-4f
-d8
-5f
-82
-e9
-dd
-d2
-35
-18
-28
-24
-21
-de
-c6
-94
-44
-1d
-4c
-46
-de
-d5
-7e
-9b
-6a
-d1
-b4
-7b
-dd
-07
-f6
-d5
-e7
-77
-81
-18
-c9
-a6
-ef
-0c
-3f
-15
-26
-3d
-41
-8f
-8b
-7a
-16
-80
-84
-af
-fa
-f5
-61
-33
-8d
-65
-e2
-5d
-02
-16
-0c
-a9
-a5
-11
-d6
-66
-90
-18
-ee
-c4
-09
-03
-34
-1b
-b4
-d3
-96
-d8
-37
-01
-55
-f4
-5d
-ba
-cf
-f9
-a9
-a5
-7c
-e3
-fd
-ec
-e2
-20
-6d
-9d
-97
-28
-ff
-1f
-76
-13
-9e
-cc
-a4
-b7
-77
-dd
-8b
-1c
-6b
-b1
-2c
-18
-8f
-ea
-02
-da
-ee
-36
-c4
-e4
-b4
-35
-3b
-28
-1a
-ab
-e4
-dd
-03
-0d
-48
-7d
-0c
-a4
-f5
-fe
-97
-37
-e1
-e2
-48
-37
-04
-e9
-e6
-5a
-9c
-f4
-35
-43
-18
-af
-55
-2b
-0d
-bb
-d0
-d8
-82
-ff
-18
-1c
-89
-c7
-e3
-8a
-32
-5f
-d3
-3f
-f1
-48
-52
-df
-07
-8f
-d3
-47
-8b
-9e
-36
-00
-47
-3e
-7e
-8c
-eb
-ca
-43
-7e
-ba
-66
-6a
-b1
-70
-aa
-bf
-a9
-7c
-aa
-05
-c4
-a5
-82
-df
-99
-6b
-09
-c4
-ba
-b3
-46
-94
-14
-67
-de
-ad
-4b
-38
-70
-50
-18
-b0
-a5
-51
-52
-1c
-4b
-f8
-5b
-d2
-c2
-90
-2a
-ac
-77
-a5
-2a
-34
-35
-39
-16
-d4
-63
-f7
-51
-c7
-11
-86
-3f
-9c
-3c
-59
-5c
-b2
-8d
-d3
-79
-60
-47
-68
-0c
-05
-1a
-e0
-08
-b7
-4d
-1f
-43
-c9
-e6
-e8
-02
-b0
-d5
-49
-99
-04
-bc
-ee
-f2
-94
-35
-d3
-0d
-0f
-08
-09
-6b
-17
-40
-9c
-4a
-9f
-77
-90
-d9
-14
-9b
-1e
-db
-f8
-ec
-9f
-37
-ce
-9c
-3f
-c7
-bc
-c2
-d4
-d5
-1a
-80
-1e
-9b
-56
-47
-4d
-fe
-ad
-ae
-b5
-b6
-3e
-1d
-e9
-50
-f7
-5c
-89
-3d
-bd
-40
-b4
-82
-2a
-8c
-5a
-7d
-1b
-68
-92
-63
-0a
-9e
-18
-8a
-06
-83
-98
-77
-a1
-fc
-29
-23
-5c
-97
-c9
-a6
-a5
-1a
-4b
-85
-5c
-f8
-e9
-99
-dd
-4d
-32
-37
-20
-4e
-a6
-23
-ce
-a5
-cc
-b0
-c3
-9a
-6a
-1a
-8d
-70
-f8
-98
-94
-6f
-5e
-4a
-a1
-6b
-f6
-11
-4f
-a9
-a7
-0b
-23
-66
-49
-f4
-78
-a1
-43
-b1
-87
-94
-5f
-5e
-b9
-87
-03
-aa
-49
-7f
-57
-06
-90
-7f
-27
-1e
-2f
-b2
-5b
-4e
-20
-d2
-d7
-ea
-64
-1c
-34
-2e
-1a
-f4
-16
-43
-2c
-ed
-0a
-cc
-bf
-b1
-f0
-2e
-81
-7f
-d3
-28
-37
-4d
-38
-c4
-a1
-fb
-f4
-2f
-fe
-ec
-68
-82
-1c
-db
-f8
-e5
-33
-20
-0f
-ac
-37
-de
-38
-97
-74
-74
-75
-c8
-bd
-75
-bb
-c1
-b1
-6c
-59
-2f
-8c
-90
-ec
-d5
-c7
-21
-a8
-69
-20
-b2
-4b
-84
-f5
-5f
-91
-bd
-55
-5b
-d6
-0c
-ef
-f2
-aa
-95
-c1
-a5
-be
-34
-04
-12
-6b
-c8
-f3
-81
-0d
-a1
-88
-7c
-d5
-6b
-d1
-49
-34
-7b
-a2
-43
-b9
-91
-f4
-b8
-1b
-51
-8f
-f3
-14
-61
-73
-86
-9f
-10
-17
-08
-f0
-63
-45
-b8
-23
-50
-b0
-9f
-4c
-33
-a7
-79
-a8
-07
-ff
-92
-1f
-7c
-f9
-79
-91
-d0
-96
-69
-86
-ce
-1b
-ac
-c2
-df
-2a
-af
-48
-3a
-24
-d1
-a1
-5a
-c9
-38
-e1
-56
-1c
-a7
-a4
-38
-80
-84
-92
-c7
-44
-38
-19
-38
-b0
-f3
-97
-63
-93
-a9
-35
-e5
-4f
-67
-81
-97
-50
-08
-0c
-59
-25
-fe
-fd
-2b
-2b
-2e
-5d
-44
-8f
-99
-af
-0e
-1a
-ee
-4b
-58
-e4
-d6
-b5
-64
-35
-b6
-1d
-46
-35
-b1
-61
-da
-34
-04
-a5
-16
-36
-8f
-3b
-a8
-d8
-8e
-14
-c4
-f2
-e0
-a1
-6f
-28
-b4
-4a
-a8
-a7
-a8
-ec
-7b
-58
-4b
-4b
-77
-c3
-5d
-e7
-58
-be
-91
-58
-a4
-6e
-ae
-c3
-f5
-72
-07
-71
-aa
-7e
-a2
-b8
-d1
-73
-49
-91
-ba
-33
-90
-53
-d5
-90
-fa
-33
-ed
-d5
-db
-1d
-42
-ad
-6e
-5e
-aa
-05
-4f
-ae
-bf
-d6
-98
-18
-8c
-e0
-93
-83
-18
-74
-b6
-67
-d7
-b3
-2b
-39
-61
-5d
-03
-5b
-32
-19
-e7
-60
-f5
-74
-d2
-3b
-0d
-73
-6d
-d8
-33
-7d
-4d
-ef
-4e
-a4
-2d
-d5
-9e
-b6
-67
-e0
-e8
-95
-d9
-18
-f5
-d5
-6a
-9a
-9e
-e1
-ab
-11
-e5
-8e
-10
-ea
-68
-d7
-61
-34
-32
-3b
-cc
-dc
-2b
-3e
-79
-d9
-98
-02
-96
-cd
-04
-91
-9c
-8c
-bd
-65
-05
-a5
-97
-ef
-d8
-be
-dd
-dc
-e4
-0e
-ee
-78
-7b
-b5
-92
-23
-61
-17
-e4
-4c
-89
-d9
-b5
-11
-df
-26
-4c
-aa
-51
-1e
-83
-91
-9d
-38
-44
-1f
-c7
-dc
-48
-51
-16
-75
-75
-a5
-17
-b9
-62
-32
-8d
-f4
-97
-5e
-f9
-f7
-77
-60
-c0
-9c
-49
-63
-31
-e2
-41
-67
-7d
-bd
-73
-bc
-86
-53
-09
-56
-d1
-97
-31
-35
-b3
-08
-57
-6e
-4b
-3c
-11
-44
-a8
-06
-1f
-67
-0a
-b8
-cc
-05
-a8
-dd
-af
-63
-0e
-a0
-00
-59
-bb
-a6
-fd
-f7
-89
-fc
-7f
-35
-9f
-5f
-d9
-e1
-84
-b3
-8b
-fc
-c7
-05
-b2
-3c
-21
-4f
-f8
-86
-1f
-b3
-49
-77
-b6
-ff
-c2
-a6
-4e
-f7
-3d
-b6
-3d
-84
-c3
-13
-ba
-ce
-35
-44
-f2
-5f
-6f
-bb
-8c
-5e
-15
-0f
-b4
-7f
-2d
-37
-5c
-cb
-91
-16
-9e
-3e
-f6
-14
-99
-fa
-04
-e4
-01
-4c
-46
-4d
-2c
-3c
-a1
-63
-5f
-a8
-30
-eb
-67
-74
-94
-91
-58
-73
-4f
-ee
-eb
-f1
-30
-2c
-03
-f7
-41
-2d
-06
-e8
-dd
-10
-6c
-82
-22
-9d
-53
-b2
-49
-cf
-ec
-da
-87
-59
-22
-40
-64
-0e
-b0
-7c
-93
-b7
-39
-e4
-63
-e7
-7e
-e9
-6e
-d1
-29
-05
-2d
-8c
-6c
-07
-53
-86
-5c
-1f
-9e
-0f
-d3
-af
-fc
-c8
-2b
-13
-19
-79
-53
-c7
-2a
-09
-92
-a4
-31
-1b
-ec
-b8
-60
-d6
-f1
-de
-8c
-d9
-44
-73
-4e
-1d
-92
-30
-a5
-16
-90
-47
-b0
-b1
-a7
-84
-e5
-2f
-65
-db
-7d
-7f
-72
-64
-3a
-9b
-1e
-f5
-a9
-6c
-76
-6c
-dc
-67
-40
-62
-22
-e5
-7f
-e4
-b8
-53
-d2
-cf
-9f
-6d
-a5
-98
-36
-1d
-b1
-41
-e9
-7e
-f0
-ae
-fa
-b0
-ae
-28
-07
-ec
-8c
-aa
-83
-07
-aa
-59
-a1
-01
-e9
-ec
-be
-ab
-f2
-4f
-74
-db
-a0
-d8
-95
-2d
-fa
-46
-8a
-28
-e0
-ce
-69
-e3
-5b
-f3
-e3
-67
-b2
-c9
-6e
-2e
-12
-8c
-70
-83
-ea
-ff
-bc
-83
-5f
-26
-37
-05
-25
-dc
-d2
-27
-c8
-01
-e4
-f5
-ce
-00
-d5
-91
-1e
-30
-3a
-33
-e1
-34
-ac
-39
-e3
-0e
-aa
-0a
-b5
-3d
-7b
-ab
-5e
-9f
-fc
-26
-f2
-a6
-11
-bd
-5c
-d5
-c9
-bd
-2a
-66
-89
-13
-67
-3f
-32
-e6
-ed
-b3
-d8
-be
-27
-b0
-eb
-fe
-b3
-ff
-5e
-a1
-ed
-67
-eb
-7b
-67
-40
-78
-80
-4e
-38
-47
-00
-1b
-bd
-71
-f6
-70
-87
-89
-df
-97
-5e
-6f
-32
-a8
-70
-21
-e1
-5d
-dd
-c5
-bc
-40
-68
-d7
-8f
-bf
-8a
-4f
-98
-c6
-2e
-8f
-bf
-95
-9f
-f0
-4b
-b9
-db
-d8
-4e
-ea
-ce
-17
-d6
-7a
-d6
-51
-63
-ff
-e0
-da
-de
-5d
-43
-0b
-af
-e0
-26
-ed
-ce
-5b
-13
-e2
-a1
-c4
-a4
-fa
-2c
-b2
-ed
-0d
-96
-98
-ce
-00
-93
-75
-00
-11
-f8
-43
-df
-f5
-6d
-a1
-32
-88
-ad
-ce
-6e
-79
-49
-ae
-96
-bd
-ba
-5e
-a1
-86
-06
-e5
-a8
-19
-fb
-07
-52
-26
-ad
-97
-04
-26
-43
-42
-52
-ec
-63
-e6
-c4
-4d
-20
-6a
-c1
-0e
-22
-49
-44
-be
-ba
-67
-ca
-ed
-e3
-d9
-73
-7a
-17
-48
-fb
-a7
-31
-83
-09
-e0
-03
-e6
-eb
-79
-28
-ac
-e3
-54
-cb
-50
-de
-d9
-6e
-bc
-fa
-db
-f8
-66
-f9
-1a
-60
-db
-f5
-2c
-18
-91
-07
-1e
-e5
-df
-a4
-f3
-39
-53
-90
-34
-28
-6d
-46
-a3
-98
-2f
-77
-b2
-92
-bb
-9f
-ab
-83
-a5
-c7
-65
-99
-83
-e7
-30
-9d
-72
-ed
-9b
-17
-cb
-7b
-e1
-e9
-e1
-b5
-5f
-01
-50
-e9
-2d
-78
-c2
-4a
-87
-d5
-e8
-63
-f2
-45
-2d
-a6
-c6
-28
-61
-44
-a1
-38
-83
-ba
-b9
-75
-84
-0d
-b3
-c1
-9d
-f3
-cb
-26
-92
-42
-2b
-90
-3c
-39
-18
-6b
-7e
-26
-61
-6a
-ec
-6b
-59
-58
-1a
-ca
-ef
-d5
-38
-69
-51
-37
-16
-b4
-31
-d3
-d2
-3f
-e7
-5c
-af
-c6
-52
-9a
-6a
-13
-c7
-21
-7d
-af
-2e
-1a
-79
-bc
-3a
-d3
-40
-fb
-a7
-7f
-bb
-26
-f1
-c7
-cb
-24
-b9
-cb
-2d
-9f
-fb
-00
-9c
-48
-66
-36
-f0
-0a
-cb
-6e
-da
-67
-20
-0a
-56
-85
-47
-22
-cd
-d9
-6e
-4c
-06
-a9
-ee
-ad
-b3
-53
-78
-4a
-ee
-53
-54
-29
-e9
-11
-27
-a9
-6d
-2f
-de
-f7
-ea
-93
-4f
-ea
-db
-22
-75
-e5
-78
-bd
-ac
-7d
-40
-37
-0d
-e7
-c7
-f8
-64
-92
-44
-e4
-1a
-da
-3a
-e9
-8f
-a8
-88
-7e
-de
-3b
-41
-e3
-8b
-a7
-33
-70
-0b
-b2
-40
-9b
-d4
-c3
-88
-e0
-e9
-81
-45
-09
-1a
-e6
-6a
-eb
-c4
-f5
-d4
-4d
-4c
-20
-12
-70
-2b
-03
-64
-1e
-40
-cf
-31
-07
-fa
-5e
-81
-87
-89
-69
-b1
-51
-a0
-ac
-fe
-a7
-b7
-82
-40
-d7
-e6
-e1
-15
-1f
-92
-f7
-18
-6e
-5d
-17
-0e
-24
-8b
-9b
-21
-1a
-2c
-1c
-09
-f5
-cc
-2b
-6e
-59
-ff
-8f
-c1
-dc
-c9
-ec
-44
-f5
-4b
-49
-16
-12
-8b
-b8
-73
-65
-2d
-ae
-f3
-94
-92
-f9
-e7
-47
-2c
-19
-1d
-b9
-84
-1f
-63
-1a
-f1
-d6
-8b
-16
-98
-5a
-a6
-d6
-30
-2a
-3d
-60
-c1
-00
-77
-8f
-40
-56
-56
-24
-8d
-7d
-34
-97
-b0
-80
-fe
-6b
-15
-16
-36
-bb
-22
-01
-bb
-6d
-b8
-19
-a4
-d1
-8e
-63
-73
-36
-e6
-5d
-d1
-b4
-d2
-36
-93
-2c
-80
-80
-9f
-50
-62
-e6
-a3
-de
-a9
-18
-a4
-5c
-51
-ca
-ee
-04
-ba
-66
-66
-b4
-d6
-59
-78
-af
-12
-c0
-12
-cb
-bf
-0b
-fb
-ce
-cd
-e8
-12
-30
-62
-89
-9e
-12
-39
-dd
-ce
-fa
-62
-4e
-e7
-48
-f5
-2b
-fa
-d7
-58
-79
-73
-c5
-32
-dd
-21
-2c
-15
-e9
-87
-14
-01
-50
-9d
-b5
-10
-c4
-b3
-52
-49
-ec
-85
-05
-cd
-3f
-40
-d0
-24
-85
-30
-3d
-16
-67
-8e
-30
-ea
-7b
-87
-eb
-65
-67
-dd
-16
-e2
-94
-fa
-cd
-c0
-1f
-c8
-08
-6b
-70
-75
-cb
-5d
-d0
-c6
-dd
-06
-af
-d0
-c1
-7a
-85
-a5
-c2
-a7
-81
-4c
-85
-50
-b0
-bf
-9e
-d3
-63
-c8
-cb
-f2
-9e
-3d
-d1
-29
-ac
-ae
-d0
-b9
-ee
-a0
-55
-bd
-49
-4b
-a6
-78
-88
-e0
-42
-11
-06
-94
-ac
-b7
-eb
-80
-d6
-40
-12
-6d
-0f
-31
-1b
-fc
-7d
-b6
-87
-e4
-dc
-73
-06
-69
-aa
-ff
-fd
-21
-21
-91
-1f
-3f
-f9
-da
-4c
-61
-56
-61
-ac
-e7
-e3
-2e
-91
-e1
-a4
-54
-ff
-f5
-46
-ee
-95
-0d
-8a
-c0
-bf
-b8
-e2
-72
-fd
-fb
-26
-79
-6a
-74
-fb
-b0
-97
-c2
-ed
-ba
-9b
-5b
-01
-6a
-ea
-70
-56
-3a
-d5
-20
-20
-89
-fe
-49
-24
-49
-18
-e2
-66
-28
-f2
-76
-0e
-69
-4f
-4c
-49
-0e
-00
-63
-2a
-53
-79
-32
-c7
-2c
-38
-63
-bd
-59
-ec
-e9
-f8
-1c
-2b
-69
-ab
-4c
-f0
-6f
-85
-92
-c1
-2b
-e9
-c3
-ec
-9d
-d8
-84
-a7
-aa
-5f
-17
-ee
-d3
-1d
-36
-1b
-c0
-bb
-75
-48
-44
-2e
-e3
-0b
-c4
-5e
-05
-15
-9f
-d9
-64
-87
-a0
-7c
-69
-28
-0f
-bc
-3b
-36
-50
-59
-4f
-1f
-66
-1b
-90
-ea
-b8
-02
-50
-c7
-15
-4c
-d9
-a5
-71
-7d
-59
-d8
-97
-6c
-02
-d4
-35
-1f
-72
-91
-bd
-0a
-0d
-bd
-0b
-94
-87
-b3
-a1
-87
-b0
-52
-a1
-cf
-03
-b2
-33
-82
-99
-02
-ea
-5d
-63
-a0
-3a
-91
-da
-0b
-67
-9e
-6c
-5a
-8d
-68
-2d
-d5
-01
-22
-4d
-c6
-1a
-44
-26
-21
-22
-78
-27
-b3
-65
-58
-92
-a7
-06
-e3
-90
-ed
-e5
-16
-cc
-c1
-6d
-6d
-d5
-32
-7b
-7e
-06
-42
-b6
-d6
-4c
-dd
-0d
-09
-62
-a2
-e3
-53
-20
-6b
-43
-31
-44
-5f
-c7
-c9
-c2
-d0
-11
-90
-f4
-cf
-dc
-12
-4e
-36
-b1
-65
-19
-65
-12
-5d
-64
-08
-cc
-66
-47
-26
-12
-7a
-18
-5c
-d3
-b1
-19
-82
-01
-cb
-3b
-c9
-ea
-5a
-c0
-ef
-60
-bf
-b7
-9e
-d3
-ea
-c7
-94
-fb
-1f
-26
-6a
-24
-0f
-34
-f0
-de
-0c
-c2
-29
-37
-af
-d6
-14
-5e
-f2
-96
-15
-f0
-19
-73
-dd
-26
-a2
-38
-59
-b4
-bb
-a2
-dc
-d6
-a6
-cf
-6b
-6e
-7f
-26
-3f
-e5
-d0
-38
-73
-0a
-5b
-c0
-bc
-9f
-6c
-1d
-81
-34
-12
-1d
-fe
-43
-84
-36
-8c
-73
-9b
-18
-20
-19
-b6
-be
-b3
-a1
-bc
-a9
-37
-29
-e8
-20
-16
-ca
-4d
-99
-af
-04
-68
-66
-ae
-4c
-fa
-b7
-ae
-11
-7e
-c1
-f1
-c8
-2f
-ef
-9e
-fa
-49
-f9
-36
-16
-2b
-21
-5f
-c6
-f1
-25
-7f
-9c
-59
-46
-83
-bd
-a7
-d0
-64
-82
-50
-0a
-32
-f8
-86
-6a
-31
-89
-c3
-ad
-4c
-0b
-d3
-56
-38
-6e
-a3
-ac
-03
-e9
-99
-a9
-c4
-03
-c1
-d1
-39
-2e
-e2
-1b
-5d
-39
-2f
-9d
-8b
-db
-96
-3c
-dd
-c8
-1c
-e7
-45
-ca
-76
-68
-7c
-ba
-74
-70
-2f
-7d
-60
-1e
-0f
-ba
-33
-55
-3a
-4f
-8f
-43
-43
-6c
-e0
-b7
-49
-de
-74
-c2
-a7
-70
-c2
-cc
-c9
-10
-da
-8d
-f7
-db
-e0
-f1
-8a
-42
-a4
-c8
-6a
-d5
-47
-96
-02
-2f
-d1
-1c
-de
-00
-69
-81
-03
-dc
-97
-86
-af
-69
-ae
-95
-bb
-a8
-15
-90
-3a
-66
-a5
-37
-fd
-f6
-b4
-c5
-36
-df
-14
-05
-4d
-7d
-a1
-48
-4d
-dd
-8b
-eb
-01
-69
-ee
-64
-7b
-b2
-bc
-97
-01
-c7
-f1
-a2
-98
-55
-86
-9b
-58
-44
-65
-5c
-92
-73
-db
-ec
-c0
-48
-b3
-57
-01
-f6
-9f
-4d
-02
-30
-ac
-2d
-65
-2b
-ac
-0f
-43
-11
-e4
-55
-76
-93
-7a
-fe
-cb
-61
-42
-a3
-6d
-31
-6c
-ce
-5b
-13
-8a
-b2
-8f
-2b
-28
-2c
-ea
-6c
-e4
-6a
-81
-0d
-55
-fa
-de
-29
-08
-81
-55
-7f
-19
-f4
-65
-73
-2c
-95
-4f
-07
-f0
-1d
-e4
-86
-ca
-94
-39
-8e
-dc
-e9
-5d
-10
-e5
-6c
-ab
-fa
-ce
-65
-32
-d2
-a0
-bf
-34
-e4
-3e
-05
-84
-8a
-b4
-0c
-79
-dc
-44
-34
-f4
-da
-15
-12
-c6
-31
-27
-27
-a3
-b7
-1a
-88
-67
-ab
-b7
-c5
-37
-83
-b9
-eb
-8c
-de
-95
-28
-f1
-7f
-7e
-ac
-53
-ec
-fb
-40
-94
-82
-e1
-55
-72
-d1
-7b
-2b
-34
-e2
-4e
-05
-f6
-16
-1a
-c4
-df
-bb
-2f
-4e
-f1
-83
-a0
-e0
-34
-2a
-56
-55
-e2
-5e
-78
-41
-cd
-70
-19
-68
-3d
-49
-40
-1e
-22
-35
-78
-1e
-b4
-93
-46
-b4
-2d
-74
-76
-4c
-3d
-86
-3d
-83
-84
-39
-50
-dc
-8f
-25
-4d
-e2
-30
-6d
-b7
-05
-8a
-33
-d2
-97
-ea
-10
-67
-33
-e7
-93
-8e
-bc
-74
-c5
-a3
-60
-88
-d0
-1c
-db
-c4
-95
-25
-fc
-1a
-6b
-ba
-ba
-30
-71
-1e
-08
-42
-50
-e6
-25
-ab
-93
-d3
-cf
-a1
-3f
-9f
-9d
-a1
-80
-81
-ba
-33
-3f
-0b
-79
-1a
-26
-c5
-17
-87
-78
-34
-ae
-a6
-35
-17
-de
-ee
-ee
-f6
-28
-43
-38
-0b
-da
-a7
-45
-77
-c4
-c4
-73
-83
-0f
-b0
-25
-00
-6e
-da
-f8
-ce
-55
-de
-ee
-fa
-4c
-f0
-b7
-26
-a0
-fb
-13
-25
-e5
-94
-9e
-88
-0b
-b4
-8a
-b4
-58
-18
-f8
-2b
-d6
-43
-52
-ec
-b5
-32
-37
-6b
-62
-28
-77
-1a
-a0
-1c
-28
-bd
-c8
-1b
-9a
-9d
-49
-37
-33
-29
-25
-69
-18
-cd
-cf
-b5
-29
-9e
-3e
-0d
-8e
-72
-6a
-df
-04
-c0
-95
-75
-08
-d8
-b4
-63
-b2
-74
-cc
-e4
-a0
-6b
-b5
-4c
-b3
-d8
-61
-96
-b3
-9c
-a9
-05
-30
-1c
-23
-83
-ee
-73
-44
-60
-7f
-c6
-31
-e4
-ec
-ba
-1e
-67
-f7
-48
-4b
-53
-7a
-76
-01
-14
-17
-c9
-51
-01
-ab
-01
-dc
-5f
-fb
-ce
-e3
-39
-b2
-08
-dd
-8c
-ff
-82
-d1
-75
-d9
-43
-65
-9e
-b0
-c7
-ff
-46
-6a
-2c
-bb
-c0
-79
-26
-2a
-bf
-71
-ae
-bc
-a5
-fc
-ab
-6c
-88
-e3
-1e
-8e
-31
-eb
-77
-12
-89
-a2
-08
-e1
-74
-b5
-75
-8e
-6f
-be
-88
-3a
-91
-70
-ec
-a7
-6d
-3b
-8e
-fc
-43
-46
-8a
-bb
-4b
-0f
-25
-ab
-2f
-c7
-a5
-a4
-61
-57
-67
-7f
-9e
-5b
-19
-b7
-c6
-9c
-d9
-48
-23
-eb
-d8
-0a
-d7
-61
-a8
-13
-fb
-d6
-64
-6e
-02
-dc
-24
-c5
-1a
-1f
-57
-e4
-fd
-6b
-66
-8c
-6b
-bd
-4f
-ed
-91
-92
-3c
-df
-f5
-11
-16
-f8
-a8
-28
-f1
-36
-81
-19
-24
-49
-0c
-3c
-6e
-b7
-38
-c9
-dc
-d6
-40
-e5
-ac
-8c
-cf
-61
-34
-1a
-22
-a2
-9c
-49
-74
-84
-24
-ad
-dc
-f5
-92
-53
-70
-de
-85
-72
-a8
-0b
-6f
-0b
-ef
-5e
-4e
-8d
-34
-e4
-52
-62
-8b
-57
-52
-b3
-16
-3a
-95
-45
-ae
-43
-34
-ff
-6a
-1f
-47
-45
-14
-f0
-73
-a4
-bb
-f5
-83
-ba
-80
-88
-5e
-1f
-37
-35
-66
-bc
-12
-07
-1e
-43
-f4
-79
-e0
-d6
-fe
-23
-22
-fb
-31
-17
-9f
-1a
-98
-ee
-91
-19
-a0
-c9
-df
-80
-f1
-b1
-34
-48
-0a
-3d
-35
-09
-57
-5d
-bc
-b1
-3c
-30
-8c
-10
-a4
-39
-34
-1f
-8f
-9f
-a7
-80
-e5
-31
-10
-fc
-7b
-12
-18
-9b
-af
-21
-80
-21
-e7
-b6
-77
-db
-62
-ea
-ff
-70
-23
-12
-fc
-f9
-82
-48
-79
-34
-b6
-09
-bc
-ff
-54
-77
-9b
-7a
-45
-00
-41
-d9
-0c
-04
-16
-a5
-88
-ee
-4c
-5a
-20
-35
-8d
-d3
-dc
-40
-a3
-d7
-46
-ed
-8e
-70
-f6
-86
-cc
-94
-b7
-4f
-87
-7e
-74
-eb
-a4
-fa
-72
-d1
-6b
-ba
-59
-17
-1c
-e9
-6a
-c7
-ed
-41
-0b
-07
-37
-4e
-cb
-5f
-f6
-d1
-96
-03
-a0
-6a
-a0
-56
-d8
-b7
-c9
-b5
-9d
-4b
-a7
-a1
-91
-15
-89
-7f
-67
-07
-3f
-72
-da
-04
-98
-a9
-0c
-c4
-75
-2c
-86
-f5
-37
-a8
-46
-ed
-3b
-dc
-3b
-19
-5b
-1a
-4c
-e9
-5a
-da
-5e
-f5
-37
-26
-28
-ca
-b0
-5c
-ea
-35
-8d
-50
-53
-2a
-5e
-b6
-63
-00
-72
-c0
-58
-8a
-1d
-5f
-94
-09
-82
-2f
-72
-9e
-b5
-6d
-42
-34
-36
-e7
-16
-1f
-53
-24
-f3
-b4
-f5
-20
-e6
-97
-18
-0d
-03
-66
-cc
-aa
-69
-2a
-17
-1e
-9d
-09
-d5
-82
-b2
-21
-da
-85
-c3
-62
-f6
-c3
-53
-25
-f0
-f0
-84
-d6
-b6
-5b
-0d
-7f
-70
-17
-7b
-ec
-7a
-b7
-9b
-4c
-b5
-1d
-74
-56
-0a
-bc
-7a
-46
-60
-da
-ed
-b3
-fd
-09
-3c
-f6
-78
-10
-5b
-0d
-49
-84
-8e
-fe
-fa
-cc
-23
-d1
-4e
-69
-76
-7b
-4f
-dd
-0c
-31
-40
-9c
-40
-be
-13
-70
-30
-13
-9d
-ff
-4a
-15
-b5
-4c
-eb
-6b
-c0
-e2
-c5
-8b
-9c
-b3
-2d
-e8
-05
-7f
-01
-d9
-1a
-5a
-2d
-00
-0a
-46
-4e
-d7
-87
-0e
-32
-c9
-13
-28
-c8
-26
-bf
-38
-42
-79
-39
-9f
-78
-20
-83
-d9
-e4
-e0
-c1
-1c
-d7
-eb
-db
-60
-93
-56
-7b
-c6
-c8
-de
-1e
-49
-5e
-c5
-6c
-6a
-57
-1b
-b9
-39
-6c
-42
-a7
-c9
-34
-77
-1c
-9c
-69
-8a
-f9
-c1
-f5
-10
-cd
-c0
-0a
-df
-56
-f0
-41
-65
-27
-13
-08
-f1
-7c
-5b
-9f
-31
-ea
-91
-a2
-45
-d3
-d6
-75
-aa
-55
-40
-00
-00
-40
-04
-00
-01
-06
-22
-01
-00
-00
-00
-00
-00
-00
-00
-00
-3c
-62
-88
-8b
-1b
-05
-20
-00
-00
-00
-00
-80
-00
-00
-00
-3c
-00
-80
-04
-00
-00
-00
-00
-00
-00
-00
-10
-00
-00
-00
-40
-00
-00
-00
-00
-00
-00
-89
-05
-1a
-00
-e0
-44
-30
-00
-00
-00
-00
-00
-00
-aa
-55
-08
-00
-0e
-47
-04
-85
-12
-01
-02
-22
-82
-17
-aa
-55
-05
-00
-65
-46
-ff
-05
-ff
-0b
-0a
-aa
-55
-1a
-00
-8d
-48
-0e
-08
-0f
-ff
-ff
-ff
-16
-17
-ff
-02
-02
-02
-00
-ff
-ff
-12
-07
-ff
-ff
-ff
-09
-01
-00
-03
-ff
-ff
-aa
-55
-02
-00
-ac
-48
-00
-0a
-aa
-55
-03
-00
-af
-48
-05
-02
-05
-aa
-55
-01
-00
-b4
-48
-14
-aa
-55
-01
-00
-b2
-48
-02
-aa
-55
-02
-00
-b6
-48
-02
-06
-aa
-55
-01
-00
-b9
-48
-0a
-aa
-55
-01
-00
-be
-48
-0a
-aa
-55
-02
-00
-bb
-48
-58
-02
-aa
-55
-02
-00
-51
-46
-58
-02
-aa
-55
-01
-00
-54
-46
-64
-aa
-55
-02
-00
-1a
-47
-05
-00
-aa
-55
-01
-00
-53
-46
-64
-aa
-55
-02
-00
-4f
-46
-b0
-04
-aa
-55
-01
-00
-19
-47
-0a
-aa
-55
-02
-00
-1e
-47
-70
-17
-aa
-55
-01
-00
-cf
-43
-08
-aa
-55
-01
-00
-16
-47
-03
-aa
-55
-01
-00
-94
-40
-01
-aa
-55
-01
-00
-c0
-40
-20
-aa
-55
-01
-00
-8b
-48
-20
-aa
-55
-03
-00
-2e
-47
-00
-00
-00
-aa
-55
-08
-00
-78
-46
-00
-34
-ff
-ff
-ff
-ff
-ff
-ff
-aa
-55
-07
-00
-86
-46
-34
-ff
-ff
-ff
-ff
-ff
-ff
-aa
-55
-07
-00
-93
-46
-34
-ff
-ff
-ff
-ff
-ff
-ff
-aa
-55
-0f
-00
-4f
-4e
-03
-00
-20
-20
-00
-03
-00
-22
-22
-00
-03
-00
-30
-23
-00
-aa
-55
-09
-00
-fd
-49
-00
-08
-00
-07
-00
-00
-00
-00
-00
-aa
-55
-01
-00
-be
-4a
-03
-aa
-55
-01
-00
-bd
-4a
-07
-aa
-55
-04
-00
-bf
-4a
-ff
-ff
-1e
-1e
-aa
-55
-01
-00
-60
-4e
-05
-aa
-55
-01
-00
-02
-45
-1e
-aa
-55
-06
-00
-08
-45
-24
-62
-81
-a1
-51
-61
-aa
-55
-05
-00
-fa
-45
-01
-0f
-0f
-0f
-0f
-aa
-55
-01
-00
-38
-47
-02
-aa
-55
-02
-00
-a2
-45
-c0
-12
-aa
-55
-01
-00
-bf
-48
-09
-aa
-55
-04
-00
-d0
-48
-c0
-5d
-00
-00
-aa
-55
-06
-00
-c0
-48
-6a
-63
-00
-80
-bb
-00
-aa
-55
-04
-00
-d4
-48
-f8
-bb
-00
-00
-aa
-55
-06
-00
-c6
-48
-1c
-1f
-01
-00
-77
-01
-aa
-55
-04
-00
-d8
-48
-00
-77
-01
-00
-aa
-55
-01
-00
-55
-46
-94
-aa
-55
-03
-00
-c6
-45
-00
-48
-60
-aa
-55
-02
-00
-34
-46
-05
-00
-aa
-55
-02
-00
-32
-46
-50
-00
-aa
-55
-02
-00
-1c
-47
-64
-00
-aa
-55
-01
-00
-06
-47
-01
-aa
-55
-01
-00
-3c
-47
-02
-aa
-55
-06
-00
-dd
-42
-34
-47
-29
-51
-31
-41
-aa
-55
-01
-00
-97
-43
-07
-aa
-55
-08
-00
-c4
-43
-fb
-00
-48
-08
-fb
-00
-48
-08
-aa
-55
-02
-00
-7d
-47
-96
-00
-aa
-55
-02
-00
-74
-47
-1b
-00
-aa
-55
-02
-00
-9f
-43
-1f
-00
-aa
-55
-04
-00
-76
-47
-23
-00
-27
-00
-aa
-55
-02
-00
-34
-43
-39
-00
-aa
-55
-02
-00
-7a
-47
-13
-00
-aa
-55
-06
-00
-be
-4c
-36
-00
-2e
-00
-32
-00
-aa
-55
-0c
-00
-4c
-43
-1f
-02
-01
-05
-03
-03
-12
-18
-03
-19
-c2
-03
-aa
-55
-11
-00
-5f
-47
-06
-ff
-06
-00
-03
-00
-80
-09
-09
-41
-49
-20
-4d
-6f
-75
-73
-65
-aa
-55
-0b
-00
-6c
-43
-1f
-09
-09
-41
-49
-20
-4d
-6f
-75
-73
-65
-aa
-55
-09
-00
-6d
-42
-08
-41
-49
-20
-4d
-6f
-75
-73
-65
-aa
-55
-09
-00
-1e
-4a
-08
-41
-49
-20
-4d
-6f
-75
-73
-65
-aa
-55
-08
-00
-d5
-42
-06
-00
-09
-00
-20
-00
-2c
-01
-aa
-55
-06
-00
-59
-47
-03
-12
-18
-ff
-00
-00
-aa
-55
-03
-00
-fe
-46
-00
-50
-00
-aa
-55
-02
-00
-f4
-43
-80
-3a
-aa
-55
-01
-00
-fd
-43
-80
-aa
-55
-02
-00
-9b
-4e
-00
-34
-aa
-55
-01
-00
-67
-4e
-ff
-aa
-55
-02
-00
-6c
-4e
-00
-00
-aa
-55
-04
-00
-6f
-4e
-20
-20
-00
-40
-aa
-55
-02
-00
-68
-4e
-00
-00
-aa
-55
-01
-00
-4a
-08
-ff
-aa
-55
-01
-00
-41
-41
-01
-aa
-55
-01
-00
-e9
-45
-07
-aa
-55
-02
-00
-07
-46
-43
-47
-aa
-55
-02
-00
-57
-46
-85
-90
-aa
-55
-02
-00
-5a
-46
-75
-80
-aa
-55
-01
-00
-59
-46
-63
-aa
-55
-01
-00
-3e
-46
-7d
-aa
-55
-01
-00
-1a
-44
-01
-aa
-55
-01
-00
-1d
-44
-02
-aa
-55
-01
-00
-1f
-44
-0a
-aa
-55
-01
-00
-1e
-44
-09
-aa
-55
-06
-00
-44
-46
-94
-00
-78
-00
-80
-00
-aa
-55
-01
-00
-4c
-46
-0c
-aa
-55
-01
-00
-4e
-44
-01
-aa
-55
-04
-00
-b7
-4c
-25
-20
-15
-10
-aa
-55
-11
-00
-d0
-45
-01
-06
-1a
-3a
-4d
-00
-13
-23
-4c
-0f
-2c
-31
-43
-11
-15
-36
-48
-aa
-55
-17
-00
-53
-48
-01
-76
-29
-37
-93
-09
-76
-ff
-4a
-26
-37
-50
-61
-bf
-d1
-16
-bd
-cf
-3f
-77
-d3
-16
-95
-aa
-55
-01
-00
-72
-48
-01
-aa
-55
-0c
-00
-e5
-4c
-0b
-59
-43
-2d
-41
-49
-2d
-4d
-6f
-75
-73
-65
-aa
-55
-10
-00
-c4
-4c
-06
-00
-06
-00
-2b
-00
-90
-01
-06
-00
-09
-00
-20
-00
-2c
-01
-aa
-55
-01
-00
-d5
-4c
-08
-aa
-55
-01
-00
-d9
-4c
-0f
-aa
-55
-01
-00
-dd
-4c
-0e
-aa
-55
-01
-00
-27
-44
-00
-aa
-55
-04
-00
-72
-4c
-26
-0a
-f5
-0c
-aa
-55
-74
-01
-c8
-4a
-ff
-ff
-ff
-ff
-02
-04
-06
-08
-ff
-ff
-ff
-ff
-02
-04
-06
-08
-07
-00
-00
-00
-08
-00
-00
-00
-09
-00
-00
-00
-0a
-00
-00
-00
-0b
-00
-00
-00
-0c
-00
-00
-00
-0d
-00
-00
-00
-0e
-00
-00
-00
-10
-00
-00
-00
-11
-00
-00
-00
-13
-00
-00
-00
-15
-00
-00
-00
-17
-00
-00
-00
-19
-00
-00
-00
-1c
-00
-00
-00
-1f
-00
-00
-00
-22
-00
-00
-00
-25
-00
-00
-00
-29
-00
-00
-00
-2d
-00
-00
-00
-32
-00
-00
-00
-37
-00
-00
-00
-3c
-00
-00
-00
-42
-00
-00
-00
-49
-00
-00
-00
-50
-00
-00
-00
-58
-00
-00
-00
-61
-00
-00
-00
-6b
-00
-00
-00
-76
-00
-00
-00
-82
-00
-00
-00
-8f
-00
-00
-00
-9d
-00
-00
-00
-ad
-00
-00
-00
-be
-00
-00
-00
-d1
-00
-00
-00
-e6
-00
-00
-00
-fd
-00
-00
-00
-17
-01
-00
-00
-33
-01
-00
-00
-51
-01
-00
-00
-73
-01
-00
-00
-98
-01
-00
-00
-c1
-01
-00
-00
-ee
-01
-00
-00
-20
-02
-00
-00
-56
-02
-00
-00
-92
-02
-00
-00
-d4
-02
-00
-00
-1c
-03
-00
-00
-6c
-03
-00
-00
-c3
-03
-00
-00
-24
-04
-00
-00
-8e
-04
-00
-00
-02
-05
-00
-00
-83
-05
-00
-00
-10
-06
-00
-00
-ab
-06
-00
-00
-56
-07
-00
-00
-12
-08
-00
-00
-e0
-08
-00
-00
-c3
-09
-00
-00
-bd
-0a
-00
-00
-d0
-0b
-00
-00
-ff
-0c
-00
-00
-4c
-0e
-00
-00
-ba
-0f
-00
-00
-4c
-11
-00
-00
-07
-13
-00
-00
-ee
-14
-00
-00
-06
-17
-00
-00
-54
-19
-00
-00
-dc
-1b
-00
-00
-a5
-1e
-00
-00
-b6
-21
-00
-00
-15
-25
-00
-00
-ca
-28
-00
-00
-df
-2c
-00
-00
-5b
-31
-00
-00
-4b
-36
-00
-00
-b9
-3b
-00
-00
-b2
-41
-00
-00
-44
-48
-00
-00
-7e
-4f
-00
-00
-71
-57
-00
-00
-2f
-60
-00
-00
-ce
-69
-00
-00
-62
-74
-00
-00
-ff
-7f
-00
-00
-aa
-55
-01
-00
-48
-41
-0c
-aa
-55
-06
-00
-c3
-40
-35
-3f
-64
-db
-7b
-3b
-aa
-55
-01
-00
-a7
-40
-20
-aa
-55
-03
-00
-c9
-40
-00
-08
-b4
-aa
-55
-01
-00
-99
-40
-18
-aa
-55
-01
-00
-1c
-41
-4d
-aa
-55
-0c
-00
-16
-00
-00
-00
-20
-00
-00
-00
-00
-00
-00
-00
-00
-00
-aa
-55
-05
-00
-60
-41
-08
-0e
-05
-03
-00
-aa
-55
-01
-00
-6a
-41
-20
-aa
-55
-02
-00
-9a
-40
-00
-0c
-aa
-55
-05
-00
-43
-41
-ff
-04
-00
-00
-08
-aa
-55
-01
-00
-fa
-01
-5a
-aa
-55
-01
-00
-27
-44
-00
-aa
-55
-04
-00
-23
-44
-00
-07
-ff
-07
-aa
-55
-01
-00
-4f
-44
-a0
-aa
-55
-02
-00
-52
-44
-bc
-02
-aa
-55
-02
-00
-50
-44
-90
-01
-aa
-55
-02
-00
-54
-44
-03
-09
-aa
-55
-03
-00
-49
-41
-88
-40
-ff
-aa
-55
-02
-00
-9c
-40
-49
-41
-aa
-55
-11
-00
-05
-49
-03
-04
-01
-02
-20
-2a
-3f
-15
-14
-1b
-28
-0e
-8a
-8b
-83
-84
-88
-aa
-55
-5a
-00
-19
-49
-09
-5a
-26
-34
-19
-04
-09
-00
-ff
-ff
-09
-5a
-0d
-f0
-1d
-e3
-7d
-d2
-ff
-ff
-09
-5a
-0d
-10
-1d
-ed
-7d
-80
-ff
-ff
-1b
-35
-28
-b4
-29
-46
-2a
-96
-2b
-8c
-2c
-6e
-2d
-64
-38
-5f
-39
-0f
-3a
-32
-3b
-47
-42
-10
-ff
-ff
-54
-2e
-55
-f2
-61
-f4
-63
-70
-75
-52
-76
-41
-77
-ed
-78
-23
-79
-46
-7a
-e5
-7c
-48
-7e
-77
-7f
-01
-0b
-00
-7f
-00
-09
-00
-ff
-ff
-aa
-55
-26
-00
-73
-4e
-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
-a7
-ff
-b5
-d0
-b6
-00
-ff
-00
-09
-00
-ff
-ff
-aa
-55
-0c
-00
-d1
-49
-05
-b9
-09
-5a
-0b
-72
-0c
-52
-09
-00
-ff
-ff
-aa
-55
-40
-00
-91
-49
-09
-5a
-0d
-10
-0e
-c5
-5b
-9a
-10
-38
-11
-42
-28
-28
-41
-23
-49
-39
-4a
-b0
-4b
-a0
-4c
-90
-4d
-70
-09
-00
-ff
-ff
-09
-5a
-06
-02
-09
-69
-0d
-48
-0e
-9f
-0f
-ba
-09
-00
-ff
-ff
-09
-a5
-26
-34
-19
-04
-60
-07
-69
-04
-7d
-20
-7e
-00
-09
-00
-ff
-ff
-aa
-55
-1c
-00
-dd
-49
-09
-a5
-46
-34
-6a
-c0
-69
-24
-09
-00
-ff
-ff
-09
-5a
-0b
-f3
-09
-00
-ff
-ff
-09
-a5
-0b
-f3
-09
-00
-ff
-ff
-aa
-55
-14
-00
-9e
-4e
-09
-a5
-46
-34
-19
-04
-60
-07
-69
-04
-68
-c3
-7d
-20
-7e
-00
-09
-00
-ff
-ff
-aa
-55
-03
-00
-6c
-4e
-d5
-2d
-00
-55
-aa
-aa
-55
-9a
-f5
-ff
-20
-20
-00
-40
-c0
-30
-00
-04
-c0
-30
-80
-27
-20
-60
-00
-00
-6f
-e0
-cc
-bb
-20
-3a
-00
-07
-20
-20
-00
-17
-6f
-e0
-c5
-a0
-79
-20
-7e
-07
-67
-e0
-c7
-c2
-70
-47
-c3
-00
-6f
-e0
-cc
-e5
-1f
-e0
-fe
-02
-67
-e0
-c7
-c4
-70
-47
-c5
-16
-6f
-20
-cc
-e5
-d8
-c0
-4c
-e6
-d8
-a0
-47
-c6
-20
-40
-7c
-dc
-6f
-e0
-cc
-e5
-1f
-e0
-fe
-04
-67
-e0
-c5
-9f
-20
-60
-00
-00
-6f
-e0
-c5
-a0
-79
-20
-7e
-07
-67
-e0
-cc
-76
-70
-4c
-77
-00
-6f
-e0
-cc
-e5
-1f
-e0
-fe
-02
-67
-e0
-cc
-78
-70
-4c
-79
-16
-6f
-20
-cc
-e5
-d8
-c0
-4c
-e6
-d8
-a0
-4c
-7a
-20
-40
-7c
-dc
-68
-48
-cc
-e5
-18
-40
-84
-04
-da
-20
-4c
-76
-20
-20
-04
-e5
-6f
-e0
-cc
-bb
-20
-3a
-00
-2a
-20
-20
-00
-33
-6f
-e0
-c5
-a0
-79
-20
-7e
-07
-67
-e0
-c7
-c2
-70
-47
-c3
-00
-70
-47
-c4
-02
-70
-47
-c5
-14
-70
-47
-c6
-01
-70
-45
-9f
-05
-20
-60
-00
-00
-6f
-e0
-c5
-a0
-79
-20
-7e
-07
-67
-e0
-cc
-76
-70
-4c
-77
-00
-70
-4c
-78
-02
-70
-4c
-79
-14
-70
-4c
-7a
-01
-d8
-40
-00
-05
-da
-20
-4c
-76
-20
-20
-04
-e5
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-20
-20
-00
-40
-c0
-28
-00
-04
-c0
-28
-80
-1c
-20
-60
-00
-00
-6f
-e0
-cc
-bb
-20
-3a
-00
-07
-20
-20
-00
-11
-6f
-e0
-c5
-a0
-79
-20
-7e
-07
-67
-e0
-c7
-c2
-70
-47
-c3
-00
-70
-47
-c4
-02
-70
-47
-c5
-12
-6f
-e0
-cc
-e3
-67
-e0
-c7
-c6
-70
-45
-9f
-05
-20
-60
-00
-00
-6f
-e0
-c5
-a0
-79
-20
-7e
-07
-67
-e0
-cc
-76
-70
-4c
-77
-00
-70
-4c
-78
-02
-70
-4c
-79
-12
-6f
-e0
-cc
-e3
-67
-e0
-cc
-7a
-d8
-40
-00
-05
-da
-20
-4c
-76
-20
-20
-04
-e5
-6f
-e0
-cc
-bb
-20
-3a
-00
-1f
-20
-20
-00
-2b
-6f
-e0
-c5
-a0
-79
-20
-7e
-07
-67
-e0
-c7
-c2
-70
-47
-c3
-00
-70
-47
-c4
-03
-70
-47
-c5
-13
-6f
-e0
-c7
-7c
-67
-e0
-c7
-c6
-6f
-e0
-cc
-e4
-e7
-e0
-80
-05
-70
-45
-9f
-06
-20
-60
-00
-00
-6f
-e0
-c5
-a0
-79
-20
-7e
-07
-67
-e0
-cc
-76
-70
-4c
-77
-00
-70
-4c
-78
-03
-70
-4c
-79
-13
-6f
-e0
-c7
-7c
-67
-e0
-cc
-7a
-6f
-e0
-cc
-e4
-e7
-e0
-80
-05
-d8
-40
-00
-06
-da
-20
-4c
-76
-20
-20
-04
-e5
-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
-20
-00
-04
-c0
-20
-80
-21
-20
-60
-00
-00
-6f
-e0
-cc
-bb
-20
-3a
-00
-07
-20
-20
-00
-13
-6f
-e0
-c5
-a0
-79
-20
-7e
-07
-67
-e0
-c7
-c2
-70
-47
-c3
-00
-70
-47
-c4
-30
-70
-47
-c5
-10
-70
-45
-9f
-33
-df
-20
-00
-1f
-d8
-c0
-48
-53
-d8
-a0
-47
-c6
-20
-40
-7c
-dc
-20
-20
-04
-bd
-6f
-e0
-c5
-a0
-79
-20
-7e
-07
-67
-e0
-cc
-76
-70
-4c
-77
-00
-70
-4c
-78
-30
-70
-4c
-79
-10
-df
-20
-00
-1f
-d8
-c0
-48
-53
-d8
-a0
-4c
-7a
-20
-40
-7c
-dc
-20
-40
-04
-bd
-d8
-40
-00
-34
-da
-20
-4c
-76
-20
-20
-04
-e5
-6f
-e0
-cc
-bb
-20
-3a
-00
-24
-20
-20
-00
-30
-6f
-e0
-c5
-a0
-79
-20
-7e
-07
-67
-e0
-c7
-c2
-70
-47
-c3
-00
-70
-47
-c4
-03
-70
-47
-c5
-11
-6f
-e0
-c6
-a2
-67
-e0
-c7
-c6
-6f
-e0
-cc
-e1
-e7
-e0
-80
-05
-70
-45
-9f
-06
-20
-60
-00
-00
-6f
-e0
-c5
-a0
-79
-20
-7e
-07
-67
-e0
-cc
-76
-70
-4c
-77
-00
-70
-4c
-78
-03
-70
-4c
-79
-11
-6f
-e0
-c6
-a2
-67
-e0
-cc
-7a
-6f
-e0
-cc
-e1
-e7
-e0
-80
-05
-d8
-40
-00
-06
-da
-20
-4c
-76
-20
-20
-04
-e5
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-20
-20
-00
-40
-c0
-18
-00
-03
-20
-60
-00
-00
-6f
-e0
-cc
-bb
-20
-3a
-00
-0d
-6f
-e0
-c5
-a0
-79
-20
-7e
-04
-67
-e0
-cc
-76
-70
-4c
-77
-ff
-d8
-40
-00
-02
-da
-20
-4c
-76
-20
-20
-04
-e5
-20
-60
-00
-00
-70
-45
-9f
-02
-6f
-e0
-c5
-a0
-79
-20
-7e
-04
-67
-e0
-c7
-c2
-70
-47
-c3
-ff
-20
-60
-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
-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
-20
-20
-00
-40
-c0
-10
-00
-03
-20
-60
-00
-00
-6f
-e0
-c5
-77
-c0
-03
-00
-0c
-c0
-08
-00
-0e
-c0
-08
-80
-10
-c0
-09
-00
-12
-c0
-09
-80
-16
-c0
-0b
-00
-19
-c0
-0a
-00
-1b
-20
-60
-00
-00
-d8
-e0
-00
-04
-20
-20
-03
-dc
-d8
-e0
-00
-06
-20
-20
-03
-dc
-70
-4c
-e1
-01
-20
-20
-03
-70
-d8
-c0
-45
-75
-20
-40
-03
-aa
-d8
-e0
-00
-08
-20
-20
-03
-dc
-70
-4c
-e4
-01
-d8
-e0
-00
-09
-20
-20
-03
-dc
-d8
-e0
-00
-0c
-20
-20
-03
-dc
-70
-4e
-5e
-00
-d8
-c0
-45
-75
-20
-40
-03
-76
-d8
-e0
-00
-0a
-20
-20
-03
-dc
-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
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-20
-20
-00
-40
-c0
-08
-00
-05
-c0
-08
-80
-18
-c0
-09
-00
-24
-20
-60
-00
-00
-20
-40
-00
-24
-20
-40
-56
-40
-20
-40
-00
-10
-6f
-e0
-ce
-5e
-20
-5a
-00
-14
-6f
-e0
-c6
-a2
-67
-e0
-cc
-e2
-d8
-40
-00
-08
-da
-20
-48
-6a
-da
-40
-00
-82
-20
-20
-6c
-d7
-d8
-40
-00
-01
-da
-20
-4e
-5e
-da
-40
-00
-99
-20
-20
-6c
-d7
-d8
-40
-00
-0f
-da
-20
-4e
-4f
-da
-40
-00
-8a
-20
-20
-6c
-d7
-6f
-e0
-c5
-f9
-c0
-02
-d9
-8c
-c0
-00
-80
-1c
-20
-20
-59
-75
-6f
-e4
-47
-0e
-c2
-9f
-00
-20
-c2
-98
-00
-20
-20
-20
-59
-83
-6f
-e1
-45
-ed
-67
-e1
-45
-f5
-70
-45
-f9
-05
-20
-20
-35
-0a
-d8
-40
-03
-34
-da
-20
-06
-f2
-da
-40
-00
-00
-6f
-e1
-4e
-9b
-20
-20
-6c
-da
-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
-20
-20
-00
-40
-c0
-00
-00
-05
-c0
-00
-80
-0b
-c0
-01
-00
-15
-20
-60
-00
-00
-6f
-e4
-47
-0e
-c2
-9f
-59
-4b
-6f
-e0
-c6
-78
-c0
-00
-59
-3a
-20
-40
-02
-b6
-20
-20
-4d
-fa
-20
-40
-4d
-89
-58
-00
-4d
-00
-67
-e1
-43
-43
-58
-00
-00
-50
-67
-e1
-43
-45
-58
-00
-06
-f2
-67
-e1
-42
-f9
-70
-42
-e3
-46
-70
-46
-38
-0f
-20
-60
-00
-00
-20
-40
-4d
-83
-70
-45
-e1
-01
-70
-44
-4e
-01
-70
-0e
-a2
-00
-70
-48
-fa
-01
-70
-48
-ef
-10
-20
-60
-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
-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
-fc
-9c
-ff
-1e
-f0
Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/output/memmap.format
===================================================================
--- /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/output/memmap.format	(revision 5679)
+++ /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/output/memmap.format	(nonexistent)
@@ -1,2139 +0,0 @@
-0x0000 mem_le_adv_transmit
-0x0001 mem_le_adv_waitcnt
-0x0002 mem_le_adv_rcv
-0x0003 mem_le_req_rcv
-0x0004 mem_le_scanrsp_rcv
-0x0005 mem_le_conn_rcv
-0x0006 mem_current_context
-0x0007 mem_le_ch_mapped
-0x0008 mem_last_freq
-0x0009 mem_rssi
-0x000a mem_context_ptr
-0x000c mem_rx_window
-0x000e mem_lpm_adjust
-0x000f mem_sync_clke
-0x0015 mem_lpm_current_mult
-0x0016 mem_gpio_wakeup_cfg
-0x0022 mem_clkn_bt
-0x0026 mem_clke_bt
-0x002a mem_dpll_clkn
-0x002e mem_slot_offset
-0x0030 mem_loadcode_times
-0x0031 mem_select_list_item
-0x0032 mem_temp_reconn_record
-0x0032 mem_record_bt_mode
-0x0033 mem_list_item_ptr
-0x0035 mem_rssi_hex
-0x0036 mem_param_tx_setup
-0x0038 mem_param_rf_setup
-0x003a mem_param_conn_access
-0x003c mem_param_clke_cal
-0x003e mem_param_pll_setup
-0x0040 mem_param_rx_setup
-0x0042 mem_param_dpll_start_delay
-0x0044 mem_param_rt_rthalfslot
-0x0046 mem_param_clke_cal_le_1m
-0x0048 mem_param_clke_cal_le_2m
-0x004a mem_param_clke_cal_le_coded
-0x004c mem_le_rxbuf
-0x0150 mem_le_mic
-0x0154 mem_le_peer_mic
-0x0158 mem_le_mrand
-0x0168 mem_le_state
-0x0169 mem_le_mode
-0x016a mem_le_tsniff
-0x016c mem_le_anchor
-0x0170 mem_le_clk_offset
-0x0176 mem_le_receive_window
-0x0178 mem_le_plap
-0x017e mem_le_conn_handle
-0x017f mem_le_arq
-0x0180 mem_le_ch
-0x0181 mem_le_hop
-0x0182 mem_le_event_count
-0x0184 mem_le_supervision_timer
-0x0188 mem_le_instant
-0x018a mem_le_channels
-0x018b mem_le_op
-0x018c mem_le_access
-0x0190 mem_le_crcinit
-0x0193 mem_le_window_size
-0x0194 mem_le_slave_latency
-0x0196 mem_le_superto
-0x0198 mem_le_channel_map
-0x019d mem_le_rx_phy
-0x019e mem_le_tx_phy
-0x019f mem_le_update_new_param
-0x01a8 mem_le_sk
-0x01b8 mem_le_peer_sca
-0x01b9 mem_le_err_code
-0x01ba mem_le_ll_pairing_fail_reason
-0x01bb mem_ucode_status
-0x01bc mem_spid_tbuf
-0x01bd mem_iicd_tbuf
-0x01bd mem_addr_hi
-0x01be mem_addr_mi
-0x01bf mem_addr_lo
-0x01c0 mem_iicd_addr
-0x01c1 mem_spid_rbuf
-0x01c5 mem_ucode_buf
-0x01c7 mem_ucode_len
-0x01c9 mem_sched_addr
-0x01cb mem_ucode_keybuf
-0x01db mem_otp_temp
-0x01fb mem_app_evt_timer_count
-0x01fc mem_input_store
-0x020c mem_ec_loopc
-0x020e mem_aes_cmac_data_length
-0x020f mem_dat
-0x026f mem_ax_256//32 bytes
-0x028f mem_ay_256// 32 bytes
-0x02af mem_az_256// 32 bytes
-0x02cf mem_bx_256// 32 bytes
-0x02ef mem_by_256// 31 bytes
-0x030f mem_bz_256//32 bytes
-0x030f mem_tmp1
-0x030f memahbak
-0x0327 mem_tmp5
-0x032f mem_cx_256//32 bytes
-0x034f mem_cy_256// 32 bytes
-0x036e mem_cy5_256// 1 byte
-0x036f mem_cz_256// 32 bytes
-0x038f mem_k_256//32 bytes
-0x03af mem_tmp1_256//32 bytes
-0x03cf mem_tmp5_256
-0x03ef mem_tmp2_256
-0x040f mem_tmp3_256
-0x040f mem_t1_256
-0x042f mem_tmp0_256
-0x042f mem_t0_256
-0x044f mem_t2_256
-0x046f mem_t3_256
-0x048f mem_t7_256
-0x04af mem_p
-0x04c7 mem_a
-0x04df mem_b
-0x04f7 mem_gx
-0x050f mem_gy
-0x0527 memh0
-0x0547 mem_p_256
-0x0567 mem_a_256
-0x0587 mem_gx_256
-0x05a7 mem_gy_256
-0x05c7 mem_le_slat
-0x05d7 mem_sp_state_start
-0x05d7 mem_sp_dhkey_invalid
-0x05d8 mem_gkey
-0x05dc mem_sp_state_end
-0x05dc mem_le_pubkey_remote_x_256
-0x05fc mem_le_pubkey_remote_y_256
-0x061c mem_le_dhkey_256
-0x063c mem_sp_confirm_remote
-0x064c mem_ipc_skip_continue_proc
-0x064d mem_fifo_temp
-0x064e mem_pdatatemp
-0x0656 mem_temp//8 bytes
-0x065e mem_timeup// 4 bytes
-0x0662 mem_rega//4 bytes
-0x0666 mem_regb//4 bytes
-0x066a mem_regc//3 bytes
-0x066d mem_contr//2 bytes
-0x066f mem_contw//2 bytes
-0x0671 mem_contus
-0x0673 mem_contue
-0x0675 mem_contu
-0x0677 mem_queue
-0x0679 mem_loopcnt
-0x067b mem_saved_gpio_in
-0x067f mem_module_rx_error_data_buffer
-0x067f mem_le_adv_channel_map_temp
-0x067f mem_le_data_len_temp//1byte
-0x067f mem_event_cmd_response_content//2byte
-0x067f mem_le_prand//16byte
-0x067f mem_AES_CMAC_k//16 bytes
-0x067f mem_regext_index//1 bytes
-0x067f mem_temp_block0
-0x0680 mem_le_data_temp//15bytes
-0x0680 mem_temp_block1
-0x068f mem_le_tx_buf_temp//48byte
-0x068f mem_le_aes_128//16byte
-0x068f mem_regext//64 bytes
-0x068f mem_AES_CMAC_k1//16 bytes
-0x068f mem_temp_block2
-0x069f mem_AES_CMAC_k2//16 bytes
-0x069f mem_temp_block3
-0x06af mem_AES_CMAC_temp// 16 bytes
-0x06af mem_temp_block4
-0x06bf mem_AES_CMAC_M_last// 16 bytes
-0x06bf mem_module_uart_cmd
-0x06c0 mem_module_uart_opcode
-0x06c1 mem_module_uart_len
-0x06c2 mem_module_temp_nl_discard_packet
-0x06c3 mem_temp_block5
-0x06cf mem_le_mackey//16 bytes
-0x06cf mem_app_receive_temp
-0x06cf mem_key_value_temp
-0x06d1 mem_key_value
-0x06d3 mem_key_value_temp1
-0x06d4 mem_key_value_temp2
-0x06d5 mem_key_value_temp3
-0x06d6 mem_key_value_temp4
-0x06d7 mem_key_value_temp5
-0x06d8 mem_key_value_temp6
-0x06d9 mem_temp_block6
-0x06df mem_scale_ratio
-0x06e2 mem_xcnt
-0x06e5 mem_scale_ratio_temp
-0x06e7 mem_hci_opcode_ocf
-0x06e9 mem_hci_opcode_ogf
-0x06ea mem_hci_event_head_type
-0x06eb mem_hci_event_head_event_code
-0x06ec mem_hci_event_para_total_length
-0x06ed mem_hci_command_complete_num_hci_command_packet
-0x06ee mem_hci_command_complete_command_opcode
-0x06ee mem_hci_opcode
-0x06f0 mem_hci_command_complete_return_parameter
-0x06f0 mem_hci_command_complete_return_parameter_status
-0x06f1 mem_hci_command_complete_return_parameter_chip_id
-0x06e7 mem_module_le_rx_data_len
-0x06e9 mem_module_le_rx_data_address
-0x06eb mem_module_le_rx_data_handle
-0x06e7 mem_init_cnt
-0x06e9 mem_data_pre
-0x06eb mem_data_current
-0x06ed mem_data_sum
-0x06f0 mem_data_value
-0x06f2 mem_ui_le_uuid_table_new
-0x0a26 mem_voice_raw_start
-0x0a26 mem_voice_raw
-0x0cf5 mem_voice_raw_end
-0x0cf6 mem_adpcm
-0x0d6e mem_voice_adpcm_buf_config
-0x0d76 mem_voice_adpcm_buf_start
-0x0d76 mem_voice_adpcm_buf
-0x0ea2 mem_voice_queue_count
-0x0ea3 mem_queue_buf
-0x0edf mem_memalloc_mouse_param_end
-0x06e7 mem_malloc_rec_start
-0x06e7 mem_rec_queue_ota_sptr
-0x06e9 mem_rec_queue_ota_eptr
-0x06eb mem_rec_queue_ota_rptr
-0x06ed mem_rec_queue_ota_wptr
-0x06ef mem_rec_queue_ota_buf//1280
-0x06ef mem_rec_voice_raw_start
-0x06ef mem_rec_voice_raw
-0x0a0e mem_rec_voice_raw_end
-0x0a0f mem_rec_voice_queue_count
-0x0a10 mem_rec_queue_buf
-0x0a24 mem_rec_adpcm
-0x0a88 mem_rec_nec_rx_start
-0x0b87 mem_rec_nec_rx_end
-0x0b88 mem_rec_nec_rx_store_start
-0x0c87 mem_rec_nec_rx_store_end
-0x0c88 mem_rec_ota_flash_buf_head
-0x0c8c mem_rec_ota_flash_buf//300
-0x0c8c mem_rec_nec_flash_write_head
-0x0c90 mem_rec_nec_rx_info
-0x0c90 mem_rec_nec_rx_len
-0x0c91 mem_rec_nec_rx_perid_freq
-0x0c93 mem_rec_nec_rx_data
-0x0d92 mem_rec_nec_rx_analysis_end
-0x0d93 mem_rec_nec_rx_count
-0x0d94 mem_rec_nec_timer
-0x0d95 mem_rec_nec_timeout
-0x0d96 mem_rec_nec_usercode
-0x0d98 mem_rec_nec_datacode
-0x0d99 mem_rec_nec_learn_key_num
-0x0d9a mem_rec_nec_learn_key_state
-0x0d9b mem_rec_nec_learn_enable_flag
-0x0d9c mem_rec_nec_learn_timeout
-0x0da0 mem_rec_nec_learn_state
-0x0da1 mem_rec_period_cal
-0x0db5 mem_rec_period_cal_ptr
-0x0db7 mem_rec_period_cal_count
-0x0db8 mem_rec_nec_period_array
-0x0dcc mem_rec_nec_store_sptr
-0x0dce mem_rec_nec_store_eptr
-0x0dd0 mem_rec_nec_store_wptr
-0x0dd2 mem_rec_nec_receive_data0
-0x0dd3 mem_rec_nec_receive_data1
-0x0dd4 mem_rec_nec_receive_data2
-0x0dd5 mem_rec_nec_receive_data
-0x0dd8 mem_rec_nec_data
-0x0dd9 mem_rec_nec_period
-0x0dda mem_rec_nec_duty
-0x0ddb mem_rec_nec_freq
-0x0ddc mem_rec_nec_carry_time
-0x0dde mem_rec_nec_learn_stime
-0x0de2 mem_rec_nec_learn_ntime
-0x0de6 mem_rec_nec_learn_outtime
-0x0dea mem_rec_nec_learn_succ
-0x0deb mem_rec_nec_learn_succ_ptr
-0x0ded mem_rec_nec_learn_send_flag
-0x0dee mem_rec_nec_led_state
-0x0def mem_rec_nec_led_blink_count
-0x0df0 mem_malloc_rec_end
-0x06e7 mem_le_test_sync
-0x06e9 mem_le_test_pcnt
-0x06eb mem_tst_pktcnt_crc
-0x06ed mem_tst_pktcnt_dmh
-0x06ef mem_tmp_buffer_head
-0x06f2 mem_tmp_buffer
-0x06e7 mem_usb_status
-0x06e9 mem_usb_fifo_empty
-0x06ea mem_usb_read_len
-0x06ec mem_usb_txbuf
-0x072d mem_usb_txbuf1
-0x0737 mem_usb_txbuf2
-0x0741 mem_usb_rxbuf
-0x0781 mem_usb_rxbuf_end
-0x0782 mem_bufptr
-0x0784 mem_remain
-0x0785 mem_hidreportdesc_kb
-0x0787 mem_hidreportdesc_m
-0x0789 mem_devicedesc
-0x079c mem_confdesc
-0x07d8 mem_string0
-0x07dd mem_string1
-0x07fb mem_string2
-0x0819 mem_string3
-0x0837 mem_cb_usb_config
-0x0839 mem_usb_tx_interval
-0x083a mem_usb_vid_pid
-0x0843 mem_usb_zero_packet
-0x0845 mem_usb_ones_packet
-0x0847 mem_usb_two_packet
-0x0849 mem_usb0_state
-0x084a mem_usb_offline_check_gpio
-0x084b mem_usb_clear_mem_start
-0x084b mem_usb_setup
-0x084b mem_usb_setup_bmRequestType
-0x084c mem_usb_setup_bRequest
-0x084d mem_usb_setup_bValue
-0x084e mem_usb_setup_bValueH
-0x084f mem_usb_setup_wIndex
-0x0851 mem_usb_setup_bLength
-0x0852 mem_usb_setup_bLengthH
-0x0853 mem_usb0_set_report_data
-0x0893 mem_usb0_get_report_data
-0x08d3 mem_usb_setup_bValue_temp
-0x08d5 mem_usb0_get_set_report
-0x08d6 mem_usb0_data_ready_report
-0x08d7 mem_usb_tx_win_enable
-0x08d8 mem_usb_tx_mac_enable
-0x08d9 mem_usb_idle_flag
-0x08da mem_usb_idle_rate
-0x08db mem_usb_get_protocol_flag
-0x08dc mem_usb_set_protocol_status
-0x08dd mem_usb_set_protocol_value
-0x08de mem_usb_state
-0x08df mem_usb_remote_wakeup
-0x08e0 mem_usb_clear_remote_wakeup
-0x08e1 mem_sdsystem_wakeup_flag
-0x08e2 mem_usb_ep0_stall_status
-0x08e3 mem_usb_ep1_stall_status
-0x08e4 mem_usb_ep2_stall_status
-0x08e5 mem_usb_ep3_stall_status
-0x08e6 mem_dsc_info_data_pointer
-0x08e8 mem_dsc_info_len
-0x08e9 mem_usb_ep1_data
-0x08ea mem_usb_ep2_data
-0x08eb mem_usb_tx_enable
-0x08ec mem_usb_device_enumeration_endflag
-0x08ed mem_usb_wakestate_onetime_flag
-0x08ee mem_usb_mac_wakeup_trig
-0x08ef mem_usb_set_high_addr_flag
-0x08f0 mem_usb_clear_halt
-0x08f1 mem_usb_mouse_data
-0x0901 mem_usb_kb_data
-0x0911 mem_usb_kb_n_key_rollvoer_data
-0x0921 mem_usb_kb_multikey
-0x0929 mem_usb_kb_system
-0x0931 mem_usb_test_cnt
-0x0933 mem_usb_test_kb
-0x093d mem_usb_clear_mem_end
-0x093d mem_usb_ccid_buf
-0x097d mem_dg_rssi_noise_buffer
-0x0a7d mem_dg_rssi_noise_dg_buffer
-0x0b7d mem_dg_rssi_noise_ms_buffer
-0x0c7d mem_dg_rssi_noise_kb_buffer
-
-0x019f mem_le_new_param
-0x019f mem_le_new_transmitwindowsize
-0x01a0 mem_le_new_transmitwindowoffset
-0x01a2 mem_le_new_conninterval
-0x01a4 mem_le_new_connslavelatency
-0x01a6 mem_le_new_connsupervisiontimeout
-0x019f mem_le_new_map
-0x019f mem_le_new_m2s_phy
-0x01a0 mem_le_new_s2m_phy
-0x004c mem_le_rxbuf_data_header
-0x004d mem_le_rxbuf_data_length
-0x004e mem_le_rxbuf_data_payload
-0x004c mem_le_rxbuf_data_ll_header
-0x004d mem_le_rxbuf_data_ll_length
-0x004e mem_le_rxbuf_data_ll_opcode
-0x004f mem_le_rxbuf_data_ll_control_data
-0x004c mem_le_rxbuf_adv_header
-0x004d mem_le_rxbuf_adv_length
-0x004e mem_le_rxbuf_adv_payload
-0x004c mem_le_rxbuf_adv_scan_req_header
-0x004d mem_le_rxbuf_adv_scan_req_length
-0x004e mem_le_rxbuf_adv_scan_req_scan_address
-0x0054 mem_le_rxbuf_adv_scan_req_adv_address
-0x004c mem_le_rxbuf_adv_connect_ind_header
-0x004d mem_le_rxbuf_adv_connect_ind_length
-0x004e mem_le_rxbuf_adv_connect_ind_init_address
-0x0054 mem_le_rxbuf_adv_connect_ind_adv_address
-0x005a mem_le_rxbuf_adv_connect_ind_access_address
-0x005e mem_le_rxbuf_adv_connect_ind_crc_init
-0x0061 mem_le_rxbuf_adv_connect_ind_win_size
-0x0062 mem_le_rxbuf_adv_connect_ind_win_offset
-0x0064 mem_le_rxbuf_adv_connect_ind_interval
-0x0066 mem_le_rxbuf_adv_connect_ind_latency
-0x0068 mem_le_rxbuf_adv_connect_ind_timeout
-0x006a mem_le_rxbuf_adv_connect_ind_channel_map
-0x006f mem_le_rxbuf_adv_connect_ind_hop_and_sca
-0x068f mem_le_search_handle_start
-0x0691 mem_le_search_handle_end
-0x0693 mem_le_att_offset
-0x0693 mem_le_search_att_type_length
-0x0694 mem_le_search_att_type
-0x06a4 mem_le_curr_att_len
-0x06a5 mem_le_cur_attlist_start_ptr
-0x06a7 mem_le_cur_handle_start
-0x06a9 mem_le_cur_handle_end
-0x06ab mem_le_cur_uuid_length
-0x06ac mem_le_cur_uuid
-0x06bc mem_le_cur_handle
-0x004c mem_le_rxbuf_data_att_header
-0x004d mem_le_rxbuf_data_att_length
-0x004e mem_le_rxbuf_data_att_l2cap_length
-0x0050 mem_le_rxbuf_data_att_cid
-0x0052 mem_le_rxbuf_data_att_opcode
-0x0053 mem_le_rxbuf_data_att_payload
-0x004c mem_le_rxbuf_data_continue_header
-0x004d mem_le_rxbuf_data_continue_length
-0x004e mem_le_rxbuf_data_continue_payload
-0x004c mem_le_rxbuf_data_att_write_header
-0x004d mem_le_rxbuf_data_att_write_length
-0x004e mem_le_rxbuf_data_att_write_l2cap_length
-0x0050 mem_le_rxbuf_data_att_write_cid
-0x0052 mem_le_rxbuf_data_att_write_opcode
-0x0053 mem_le_rxbuf_data_att_write_handle
-0x0055 mem_le_rxbuf_data_att_write_payload
-0x004c mem_le_rxbuf_data_prepare_att_write_header
-0x004d mem_le_rxbuf_data_prepare_att_write_length
-0x004e mem_le_rxbuf_data_prepare_att_write_l2cap_length
-0x0050 mem_le_rxbuf_data_prepare_att_write_cid
-0x0052 mem_le_rxbuf_data_prepare_att_write_opcode
-0x0053 mem_le_rxbuf_data_prepare_att_write_handle
-0x0055 mem_le_rxbuf_data_prepare_att_write_offset
-0x0057 mem_le_rxbuf_data_prepare_att_write_payload
-0x01db mem_otp_adc
-0x01e3 mem_otp_adc_ratio
-0x01e4 mem_otp_coordinate
-0x01eb mem_otp_core_ldo
-0x01ec mem_otp_verf_bg
-0x01ed mem_otp_charge_pump
-0x01ee mem_otp_dpll_ibais
-0x01ef mem_otp_temp1
-0x01f7 mem_otp_hv_sel
-0x01f8 mem_otp_ldo_vsel
-0x01f9 mem_otp_load_delay
-0x01fa mem_otp_load_check_sum
-0x4000 mem_patch00
-0x4001 mem_patch01
-0x4002 mem_patch02
-0x4003 mem_patch03
-0x4004 mem_patch04
-0x4005 mem_patch05
-0x4006 mem_patch06
-0x4007 mem_patch07
-0x4008 mem_patch08
-0x4009 mem_patch09
-0x400a mem_patch0a
-0x400b mem_patch0b
-0x400c mem_patch0c
-0x400d mem_patch0d
-0x400e mem_patch0e
-0x400f mem_patch0f
-0x4010 mem_patch10
-0x4011 mem_patch11
-0x4012 mem_patch12
-0x4013 mem_patch13
-0x4014 mem_patch14
-0x4015 mem_patch15
-0x4016 mem_patch16
-0x4017 mem_patch17
-0x4018 mem_patch18
-0x4019 mem_patch19
-0x401a mem_patch1a
-0x401b mem_patch1b
-0x401c mem_patch1c
-0x401d mem_patch1d
-0x401e mem_patch1e
-0x401f mem_patch1f
-0x4020 mem_patch20
-0x4021 mem_patch21
-0x4022 mem_patch22
-0x4023 mem_patch23
-0x4024 mem_patch24
-0x4025 mem_patch25
-0x4026 mem_patch26
-0x4027 mem_patch27
-0x4028 mem_patch28
-0x4029 mem_patch29
-0x402a mem_patch2a
-0x402b mem_patch2b
-0x402c mem_patch2c
-0x402d mem_patch2d
-0x402e mem_patch2e
-0x402f mem_patch2f
-0x4030 mem_patch30
-0x4031 mem_patch31
-0x4032 mem_patch32
-0x4033 mem_patch33
-0x4034 mem_patch34
-0x4035 mem_patch35
-0x4036 mem_patch36
-0x4037 mem_patch37
-0x4038 mem_patch38
-0x4039 mem_patch39
-0x403a mem_patch3a
-0x403b mem_patch3b
-0x403c mem_patch3c
-0x403d mem_patch3d
-0x403e mem_patch3e
-0x403f mem_patch3f
-0x4040 mem_context
-0x4093 mem_current_amaddr
-0x4094 mem_lpm_mode
-0x4095 mem_last_clkn
-0x4099 mem_fcomp_div
-0x409a mem_rx_window_sniff
-0x409c mem_rf_init_ptr
-0x409e mem_rf_rccal
-0x409f mem_handle_num
-0x40a0 mem_chip_functions
-0x40a2 mem_lpm_wake_lock
-0x40a4 mem_lpm_interval
-0x40a6 mem_lpm_overhead
-0x40a7 mem_lpm_hibernate_switch
-0x40a8 mem_sniff_unint_lost
-0x40a9 mem_sleep_counter
-0x40ad mem_sleep_counter_all
-0x40b1 mem_sleep_clkn
-0x40b7 mem_sniff_rcv
-0x40ba mem_sniff_lost
-0x40bd mem_clks_per_lpo
-0x40c0 mem_lpm_mult
-0x40c1 mem_lpm_mult_timeout
-0x40c2 mem_lpm_mult_cnt
-0x40c3 mem_lpm_xtalcnt
-0x40c4 mem_lpm_buckcnt
-0x40c5 mem_lpm_ldocnt
-0x40c6 mem_lpm_isogate
-0x40c7 mem_lpm_isogate_stage2
-0x40c8 mem_lpm_isogate_final
-0x40c9 mem_lpm_ldo_sel
-0x40ca mem_lpm_sysctl
-0x40cb mem_lpm_hv_sel
-0x40cc mem_saved_gpio
-0x40e4 mem_saved_gsel
-0x40e7 mem_saved_mark
-0x40ef mem_saved_spidctrl
-0x40f0 mem_patch_ptr
-0x40f2 mem_patch_len
-0x40f4 mem_timers
-0x4114 mem_hci_cmd
-0x4115 mem_hci_conn_handle
-0x4116 mem_hci_plap
-0x4119 mem_hci_puap
-0x411a mem_hci_pnap
-0x411c mem_xtal_c_sel
-0x411d mem_ghpc_table
-0x4135 mem_aac_res_table
-0x4141 mem_tx_power
-0x4142 mem_modem_rssi
-0x4143 mem_gain_fix
-0x4144 mem_gain_table
-0x4147 mem_gain_second_agc_en
-0x4148 mem_system_clk
-0x4149 mem_rf_init_data
-0x415d mem_otp_charge_pump_x
-0x415e mem_otp_dpll_ibais_x
-0x415f mem_xtal_freq
-0x4160 mem_version
-0x4161 mem_company_id
-0x4163 mem_sub_version
-0x4165 mem_le_dsniff
-0x4167 mem_le_conn_interval
-0x4169 mem_le_tx_ifs_defference
-0x416a mem_le_tx2m_delay
-0x416b mem_le_txheader
-0x416c mem_le_txlen
-0x416d mem_le_txpayload
-0x426d mem_le_name_len
-0x426e mem_le_name
-0x428c mem_le_ltk
-0x429c mem_ltk_exists
-0x429d mem_le_rconfirm
-0x42ad mem_le_srand
-0x42bd mem_le_iat
-0x42be mem_le_rat
-0x42bf mem_le_preq
-0x42c0 mem_le_preq_iocap
-0x42c1 mem_le_preq_oob
-0x42c2 mem_le_preq_auth
-0x42c3 mem_le_preq_max_keysize
-0x42c4 mem_le_preq_init_key_distribution
-0x42c5 mem_le_preq_resp_key_distribution
-0x42c6 mem_le_pres
-0x42c7 mem_le_pres_iocap
-0x42c8 mem_le_pres_oob
-0x42c9 mem_le_pres_auth
-0x42ca mem_le_pres_max_keysize
-0x42cb mem_le_pres_init_key_distribution
-0x42cc mem_le_pres_resp_key_distribution
-0x42cd mem_le_conn_param
-0x42cd mem_le_conn_peer_addr_type
-0x42ce mem_le_conn_peer_addr
-0x42d4 mem_le_conn_own_addr_type
-0x42d5 mem_le_interval_min
-0x42d7 mem_le_interval_max
-0x42d9 mem_le_latency
-0x42db mem_le_timeout
-0x42dd mem_le_lap
-0x42e0 mem_le_uap
-0x42e1 mem_le_nap
-0x42e3 mem_le_local_mtu
-0x42e5 mem_le_remote_mtu
-0x42e7 mem_le_skdm
-0x42ef mem_le_skds
-0x42f7 mem_le_init_superto
-0x42f9 mem_ui_le_uuid_table
-0x42fb mem_le_secure_connect_flag
-0x42fc mem_le_secure_connect_state
-0x42fd mem_le_sc_confirm_gkey_flag
-0x42fe mem_le_pairing_state
-0x42ff mem_le_enc_state
-0x4300 mem_le_pairing_mode
-0x4301 mem_le_tk
-0x4305 mem_le_ediv
-0x4307 mem_le_rand
-0x430f mem_le_irk
-0x431f mem_le_transmit_window
-0x4323 mem_le_configuration
-0x4324 mem_le_fixed_ltk
-0x4334 mem_le_pairing_handle
-0x4336 mem_le_packet_llid
-0x4337 mem_le_l2cap_size
-0x4339 mem_le_packet_len_recved
-0x433b mem_le_payload_ptr
-0x433d mem_le_testtype
-0x433e mem_cmd_le_create_conn
-0x433f mem_le_signaling_identifier
-0x4340 mem_le_l2cap_signaling_conn_param_update_rsp_result
-0x4342 mem_le_md_count
-0x4343 mem_ble_l2cap_tx_buff0_ptr
-0x4345 mem_ble_l2cap_tx_buff_size_ptr
-0x4347 mem_le_scan_enable
-0x4348 mem_le_scan_interval
-0x434a mem_le_scan_window
-0x434c mem_le_adv_data_len
-0x434d mem_le_adv_data
-0x436c mem_le_scan_data_len
-0x436d mem_le_scan_data
-0x438c mem_le_adv_enable
-0x438d mem_le_adv_param
-0x438d mem_le_adv_interval
-0x438f mem_le_adv_type
-0x4390 mem_le_adv_own_addr_type
-0x4391 mem_le_adv_direct_addr
-0x4397 mem_le_adv_channel_map
-0x4398 mem_le_scan_params
-0x4398 mem_le_scan_type
-0x4399 mem_le_scan_own_addr_type
-0x439a mem_le_l2cap_att_states
-0x439b mem_le_att_opcode
-0x439c mem_le_att_handle
-0x439e mem_le_search_res
-0x439f mem_le_notify_handle
-0x43a1 mem_le_search_uuid_length
-0x43a2 mem_le_search_uuid
-0x43b2 mem_le_local_feature
-0x43ba mem_le_tx_phys
-0x43bb mem_le_rx_phys
-0x43bc mem_remote_rx_max_octets
-0x43be mem_remote_rx_max_time
-0x43c0 mem_remote_tx_max_octets
-0x43c2 mem_remote_tx_max_time
-0x43c4 mem_local_rx_max_octets
-0x43c6 mem_local_rx_max_time
-0x43c8 mem_local_tx_max_octets
-0x43ca mem_local_tx_max_time
-0x43cc mem_ucode_ptr
-0x43ce mem_ucode_flag
-0x43cf mem_device_option
-0x43d0 mem_peripheral_lock_flag
-0x43d1 mem_bistfix_val
-0x43d1 mem_bistfix_addr_sched
-0x43d3 mem_bistfix_addr_x
-0x43d5 mem_bistfix_addr_patch
-0x43d7 mem_bistfix_val_xram
-0x43d8 mem_bistfix_val_patchram
-0x43dc mem_cb_check_wakelock
-0x43de mem_cb_before_hibernate
-0x43e0 mem_cb_before_lpm
-0x43e2 mem_cb_le_process
-0x43e4 mem_cb_idle_process
-0x43e6 mem_cb_bb_event_process
-0x43e8 mem_cb_att_write
-0x43ea mem_cb_ble_transmit
-0x43ec mem_cb_event_timer
-0x43ee mem_cb_bt_set_mult
-0x43f0 mem_cb_spi_flash_write_complate
-0x43f2 mem_cb_before_lpm_sleep
-0x43f4 mem_eeprom_base
-0x43f6 mem_wake_up_delay_timer
-0x43f7 mem_app_connection_options
-0x43f8 mem_app_disconn_reason
-0x43fa mem_app_disconn_reason_flag
-0x43fc mem_xrecord_mode
-0x43fd mem_eeprom_block_size
-0x43fe mem_spi_init_clk
-0x43ff mem_spi_init_delay_time
-0x4400 mem_spi_ncs_gpio
-0x4401 mem_nv_data_ptr
-0x4403 mem_nv_data_number
-0x4404 mem_queue_ptr
-0x4406 mem_reference_inter1p8v_2v_adc_io_data
-0x4408 mem_reference_inter1p8v_2p6v_adc_vdcdc_data
-0x440a mem_reference_inter1p8v_1v_adc_io_data
-0x440c mem_reference_inter1p8v_4p6v_adc_vdcdc_data
-0x440e mem_adc_reference3v_ft_data
-0x440e mem_adc_reference3v_gpio1v_ft_data
-0x4410 mem_adc_reference3v_gpio2v_ft_data
-0x4412 mem_adc_reference3v_vdcdc3p6v_ft_data
-0x4414 mem_adc_reference3v_vdcdc4p6v_ft_data
-0x4416 mem_adc_reference3v_inter1v_ft_data
-0x4418 mem_adc_reference3v_inter1v_now_data
-0x441a mem_adc_reference_mode
-0x441b mem_reference_voltage
-0x441d mem_adc_config_flag
-0x441e mem_adc_channel
-0x441f mem_adc_clkdiv
-0x4420 mem_adc_current_value
-0x4422 mem_adc_power_flag//bit0:low power falg ; bit1:no power flag
-0x4423 mem_adc_saddr_ptr
-0x4425 mem_adc_eaddr_ptr
-0x4427 mem_adc_dma_enable
-0x4428 mem_adc_cal_c0
-0x4429 mem_adc_cal_c1
-0x442a mem_adc_cal_c2
-0x442b mem_adc_cal_c3
-0x442c mem_adc_cal_c4
-0x442d mem_adc_cal_c5
-0x442e mem_adc_cal_c6
-0x442f mem_adc_cal_c7
-0x4430 mem_spi_write_addr
-0x4433 mem_spi_write_ptr
-0x4435 mem_spi_write_len
-0x4437 mem_spi_write_flash_sm
-0x4438 mem_spi_cs_gpio
-0x4439 mem_spi_si_gpio
-0x443a mem_spi_so_gpio
-0x443b mem_spi_sclk_gpio
-0x443c mem_spi_wp_gpio
-0x443d mem_spi_hold_gpio
-0x443e mem_eeprom_wp_gpio
-0x443f mem_eeprom_scl_gpio
-0x4440 mem_eeprom_sda_gpio
-0x4441 mem_kscan_ptr
-0x4443 mem_key_num_ptr
-0x4443 mem_keyscan_ptr
-0x4445 mem_key_value_retention
-0x4447 mem_power_param_ptr
-0x4449 mem_seqi
-0x444a mem_set_cdb_on
-0x444b mem_syn_cal_ctrl
-0x444c mem_nec_decode_error_value
-0x444d mem_wdt_always_work
-0x444e mem_power_ctrl_disable
-0x444f mem_ring_ibias_trim
-0x4450 mem_ring_ibias_vtune_low
-0x4452 mem_ring_ibias_vtune_high
-0x4454 mem_ring_ibias_calc_adc_gpio
-0x4455 mem_ring_ibias_calc_adc_channel
-0x4456 mem_rf_debug_rx_gpio
-0x4457 mem_rf_debug_tx_gpio
-0x4458 mem_l2cap_xmem_start
-0x4458 mem_used_map
-0x4459 mem_tx_fifo0
-0x4459 mem_tx_fifo0_map
-0x445a mem_tx_fifo0_ptr
-0x445c mem_tx_fifo1
-0x445c mem_tx_fifo1_map
-0x445d mem_tx_fifo1_ptr
-0x445f mem_tx_fifo2
-0x445f mem_tx_fifo2_map
-0x4460 mem_tx_fifo2_ptr
-0x4462 mem_tx_fifo3
-0x4462 mem_tx_fifo3_map
-0x4463 mem_tx_fifo3_ptr
-0x4465 mem_tx_fifo_end
-0x4465 mem_l2cap_lpm_txbuf_ptr
-0x4467 mem_l2cap_xmem_end
-0x4467 mem_ccm_pcnt_tx
-0x446c mem_ccm_pcnt_rx
-0x4471 mem_ccm_last_mic
-0x4475 mem_ccm_iv
-0x4475 mem_ccm_ivm
-0x4479 mem_ccm_ivs
-0x447d mem_ccm_len
-0x447f mem_ccm_rx_ptr
-0x4481 mem_sc_only_mode
-0x4482 mem_sp_debug_mode
-0x4483 mem_secure_connections_enable
-0x4484 mem_sc_calc
-0x4485 mem_sc_local_key_invalid
-0x4486 mem_sc_private_key_256
-0x44a6 mem_sc_pubkey_local_x_256
-0x44c6 mem_sc_pubkey_local_y_256
-0x44e6 mem_sp_state_xmem
-0x44e6 mem_authentication_passkey_times
-0x44e7 mem_passkey_1bit
-0x44e8 mem_sp_state_xmem_end
-0x44e8 mem_ipc_lock_bt
-0x44e9 mem_ipc_lock_c51
-0x44ea mem_ipc_fifo_bt2c51
-0x44f2 mem_ipc_fifo_c512bt
-0x44fa mem_ui_button_timer
-0x44fb mem_ui_button_last_state
-0x44fc mem_ui_timer_last_btclk
-0x4500 mem_ui_state_map
-0x4502 mem_ui_button_timeout
-0x4503 mem_ui_button_gpio
-0x4504 mem_ui_led_init_state_set
-0x4505 mem_ui_led_struct_num
-0x4506 mem_ui_led_struct_ptr
-0x4508 mem_24g_lap
-0x450e mem_24g_rxbuf
-0x4530 mem_24g_txbuf
-0x4550 mem_24g_txpayload
-0x4574 mem_24g_rxpayload
-0x4594 mem_24g_rxdata_length
-0x4595 mem_24g_pid
-0x4596 mem_24g_no_ack
-0x4597 mem_24g_sta_crc
-0x459a mem_24g_last_crc
-0x459d mem_24g_sta_pid
-0x459e mem_24g_last_pid
-0x459f mem_24g_datalen
-0x45a0 mem_24g_data_type
-0x45a1 mem_24g_txlen
-0x45a2 mem_24g_rx_window
-0x45a4 mem_24g_ch
-0x45a5 mem_24g_current_ch_number
-0x45a6 mem_24g_addr
-0x45aa mem_24g_ch_map1
-0x45ae mem_24g_ch_map2
-0x45b2 mem_24g_ch_map3
-0x45b6 mem_24g_ch_map4
-0x45ba mem_24g_tx_btclk
-0x45be mem_24g_interval
-0x45bf mem_24g_interval_min
-0x45c0 mem_24g_interval_max
-0x45c1 mem_24g_syncword
-0x45c3 mem_24g_syncword_crc8
-0x45c4 mem_24g_get_syncword_crc8
-0x45c5 mem_24g_pair_switch
-0x45c6 mem_24g_enter_hibernate
-0x45ce mem_24g_rx_phy
-0x45cf mem_24g_tx_phy
-0x45d0 mem_24g_ch_map_update
-0x45d1 mem_24g_ch_update_map1
-0x45d5 mem_24g_ch_update_map2
-0x45d9 mem_24g_ch_update_map3
-0x45dd mem_24g_ch_update_map4
-0x45e1 mem_24g_disable_fec1
-0x45e2 mem_24g_off_type
-0x45e3 mem_24g_pair_addr
-0x45e7 mem_24g_pair_ch
-0x45e8 mem_24g_pair_tx_power
-0x45e9 mem_rssi_buff_index
-0x45ea mem_24g_device1_bind_step
-0x45eb mem_24g_device2_bind_step
-0x45ec mem_24g_bind_device_status
-0x45ed mem_24g_bind_payload
-0x45f5 mem_24g_device1_bind_disable
-0x45f6 mem_24g_device2_bind_disable
-0x45f7 mem_cb_24g_receive_process
-0x45f9 mem_cb_24g_ackpayload
-0x45fb mem_cb_24g_data_device1
-0x45fd mem_cb_24g_data_device2
-0x45ff mem_24g_rxdata_temp
-0x4621 mem_24g_abort_packet
-0x4622 mem_24g_hop_btclk
-0x4626 mem_24g_hop_interval
-0x4627 mem_24g_pair_mode
-0x4628 mem_24g_ackpayload_enable
-0x4629 mem_24g_hop_packet
-0x462a mem_24g_mode_switch
-0x462b mem_24g_nodata_timer_enable
-0x462c mem_24g_mode_init
-0x462d mem_24g_work_mode
-0x462e mem_24g_time_slice
-0x462f mem_24g_self_last_ch
-0x4630 mem_24g_self_ch_number
-0x4631 mem_24g_self_config_ch_once
-0x4632 mem_24g_device1_last_ch
-0x4633 mem_24g_device1_ch_number
-0x4634 mem_24g_device1_config_ch_once
-0x4635 mem_24g_device2_last_ch
-0x4636 mem_24g_device2_ch_number
-0x4637 mem_24g_device2_config_ch_once
-0x4638 mem_24g_led_status
-0x4639 mem_24g_bind_mode_continue
-0x463a mem_tx_power_temp
-0x463b mem_24g_mode_B_S_switch
-0x463c mem_24g_mode_B_S_switch_init
-0x463d mem_24g_mode_B_S_switch_cnt
-0x463f mem_24g_mode_B_S_switch_exit
-0x4640 mem_24g_B_S_time_slice
-0x4641 mem_24g_B_S_mode_switch_disable
-0x4642 mem_24g_bind_device_living
-0x4643 mem_24g_transmitter_addr
-0x4647 mem_24g_device1_addr
-0x464b mem_24g_device2_addr
-0x464f mem_rssi_noise_avg
-0x4650 mem_rssi_noise_index
-0x4651 mem_rssi_noise_self_avg
-0x4652 mem_rssi_noise_device1_avg
-0x4653 mem_rssi_noise_device2_avg
-0x4654 mem_rssi_noise_self_index
-0x4655 mem_rssi_noise_device1_index
-0x4656 mem_rssi_noise_device2_index
-0x4657 mem_rssi_noise_buffer_ptr
-0x4659 mem_rssi_noise_self_buffer_ptr
-0x465b mem_rssi_noise_device1_buffer_ptr
-0x465d mem_rssi_noise_device2_buffer_ptr
-0x465f mem_car_le_24g_tx_pair_mode
-0x4660 mem_car_le_24g_ch_count
-0x4662 mem_car_24g_addr_other
-0x4666 mem_car_24g_tx_payload_temp
-0x4672 mem_car_24g_rx_payload_temp
-0x467e mem_car_24g_loselink_count
-0x467f mem_car_ble_connted_flag
-0x4680 mem_car_full_control_remote_lap
-0x4684 mem_100ms_adv_control_timer
-0x4686 mem_100ms_factory_test_control_timer
-0x4688 mem_pwm_flag
-0x4689 mem_period_count
-0x468a mem_timer_count
-0x468b mem_car_motor_gpio_num
-0x468c mem_car_motor_gpio_map
-0x468c mem_car_motor_left_gpio
-0x468d mem_car_motor_right_gpio
-0x468e mem_car_motor_front_gpio
-0x468f mem_car_motor_back_gpio
-0x4690 mem_car_pwm_gpio
-0x4691 mem_otp_lot_xy_temp
-0x4697 mem_f_flag
-0x4698 mem_b_flag
-0x4699 mem_adv_control_start_flag
-0x469a mem_stop_4w1_flag
-0x469b mem_factory_control_flag
-0x469c mem_car_gpio_control_mode
-0x469d mem_car_le_queue_each_size
-0x469e mem_car_le_queue_length
-0x469f mem_car_le_queue_current_num
-0x46a0 mem_car_le_queue_read_ptr
-0x46a1 mem_car_le_queue_write_ptr
-0x46a2 mem_car_le_queue_ele
-0x46f2 mem_car_ble_write_data
-0x46fd mem_car_ble_att_list
-0x488d mem_otp_sys_cfg_temp
-0x48c9 mem_ad_indexTable
-0x48d9 mem_ad_stepsizeTable
-0x4a3d mem_ad_state_valpred
-0x4a41 mem_ad_state_index
-0x4a45 mem_ad_in_numSamples
-0x4a46 mem_ad_in_ptr
-0x4a48 mem_ad_out_ptr
-0x4a4a mem_ad_sign
-0x4a4b mem_ad_delta
-0x4a4c mem_ad_step
-0x4a50 mem_ad_valpred
-0x4a54 mem_ad_index
-0x4a58 mem_ad_vpdiff
-0x4a5c mem_ad_inputbuffer
-0x4a60 mem_ad_bufferstep
-0x465f mem_dg_kb_bind_flag
-0x4660 mem_dg_kb_data_sta_data
-0x4668 mem_dg_kb_data_last_data
-0x4670 mem_dg_kb_multikey_sta_data
-0x4673 mem_dg_kb_multikey_last_data
-0x4676 mem_dg_kb_system_sta_data
-0x4679 mem_dg_kb_system_last_data
-0x467c mem_dg_kb_blank_data_enable
-0x467d mem_dg_kb_mul_blank_data_enable
-0x467e mem_dg_kb_system_crtl_blank_data_enable
-0x467f mem_dg_ms_blank_data_enable
-0x4680 mem_dg_sys_config
-0x4681 mem_dg_usb_vid_pid
-0x468a mem_dg_usb_tx_interval
-0x468b mem_dg_usb_device_name
-0x46ab mem_dg_kb_bind_success
-0x46ac mem_dg_pc_sleep_flag
-0x46ad mem_dg_24g_tx_power_default
-0x46ae mem_dg_kb_bit_consumer_blank_data_enable
-0x46af mem_dg_kb_bit_consumer_sta_data
-0x46b3 mem_dg_kb_bit_consumer_last_data
-0x46b7 mem_dg_device_version
-0x45ea mem_rssi_hex_received
-0x45eb mem_24g_pair_sm
-0x45ec mem_24g_pair_no_ack
-0x45ed mem_24g_pair_timeout_init
-0x45ef mem_24g_pair_timeout
-0x45f1 mem_24g_pair_count
-0x45f3 mem_24g_reconn_timeout_init
-0x45f5 mem_24g_reconn_timeout
-0x45f7 mem_24g_reconn_count
-0x45f9 mem_24g_reconn_type
-0x45fa mem_24g_fast_conn_enable
-0x45fb mem_24g_fast_conn_addr
-0x45ff mem_24g_receiver_addr
-0x4603 mem_24g_fast_conn_temp_ch
-0x4604 mem_24g_receiver_temp_ch
-0x4605 mem_24g_device_temp_ch
-0x4606 mem_rssi_signal_index
-0x4607 mem_rssi_signal_buf_ptr
-0x4609 mem_cb_24g_transmit_data
-0x460b mem_cb_24g_search_receiver
-0x460d mem_cb_24g_lpm_before
-0x460f mem_cb_24g_transmit_short_sleep
-0x4611 mem_cb_24g_transmit_long_sleep
-0x4613 mem_24g_conn_sm
-0x4614 mem_24g_ensure
-0x4615 mem_24g_txfail_cnt
-0x4617 mem_24g_attempt_fail_flag
-0x4618 mem_24g_retry
-0x4619 mem_24g_abort_pac
-0x461a mem_24g_max_retry
-0x461b mem_24g_device_addr
-0x461f mem_24g_short_sleep_set
-0x4622 mem_24g_long_sleep_set
-0x462a mem_24g_long_sleep_set1
-0x462e mem_24g_pac_index
-0x462f mem_24g_transmit_by_interrupt
-0x4630 mem_24g_transmit_by_interrupt_exit_count
-0x4632 mem_24g_transmit_by_interrupt_exit_count_init
-0x4634 mem_24g_long_sleep_param_update_timer_init
-0x4636 mem_24g_long_sleep_param_update_timer
-0x4638 mem_24g_fast_hop_count
-0x4639 mem_24g_retransmit
-0x463b mem_rssi_avg_received
-0x463c mem_power_ctrl_level
-0x463d mem_power_ctrl_pac_succ_cnt
-0x463e mem_power_ctrl_pac_succ_cnt_init
-0x463f mem_rssi_dis_min_24g
-0x4640 mem_rssi_dis_max_24g
-0x4641 mem_rssi_hex_received_max_value
-0x4642 mem_rssi_dis_min_ble
-0x4643 mem_rssi_dis_max_ble
-0x4644 mem_device_vdd_calculate_set
-0x4644 mem_device_vdd_full_vol
-0x4646 mem_device_vdd_empty_vol
-0x4648 mem_device_vdd_low_vol
-0x464a mem_device_vdd_now_vol
-0x464c mem_adc_channel_gpio
-0x464d mem_adc_low_volatage_led_timer_count
-0x464e mem_device_adc_last_low_voltage_flag
-0x464f mem_device_discovery_timeout
-0x4651 mem_device_24g_pair_timeout_init
-0x4653 mem_device_direct_timeout
-0x4654 mem_device_24g_reconn_timeout_init
-0x4655 mem_device_24g_pair_tx_power
-0x4656 mem_device_normal_tx_power
-0x4657 mem_rssi_dis_min_24g_init
-0x4658 mem_rssi_dis_max_24g_init
-0x4659 mem_rssi_hex_received_max_value_init
-0x465a mem_rssi_dis_min_ble_init
-0x465b mem_rssi_dis_max_ble_init
-0x465c mem_mouse_key
-0x465d mem_mouse_x
-0x465f mem_mouse_y
-0x4661 mem_mouse_z
-0x4662 mem_mouse_tz
-0x4663 mem_mouse_xy_h
-0x4664 mem_mouse_key_last
-0x4665 mem_device_switch_gpio
-0x4666 mem_device_reuse_2ice_gpio
-0x4667 mem_sensor_motion_gpio
-0x4668 mem_whee_a_data_gpio
-0x4669 mem_whee_b_data_gpio
-0x466a mem_wheel_tb_old_pinlevel
-0x466b mem_wheel_tb_new_pinlevel
-0x466c mem_wheel_tog
-0x466d mem_mouse_tz_data
-0x466e mem_mwheel_b_old_pinlevel
-0x466f mem_mwheel_b_new_pinlevel
-0x4670 mem_mwheel_tog
-0x4671 mem_mouse_z_data
-0x4672 mem_mouse_wheel_trigger
-0x4673 mem_mouse_wheel_trigger_timer
-0x4674 mem_wire_usb_interval
-0x4675 mem_usb_addr
-0x4676 mem_usb_vdd_status
-0x4677 mem_usb_keyboard_flag
-0x4678 mem_device_information_start
-0x4678 mem_device_flag
-0x4679 mem_device1_type
-0x467a mem_device1_addr
-0x4680 mem_device1_locall_addr
-0x4686 mem_device2_type
-0x4687 mem_device2_addr
-0x468d mem_device2_locall_addr
-0x4693 mem_device3_type
-0x4694 mem_device3_addr
-0x469a mem_device3_locall_addr
-0x46a0 mem_store_flag
-0x46a2 mem_mouse_dpi
-0x46a3 mem_device_24g_addr
-0x46a7 mem_random_addr_increase_count
-0x46a9 mem_keyboard_24g_fn_lock
-0x46aa mem_keyboard_bt1_fn_lock
-0x46ab mem_keyboard_bt2_fn_lock
-0x46ac mem_keyboard_bt3_fn_lock
-0x46ad mem_keyboard_usb_fn_lock
-0x46ae mem_keyboard_bt1_computer_system
-0x46af mem_keyboard_bt2_computer_system
-0x46b0 mem_keyboard_bt3_computer_system
-0x46b1 mem_backlight_on_flag
-0x46b2 mem_backlight_on_type
-0x46b3 mem_backlight_on_level
-0x46b4 mem_backlight_breath_speed
-0x46b5 mem_mouse_retention
-0x46f8 mem_device_information_end
-0x46f8 mem_device_compare_addr
-0x46fe mem_flash_base
-0x4701 mem_write_flash_head_temp
-0x4705 mem_store_information_delay_timer
-0x4706 mem_store_information_delay_timer_init
-0x4707 mem_device_search_dongle_interval
-0x4708 mem_device_search_dongle_ch
-0x4709 mem_device_search_dongle_count
-0x470a mem_device_search_dongle_action
-0x470b mem_24g_enter_lpm_timer
-0x470c mem_mouse_24g_enter_lpm_enable
-0x470d mem_keyboard_led_status
-0x470e mem_mouse_flag
-0x4716 mem_device_number
-0x4717 mem_device_flag_temp
-0x4718 mem_device_otp_flag_temp
-0x4719 mem_device_fast_direct_timeout
-0x471a mem_device_24g_power_on_fast_conn_timer
-0x471c mem_device_24g_search_dongle_time_init
-0x471e mem_device_no_data_timeout
-0x4720 mem_device_direct_timer
-0x4721 mem_customer_key_press
-0x472b mem_customer_key
-0x472c mem_customer_data_trigger
-0x472d mem_customer_data_trigger_last
-0x472e mem_device_set_analog_bit_set
-0x4731 mem_bt_discovery_count
-0x4732 mem_select_device_count
-0x4733 mem_mouse_commbination_key
-0x4734 mem_select_device_button_statue
-0x4735 mem_commbination_key_statue
-0x4736 mem_combination_ui_button_count
-0x4737 mem_24g_shutdown_flag
-0x4738 mem_24g_long_sleep_set_level
-0x4739 mem_tx_power_factory_param
-0x473b mem_mouse_24g_long_sleep_flag
-0x473c mem_mouse_long_mult_count
-0x473d mem_mouse_long_mult_flag
-0x473e mem_mouse_current_mult_timer
-0x473f mem_reconn_times
-0x4740 mem_reconn_times_init
-0x4741 mem_device_no_data_timer
-0x4743 mem_mouse_rssi_signal_buf
-0x474b mem_btclk_sensor
-0x474f mem_device_fast_conn_flag
-0x4750 mem_device_discovery_timer
-0x4752 mem_device_need_soft_reset
-0x4753 mem_device_le_bb_connected_flag
-0x4754 mem_device_le_reconnect_flag
-0x4755 mem_device_send_secutiry_request_timer
-0x4756 mem_device_le_lap_temp
-0x4759 mem_le_adv_ind
-0x475c mem_le_adv_direct_ind
-0x475f mem_le_adv_swift_pair
-0x4773 mem_le_data_len
-0x4774 mem_le_keyboard_handle
-0x4776 mem_le_multimedia_handle
-0x4778 mem_le_systemctrl_handle
-0x477a mem_le_battery_level_handle
-0x477c mem_le_battery_level_percentage
-0x477d mem_le_battery_level_updata_timer_init
-0x477f mem_le_battery_level_updata_timer
-0x4781 mem_le_conn_param_reject
-0x4782 mem_le_tx_buffer0_omemalloc
-0x47c2 mem_le_tx_buffer1_omemalloc
-0x47c2 mem_le_tx_buffer2_omemalloc
-0x47c2 mem_le_tx_buffer3_omemalloc
-0x47c2 mem_le_rx_buffer
-0x47c2 mem_24g_txbuf_new
-0x4808 mem_24g_txpayload_new
-0x4853 mem_ms_auth_appkey
-0x485a mem_ms_auth_secret
-0x486a msm_ms_auth_sn
-0x4870 mem_ms_auth_chip_id
-0x4872 mem_ms_version
-0x4873 mem_ms_recv_ackpayload_temp
-0x487b mem_ms_tx_pro_key_flag
-0x487d mem_ms_tx_pro_key_val
-0x487e mem_ms_long_press_key_index
-0x4880 mem_ms_tx_nor_pro_data_flag
-0x4882 mem_le_connect_status_flag
-0x4883 mem_le_start_encrypt_timer
-0x4884 mem_device_addr_temp
-0x488b mem_lpm_mult_init
-0x488c mem_qdec_set_flag
-0x488d mem_power_on_flag
-0x488e mem_keyboard_flag
-0x4896 mem_keyboard_switch_count_temp
-0x4897 mem_keyboard_switch_device_to_g24
-0x489a mem_keyboard_switch_device_to_bt1
-0x489d mem_keyboard_switch_device_to_bt2
-0x48a0 mem_keyboard_switch_device_to_bt3
-0x48a3 mem_keyboard_switch_device_to_usb
-0x48a6 mem_keyboard_switch_device_flag
-0x48a7 mem_keyboard_switch_g24_enable
-0x48a8 mem_keyboard_switch_bt_enable
-0x48a9 mem_keyboard_switch_g24_press_timer
-0x48aa mem_keyboard_switch_bt_press_timer
-0x48ab mem_keyboard_vdd_full_vol
-0x48ad mem_keyboard_vdd_empty_vol
-0x48af mem_keyboard_vdd_low_vol
-0x48b1 mem_keyboard_power_type
-0x48b2 mem_rgb_pwm_conf
-0x48b8 mem_rgb_pwm_breathe_flag
-0x48b9 mem_rgb_on_color_temp
-0x48ba mem_rgb_on_color
-0x48c1 mem_pwm_lpm_mode_flag
-0x48c2 mem_keyboard_rgb_on_timer
-0x48c4 mem_ui_check_timer_setup
-0x48c8 mem_customize_timer_setup
-0x48ca mem_backlight_breathe_type
-0x48cb mem_keyboard_le_lap_temp
-0x48ce mem_keyboard_le_change_vid_pid_flag
-0x48cf mem_keybaord_le_pnp_vid_source
-0x48d0 mem_keyboard_le_vid
-0x48d2 mem_keyboard_le_pid
-0x48d4 mem_keyboard_le_product_version
-0x48d6 mem_keyboard_le_hid_map
-0x48d8 mem_keyboard_blob_response_consumer_customize
-0x48ee mem_le_search_service_uuid
-0x48fe mem_le_connect_ios_mac_flag
-0x48ff mem_le_search_mac_uuid
-0x4901 mem_le_search_mac_manu_name
-0x490a mem_keybord_appearance
-0x490c mem_keyboard_le_send_conn_param_update
-0x490d mem_keyboard_le_send_conn_param_update_timer
-0x490e mem_le_start_auto_reco_timer
-0x490f mem_keyboard_pb_button_gpio
-0x4910 mem_mcu_stb_gpio
-0x4911 mem_mcu_clk_gpio
-0x4912 mem_mcu_rstb_gpio
-0x4913 mem_keyboard_num_led_gpio
-0x4914 mem_keyboard_caps_led_gpio
-0x4915 mem_keyboard_scroll_led_gpio
-0x4916 mem_keyboard_power_led_gpio
-0x4917 mem_keyboard_low_voltage_alarm_gpio
-0x4918 mem_keyboard_24g_led_gpio
-0x4919 mem_keyboard_bt1_led_gpio
-0x491a mem_keyboard_bt2_led_gpio
-0x491b mem_keyboard_bt3_led_gpio
-0x491c mem_keyboard_led_r_gpio
-0x491d mem_keyboard_led_g_gpio
-0x491e mem_keyboard_led_b_gpio
-0x491f mem_key_row_gpio
-0x4927 mem_key_col_gpio
-0x493c mem_key_excol_gpio
-0x4948 mem_kb_row_ptr
-0x494a mem_kb_col_ptr
-0x494c mem_kb_excol_ptr
-0x494e mem_keyscan_value_current
-0x4963 mem_keyscan_value_check
-0x4978 mem_keyscan_value_old
-0x498d mem_keyscan_exmcu_value
-0x4998 mem_keyscan_value_ptr
-0x499a mem_keyscan_exmcu_value_ptr
-0x499c mem_keyscan_value_temp
-0x499d mem_keyscan_col_loop_count
-0x499e mem_keyscan_exmcu_wait_wake_count
-0x49a0 mem_same_keyvalue_timerout_flag
-0x49a1 mem_same_keyvalue_timer_init
-0x49a3 mem_same_keyvalue_timer
-0x49a5 mem_keyboard_current_col_press_key_count
-0x49a6 mem_keyboard_all_press_key_count
-0x49a7 mem_keyboard_same_row_press_key_count
-0x49a8 mem_keyboard_ghost_flag
-0x49a9 mem_keyboard_data_change_flag
-0x49aa mem_keyboard_keyvalue_temp
-0x49ab mem_keyboard_press_flag_temp
-0x49ac mem_keyboard_keyvalue_bit_loop_count
-0x49ad mem_keyboard_keyvalue_buffer
-0x49b7 mem_keboard_n_key_rollover_send_flag
-0x49b8 mem_keyboard_n_key_rollover_data
-0x49c7 mem_keyboard_keyvalue_map
-0x4a6f mem_keyboard_tx_data
-0x4a79 mem_keyboard_data_send_flag
-0x4a7a mem_keyboard_fn_flag
-0x4a7b mem_keyboard_control_key_flag
-0x4a7c mem_keyboard_alt_flag
-0x4a7d mem_keyboard_shift_flag
-0x4a7e mem_keyboard_bt_button_flag
-0x4a7f mem_keyboard_pairing_type
-0x4a80 mem_24g_repeat_send_flag
-0x4a81 mem_keyboard_led_status_get
-0x4a82 mem_keyboard_led_status_get_timer
-0x4a83 mem_keyboard_led_status_get_timer_last
-0x4a84 mem_keyboard_fn_esc_f1_f12
-0x4a84 mem_keyboard_fn_first
-0x4a85 mem_keyboard_fn_esc
-0x4a86 mem_keyboard_fn_f1
-0x4a87 mem_keyboard_fn_f2
-0x4a88 mem_keyboard_fn_f3
-0x4a89 mem_keyboard_fn_f4
-0x4a8a mem_keyboard_fn_f5
-0x4a8b mem_keyboard_fn_f6
-0x4a8c mem_keyboard_fn_f7
-0x4a8d mem_keyboard_fn_f8
-0x4a8e mem_keyboard_fn_f9
-0x4a8f mem_keyboard_fn_f10
-0x4a90 mem_keyboard_fn_f11
-0x4a91 mem_keyboard_fn_f12
-0x4a92 mem_keyboard_fn_del
-0x4a93 mem_keyboard_fn_lock_flag
-0x4a94 mem_keyboard_fn_lock_keyvalue
-0x4a95 mem_keyboard_commbination_key_bt
-0x4a97 mem_keyboard_commbination_key_24g
-0x4a99 mem_keyboard_commbination_fast_conn_bt
-0x4a9b mem_keyboard_commbination_press_type
-0x4a9c mem_keyboard_commbination_key_step
-0x4a9d mem_keyboard_commbination_control_key_value
-0x4a9e mem_keyboard_commbination_standard_key_value
-0x4a9f mem_keyboard_commbination_control_key_delay_release_timer
-0x4aa0 mem_keyboard_consumer_key_status
-0x4aa1 mem_kb_computer_system
-0x4aa2 mem_keyboard_device_info_store_flag
-0x4aa3 mem_otp_store_device_info_flag
-0x4aa4 mem_otp_store_system_flag
-0x4aa5 mem_otp_read_retention_memory
-0x4abd mem_otp_read_retention_offset
-0x4abf mem_otp_read_retention_max_size
-0x4ac1 mem_keyboard_device_poweron_timer_init
-0x4ac2 mem_keyboard_device_poweron_timer
-0x4ac3 mem_keyboard_num_caps_scoll_led_on_timer
-0x4ac5 mem_keyboard_mode_led_on_timer
-0x4ac6 mem_keyboard_adc_low_volatage_led_timer_count
-0x4ac7 mem_adc_low_volatage_led_blink_timer
-0x4ac9 mem_keyboard_low_volatage_led_flag
-0x4aca mem_keyboard_low_volatage_led_blink_count
-0x4acb mem_keyboard_low_volatage_led_blink_new_data_enable
-0x4acc mem_keyboard_pair_led_flag
-0x4acd mem_keyboard_pair_led_blink_count
-0x4ace mem_usb_vdd_status_current
-0x4acf mem_usb_vdd_status_last
-0x4ad0 mem_usb_wait_updata_timer
-0x4ad1 mem_keyboard_usb_vid_pid
-0x488d mem_mouse_param_config
-0x488d mem_lbutton_gpio
-0x488e mem_mbutton_gpio
-0x488f mem_rbutton_gpio
-0x4890 mem_bk_button_gpio
-0x4891 mem_fw_button_gpio
-0x4892 mem_dpi_button_gpio
-0x4893 mem_mouse_sensor_sclk_gpio
-0x4894 mem_mouse_sensor_sdio_gpio
-0x4895 mem_select_sensor_angle_gpio
-0x4896 mem_sensor_angle_default
-0x4897 mem_sensor_angle_gnd
-0x4898 mem_sensor_angle_vin
-0x4899 mem_config_sensor_dpi
-0x489a mem_whee_ta_data_gpio
-0x489b mem_whee_tb_data_gpio
-0x489c mem_matrix_public_gpio
-0x489d mem_config_select_device_button_gpio
-0x489e mem_customer_key_gpio
-0x489f mem_firebutton_gpio
-0x48a0 mem_dpi_another_button_gpio
-0x48a1 mem_mouse_logo_led_gpio
-0x48a2 mem_mouse_1io2led_multi_24gled
-0x48a3 mem_mouse_1io2led_multi_bt1led
-0x48a4 mem_mouse_1io2led_multi_bt2led
-0x48a5 mem_mouse_low_voltage_alarm_gpio
-0x48a6 mem_mouse_dpi_gpio
-0x48a7 mem_mouse_param_config_end
-0x48a7 mem_device_temp_gpio
-0x48a8 mem_mouse_multi_led_blink_enable
-0x48a9 mem_mouse_multi_led_type
-0x48aa mem_mouse_multi_led_state
-0x48ab mem_mouse_multi_led_blink_type//00:rtn	01:24g blink	02:le blink		03:reconn blink 	04:low blink	05:dpi blink
-0x48ac mem_mouse_le_reconn_blink_limit
-0x48ad mem_mouse_multi_led_powon_timer_init//power on time
-0x48ae mem_mouse_multi_led_powon_timer
-0x48af mem_mouse_multi_24gled_blink_timer_init//24gled blink time
-0x48b0 mem_mouse_multi_le_discovery_blink_timer_init//le discovery blink time
-0x48b1 mem_mouse_multi_le_reconn_blink_timer_init//le reconn blink time
-0x48b2 mem_mouse_dpi_led_blink_timer_init//dpi blink time
-0x48b3 mem_mouse_multi_led_blink_timer
-0x48b4 mem_mouse_low_led_blink_timer//low blink time
-0x48b5 mem_mouse_low_led_blink_half_timer
-0x48b6 mem_mouse_multi_24gled_blink_count_init//24g count
-0x48b7 mem_mouse_multi_le_reconn_blink_count_init//le reconn count
-0x48b8 mem_mouse_multi_led_blink_count
-0x48b9 mem_mouse_multi_lowled_blink_count_init//low count
-0x48ba mem_mouse_multi_low_led_blink_count
-0x48bb mem_mouse_logo_led_on_time_init
-0x48bd mem_mouse_dpi_led_delay_count
-0x48be mem_mouse_dpi_led_delay_count_init
-0x48bf mem_mouse_24g_fast_hop_count_2ms
-0x48c0 mem_mouse_24g_short_sleep_set_4ms
-0x48c3 mem_mouse_24g_long_sleep_set_4ms
-0x48c6 mem_mouse_24g_short_sleep_set_8ms
-0x48c9 mem_mouse_24g_long_sleep_set_8ms
-0x48cc mem_mouse_24g_tsniff
-0x48d0 mem_mouse_24g_tsniff_2ms
-0x48d4 mem_mouse_24g_tsniff_4ms
-0x48d8 mem_mouse_24g_tsniff_8ms
-0x48dc mem_mouse_24g_short_sleep_set_init
-0x48df mem_mouse_24g_tx_count
-0x48e0 mem_mouse_24g_tx_time_last
-0x48e6 mem_mouse_24g_tx_time_last_delt
-0x48ea mem_mouse_24g_tx_time_sum
-0x48ef mem_mouse_24g_tx_time_sum_count
-0x48f0 mem_mouse_24g_tx_time_offset
-0x48f1 mem_mouse_24g_sleep_miss
-0x48f2 mem_mouse_24g_sleep_time_temp
-0x48f6 mem_mouse_24g_sleep_miss_temp
-0x48fa mem_mouse_sleep_deal_type
-0x48fb mem_sensor_id1
-0x48fc mem_sensor_id2
-0x48fd mem_mouse_move_flag
-0x48fe mem_mouse_asm_flag
-0x48ff mem_mouse_x_pre
-0x4901 mem_mouse_y_pre
-0x4903 mem_mouse_data_xtemp
-0x4904 mem_mouse_data_ytemp
-0x4905 mem_mouse_dpi_seting
-0x4905 mem_320x_dpi_0
-0x4906 mem_320x_dpi_1
-0x4907 mem_320x_dpi_2
-0x4908 mem_320x_dpi_3
-0x4909 mem_3212_dpi_0
-0x490a mem_3212_dpi_1
-0x490b mem_3212_dpi_2
-0x490c mem_3212_dpi_3
-0x490d mem_ka8g2_dpi_0
-0x490e mem_ka8g2_dpi_1
-0x490f mem_ka8g2_dpi_2
-0x4910 mem_ka8g2_dpi_3
-0x4911 mem_sensor_s201_dpi
-0x4911 mem_sensor_s201_dpi_0
-0x4912 mem_sensor_s201_dpi_1
-0x4913 mem_sensor_s201_dpi_2
-0x4914 mem_sensor_s201_dpi_3
-0x4915 mem_sensor_s201_dpi_4
-0x4916 mem_mouse_cpi_count
-0x4917 mem_mouse_dpi_button_state
-0x4918 mem_mouse_dpi_long_press_flag
-0x4919 mem_sensor_3212_init
-0x4923 mem_sensor_3204_init
-0x492d mem_sensor_3205_init
-0x4937 mem_sensor_32xx_init
-0x4951 mem_sensor_32xx_init_1
-0x4973 mem_sensor_8650_init
-0x4991 mem_sensor_ka8ul_init
-0x49af mem_sensor_8009_init
-0x49bf mem_sensor_ka8g2_init
-0x49d1 mem_sensor_p6520_init
-0x49dd mem_sensor_ka5857_init
-0x49e9 mem_sensor_poweron_init
-0x49f1 mem_sensor_ka8g2_poweron_init
-0x49f9 mem_mouse_clear_sensor_data_flag
-0x49fa mem_config_sensor_type
-0x49fb mem_config_sensor_angle
-0x49fc mem_bluetooth_125hz_cnt
-0x49fd mem_customer_key_press_init
-0x4a07 mem_mouse_lkey_press_status
-0x4a08 mem_mouse_rkey_press_status
-0x4a09 mem_mouse_mkey_press_status
-0x4a0a mem_mouse_bkkey_press_status
-0x4a0b mem_mouse_fwkey_press_status
-0x4a0c mem_mouse_dpikey_press_status
-0x4a0d mem_mouse_pbkey_press_status
-0x4a0e mem_mouse_customerkey_press_status
-0x4a0f mem_mouse_key_temp
-0x4a10 mem_mouse_key_status
-0x4a11 mem_mouse_matrix_key_cow_count
-0x4a12 mem_mouse_matrix_key_row_count
-0x4a13 mem_mouse_ghost_flag
-0x4a14 mem_fire_key_status
-0x4a15 mem_fire_key_delay
-0x4a19 mem_fire_key_flag
-0x4a1a mem_dpi_another_press_status
-0x4a1b mem_dpi_another_button_state
-0x4a1c mem_dpi_another_button_down_enable
-0x4a1d mem_mouse_key_temp_patch
-0x4a1e mem_le_name_patch_len
-0x4a1f mem_le_name_patch
-0x4a32 mem_device_flag_last
-0x4a33 mem_device_flag_value
-0x4a34 mem_mouse_le_addr1_last
-0x4a3a mem_mouse_le_addr1_temp
-0x4a40 mem_mouse_le_locall_addr1_last
-0x4a46 mem_mouse_le_locall_addr1_temp
-0x4a4c mem_mouse_le_addr2_last
-0x4a52 mem_mouse_le_addr2_temp
-0x4a58 mem_mouse_le_locall_addr2_last
-0x4a5e mem_mouse_le_locall_addr2_temp
-0x4a64 mem_mouse_dpi_last
-0x4a65 mem_mouse_dpi_temp
-0x4a66 mem_mouse_otp_dpi_value
-0x4a67 mem_mouse_24g_addr_last
-0x4a6b mem_mouse_24g_addr_temp
-0x4a6f mem_random_addr_increase_count_last
-0x4a71 mem_random_addr_increase_count_temp
-0x4a73 mem_otp_offset_le_addr2
-0x4a75 mem_otp_offset_le_addr2_end
-0x4a77 mem_otp_offset_le_locall_addr2
-0x4a79 mem_otp_offset_le_locall_addr2_end
-0x4a7b mem_otp_offset_dpi
-0x4a7d mem_otp_offset_dpi_end
-0x4a7f mem_otp_offset_device_flag
-0x4a81 mem_otp_offset_device_flag_end
-0x4a83 mem_otp_offset_24g_addr
-0x4a85 mem_otp_offset_24g_addr_end
-0x4a87 mem_otp_offset_le_addr1
-0x4a89 mem_otp_offset_le_addr1_end
-0x4a8b mem_otp_offset_le_locall_addr1
-0x4a8d mem_otp_offset_le_locall_addr1_end
-0x4a8f mem_otp_offset_le_addr_increase_count
-0x4a91 mem_otp_offset_le_addr_increase_count_end
-0x4a93 mem_otp_offset_app_initflag
-0x4a95 mem_usb_tx_interval_retention
-0x4a96 mem_usb_vid_pid_retention
-0x4a9f mem_usb_device_name_retention
-0x4abd mem_mouse_commbination_key_bt
-0x4abe mem_mouse_commbination_key_24g
-0x4abf mem_mouse_commbination_key_dpi
-0x4ac0 mem_mouse_commbination_key_select_device
-0x4ac1 mem_mouse_commbination_dpi_timer
-0x4ac2 mem_mouse_commbination_select_device_timer
-0x4ac3 mem_mouse_commbination_key_count
-0x4ac4 mem_mouse_pair_flag
-0x4ac5 mem_mouse_le_send_conn_param_update
-0x4ac6 mem_mouse_le_send_conn_param_update_timer
-0x4ac7 mem_att_write_resposnse_error_insufficient_auth
-0x4ac8 mem_ad_indexTable1
-0x4ad8 mem_ad_stepsizeTable1
-0x4c3c mem_ad_state_valpred1
-0x4c40 mem_ad_state_index1
-0x4c44 mem_ad_in_numSamples1
-0x4c45 mem_ad_in_ptr1
-0x4c47 mem_ad_out_ptr1
-0x4c49 mem_ad_sign1
-0x4c4a mem_ad_delta1
-0x4c4b mem_ad_step1
-0x4c4f mem_ad_valpred1
-0x4c53 mem_ad_index1
-0x4c57 mem_ad_vpdiff1
-0x4c5b mem_ad_inputbuffer1
-0x4c5f mem_ad_bufferstep1
-0x4c60 mem_ad_val1
-0x4c64 mem_ad_outputbuffer1
-0x4c68 mem_ad_diff1
-0x4c6c mem_ms_audio_enable_flag
-0x4c6d mem_ms_audio_enable_timer
-0x4c6e mem_ms_adc_mode
-0x4c6f mem_voice_enable
-0x4c70 mem_adc_dma_rptr
-0x4c72 mem_adc_audio_saddr_ptr
-0x4c74 mem_adc_audio_eaddr_ptr
-0x4c76 mem_ms_24g_temp_buff
-0x4cb4 mem_ms_nor_pro_temp_buff
-0x4cb7 mem_24g_pair_addr_new
-0x4cbb mem_ms_rf_data_flag
-0x4cbc mem_ms_tx_data_type
-0x4cbd mem_device_tx_heart_data_flag
-0x4cbe mem_le_protocol_rx_handle
-0x4cc0 mem_le_protocol_tx_handle
-0x4cc2 mem_le_audio_tx_handle
-0x4cc4 mem_ms_le_interval_min_voice
-0x4ccc mem_ms_le_interval_min_new
-0x4cd4 mem_ms_le_lpm_flag
-0x4cd5 mem_ms_audio_key_gpio
-0x4cd6 mem_ms_audio_key_state
-0x4cd7 mem_ms_audio_key_press_status
-0x4cd8 mem_ms_audio_key_press_count
-0x4cd9 mem_ms_one_pullup_key_gpio
-0x4cda mem_ms_one_pullup_key_state
-0x4cdb mem_ms_one_pullup_key_press_status
-0x4cdc mem_ms_one_pullup_key_press_count
-0x4cdd mem_ms_transmit_key_gpio
-0x4cde mem_ms_transmit_key_state
-0x4cdf mem_ms_transmit_key_press_status
-0x4ce0 mem_ms_transmit_key_press_count
-0x4ce1 mem_mouse_dpi_type
-0x4ce2 mem_mouse_last_dpi
-0x4ce3 mem_mouse_dpi_set_result
-0x4ce4 mem_mouse_battery_type
-0x4ce5 mem_mouse_device_type
-0x4cf9 mem_ms_le_spi_reset_type
-0x4cfa mem_spid_tbuf_new
-0x4cfb mem_addr_hi_new
-0x4cfc mem_spid_rbuf_new
-0x4d00 mem_le_tx_buffer0_omemalloc_new
-0x4d50 mem_le_tx_buffer1_omemalloc_new
-0x4da0 mem_le_tx_buffer2_omemalloc_new
-0x4df0 mem_le_tx_buffer3_omemalloc_new
-0x4e40 mem_rxpayload_temp
-0x4e4a mem_mouse_key_fuction_info_temp
-0x4e4f mem_mouse_key_information_start
-0x4e4f mem_mouse_b4_fuction_info
-0x4e54 mem_mouse_b5_fuction_info
-0x4e59 mem_mouse_dpi_fuction_info
-0x4e5e mem_mouse_key_information_set_flag
-0x4e5f mem_store_key_info_delay_timer
-0x4e60 mem_store_key_info_delay_timer_init
-0x4e61 mem_mouse_fuction_key
-0x4e62 mem_mouse_fuction_key_last
-0x4e63 mem_mouse_m_key_press_flag
-0x4e64 mem_mouse_m_key_press_count
-0x4e65 mem_mouse_app_format_end
-0x4e65 mem_voice_empty_flag
-0x4e66 mem_zcode_temp_param0//zcode num
-0x4e67 mem_zcode_current_number
-0x4e68 mem_eeprom_start_addr
-0x4e6a mem_eeprom_address
-0x4e6c mem_xip_flash_offset
-0x4e6f mem_zcode_head
-0x4e73 mem_sensor_8650_init_new
-0x4e9b mem_eeprom_att_list_base
-0x4e9d mem_mouse_le_delay_enter_lpm_time
-0x4e9e mem_sensor_ka8g2_init_new
-0x4644 mem_remote_lpm_gpio_config_flag
-0x4648 mem_remote_lpm_gpio_config_io_temp
-0x4649 mem_24g_tx_led_map
-0x464a mem_24g_led_count
-0x464b mem_24g_lpm_timer_count
-0x464d mem_24g_lpm_enter_count
-0x464f mem_remote_otp_lot_xy_temp
-0x4655 mem_remote_full_control_remote_lap
-0x4659 mem_remote_car_key_conf0
-0x4659 mem_remote_car_key_conf0_pin
-0x465a mem_remote_car_key_conf1
-0x465a mem_remote_car_key_conf1_pin
-0x465b mem_remote_car_key_conf2
-0x465b mem_remote_car_key_conf2_pin
-0x465c mem_remote_car_key_conf3
-0x465c mem_remote_car_key_conf3_pin
-0x465d mem_remote_car_key_conf4
-0x465d mem_remote_car_key_conf4_pin
-0x465e mem_remote_car_key_conf5
-0x465e mem_remote_car_key_conf5_pin
-0x465f mem_remote_car_key_conf6
-0x465f mem_remote_car_key_conf6_pin
-0x4660 mem_remote_le_24g_recv_ack_flag
-0x4661 mem_key_public_gpio
-0x4662 mem_remote_mult_key
-0x4663 mem_remote_le_24g_ch_count
-0x4665 mem_le_24g_tx_send_flag
-0x4666 mem_remote_le_24g_tx_pair_mode
-0x4667 mem_remote_24g_addr_other
-0x466b mem_remote_24g_tx_payload_temp
-0x4677 mem_remote_24g_rx_payload_temp
-0x4508 mem_hci_uart_tx_gpio
-0x4509 mem_hci_uart_rx_gpio
-0x450a mem_hci_uart_rts_gpio
-0x450b mem_hci_uart_cts_gpio
-0x450c mem_hci_pwm_12mhz_gpio
-0x4508 mem_soft_version_num
-0x450a mem_module_wake_up_gpio
-0x450b mem_module_state_gpio
-0x450c mem_module_connect_state_gpio
-0x450d mem_current_packet_length
-0x450f mem_module_state
-0x4510 mem_module_mcu_wake_pin
-0x4511 mem_module_mcu_wake_delay_us
-0x4515 mem_module_le_lpm_mult
-0x4516 mem_module_bluetooth_stauts_by_command
-0x4517 mem_module_uart_rx_buffer
-0x4519 mem_module_uart_rx_buffer_end
-0x451b mem_module_uart_tx_buffer
-0x451d mem_module_uart_tx_buffer_end
-0x451f mem_module_uarta_baud_rate
-0x4521 mem_module_read_vdd_flag
-0x4522 mem_module_read_vdd_count
-0x4523 mem_module_vdd_quotient
-0x4524 mem_module_vdd_remainder
-0x4525 mem_module_ble_data_uart_max_length
-0x4526 mem_module_flag
-0x4528 mem_module_hci_notify_len
-0x4529 mem_module_hci_notify_handle
-0x452b mem_module_hci_nofiy_addr
-0x452d mem_module_hci_notify_type
-0x452e mem_le_conn_flag
-0x452f mem_module_le_att_list
-0x4787 mem_module_le_att_list_end
-0x4787 mem_module_nv_data
-0x4787 mem_module_nv_data0
-0x47a9 mem_module_nv_data1
-0x47cb mem_module_nv_data2
-0x47ed mem_module_nv_data3
-0x480f mem_module_nv_data4
-0x4831 mem_module_nv_data_end
-0x4508 mem_xmalloc_rec_start
-0x4508 mem_rec_le_att_list
-0x49c7 mem_rec_led_style
-0x49c7 mem_rec_led_style_type
-0x49c8 mem_rec_led_style_blink_count
-0x49c9 mem_rec_led_style_gpio
-0x49ca mem_rec_led_style_on_time
-0x49cc mem_rec_led_style_off_time
-0x49ce mem_rec_led_style_on_callback
-0x49d0 mem_rec_led_style_off_callback
-0x49d2 mem_rec_led2_style
-0x49d2 mem_rec_led2_style_type
-0x49d3 mem_rec_led2_style_blink_count
-0x49d4 mem_rec_led2_style_gpio
-0x49d5 mem_rec_led2_style_on_time
-0x49d7 mem_rec_led2_style_off_time
-0x49d9 mem_rec_led2_style_on_callback
-0x49db mem_rec_led2_style_off_callback
-0x49dd mem_rec_le_pair_led_style
-0x49dd mem_rec_le_pair_led_style_type
-0x49de mem_rec_le_pair_led_style_blink_count
-0x49df mem_rec_le_pair_led_style_gpio
-0x49e0 mem_rec_le_pair_led_style_on_time
-0x49e2 mem_rec_le_pair_led_style_off_time
-0x49e4 mem_rec_le_reconn_led_style
-0x49e4 mem_rec_le_reconn_led_style_type
-0x49e5 mem_rec_le_reconn_led_style_blink_count
-0x49e6 mem_rec_le_reconn_led_style_gpio
-0x49e7 mem_rec_le_reconn_led_style_on_time
-0x49e9 mem_rec_le_reconn_led_style_off_time
-0x49eb mem_rec_adc_low_led_style
-0x49eb mem_rec_adc_low_led_style_type
-0x49ec mem_rec_adc_low_led_style_blink_count
-0x49ed mem_rec_adc_low_led_style_gpio
-0x49ee mem_rec_adc_low_led_style_on_time
-0x49f0 mem_rec_adc_low_led_style_off_time
-0x49f2 mem_rec_ui_timer_btclk
-0x49f6 mem_rec_ui_timer_count
-0x49f7 mem_rec_cb_timer
-0x49f9 mem_rec_tscan_timer
-0x49fa mem_rec_tscan_timeout
-0x49fb mem_rec_tscan_row_nums
-0x49fc mem_rec_tscan_col_nums
-0x49fd mem_rec_tscan_col_gpio_ptr
-0x49ff mem_rec_tscan_row_scanned
-0x4a00 mem_rec_tscan_col_scanned
-0x4a01 mem_rec_tscan_record_row
-0x4a02 mem_rec_tscan_record_col
-0x4a03 mem_rec_tscan_row_gpio
-0x4a0d mem_rec_tscan_col_gpio
-0x4a17 mem_rec_tscan_sequence
-0x4a18 mem_rec_tscan_gpio_nums
-0x4a19 mem_rec_tscan_row_scan_loop_count
-0x4a1a mem_rec_key_state
-0x4a1a mem_rec_tscan_gndkey_state
-0x4a1b mem_rec_tscan_key_state
-0x4a1c mem_rec_tscan_record_temp
-0x4a1e mem_rec_tscan_key_need_send_flag
-0x4a1f mem_rec_tscan_current_key_num
-0x4a20 mem_rec_gpio_wakeup_source
-0x4a21 mem_rec_tscan_gndkey_record_temp
-0x4a22 mem_rec_tscan_gndkey_need_send_flag
-0x4a23 mem_rec_tscan_key_nums_list
-0x4a4b mem_rec_tscan_gndkey_nums_list
-0x4a55 mem_rec_tscan_key_num_bit
-0x4a5d mem_rec_tscan_combin_key_num_bit
-0x4a65 mem_rec_tscan_current_gpio_ptr
-0x4a67 mem_rec_tscan_record_now
-0x4a69 mem_rec_combin_key_timeout
-0x4a6a mem_rec_combin_key_timer
-0x4a6b mem_rec_gpio_bit_first
-0x4a6c mem_rec_gpio_bit_second
-0x4a6d mem_rec_gpio_bit_check
-0x4a6e mem_rec_gpio_for_wake_pullup
-0x4a6f mem_rec_keypad_type
-0x4a70 mem_rec_key_keyboard_value_list
-0x4b10 mem_rec_key_consumer_value_list
-0x4b40 mem_rec_key_mouse_value_list
-0x4b80 mem_rec_key_nec_value_list
-0x4bb0 mem_rec_key_press_le
-0x4bb0 mem_rec_key1_press_le
-0x4bb3 mem_rec_key2_press_le
-0x4bb6 mem_rec_key3_press_le
-0x4bb9 mem_rec_key4_press_le
-0x4bbc mem_rec_key5_press_le
-0x4bbf mem_rec_key6_press_le
-0x4bc2 mem_rec_key7_press_le
-0x4bc5 mem_rec_key8_press_le
-0x4bc8 mem_rec_key9_press_le
-0x4bcb mem_rec_key10_press_le
-0x4bce mem_rec_key11_press_le
-0x4bd1 mem_rec_key12_press_le
-0x4bd4 mem_rec_key13_press_le
-0x4bd7 mem_rec_key14_press_le
-0x4bda mem_rec_key15_press_le
-0x4bdd mem_rec_key16_press_le
-0x4be0 mem_rec_key17_press_le
-0x4be3 mem_rec_key18_press_le
-0x4be6 mem_rec_key19_press_le
-0x4be9 mem_rec_key20_press_le
-0x4bec mem_rec_key21_press_le
-0x4bef mem_rec_key_release_le
-0x4bf2 mem_rec_key_map
-0x4c07 mem_rec_gnd_key_offset
-0x4c08 mem_rec_keypad_fun
-0x4c09 mem_rec_le_enable_notify
-0x4c0a mem_rec_le_data_len
-0x4c0b mem_rec_le_connect_state
-0x4c0c mem_rec_report_id1_handle
-0x4c0e mem_rec_report_id2_handle
-0x4c10 mem_rec_report_id3_handle
-0x4c12 mem_rec_report_id4_handle
-0x4c14 mem_rec_queue_each_size
-0x4c15 mem_rec_queue_length
-0x4c16 mem_rec_queue_curr_num
-0x4c17 mem_rec_queue_read_ptr
-0x4c18 mem_rec_queue_write_ptr
-0x4c19 mem_rec_queue_ele
-0x4c39 mem_rec_ad_indexTable1
-0x4c49 mem_rec_ad_stepsizeTable1
-0x4dad mem_rec_ad_state_valpred1
-0x4db1 mem_rec_ad_state_index1
-0x4db5 mem_rec_ad_in_numSamples1
-0x4db6 mem_rec_ad_in_ptr1
-0x4db8 mem_rec_ad_out_ptr1
-0x4dba mem_rec_ad_sign1
-0x4dbb mem_rec_ad_delta1
-0x4dbc mem_rec_ad_step1
-0x4dc0 mem_rec_ad_valpred1
-0x4dc4 mem_rec_ad_index1
-0x4dc8 mem_rec_ad_vpdiff1
-0x4dcc mem_rec_ad_inputbuffer1
-0x4dd0 mem_rec_ad_bufferstep1
-0x4dd1 mem_rec_ad_val1
-0x4dd5 mem_rec_ad_outputbuffer1
-0x4dd9 mem_rec_ad_diff1
-0x4ddd mem_rec_voice_enable
-0x4dde mem_rec_voice_notify
-0x4df2 mem_rec_adc_dma_rptr
-0x4df4 mem_rec_voice_notify_apk_handle
-0x4df6 mem_rec_voice_notify_box_handle
-0x4df8 mem_rec_control_notify_apk_handle
-0x4dfa mem_rec_control_notify_box_handle
-0x4dfc mem_rec_white_list_num
-0x4dfd mem_rec_le_scan_filter_policy
-0x4dfe mem_rec_white_list_flash_write_head
-0x4e02 mem_rec_white_list
-0x4e32 mem_rec_le_req_type
-0x4e33 mem_rec_nec_send_gpio
-0x4e34 mem_rec_nec_receive_gpio
-0x4e35 mem_rec_ota_write_index
-0x4e37 mem_rec_ota_write_length
-0x4e3b mem_rec_ota_write_data_addr
-0x4e3d mem_rec_ota_write_flash_addr
-0x4e40 mem_rec_ota_write_flash_addr_start
-0x4e43 mem_rec_ota_total_sum
-0x4e47 mem_rec_ota_update_flash_mode
-0x4e48 mem_rec_ota_version
-0x4e4a mem_rec_ota_buck_size
-0x4e4c mem_rec_ota_packet_max_len
-0x4e4e mem_rec_ota_work_mode
-0x4e4f mem_rec_ota_notify_handle
-0x4e51 mem_rec_ota_notify_opcode
-0x4e52 mem_rec_ota_notify_result
-0x4e53 mem_rec_ota_notify_data
-0x4e5c mem_rec_ota_le_conn_update_param
-0x4e5c mem_rec_ota_le_interval_min
-0x4e5e mem_rec_ota_le_interval_max
-0x4e60 mem_rec_ota_le_latency
-0x4e62 mem_rec_ota_le_timeout
-0x4e64 mem_rec_ota_reset_timeout
-0x4e65 mem_rec_ota_le_conn_param_update
-0x4e66 mem_rec_ota_enable
-0x4e67 mem_rec_le_packet_size
-0x4e68 mem_rec_ota_flash_base_addr
-0x4e6b mem_rec_ota_flash_offset_addr
-0x4e6e mem_rec_queue_ota_count
-0x4e70 mem_rec_ota_queue_size
-0x4e72 mem_rec_code_a_flash_addr
-0x4e75 mem_rec_code_b_flash_addr
-0x4e78 mem_xmalloc_rec_end
-0x4508 mem_ble_shutter_enable_notify
-0x4509 mem_ble_shutter_reconn_adv_interval
-0x450b mem_ble_shutter_discovery_adv_interval
-0x450d mem_ble_shutter_reconn_timeout
-0x450f mem_ble_shutter_reconn_timer
-0x4511 mem_ble_shutter_reconn_blink_on_time
-0x4513 mem_ble_shutter_reconn_blink_off_time
-0x4515 mem_ble_shutter_discovery_blink_on_time
-0x4517 mem_ble_shutter_discovery_blink_off_time
-0x4519 mem_ble_shutter_interval_min
-0x451b mem_ble_shutter_interval_max
-0x451d mem_ble_shutter_latency
-0x451f mem_ble_shutter_timeout
-0x4521 mem_ble_shutter_interval_min_new
-0x4523 mem_ble_shutter_interval_max_new
-0x4525 mem_ble_shutter_latency_new
-0x4527 mem_ble_shutter_timeout_new
-0x4529 mem_ble_shutter_discovery_timeout
-0x452b mem_ble_shutter_connect_timeout
-0x452d mem_shutter_sleep_timeout
-0x452f mem_shutter_sleep_timer
-0x4531 mem_shutter_hard_soft_switch_case
-0x4532 mem_shutter_soft_switch_button_gpio
-0x4533 mem_shutter_soft_switch_power_state
-0x4534 mem_shutter_soft_switch_poweron_time
-0x4535 mem_shutter_soft_switch_poweroff_time
-0x4536 mem_shutter_soft_switch_poweron_callback_function
-0x4538 mem_shutter_soft_switch_poweroff_callback_function
-0x453a mem_shutter_keyscan
-0x453a mem_shutter_key_num
-0x453b mem_cb_shutter_keycan
-0x453d mem_shutter_key_conf0
-0x453e mem_shutter_key_conf1
-0x453f mem_key0_press
-0x4544 mem_key1_press
-0x4549 mem_key2_press
-0x454e mem_key0_release
-0x4553 mem_key1_release
-0x4558 mem_key2_release
-0x455d mem_ble_data_buffer1
-0x4562 mem_ble_data_buffer2
-0x4567 mem_ble_data_buffer3
-0x456c mem_ble_data_buffer4
-0x4571 mem_ble_data_buffer5
-0x4576 mem_ble_data_buffer6
-0x457b mem_ble_data_buffer7
-0x4580 mem_ble_data_buffer8
-0x4585 mem_ble_data_buffer9_58
-0x45b7 mem_queue_each_size
-0x45b8 mem_queue_length
-0x45b9 mem_queue_curr_num
-0x45ba mem_queue_read_ptr
-0x45bb mem_queue_write_ptr
-0x45bc mem_queue_ele
-0x45dc mem_shutter_nv_data
-0x4686 mem_shutter_led_struct_app_led
-0x4686 mem_shutter_led_struct_app_led_type
-0x4687 mem_shutter_led_struct_app_led_blink_count
-0x4688 mem_shutter_led_struct_app_led_gpio
-0x4689 mem_shutter_led_struct_app_led_on_time
-0x468b mem_shutter_led_struct_app_led_off_time
-0x468d mem_shutter_led_struct_app_led_on_callback
-0x468f mem_shutter_led_struct_app_led_off_callback
-0x4691 mem_shutter_power_off_led_style
-0x4691 mem_shutter_power_off_led_style_type
-0x4692 mem_shutter_power_off_led_style_blink_count
-0x4693 mem_shutter_power_off_led_style_gpio
-0x4694 mem_shutter_power_off_led_style_on_time
-0x4696 mem_shutter_power_off_led_style_off_time
-0x4698 mem_shutter_power_off_led_style_on_callback
-0x469a mem_shutter_power_off_led_style_off_callback
-0x469c mem_shutter_soft_swtich_botton_down
-0x469d mem_shutter_soft_swtich_led_struct_temp
-0x46a8 mem_shutter_power_off_timeout
-0x46a9 mem_shutter_power_off_timer
-0x46aa mem_shutter_key_conf0_temp
-0x46ac mem_shutter_led_struct_app_led_gpio_temp
-0x46ad mem_shutter_hard_soft_switch_case_temp
-0x46ae mem_shutter_soft_switch_button_gpio_temp
-0x46af mem_shutter_soft_switch_first_power_on
-0x46b0 mem_shutter_dy_conf
-0x46b1 mem_shutter_1s_timer
-0x46b2 mem_shutter_timer_625us
-0x46b4 mem_rf_init_data_new
-0x46bf mem_key_value_xmem
-0x46c1 mem_shutter_le_hid_map
-0x47a7 mem_shutter_le_uuid_sup
-0x4943 mem_shutter_le_map_len_android
-0x4945 mem_shutter_le_map_len_ios
-0x4947 mem_dy_le_search_service_uuid
-0x4957 mem_iphone_flag
-0x4958 mem_send_data_delay
-0x4959 mem_key_send_clk
-0x495d mem_shutter_key_state0
-0x4967 mem_shutter_key_state1
-0x4971 mem_shutter_key_state2
-0x497b mem_shutter_key_state3
-0x4985 mem_shutter_key_state4
-0x498f mem_shutter_key_state5
-0x4999 mem_shutter_key_state6
-0x49a3 mem_shutter_key_state7
-0x49ad mem_shutter_key_state8
-0x49b7 mem_dy_key0_press
-0x49c1 mem_dy_key1_press
-0x49cb mem_dy_key2_press
-0x49d5 mem_dy_key3_press
-0x49df mem_dy_key4_press
-0x49e9 mem_dy_key5_press
-0x49f3 mem_dy_key6_press
-0x49fd mem_dy_key7_press
-0x4a07 mem_dy_key8_press
-0x4a11 mem_key0_release_new
-0x4a20 mem_key1_release_new
-0x4a2f mem_key2_release_new
-0x4a3e mem_key3_release_new
-0x4a4d mem_key4_release_new
-0x4a5c mem_key5_release_new
-0x4a6b mem_key6_release_new
-0x4a7a mem_key7_release_new
-0x4a89 mem_key8_release_new
-0x4a98 mem_key0_long_press
-0x4a9b mem_key1_long_press
-0x4a9e mem_key2_long_press
-0x4aa1 mem_key3_long_press
-0x4aa4 mem_key4_long_press
-0x4aa7 mem_key5_long_press
-0x4aaa mem_key6_long_press
-0x4aad mem_key7_long_press
-0x4ab0 mem_key8_long_press
-0x4ab3 mem_key0_long_release
-0x4ab6 mem_key1_long_release
-0x4ab9 mem_key2_long_release
-0x4abc mem_key3_long_release
-0x4abf mem_key4_long_release
-0x4ac2 mem_key5_long_release
-0x4ac5 mem_key6_long_release
-0x4ac8 mem_key7_long_release
-0x4acb mem_key8_long_release
-0x4ace mem_combine_key0
-0x4ad0 mem_combine_key1
-0x4ad2 mem_combine_key2
-0x4ad4 mem_combine_key3
-0x4ad6 mem_combine_key4
-0x4ad8 mem_combine_key5
-0x4ada mem_combine_key_state0
-0x4adc mem_combine_key0_press
-0x4ae6 mem_combine_key1_press
-0x4af0 mem_combine_key2_press
-0x4afa mem_combine_key3_press
-0x4b04 mem_combine_key4_press
-0x4b0e mem_combine_key5_press
-0x4b18 mem_combine_key_release
-0x4b22 mem_shutter_move_data
-0x4b26 mem_key0_press_i
-0x4b30 mem_key1_press_i
-0x4b3a mem_key2_press_i
-0x4b44 mem_key3_press_i
-0x4b4e mem_key4_press_i
-0x4b58 mem_key5_press_i
-0x4b62 mem_key6_press_i
-0x4b6c mem_key7_press_i
-0x4b76 mem_key0_release_new_i
-0x4b85 mem_key1_release_new_i
-0x4b94 mem_key2_release_new_i
-0x4ba3 mem_key3_release_new_i
-0x4bb2 mem_key4_release_new_i
-0x4bc1 mem_key5_release_new_i
-0x4bd0 mem_key6_release_new_i
-0x4bdf mem_key7_release_new_i
-0x4bee mem_key8_release_new_i
-0x4bfd mem_key0_long_press_i
-0x4c00 mem_key1_long_press_i
-0x4c03 mem_key2_long_press_i
-0x4c06 mem_key3_long_press_i
-0x4c09 mem_key4_long_press_i
-0x4c0c mem_key5_long_press_i
-0x4c0f mem_key6_long_press_i
-0x4c12 mem_key7_long_press_i
-0x4c15 mem_key8_long_press_i
-0x4c18 mem_key0_long_release_i
-0x4c1b mem_key1_long_release_i
-0x4c1e mem_key2_long_release_i
-0x4c21 mem_key3_long_release_i
-0x4c24 mem_key4_long_release_i
-0x4c27 mem_key5_long_release_i
-0x4c2a mem_key6_long_release_i
-0x4c2d mem_key7_long_release_i
-0x4c30 mem_key8_long_release_i
-0x4c33 mem_key3_release_new_t
-0x4c3d mem_key3_release_new_i_t
-0x4c47 mem_key3_press_count
-0x4c48 mem_shutter_like_timeout
-0x4c49 mem_shutter_key_pressed
-0x4c4a mem_shutter_combine_key_release
-0x4c4b mem_shutter_mousekey_value_list
-0x4e71 mem_shutter_back_count
-0x4e72 mem_shutter_le_conned
-0x4e73 mem_move_config
-0x4e73 mem_shutter_iphone_beyond_x_count
-0x4e74 mem_shutter_iphone_beyond_y_count
-0x4e75 mem_shutter_move_data_x
-0x4e77 mem_shutter_move_data_y
-0x4e79 mem_last_shutter_le_iphone_flag
-0x4e7a mem_move_config_end
-0x4e7a mem_shutter_back_count_cache
-0x4e7b mem_shutter_iphone_beyond_x_cache
-0x4e7c mem_shutter_iphone_beyond_y_cache
-0x4e7d mem_shutter_iphone_move_mid
-0x4e87 mem_shutter_long_key_released_flag
-0x4e88 mem_shutter_move_mid_timer
-0x4e89 mem_shutter_pairing_success
-0x4e8a mem_combine_key_release_value
-0x4e8c mem_last_press_key_value
-0x4e8d mem_shutter_first_move
-0x4e8e mem_move_mode_set
-0x4e8f mem_move_mode_key_index
-0x4e90 mem_move_mode_trigger_enable
-0x4e91 mem_shutter_android_move_mid
-0x4e96 mem_shutter_iphone_up_mid
-0x4ea0 mem_shutter_iphone_like_mid
-0x4eaa mem_shutter_key_num_conf
-0x4eab mem_shutter_dy_key_conf
-0x4eb4 mem_le_dy_adv_data
-0x4ebf mem_le_dy_scan_data
-0x4ecb mem_ble_shutter_dy_interval_min_android
-0x4ed3 mem_ble_shutter_dy_interval_min_ios
-0x4edb mem_shutter_ble_discovery_time_conf
-0x4ee3 mem_queue_dy_each_size
-0x4ee5 mem_shutter_led_on_light_dark_led_conf
-0x4eec mem_shutter_led_off_light_dark_led_conf
-0x4ef3 mem_shutter_reconn_blink_on_time_conf
-0x4ef7 mem_shutter_discovery_blink_on_time_conf
-0x4efb mem_shutter_efuse_start_offset
-0x4efd mem_shutter_efuse_end_offset
-0x4eff mem_initial_move_conf
-0x4eff mem_android_initial_move_x
-0x4f01 mem_android_initial_move_y
-0x4f03 mem_iphone_initial_move_x
-0x4f05 mem_iphone_initial_move_y
-0x4f07 mem_otp_move_config
-0x4f07 mem_otp_shutter_move_data_x
-0x4f09 mem_otp_shutter_move_data_y
-0x4f0b mem_otp_last_shutter_le_iphone_flag
-0x4f0c mem_otp_move_config_end
-0x4f0c mem_otp_write_offset_addr
-0x4f0e mem_otp_read_offset_addr
-0x4f10 mem_otp_read_ios_android_addr
-0x4f12 mem_shutter_le_pairing_handle
-0x4f14 mem_shutter_temp_count
-0x4f16 mem_shutter_first_read_flag
-0x4f17 mem_shutter_valid_data_flag
-0x4f18 mem_shutter_volume_timer
-0x4f19 mem_shutter_link_timer
-0x4f1a mem_shutter_link_data
-0x4f22 mem_shutter_link_data_i
-0x4f2a mem_shutter_link_loop_flag
-0x4f2b mem_shutter_end
-
Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/output/otp.dat
===================================================================
--- /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/output/otp.dat	(revision 5679)
+++ /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/output/otp.dat	(nonexistent)
@@ -1,11749 +0,0 @@
-0b
-00
-02
-00
-00
-00
-00
-00
-00
-00
-00
-8f
-ab
-f1
-00
-3c
-ae
-c6
-03
-78
-5c
-8d
-07
-e0
-71
-35
-1e
-aa
-55
-10
-1f
-b1
-a4
-02
-b3
-d0
-ad
-a4
-ab
-52
-a6
-69
-fb
-ad
-01
-a8
-77
-5e
-60
-8c
-ea
-f3
-02
-6f
-3d
-e9
-3a
-de
-dd
-17
-58
-b7
-d7
-7e
-9f
-b6
-5c
-32
-c7
-af
-35
-07
-f8
-c0
-a4
-17
-c8
-a0
-61
-78
-b9
-2e
-9d
-93
-44
-71
-36
-4b
-0f
-3c
-03
-e5
-97
-fc
-d4
-c1
-17
-e0
-6d
-f9
-ac
-60
-c8
-e0
-2a
-b2
-df
-eb
-bb
-d9
-ef
-09
-7d
-10
-23
-61
-7b
-7f
-e3
-68
-d2
-76
-85
-64
-05
-3f
-e8
-e7
-b5
-44
-2a
-88
-9d
-be
-03
-c4
-27
-98
-1c
-ed
-02
-9c
-bc
-4e
-6b
-65
-f0
-1a
-39
-b0
-20
-17
-80
-0a
-6c
-ad
-b3
-67
-71
-d5
-d2
-fa
-d6
-82
-33
-18
-8a
-9a
-2f
-2a
-58
-d0
-2d
-7d
-73
-5e
-34
-7d
-51
-78
-88
-49
-0b
-83
-61
-be
-86
-d7
-a2
-52
-15
-6b
-88
-61
-61
-c7
-00
-9c
-a7
-d1
-a6
-fa
-2f
-ef
-9e
-cd
-2f
-e9
-46
-51
-34
-37
-dd
-d9
-03
-76
-aa
-23
-3f
-3b
-1a
-95
-cb
-09
-ee
-2a
-07
-32
-65
-c9
-1b
-fd
-4d
-9d
-65
-c9
-97
-a8
-94
-94
-a7
-6d
-05
-5a
-e0
-36
-44
-87
-b1
-d8
-3a
-69
-ec
-0e
-1b
-51
-cb
-e4
-f2
-6c
-78
-3c
-8a
-07
-ee
-a7
-15
-76
-41
-b8
-90
-85
-42
-23
-c3
-22
-aa
-9c
-11
-e9
-13
-57
-6b
-18
-57
-ec
-5b
-2f
-2b
-10
-b1
-0c
-26
-3b
-fa
-a3
-d0
-04
-1b
-9d
-14
-ed
-09
-e3
-f5
-5e
-81
-9a
-42
-d7
-50
-93
-e4
-6c
-66
-d0
-29
-e0
-60
-8f
-19
-39
-a8
-20
-d4
-36
-af
-af
-fb
-6e
-51
-44
-eb
-51
-b5
-95
-41
-1a
-fa
-02
-d0
-73
-05
-88
-3d
-58
-06
-cc
-34
-bc
-94
-a7
-4b
-5d
-86
-6e
-35
-bc
-96
-1e
-23
-f6
-b4
-a7
-b2
-72
-f9
-bf
-f4
-bd
-7d
-b6
-dd
-e5
-fc
-1d
-96
-16
-44
-57
-25
-8e
-6c
-17
-05
-3a
-2d
-e2
-18
-dc
-f4
-43
-ad
-ff
-f1
-63
-53
-5d
-5c
-31
-24
-7f
-21
-4f
-95
-76
-45
-58
-30
-f9
-b7
-3c
-b0
-fe
-e7
-a8
-79
-4e
-b5
-48
-80
-48
-81
-46
-cb
-5d
-67
-c4
-cf
-8c
-dd
-5b
-44
-6d
-9d
-e0
-f7
-ed
-bb
-ef
-70
-02
-0d
-10
-46
-1c
-3a
-6a
-51
-26
-0c
-53
-bb
-f6
-f9
-19
-99
-da
-c7
-4d
-34
-c9
-28
-47
-d5
-db
-5f
-17
-4c
-6a
-52
-83
-e0
-10
-3a
-e0
-c5
-24
-64
-b1
-8c
-af
-91
-bd
-0a
-35
-23
-ec
-bd
-b3
-05
-2d
-c9
-62
-0f
-74
-b8
-07
-a4
-d9
-ea
-f5
-cb
-86
-24
-cc
-18
-4d
-de
-38
-08
-f0
-55
-78
-a0
-2b
-90
-d0
-73
-16
-c2
-c0
-ba
-a5
-ea
-2c
-5c
-50
-1d
-39
-15
-3a
-bd
-d2
-83
-8d
-be
-de
-f0
-8b
-b3
-6a
-70
-72
-a9
-86
-b4
-ef
-31
-c1
-66
-bc
-59
-af
-e2
-f4
-69
-b7
-0a
-db
-d3
-78
-3e
-aa
-24
-85
-ff
-bd
-a3
-51
-34
-ae
-76
-8f
-74
-86
-b6
-75
-e0
-70
-d6
-d5
-4d
-71
-9d
-ce
-67
-c2
-cd
-da
-00
-4f
-df
-96
-04
-f3
-25
-ef
-0d
-a3
-74
-44
-b1
-ef
-b1
-d3
-57
-93
-4b
-7a
-06
-87
-99
-fa
-2f
-bd
-be
-31
-9e
-e5
-a6
-42
-01
-52
-e7
-e9
-aa
-3e
-19
-75
-bc
-9e
-5a
-d9
-a2
-b7
-74
-b7
-93
-66
-9d
-fd
-b7
-e4
-38
-71
-57
-6f
-38
-0b
-39
-5a
-2c
-ac
-cc
-12
-2b
-a3
-aa
-12
-2a
-6b
-c0
-4f
-da
-5e
-43
-10
-de
-94
-2a
-a0
-c0
-2d
-3e
-82
-c4
-8d
-ac
-52
-c5
-b9
-5d
-cb
-48
-05
-d2
-44
-c7
-8b
-ff
-69
-9b
-61
-b7
-37
-de
-07
-58
-e4
-0a
-14
-d5
-3d
-16
-3c
-81
-b4
-22
-73
-12
-e2
-86
-32
-1e
-09
-8e
-99
-b3
-f5
-3c
-5a
-c0
-c1
-eb
-8b
-09
-bb
-1f
-67
-ed
-40
-53
-8b
-d7
-cb
-ee
-d2
-f6
-c0
-96
-ba
-c6
-aa
-d3
-52
-2e
-e5
-40
-1e
-61
-c7
-4d
-06
-b1
-5e
-09
-58
-83
-5d
-51
-6d
-a3
-3a
-ee
-69
-ec
-a8
-67
-b5
-0c
-f6
-38
-ba
-18
-23
-ad
-9f
-66
-7e
-c0
-0d
-3e
-82
-83
-0b
-01
-b8
-ac
-89
-a4
-a3
-37
-85
-64
-af
-2b
-77
-7f
-49
-ba
-27
-82
-3b
-0b
-10
-ec
-10
-d8
-cc
-fa
-42
-5c
-fe
-6b
-76
-87
-60
-c8
-0d
-cb
-38
-42
-7e
-58
-24
-e2
-39
-36
-ff
-be
-5c
-72
-19
-f4
-0d
-ef
-55
-f2
-8f
-7f
-39
-ff
-16
-b9
-aa
-47
-2e
-ab
-62
-30
-0c
-ce
-5a
-aa
-40
-fb
-a1
-a7
-40
-dd
-0f
-53
-5d
-11
-f4
-4d
-23
-d3
-67
-2a
-96
-01
-15
-0a
-08
-2c
-42
-75
-83
-74
-f6
-7f
-c5
-c8
-d3
-14
-06
-08
-18
-8c
-c6
-ae
-05
-2d
-b6
-20
-87
-a8
-70
-4c
-68
-43
-f6
-d5
-cc
-62
-46
-c4
-6a
-4f
-c3
-f8
-ac
-e8
-2a
-c8
-d0
-ac
-30
-26
-01
-0c
-aa
-2f
-68
-3c
-8c
-57
-87
-b3
-e3
-43
-b6
-6f
-76
-f5
-7a
-0f
-d5
-dd
-f5
-6b
-11
-ca
-0e
-39
-f5
-d5
-59
-a1
-c0
-96
-61
-9e
-88
-c2
-26
-6b
-11
-76
-13
-cd
-c1
-dc
-48
-b2
-6e
-43
-08
-9d
-55
-fb
-94
-62
-8e
-7e
-f8
-66
-61
-38
-e0
-03
-98
-66
-62
-d6
-c7
-58
-0a
-cc
-9c
-d8
-b5
-c4
-bf
-e5
-fe
-39
-d3
-0b
-7a
-77
-a6
-3f
-a5
-1c
-b0
-57
-bc
-d3
-fa
-c2
-7c
-a8
-aa
-c1
-03
-e8
-89
-dc
-97
-3e
-b7
-fb
-ec
-b3
-5f
-df
-ef
-b9
-e8
-4e
-e5
-03
-70
-0c
-6b
-53
-80
-e9
-1a
-dc
-ea
-94
-64
-06
-6a
-c1
-fa
-60
-e7
-c1
-94
-bd
-86
-a0
-ab
-e2
-cf
-ac
-f5
-5a
-28
-a9
-b0
-a1
-e6
-aa
-4f
-f8
-8f
-fd
-27
-17
-56
-15
-ed
-a9
-ed
-1a
-bd
-2a
-0d
-23
-eb
-43
-76
-7a
-2b
-eb
-03
-87
-bc
-fe
-2f
-48
-9d
-d2
-4c
-97
-14
-6b
-fe
-61
-c6
-49
-9b
-fc
-9d
-b2
-78
-a2
-35
-97
-6c
-6c
-1a
-c4
-74
-9f
-30
-cc
-42
-98
-e4
-b9
-31
-d5
-2f
-3e
-97
-9c
-b6
-70
-73
-e1
-2a
-fd
-08
-e2
-e8
-d4
-47
-92
-66
-32
-a0
-23
-ff
-00
-87
-6d
-94
-18
-c0
-53
-4d
-d4
-d7
-57
-02
-f6
-02
-99
-30
-85
-41
-7c
-a7
-a1
-54
-07
-4a
-12
-58
-23
-d9
-55
-41
-a0
-2e
-35
-a7
-c9
-96
-82
-60
-25
-f5
-f4
-6f
-7b
-f8
-d0
-b4
-94
-42
-e5
-b9
-ea
-9a
-27
-67
-a3
-bf
-4b
-08
-98
-21
-aa
-28
-ed
-bd
-8a
-51
-f3
-c2
-6a
-6e
-8d
-fd
-02
-1b
-58
-8f
-54
-6d
-9b
-8a
-91
-c0
-ed
-f7
-46
-42
-98
-a8
-0f
-89
-fc
-17
-47
-a5
-63
-5c
-36
-49
-d9
-ee
-4f
-44
-46
-31
-8f
-8c
-7d
-06
-d8
-1d
-41
-07
-47
-5d
-79
-19
-5b
-8c
-7a
-49
-40
-4d
-be
-59
-bb
-59
-b1
-c6
-8d
-4d
-f4
-ec
-f5
-d7
-7e
-ae
-26
-42
-54
-32
-8a
-a9
-3f
-4c
-e8
-80
-ae
-3f
-f3
-18
-9c
-df
-79
-72
-e9
-af
-60
-25
-4d
-49
-26
-f5
-74
-83
-f2
-8f
-99
-a1
-4a
-d8
-fe
-64
-bd
-28
-f0
-be
-cd
-4d
-00
-df
-51
-eb
-47
-1e
-0d
-10
-2b
-e8
-79
-96
-26
-76
-61
-7a
-28
-8f
-43
-dc
-4a
-d5
-9d
-7c
-1a
-44
-06
-9a
-f1
-38
-9d
-5d
-68
-5e
-25
-6c
-02
-91
-59
-09
-23
-fe
-81
-21
-4a
-b9
-b0
-43
-63
-8b
-6c
-38
-4d
-6d
-5f
-3f
-a7
-e3
-54
-cf
-60
-0b
-1e
-6d
-b9
-eb
-b0
-98
-a6
-5c
-0c
-b6
-c0
-e1
-f6
-49
-28
-ab
-6c
-d5
-3f
-bc
-cd
-da
-09
-5c
-8a
-e2
-7c
-b0
-07
-b9
-f9
-7b
-55
-64
-0a
-b6
-ec
-c1
-0e
-5c
-c1
-ee
-fc
-f9
-cd
-c4
-2c
-ed
-2c
-7c
-2a
-02
-ac
-1d
-e3
-35
-80
-5b
-e5
-0c
-bf
-ef
-5d
-8d
-9d
-e6
-64
-b3
-c6
-25
-69
-51
-a5
-63
-01
-bd
-61
-f3
-6a
-71
-26
-97
-2b
-3b
-bc
-7a
-70
-50
-d9
-55
-0e
-10
-8a
-3e
-68
-ea
-3b
-d4
-01
-14
-e6
-0b
-ff
-85
-4a
-f9
-9d
-56
-52
-d4
-8b
-62
-4c
-64
-fd
-2b
-ea
-f8
-5e
-57
-cf
-ed
-1c
-4f
-e1
-d1
-64
-63
-4f
-57
-14
-42
-d8
-96
-8d
-c0
-a8
-11
-53
-e2
-23
-0f
-e3
-0c
-8c
-7d
-82
-d9
-66
-9e
-db
-d8
-78
-5e
-cc
-e5
-68
-1a
-94
-5f
-71
-88
-b5
-f9
-1a
-06
-bb
-2b
-7a
-0d
-ed
-8a
-85
-69
-d1
-ab
-ea
-df
-e0
-1b
-49
-55
-e7
-f9
-6d
-ef
-75
-4b
-69
-35
-dd
-f5
-ed
-b4
-62
-48
-da
-8b
-b8
-51
-1e
-ca
-76
-a9
-0d
-48
-bf
-33
-3a
-75
-87
-ce
-32
-25
-0f
-2f
-5d
-60
-77
-ad
-13
-df
-f6
-2a
-55
-14
-64
-47
-08
-28
-47
-61
-d8
-af
-18
-06
-3e
-9a
-fe
-0c
-82
-6c
-0c
-0b
-f8
-06
-6a
-1c
-3e
-1e
-41
-4c
-6c
-aa
-a2
-4d
-ca
-9a
-6d
-3e
-e0
-cf
-f3
-62
-06
-87
-0b
-d8
-4e
-bf
-67
-31
-e9
-7b
-0f
-dd
-43
-bd
-ff
-f7
-56
-35
-8f
-5f
-e4
-f5
-84
-98
-4b
-c3
-a8
-cd
-d4
-10
-69
-ac
-61
-61
-93
-25
-d2
-2f
-aa
-30
-de
-f2
-25
-42
-1e
-43
-60
-c7
-82
-8c
-82
-41
-ea
-7a
-54
-97
-60
-0f
-5c
-8f
-c4
-91
-d8
-2f
-97
-12
-39
-e9
-65
-ec
-01
-3f
-6e
-0b
-60
-f6
-88
-bd
-46
-cb
-ec
-e7
-2d
-10
-d4
-f7
-4e
-f9
-8b
-80
-41
-5c
-c2
-52
-7f
-36
-88
-5b
-d8
-3f
-4f
-22
-af
-3b
-d7
-25
-4c
-8c
-79
-b1
-97
-79
-1a
-25
-74
-a4
-d7
-66
-78
-81
-22
-7b
-3f
-c5
-af
-11
-9d
-1d
-89
-bd
-db
-a3
-11
-c8
-cc
-5c
-97
-b7
-e7
-0f
-c2
-a3
-4c
-6c
-57
-84
-44
-50
-04
-cf
-3c
-47
-2b
-8b
-16
-87
-2d
-03
-ca
-ee
-36
-7c
-8c
-e1
-55
-87
-bf
-1c
-fb
-4a
-fc
-46
-72
-7b
-c3
-e5
-42
-3e
-22
-ba
-21
-bb
-1f
-2b
-e0
-b5
-be
-b3
-ec
-3c
-b4
-d0
-15
-29
-45
-ed
-0f
-fd
-72
-cd
-70
-bc
-84
-ad
-38
-9c
-da
-c4
-9b
-40
-e5
-7f
-26
-be
-5f
-1a
-e1
-e4
-0b
-3b
-48
-82
-6e
-af
-6a
-e8
-64
-22
-16
-4c
-48
-ea
-bd
-aa
-cd
-2f
-b1
-ef
-f6
-dc
-b8
-7c
-e2
-24
-3f
-5b
-56
-73
-2f
-25
-11
-41
-fc
-c3
-97
-a5
-d0
-1b
-f5
-25
-60
-11
-cb
-49
-c8
-58
-2e
-40
-7d
-fe
-0c
-ed
-5d
-ec
-02
-50
-44
-8b
-cf
-0b
-15
-9f
-37
-70
-66
-5d
-7f
-66
-42
-f7
-fd
-fb
-f0
-e3
-0d
-3a
-c3
-b4
-02
-08
-e5
-87
-76
-17
-e9
-91
-3d
-5c
-59
-38
-18
-a1
-4d
-c7
-4d
-05
-3f
-0d
-0c
-df
-02
-d0
-9b
-2d
-d0
-82
-80
-00
-58
-fb
-8b
-9f
-eb
-c0
-09
-52
-24
-21
-fa
-67
-6f
-9e
-0a
-f7
-7e
-0f
-19
-d3
-92
-ce
-3b
-ed
-95
-1c
-8a
-a5
-b1
-70
-c0
-0d
-1e
-d4
-84
-d1
-50
-06
-5a
-81
-7f
-c9
-fd
-a5
-c6
-24
-4f
-4d
-d5
-e6
-63
-30
-70
-9f
-a7
-54
-bb
-8d
-b2
-1e
-39
-70
-1e
-40
-23
-67
-31
-04
-e5
-85
-f8
-ef
-b7
-6e
-24
-cd
-57
-79
-c8
-6c
-b9
-8a
-1c
-91
-c6
-f6
-d2
-a3
-3a
-0b
-f8
-1c
-d9
-da
-73
-37
-e2
-8a
-42
-50
-8f
-52
-40
-0e
-b1
-f7
-60
-2a
-f5
-8a
-6c
-8e
-6e
-bf
-e0
-b4
-c2
-53
-97
-ae
-99
-f5
-b4
-f5
-1f
-52
-03
-60
-ad
-0c
-63
-9a
-2a
-b2
-e4
-e8
-7c
-75
-09
-86
-04
-04
-19
-19
-6b
-ec
-fb
-a6
-66
-e5
-c2
-61
-6b
-86
-97
-1d
-34
-8f
-00
-9d
-71
-22
-86
-5e
-98
-1d
-8c
-4d
-b6
-34
-4b
-ab
-df
-c4
-95
-f3
-ea
-a7
-2a
-38
-17
-fa
-43
-82
-f9
-25
-c7
-f0
-19
-25
-32
-9d
-75
-cc
-77
-bf
-50
-e2
-02
-f8
-9b
-67
-e2
-a6
-f7
-59
-f8
-76
-1e
-df
-bf
-28
-ef
-4d
-a3
-36
-74
-01
-b0
-65
-e2
-42
-49
-b6
-f0
-2e
-ea
-f3
-ea
-2a
-61
-4c
-db
-5d
-50
-2c
-bc
-8a
-fe
-7a
-b8
-30
-e6
-26
-40
-bc
-d4
-02
-a9
-b7
-4f
-8f
-b1
-8b
-c4
-d9
-58
-a3
-6c
-d2
-ba
-f5
-a1
-af
-1f
-8f
-17
-8d
-aa
-95
-7b
-a3
-75
-0a
-70
-ac
-7d
-5a
-d7
-75
-28
-f4
-37
-da
-bd
-99
-24
-67
-14
-69
-d4
-67
-f3
-7c
-53
-2d
-d6
-d3
-70
-45
-0c
-40
-be
-1b
-15
-0c
-b4
-6a
-36
-bd
-1c
-1b
-0b
-db
-e5
-2d
-76
-07
-b1
-37
-66
-99
-93
-b4
-d3
-42
-97
-1a
-08
-a4
-a8
-80
-72
-31
-dc
-77
-e9
-8f
-92
-6e
-46
-65
-d8
-38
-75
-96
-e6
-be
-10
-b3
-2a
-b2
-a3
-d4
-67
-f6
-2b
-85
-7e
-3e
-6e
-6d
-c0
-93
-32
-6b
-0f
-00
-c0
-a7
-df
-13
-96
-b1
-4b
-eb
-4f
-4c
-61
-3e
-0c
-96
-08
-fb
-25
-6e
-06
-3b
-a7
-3b
-fd
-0c
-b6
-34
-57
-f5
-54
-cd
-7b
-4d
-51
-67
-dc
-4a
-09
-66
-f6
-b9
-05
-a3
-73
-94
-bf
-4d
-61
-de
-fc
-0d
-cf
-ee
-94
-5c
-71
-45
-d2
-52
-e0
-ba
-a7
-0f
-3f
-8e
-5f
-0d
-96
-05
-04
-05
-18
-f9
-64
-87
-27
-55
-fd
-f0
-f1
-44
-c7
-e4
-50
-b9
-42
-7a
-8a
-48
-7b
-18
-98
-5a
-aa
-eb
-17
-c4
-9d
-04
-b1
-d2
-f7
-c3
-4b
-77
-62
-34
-b8
-46
-15
-f6
-73
-36
-de
-33
-37
-50
-df
-be
-58
-0d
-f1
-4e
-ec
-1b
-c0
-89
-23
-11
-d2
-ae
-74
-ca
-c7
-3d
-50
-54
-1c
-0c
-5e
-ba
-a6
-80
-38
-8f
-c6
-ee
-7b
-d7
-91
-c6
-ce
-17
-97
-fa
-67
-d7
-36
-2b
-da
-44
-0e
-07
-88
-d2
-95
-b5
-06
-07
-1b
-36
-61
-99
-0b
-5f
-d2
-ea
-b1
-9d
-02
-cc
-e7
-a1
-04
-34
-06
-ff
-34
-3a
-5f
-83
-6a
-ea
-d9
-46
-28
-57
-7d
-a7
-5c
-c7
-69
-87
-9c
-44
-07
-94
-a2
-b2
-b9
-54
-11
-a0
-c7
-1b
-d8
-06
-43
-10
-83
-48
-17
-ab
-bc
-56
-79
-96
-e1
-af
-34
-f1
-66
-d3
-65
-c8
-67
-b6
-ab
-17
-2a
-cd
-3d
-68
-72
-fd
-9d
-d4
-07
-95
-36
-a0
-84
-cd
-65
-1e
-81
-22
-6b
-ce
-b0
-42
-dc
-8e
-4c
-3c
-6d
-3b
-fb
-ec
-33
-c5
-1b
-7a
-55
-ce
-72
-2d
-e7
-09
-f5
-b6
-64
-76
-8e
-1a
-63
-af
-ed
-ae
-c5
-c7
-03
-c3
-57
-c3
-88
-af
-3e
-66
-20
-d5
-04
-55
-15
-e5
-c0
-b4
-4c
-7d
-1b
-9a
-f5
-ee
-ad
-4a
-d0
-f8
-ce
-ff
-d5
-bf
-17
-d6
-5e
-c6
-3e
-eb
-87
-ed
-22
-50
-cf
-46
-5b
-b2
-52
-cf
-8b
-d8
-b5
-84
-96
-45
-03
-d5
-d9
-d3
-f9
-95
-63
-d5
-5f
-0e
-06
-44
-10
-e2
-14
-ce
-c7
-5e
-fc
-5f
-e8
-0e
-25
-46
-4d
-ea
-ea
-a9
-6e
-b0
-ae
-f9
-3b
-24
-96
-86
-f9
-a5
-4d
-2b
-48
-b5
-1d
-6c
-4d
-a0
-67
-6d
-2f
-cd
-5f
-c9
-b8
-a8
-f8
-e0
-48
-17
-d6
-06
-56
-57
-f7
-1c
-db
-4e
-cd
-6c
-da
-07
-20
-91
-a6
-d8
-ac
-48
-aa
-6a
-28
-2c
-bc
-0c
-74
-c9
-66
-db
-ad
-88
-ca
-d9
-2b
-8b
-2f
-9f
-ab
-17
-e2
-cd
-c4
-19
-97
-f6
-36
-fe
-9c
-21
-3a
-2e
-da
-4c
-da
-96
-99
-f4
-79
-6b
-df
-43
-81
-50
-50
-dd
-9c
-36
-e5
-43
-7b
-98
-24
-4e
-90
-2c
-39
-36
-bc
-72
-15
-60
-9b
-1f
-08
-ed
-05
-95
-4e
-0c
-72
-4b
-69
-0d
-9c
-2a
-61
-b2
-21
-38
-36
-04
-41
-39
-87
-65
-23
-f7
-fb
-57
-e0
-6d
-0b
-7c
-79
-fb
-65
-2d
-5f
-66
-57
-e9
-77
-d5
-98
-2b
-6a
-48
-f6
-b9
-04
-d7
-ae
-35
-61
-48
-16
-b4
-a6
-a9
-39
-f3
-8c
-9a
-74
-a4
-f9
-ed
-ad
-9c
-6b
-ab
-bc
-d4
-f5
-52
-69
-f6
-1c
-66
-af
-9e
-7c
-f5
-fd
-0c
-ca
-2d
-1c
-03
-83
-c5
-aa
-91
-c5
-2e
-7b
-89
-ae
-94
-bd
-e9
-af
-54
-57
-65
-1e
-3c
-03
-c3
-2b
-71
-09
-c3
-9e
-b6
-f8
-be
-18
-cc
-53
-8f
-d5
-7d
-14
-46
-27
-8c
-6d
-e5
-7e
-03
-6b
-ce
-bf
-aa
-2c
-21
-37
-64
-70
-26
-2c
-e9
-d9
-eb
-93
-f0
-74
-06
-46
-85
-32
-4a
-b6
-d1
-fe
-c8
-22
-af
-f1
-10
-12
-dc
-6f
-8e
-cb
-10
-2e
-67
-01
-44
-01
-a5
-ab
-e8
-61
-1e
-d5
-c2
-bc
-5d
-55
-81
-9d
-56
-26
-be
-52
-d3
-d7
-03
-98
-95
-3d
-2c
-c2
-bd
-fa
-bc
-98
-d6
-cf
-d9
-90
-2d
-3a
-3d
-06
-f1
-91
-f9
-28
-8d
-8e
-7c
-21
-15
-91
-4f
-76
-5c
-99
-7c
-82
-d9
-50
-4b
-b1
-f4
-00
-70
-04
-d1
-21
-4e
-5e
-d0
-fc
-31
-17
-d0
-29
-80
-3e
-b9
-80
-9e
-c1
-e1
-4d
-fc
-e8
-d2
-7b
-51
-5d
-21
-e5
-cf
-c3
-5a
-1b
-c2
-5f
-ce
-9a
-a2
-53
-2a
-c6
-1b
-bf
-7e
-7b
-ad
-d4
-4f
-86
-2a
-9b
-64
-e9
-0b
-01
-c0
-92
-49
-b7
-0b
-e2
-8f
-48
-a9
-0f
-b9
-8e
-ae
-04
-cd
-ba
-d4
-2d
-d3
-5f
-01
-2b
-bd
-c1
-b7
-c9
-6e
-7c
-84
-e4
-de
-34
-6d
-01
-b7
-a4
-ab
-5a
-3f
-82
-81
-2b
-71
-f5
-66
-70
-70
-f0
-0f
-ad
-c6
-39
-74
-dd
-5e
-cc
-31
-d5
-29
-b1
-ce
-a4
-89
-e7
-7e
-61
-3f
-c5
-06
-be
-29
-d0
-51
-9d
-56
-db
-39
-aa
-99
-b6
-4d
-d1
-80
-f3
-59
-f7
-81
-96
-75
-09
-12
-e7
-79
-ec
-11
-01
-30
-23
-b4
-39
-89
-cc
-3a
-d7
-95
-18
-eb
-05
-92
-f2
-a8
-8c
-80
-38
-e7
-a9
-c8
-af
-eb
-b1
-7a
-d4
-9b
-83
-4b
-e1
-27
-ee
-aa
-89
-7a
-cb
-1b
-c4
-06
-6e
-48
-67
-e5
-66
-b5
-80
-cc
-4d
-54
-18
-17
-a1
-96
-c2
-7e
-0e
-97
-83
-f4
-06
-ec
-82
-cf
-d5
-57
-78
-a1
-a0
-02
-76
-0c
-7c
-5f
-7f
-d6
-4e
-d1
-61
-13
-04
-e0
-ca
-1a
-ed
-b0
-da
-e2
-7b
-5f
-6c
-e5
-c5
-a8
-ec
-f4
-ea
-54
-fc
-d5
-f4
-56
-6f
-80
-ef
-43
-b8
-02
-10
-08
-93
-c0
-39
-8b
-1d
-37
-c5
-48
-a9
-95
-1e
-cf
-d6
-5d
-fb
-43
-73
-0d
-9b
-59
-41
-77
-bf
-6c
-09
-d9
-2c
-56
-11
-55
-23
-d1
-9b
-a0
-bd
-2c
-30
-c0
-ab
-f0
-15
-85
-39
-b3
-3f
-e9
-2e
-78
-47
-8f
-25
-60
-50
-34
-ba
-10
-26
-32
-a1
-5a
-f1
-c5
-eb
-47
-9a
-a2
-cc
-9c
-ae
-22
-94
-09
-2c
-61
-a1
-45
-8e
-f7
-12
-92
-aa
-40
-1f
-d3
-8e
-65
-b9
-5d
-35
-c0
-71
-a6
-d0
-4f
-a2
-47
-14
-d5
-e9
-2b
-dc
-1d
-f6
-32
-5e
-7d
-e3
-10
-c5
-d3
-0a
-ad
-aa
-93
-66
-cc
-4c
-55
-d5
-2b
-64
-9f
-7a
-97
-5d
-b2
-86
-94
-28
-8f
-d3
-33
-db
-0e
-1b
-9a
-ff
-a0
-e8
-ba
-6d
-07
-82
-86
-59
-ed
-5c
-9a
-4c
-88
-30
-04
-f1
-44
-04
-7e
-11
-40
-cd
-eb
-b0
-95
-57
-3c
-e5
-5f
-23
-00
-90
-2a
-01
-16
-bd
-09
-cc
-ad
-b4
-88
-76
-9f
-c7
-ba
-9d
-5d
-81
-e9
-6b
-5e
-91
-74
-53
-ed
-43
-08
-a3
-dc
-f8
-66
-41
-3d
-0a
-50
-d4
-5a
-ad
-06
-9b
-96
-f9
-ca
-e3
-09
-4c
-ef
-33
-2d
-b0
-a0
-23
-f4
-2c
-9d
-19
-fb
-82
-41
-db
-97
-51
-d4
-21
-7c
-63
-66
-b5
-28
-f2
-ff
-6e
-62
-af
-94
-af
-06
-9e
-4a
-e2
-01
-20
-71
-82
-be
-3f
-90
-3b
-a8
-3b
-86
-bd
-20
-34
-8d
-64
-73
-da
-0d
-06
-21
-77
-c1
-33
-5c
-00
-3c
-e1
-de
-9c
-fa
-91
-cf
-26
-c6
-99
-a5
-61
-a2
-77
-a2
-3d
-ac
-21
-bf
-e6
-21
-07
-a3
-31
-05
-6d
-a4
-b1
-c7
-9d
-98
-14
-7a
-19
-31
-2f
-04
-e5
-65
-aa
-19
-06
-06
-6b
-e5
-b6
-e4
-bf
-63
-90
-35
-c6
-d9
-49
-91
-d1
-1c
-46
-3a
-25
-c6
-18
-83
-f4
-92
-cb
-ab
-8c
-81
-87
-77
-50
-02
-1b
-25
-51
-f9
-39
-c4
-3e
-31
-5b
-96
-50
-0b
-8f
-2b
-3b
-68
-b3
-93
-1e
-a0
-55
-49
-74
-6e
-18
-5f
-87
-03
-4b
-37
-0d
-42
-da
-85
-46
-d9
-63
-bf
-0f
-13
-aa
-a4
-cc
-fc
-35
-a9
-d7
-af
-98
-b1
-5b
-6a
-b5
-ec
-b3
-95
-11
-a6
-9c
-60
-c6
-40
-e9
-d8
-08
-38
-74
-4d
-88
-33
-b5
-a3
-46
-c9
-3e
-2d
-42
-aa
-9a
-54
-47
-c8
-fe
-e5
-25
-f3
-47
-23
-7b
-b8
-f7
-77
-b3
-6d
-ae
-96
-53
-ee
-09
-d6
-6c
-07
-a0
-1f
-aa
-db
-85
-b2
-58
-8f
-50
-01
-39
-48
-40
-74
-a5
-60
-61
-fc
-80
-1e
-63
-2a
-e6
-5d
-73
-b5
-cf
-88
-7f
-22
-da
-29
-2f
-ab
-9e
-51
-5a
-b6
-d7
-07
-51
-88
-82
-96
-f5
-9e
-bf
-53
-43
-3b
-90
-17
-9a
-6a
-f5
-74
-e4
-99
-f3
-62
-82
-c7
-47
-ad
-b5
-d0
-c9
-04
-1f
-73
-68
-4d
-b9
-f5
-d8
-3d
-44
-3e
-91
-29
-2c
-2b
-9d
-f5
-2f
-d9
-22
-db
-16
-8d
-15
-0e
-d9
-6e
-36
-5f
-9b
-05
-10
-15
-a0
-17
-a1
-cc
-20
-0c
-35
-32
-eb
-cf
-40
-a2
-84
-a2
-45
-9d
-8b
-45
-ae
-53
-a4
-78
-1a
-bd
-95
-82
-5e
-3e
-23
-eb
-04
-10
-87
-7d
-5d
-d0
-e3
-85
-9d
-c5
-65
-07
-18
-82
-37
-ab
-67
-41
-68
-f2
-08
-f7
-85
-d2
-46
-80
-d7
-d3
-15
-97
-bc
-5a
-d6
-02
-91
-77
-3e
-d7
-38
-25
-d4
-5f
-fa
-1f
-03
-c4
-84
-b5
-3a
-a7
-03
-e1
-0b
-4f
-4c
-50
-1a
-c8
-86
-69
-84
-dd
-18
-cb
-06
-c5
-b4
-fd
-23
-9e
-52
-f6
-12
-09
-c6
-ec
-e1
-c6
-bc
-36
-ae
-5b
-e5
-f8
-ab
-a4
-3b
-16
-bd
-d5
-2f
-fd
-10
-07
-3b
-37
-14
-71
-b9
-17
-79
-82
-66
-c3
-03
-d3
-6d
-fd
-ce
-ec
-70
-f1
-39
-a7
-c2
-f5
-3b
-54
-34
-42
-a9
-8b
-c1
-0d
-19
-67
-12
-b7
-62
-d7
-9b
-bb
-f9
-e2
-e8
-e1
-2c
-d9
-d0
-f0
-08
-3e
-0b
-9d
-c0
-74
-32
-e2
-ec
-24
-e5
-74
-44
-b5
-e2
-e2
-39
-fa
-84
-70
-76
-bd
-79
-08
-85
-00
-5b
-5a
-58
-f3
-2d
-c3
-8c
-fc
-74
-42
-b0
-6d
-d6
-ef
-70
-98
-37
-ef
-af
-9c
-46
-7e
-f1
-35
-fd
-2e
-19
-55
-24
-97
-3a
-dd
-bd
-16
-a0
-47
-dd
-2b
-1d
-ff
-c3
-2c
-65
-7a
-fe
-49
-b4
-8b
-b0
-2c
-be
-6f
-65
-14
-76
-80
-00
-ab
-56
-9a
-97
-38
-02
-c9
-cd
-2f
-70
-db
-e2
-b3
-d0
-f4
-b6
-e2
-42
-3e
-f9
-54
-d4
-03
-4b
-8f
-f0
-9d
-b8
-f4
-46
-10
-8f
-59
-ec
-6b
-54
-35
-22
-1e
-d9
-8b
-d2
-b2
-df
-c5
-6c
-8b
-33
-7c
-b5
-97
-5d
-6f
-3e
-8d
-1c
-19
-3b
-a5
-dd
-b6
-99
-d1
-0d
-06
-b2
-fa
-65
-09
-db
-e8
-e1
-3b
-c2
-94
-95
-3d
-da
-21
-3e
-37
-92
-0e
-86
-4d
-52
-c8
-dd
-d7
-84
-70
-ec
-7f
-6b
-ee
-54
-9a
-67
-81
-44
-81
-70
-9d
-1d
-ab
-24
-8c
-d7
-4a
-8e
-13
-0b
-11
-5f
-1c
-41
-10
-ab
-89
-7e
-c7
-77
-03
-b2
-77
-62
-e7
-61
-28
-c9
-05
-96
-f0
-7b
-e7
-62
-c9
-00
-d6
-15
-00
-68
-ff
-92
-c9
-f0
-6c
-cd
-17
-96
-fa
-31
-81
-05
-4a
-8e
-f0
-83
-69
-63
-95
-7b
-95
-1f
-71
-47
-fb
-02
-a2
-c4
-e6
-dc
-e8
-5f
-03
-6c
-e4
-86
-b5
-23
-42
-10
-48
-84
-70
-35
-41
-e0
-d8
-98
-3c
-1a
-d7
-e7
-e0
-08
-eb
-8b
-49
-03
-ed
-08
-78
-08
-a7
-74
-d7
-b9
-ff
-17
-a6
-4f
-79
-18
-27
-3e
-05
-87
-c2
-dd
-e0
-c4
-a0
-da
-34
-12
-5b
-21
-b5
-4e
-f0
-b6
-1a
-ca
-2f
-29
-a2
-35
-86
-cb
-11
-94
-9d
-aa
-ec
-99
-12
-7b
-2d
-3b
-11
-25
-68
-14
-73
-67
-35
-36
-d4
-f3
-32
-40
-08
-25
-46
-64
-b3
-e0
-51
-bd
-0b
-7f
-29
-45
-46
-cb
-0f
-23
-a7
-d7
-20
-62
-21
-75
-6b
-51
-28
-37
-81
-1a
-79
-25
-93
-7f
-c1
-00
-4f
-d8
-5f
-82
-e9
-dd
-d2
-35
-18
-28
-24
-21
-de
-c6
-94
-44
-1d
-4c
-46
-de
-d5
-7e
-9b
-6a
-d1
-b4
-7b
-dd
-07
-f6
-d5
-e7
-77
-81
-18
-c9
-a6
-ef
-0c
-3f
-15
-26
-3d
-41
-8f
-8b
-7a
-16
-80
-84
-af
-fa
-f5
-61
-33
-8d
-65
-e2
-5d
-02
-16
-0c
-a9
-a5
-11
-d6
-66
-90
-18
-ee
-c4
-09
-03
-34
-1b
-b4
-d3
-96
-d8
-37
-01
-55
-f4
-5d
-ba
-cf
-f9
-a9
-a5
-7c
-e3
-fd
-ec
-e2
-20
-6d
-9d
-97
-28
-ff
-1f
-76
-13
-9e
-cc
-a4
-b7
-77
-dd
-8b
-1c
-6b
-b1
-2c
-18
-8f
-ea
-02
-da
-ee
-36
-c4
-e4
-b4
-35
-3b
-28
-1a
-ab
-e4
-dd
-03
-0d
-48
-7d
-0c
-a4
-f5
-fe
-97
-37
-e1
-e2
-48
-37
-04
-e9
-e6
-5a
-9c
-f4
-35
-43
-18
-af
-55
-2b
-0d
-bb
-d0
-d8
-82
-ff
-18
-1c
-89
-c7
-e3
-8a
-32
-5f
-d3
-3f
-f1
-48
-52
-df
-07
-8f
-d3
-47
-8b
-9e
-36
-00
-47
-3e
-7e
-8c
-eb
-ca
-43
-7e
-ba
-66
-6a
-b1
-70
-aa
-bf
-a9
-7c
-aa
-05
-c4
-a5
-82
-df
-99
-6b
-09
-c4
-ba
-b3
-46
-94
-14
-67
-de
-ad
-4b
-38
-70
-50
-18
-b0
-a5
-51
-52
-1c
-4b
-f8
-5b
-d2
-c2
-90
-2a
-ac
-77
-a5
-2a
-34
-35
-39
-16
-d4
-63
-f7
-51
-c7
-11
-86
-3f
-9c
-3c
-59
-5c
-b2
-8d
-d3
-79
-60
-47
-68
-0c
-05
-1a
-e0
-08
-b7
-4d
-1f
-43
-c9
-e6
-e8
-02
-b0
-d5
-49
-99
-04
-bc
-ee
-f2
-94
-35
-d3
-0d
-0f
-08
-09
-6b
-17
-40
-9c
-4a
-9f
-77
-90
-d9
-14
-9b
-1e
-db
-f8
-ec
-9f
-37
-ce
-9c
-3f
-c7
-bc
-c2
-d4
-d5
-1a
-80
-1e
-9b
-56
-47
-4d
-fe
-ad
-ae
-b5
-b6
-3e
-1d
-e9
-50
-f7
-5c
-89
-3d
-bd
-40
-b4
-82
-2a
-8c
-5a
-7d
-1b
-68
-92
-63
-0a
-9e
-18
-8a
-06
-83
-98
-77
-a1
-fc
-29
-23
-5c
-97
-c9
-a6
-a5
-1a
-4b
-85
-5c
-f8
-e9
-99
-dd
-4d
-32
-37
-20
-4e
-a6
-23
-ce
-a5
-cc
-b0
-c3
-9a
-6a
-1a
-8d
-70
-f8
-98
-94
-6f
-5e
-4a
-a1
-6b
-f6
-11
-4f
-a9
-a7
-0b
-23
-66
-49
-f4
-78
-a1
-43
-b1
-87
-94
-5f
-5e
-b9
-87
-03
-aa
-49
-7f
-57
-06
-90
-7f
-27
-1e
-2f
-b2
-5b
-4e
-20
-d2
-d7
-ea
-64
-1c
-34
-2e
-1a
-f4
-16
-43
-2c
-ed
-0a
-cc
-bf
-b1
-f0
-2e
-81
-7f
-d3
-28
-37
-4d
-38
-c4
-a1
-fb
-f4
-2f
-fe
-ec
-68
-82
-1c
-db
-f8
-e5
-33
-20
-0f
-ac
-37
-de
-38
-97
-74
-74
-75
-c8
-bd
-75
-bb
-c1
-b1
-6c
-59
-2f
-8c
-90
-ec
-d5
-c7
-21
-a8
-69
-20
-b2
-4b
-84
-f5
-5f
-91
-bd
-55
-5b
-d6
-0c
-ef
-f2
-aa
-95
-c1
-a5
-be
-34
-04
-12
-6b
-c8
-f3
-81
-0d
-a1
-88
-7c
-d5
-6b
-d1
-49
-34
-7b
-a2
-43
-b9
-91
-f4
-b8
-1b
-51
-8f
-f3
-14
-61
-73
-86
-9f
-10
-17
-08
-f0
-63
-45
-b8
-23
-50
-b0
-9f
-4c
-33
-a7
-79
-a8
-07
-ff
-92
-1f
-7c
-f9
-79
-91
-d0
-96
-69
-86
-ce
-1b
-ac
-c2
-df
-2a
-af
-48
-3a
-24
-d1
-a1
-5a
-c9
-38
-e1
-56
-1c
-a7
-a4
-38
-80
-84
-92
-c7
-44
-38
-19
-38
-b0
-f3
-97
-63
-93
-a9
-35
-e5
-4f
-67
-81
-97
-50
-08
-0c
-59
-25
-fe
-fd
-2b
-2b
-2e
-5d
-44
-8f
-99
-af
-0e
-1a
-ee
-4b
-58
-e4
-d6
-b5
-64
-35
-b6
-1d
-46
-35
-b1
-61
-da
-34
-04
-a5
-16
-36
-8f
-3b
-a8
-d8
-8e
-14
-c4
-f2
-e0
-a1
-6f
-28
-b4
-4a
-a8
-a7
-a8
-ec
-7b
-58
-4b
-4b
-77
-c3
-5d
-e7
-58
-be
-91
-58
-a4
-6e
-ae
-c3
-f5
-72
-07
-71
-aa
-7e
-a2
-b8
-d1
-73
-49
-91
-ba
-33
-90
-53
-d5
-90
-fa
-33
-ed
-d5
-db
-1d
-42
-ad
-6e
-5e
-aa
-05
-4f
-ae
-bf
-d6
-98
-18
-8c
-e0
-93
-83
-18
-74
-b6
-67
-d7
-b3
-2b
-39
-61
-5d
-03
-5b
-32
-19
-e7
-60
-f5
-74
-d2
-3b
-0d
-73
-6d
-d8
-33
-7d
-4d
-ef
-4e
-a4
-2d
-d5
-9e
-b6
-67
-e0
-e8
-95
-d9
-18
-f5
-d5
-6a
-9a
-9e
-e1
-ab
-11
-e5
-8e
-10
-ea
-68
-d7
-61
-34
-32
-3b
-cc
-dc
-2b
-3e
-79
-d9
-98
-02
-96
-cd
-04
-91
-9c
-8c
-bd
-65
-05
-a5
-97
-ef
-d8
-be
-dd
-dc
-e4
-0e
-ee
-78
-7b
-b5
-92
-23
-61
-17
-e4
-4c
-89
-d9
-b5
-11
-df
-26
-4c
-aa
-51
-1e
-83
-91
-9d
-38
-44
-1f
-c7
-dc
-48
-51
-16
-75
-75
-a5
-17
-b9
-62
-32
-8d
-f4
-97
-5e
-f9
-f7
-77
-60
-c0
-9c
-49
-63
-31
-e2
-41
-67
-7d
-bd
-73
-bc
-86
-53
-09
-56
-d1
-97
-31
-35
-b3
-08
-57
-6e
-4b
-3c
-11
-44
-a8
-06
-1f
-67
-0a
-b8
-cc
-05
-a8
-dd
-af
-63
-0e
-a0
-00
-59
-bb
-a6
-fd
-f7
-89
-fc
-7f
-35
-9f
-5f
-d9
-e1
-84
-b3
-8b
-fc
-c7
-05
-b2
-3c
-21
-4f
-f8
-86
-1f
-b3
-49
-77
-b6
-ff
-c2
-a6
-4e
-f7
-3d
-b6
-3d
-84
-c3
-13
-ba
-ce
-35
-44
-f2
-5f
-6f
-bb
-8c
-5e
-15
-0f
-b4
-7f
-2d
-37
-5c
-cb
-91
-16
-9e
-3e
-f6
-14
-99
-fa
-04
-e4
-01
-4c
-46
-4d
-2c
-3c
-a1
-63
-5f
-a8
-30
-eb
-67
-74
-94
-91
-58
-73
-4f
-ee
-eb
-f1
-30
-2c
-03
-f7
-41
-2d
-06
-e8
-dd
-10
-6c
-82
-22
-9d
-53
-b2
-49
-cf
-ec
-da
-87
-59
-22
-40
-64
-0e
-b0
-7c
-93
-b7
-39
-e4
-63
-e7
-7e
-e9
-6e
-d1
-29
-05
-2d
-8c
-6c
-07
-53
-86
-5c
-1f
-9e
-0f
-d3
-af
-fc
-c8
-2b
-13
-19
-79
-53
-c7
-2a
-09
-92
-a4
-31
-1b
-ec
-b8
-60
-d6
-f1
-de
-8c
-d9
-44
-73
-4e
-1d
-92
-30
-a5
-16
-90
-47
-b0
-b1
-a7
-84
-e5
-2f
-65
-db
-7d
-7f
-72
-64
-3a
-9b
-1e
-f5
-a9
-6c
-76
-6c
-dc
-67
-40
-62
-22
-e5
-7f
-e4
-b8
-53
-d2
-cf
-9f
-6d
-a5
-98
-36
-1d
-b1
-41
-e9
-7e
-f0
-ae
-fa
-b0
-ae
-28
-07
-ec
-8c
-aa
-83
-07
-aa
-59
-a1
-01
-e9
-ec
-be
-ab
-f2
-4f
-74
-db
-a0
-d8
-95
-2d
-fa
-46
-8a
-28
-e0
-ce
-69
-e3
-5b
-f3
-e3
-67
-b2
-c9
-6e
-2e
-12
-8c
-70
-83
-ea
-ff
-bc
-83
-5f
-26
-37
-05
-25
-dc
-d2
-27
-c8
-01
-e4
-f5
-ce
-00
-d5
-91
-1e
-30
-3a
-33
-e1
-34
-ac
-39
-e3
-0e
-aa
-0a
-b5
-3d
-7b
-ab
-5e
-9f
-fc
-26
-f2
-a6
-11
-bd
-5c
-d5
-c9
-bd
-2a
-66
-89
-13
-67
-3f
-32
-e6
-ed
-b3
-d8
-be
-27
-b0
-eb
-fe
-b3
-ff
-5e
-a1
-ed
-67
-eb
-7b
-67
-40
-78
-80
-4e
-38
-47
-00
-1b
-bd
-71
-f6
-70
-87
-89
-df
-97
-5e
-6f
-32
-a8
-70
-21
-e1
-5d
-dd
-c5
-bc
-40
-68
-d7
-8f
-bf
-8a
-4f
-98
-c6
-2e
-8f
-bf
-95
-9f
-f0
-4b
-b9
-db
-d8
-4e
-ea
-ce
-17
-d6
-7a
-d6
-51
-63
-ff
-e0
-da
-de
-5d
-43
-0b
-af
-e0
-26
-ed
-ce
-5b
-13
-e2
-a1
-c4
-a4
-fa
-2c
-b2
-ed
-0d
-96
-98
-ce
-00
-93
-75
-00
-11
-f8
-43
-df
-f5
-6d
-a1
-32
-88
-ad
-ce
-6e
-79
-49
-ae
-96
-bd
-ba
-5e
-a1
-86
-06
-e5
-a8
-19
-fb
-07
-52
-26
-ad
-97
-04
-26
-43
-42
-52
-ec
-63
-e6
-c4
-4d
-20
-6a
-c1
-0e
-22
-49
-44
-be
-ba
-67
-ca
-ed
-e3
-d9
-73
-7a
-17
-48
-fb
-a7
-31
-83
-09
-e0
-03
-e6
-eb
-79
-28
-ac
-e3
-54
-cb
-50
-de
-d9
-6e
-bc
-fa
-db
-f8
-66
-f9
-1a
-60
-db
-f5
-2c
-18
-91
-07
-1e
-e5
-df
-a4
-f3
-39
-53
-90
-34
-28
-6d
-46
-a3
-98
-2f
-77
-b2
-92
-bb
-9f
-ab
-83
-a5
-c7
-65
-99
-83
-e7
-30
-9d
-72
-ed
-9b
-17
-cb
-7b
-e1
-e9
-e1
-b5
-5f
-01
-50
-e9
-2d
-78
-c2
-4a
-87
-d5
-e8
-63
-f2
-45
-2d
-a6
-c6
-28
-61
-44
-a1
-38
-83
-ba
-b9
-75
-84
-0d
-b3
-c1
-9d
-f3
-cb
-26
-92
-42
-2b
-90
-3c
-39
-18
-6b
-7e
-26
-61
-6a
-ec
-6b
-59
-58
-1a
-ca
-ef
-d5
-38
-69
-51
-37
-16
-b4
-31
-d3
-d2
-3f
-e7
-5c
-af
-c6
-52
-9a
-6a
-13
-c7
-21
-7d
-af
-2e
-1a
-79
-bc
-3a
-d3
-40
-fb
-a7
-7f
-bb
-26
-f1
-c7
-cb
-24
-b9
-cb
-2d
-9f
-fb
-00
-9c
-48
-66
-36
-f0
-0a
-cb
-6e
-da
-67
-20
-0a
-56
-85
-47
-22
-cd
-d9
-6e
-4c
-06
-a9
-ee
-ad
-b3
-53
-78
-4a
-ee
-53
-54
-29
-e9
-11
-27
-a9
-6d
-2f
-de
-f7
-ea
-93
-4f
-ea
-db
-22
-75
-e5
-78
-bd
-ac
-7d
-40
-37
-0d
-e7
-c7
-f8
-64
-92
-44
-e4
-1a
-da
-3a
-e9
-8f
-a8
-88
-7e
-de
-3b
-41
-e3
-8b
-a7
-33
-70
-0b
-b2
-40
-9b
-d4
-c3
-88
-e0
-e9
-81
-45
-09
-1a
-e6
-6a
-eb
-c4
-f5
-d4
-4d
-4c
-20
-12
-70
-2b
-03
-64
-1e
-40
-cf
-31
-07
-fa
-5e
-81
-87
-89
-69
-b1
-51
-a0
-ac
-fe
-a7
-b7
-82
-40
-d7
-e6
-e1
-15
-1f
-92
-f7
-18
-6e
-5d
-17
-0e
-24
-8b
-9b
-21
-1a
-2c
-1c
-09
-f5
-cc
-2b
-6e
-59
-ff
-8f
-c1
-dc
-c9
-ec
-44
-f5
-4b
-49
-16
-12
-8b
-b8
-73
-65
-2d
-ae
-f3
-94
-92
-f9
-e7
-47
-2c
-19
-1d
-b9
-84
-1f
-63
-1a
-f1
-d6
-8b
-16
-98
-5a
-a6
-d6
-30
-2a
-3d
-60
-c1
-00
-77
-8f
-40
-56
-56
-24
-8d
-7d
-34
-97
-b0
-80
-fe
-6b
-15
-16
-36
-bb
-22
-01
-bb
-6d
-b8
-19
-a4
-d1
-8e
-63
-73
-36
-e6
-5d
-d1
-b4
-d2
-36
-93
-2c
-80
-80
-9f
-50
-62
-e6
-a3
-de
-a9
-18
-a4
-5c
-51
-ca
-ee
-04
-ba
-66
-66
-b4
-d6
-59
-78
-af
-12
-c0
-12
-cb
-bf
-0b
-fb
-ce
-cd
-e8
-12
-30
-62
-89
-9e
-12
-39
-dd
-ce
-fa
-62
-4e
-e7
-48
-f5
-2b
-fa
-d7
-58
-79
-73
-c5
-32
-dd
-21
-2c
-15
-e9
-87
-14
-01
-50
-9d
-b5
-10
-c4
-b3
-52
-49
-ec
-85
-05
-cd
-3f
-40
-d0
-24
-85
-30
-3d
-16
-67
-8e
-30
-ea
-7b
-87
-eb
-65
-67
-dd
-16
-e2
-94
-fa
-cd
-c0
-1f
-c8
-08
-6b
-70
-75
-cb
-5d
-d0
-c6
-dd
-06
-af
-d0
-c1
-7a
-85
-a5
-c2
-a7
-81
-4c
-85
-50
-b0
-bf
-9e
-d3
-63
-c8
-cb
-f2
-9e
-3d
-d1
-29
-ac
-ae
-d0
-b9
-ee
-a0
-55
-bd
-49
-4b
-a6
-78
-88
-e0
-42
-11
-06
-94
-ac
-b7
-eb
-80
-d6
-40
-12
-6d
-0f
-31
-1b
-fc
-7d
-b6
-87
-e4
-dc
-73
-06
-69
-aa
-ff
-fd
-21
-21
-91
-1f
-3f
-f9
-da
-4c
-61
-56
-61
-ac
-e7
-e3
-2e
-91
-e1
-a4
-54
-ff
-f5
-46
-ee
-95
-0d
-8a
-c0
-bf
-b8
-e2
-72
-fd
-fb
-26
-79
-6a
-74
-fb
-b0
-97
-c2
-ed
-ba
-9b
-5b
-01
-6a
-ea
-70
-56
-3a
-d5
-20
-20
-89
-fe
-49
-24
-49
-18
-e2
-66
-28
-f2
-76
-0e
-69
-4f
-4c
-49
-0e
-00
-63
-2a
-53
-79
-32
-c7
-2c
-38
-63
-bd
-59
-ec
-e9
-f8
-1c
-2b
-69
-ab
-4c
-f0
-6f
-85
-92
-c1
-2b
-e9
-c3
-ec
-9d
-d8
-84
-a7
-aa
-5f
-17
-ee
-d3
-1d
-36
-1b
-c0
-bb
-75
-48
-44
-2e
-e3
-0b
-c4
-5e
-05
-15
-9f
-d9
-64
-87
-a0
-7c
-69
-28
-0f
-bc
-3b
-36
-50
-59
-4f
-1f
-66
-1b
-90
-ea
-b8
-02
-50
-c7
-15
-4c
-d9
-a5
-71
-7d
-59
-d8
-97
-6c
-02
-d4
-35
-1f
-72
-91
-bd
-0a
-0d
-bd
-0b
-94
-87
-b3
-a1
-87
-b0
-52
-a1
-cf
-03
-b2
-33
-82
-99
-02
-ea
-5d
-63
-a0
-3a
-91
-da
-0b
-67
-9e
-6c
-5a
-8d
-68
-2d
-d5
-01
-22
-4d
-c6
-1a
-44
-26
-21
-22
-78
-27
-b3
-65
-58
-92
-a7
-06
-e3
-90
-ed
-e5
-16
-cc
-c1
-6d
-6d
-d5
-32
-7b
-7e
-06
-42
-b6
-d6
-4c
-dd
-0d
-09
-62
-a2
-e3
-53
-20
-6b
-43
-31
-44
-5f
-c7
-c9
-c2
-d0
-11
-90
-f4
-cf
-dc
-12
-4e
-36
-b1
-65
-19
-65
-12
-5d
-64
-08
-cc
-66
-47
-26
-12
-7a
-18
-5c
-d3
-b1
-19
-82
-01
-cb
-3b
-c9
-ea
-5a
-c0
-ef
-60
-bf
-b7
-9e
-d3
-ea
-c7
-94
-fb
-1f
-26
-6a
-24
-0f
-34
-f0
-de
-0c
-c2
-29
-37
-af
-d6
-14
-5e
-f2
-96
-15
-f0
-19
-73
-dd
-26
-a2
-38
-59
-b4
-bb
-a2
-dc
-d6
-a6
-cf
-6b
-6e
-7f
-26
-3f
-e5
-d0
-38
-73
-0a
-5b
-c0
-bc
-9f
-6c
-1d
-81
-34
-12
-1d
-fe
-43
-84
-36
-8c
-73
-9b
-18
-20
-19
-b6
-be
-b3
-a1
-bc
-a9
-37
-29
-e8
-20
-16
-ca
-4d
-99
-af
-04
-68
-66
-ae
-4c
-fa
-b7
-ae
-11
-7e
-c1
-f1
-c8
-2f
-ef
-9e
-fa
-49
-f9
-36
-16
-2b
-21
-5f
-c6
-f1
-25
-7f
-9c
-59
-46
-83
-bd
-a7
-d0
-64
-82
-50
-0a
-32
-f8
-86
-6a
-31
-89
-c3
-ad
-4c
-0b
-d3
-56
-38
-6e
-a3
-ac
-03
-e9
-99
-a9
-c4
-03
-c1
-d1
-39
-2e
-e2
-1b
-5d
-39
-2f
-9d
-8b
-db
-96
-3c
-dd
-c8
-1c
-e7
-45
-ca
-76
-68
-7c
-ba
-74
-70
-2f
-7d
-60
-1e
-0f
-ba
-33
-55
-3a
-4f
-8f
-43
-43
-6c
-e0
-b7
-49
-de
-74
-c2
-a7
-70
-c2
-cc
-c9
-10
-da
-8d
-f7
-db
-e0
-f1
-8a
-42
-a4
-c8
-6a
-d5
-47
-96
-02
-2f
-d1
-1c
-de
-00
-69
-81
-03
-dc
-97
-86
-af
-69
-ae
-95
-bb
-a8
-15
-90
-3a
-66
-a5
-37
-fd
-f6
-b4
-c5
-36
-df
-14
-05
-4d
-7d
-a1
-48
-4d
-dd
-8b
-eb
-01
-69
-ee
-64
-7b
-b2
-bc
-97
-01
-c7
-f1
-a2
-98
-55
-86
-9b
-58
-44
-65
-5c
-92
-73
-db
-ec
-c0
-48
-b3
-57
-01
-f6
-9f
-4d
-02
-30
-ac
-2d
-65
-2b
-ac
-0f
-43
-11
-e4
-55
-76
-93
-7a
-fe
-cb
-61
-42
-a3
-6d
-31
-6c
-ce
-5b
-13
-8a
-b2
-8f
-2b
-28
-2c
-ea
-6c
-e4
-6a
-81
-0d
-55
-fa
-de
-29
-08
-81
-55
-7f
-19
-f4
-65
-73
-2c
-95
-4f
-07
-f0
-1d
-e4
-86
-ca
-94
-39
-8e
-dc
-e9
-5d
-10
-e5
-6c
-ab
-fa
-ce
-65
-32
-d2
-a0
-bf
-34
-e4
-3e
-05
-84
-8a
-b4
-0c
-79
-dc
-44
-34
-f4
-da
-15
-12
-c6
-31
-27
-27
-a3
-b7
-1a
-88
-67
-ab
-b7
-c5
-37
-83
-b9
-eb
-8c
-de
-95
-28
-f1
-7f
-7e
-ac
-53
-ec
-fb
-40
-94
-82
-e1
-55
-72
-d1
-7b
-2b
-34
-e2
-4e
-05
-f6
-16
-1a
-c4
-df
-bb
-2f
-4e
-f1
-83
-a0
-e0
-34
-2a
-56
-55
-e2
-5e
-78
-41
-cd
-70
-19
-68
-3d
-49
-40
-1e
-22
-35
-78
-1e
-b4
-93
-46
-b4
-2d
-74
-76
-4c
-3d
-86
-3d
-83
-84
-39
-50
-dc
-8f
-25
-4d
-e2
-30
-6d
-b7
-05
-8a
-33
-d2
-97
-ea
-10
-67
-33
-e7
-93
-8e
-bc
-74
-c5
-a3
-60
-88
-d0
-1c
-db
-c4
-95
-25
-fc
-1a
-6b
-ba
-ba
-30
-71
-1e
-08
-42
-50
-e6
-25
-ab
-93
-d3
-cf
-a1
-3f
-9f
-9d
-a1
-80
-81
-ba
-33
-3f
-0b
-79
-1a
-26
-c5
-17
-87
-78
-34
-ae
-a6
-35
-17
-de
-ee
-ee
-f6
-28
-43
-38
-0b
-da
-a7
-45
-77
-c4
-c4
-73
-83
-0f
-b0
-25
-00
-6e
-da
-f8
-ce
-55
-de
-ee
-fa
-4c
-f0
-b7
-26
-a0
-fb
-13
-25
-e5
-94
-9e
-88
-0b
-b4
-8a
-b4
-58
-18
-f8
-2b
-d6
-43
-52
-ec
-b5
-32
-37
-6b
-62
-28
-77
-1a
-a0
-1c
-28
-bd
-c8
-1b
-9a
-9d
-49
-37
-33
-29
-25
-69
-18
-cd
-cf
-b5
-29
-9e
-3e
-0d
-8e
-72
-6a
-df
-04
-c0
-95
-75
-08
-d8
-b4
-63
-b2
-74
-cc
-e4
-a0
-6b
-b5
-4c
-b3
-d8
-61
-96
-b3
-9c
-a9
-05
-30
-1c
-23
-83
-ee
-73
-44
-60
-7f
-c6
-31
-e4
-ec
-ba
-1e
-67
-f7
-48
-4b
-53
-7a
-76
-01
-14
-17
-c9
-51
-01
-ab
-01
-dc
-5f
-fb
-ce
-e3
-39
-b2
-08
-dd
-8c
-ff
-82
-d1
-75
-d9
-43
-65
-9e
-b0
-c7
-ff
-46
-6a
-2c
-bb
-c0
-79
-26
-2a
-bf
-71
-ae
-bc
-a5
-fc
-ab
-6c
-88
-e3
-1e
-8e
-31
-eb
-77
-12
-89
-a2
-08
-e1
-74
-b5
-75
-8e
-6f
-be
-88
-3a
-91
-70
-ec
-a7
-6d
-3b
-8e
-fc
-43
-46
-8a
-bb
-4b
-0f
-25
-ab
-2f
-c7
-a5
-a4
-61
-57
-67
-7f
-9e
-5b
-19
-b7
-c6
-9c
-d9
-48
-23
-eb
-d8
-0a
-d7
-61
-a8
-13
-fb
-d6
-64
-6e
-02
-dc
-24
-c5
-1a
-1f
-57
-e4
-fd
-6b
-66
-8c
-6b
-bd
-4f
-ed
-91
-92
-3c
-df
-f5
-11
-16
-f8
-a8
-28
-f1
-36
-81
-19
-24
-49
-0c
-3c
-6e
-b7
-38
-c9
-dc
-d6
-40
-e5
-ac
-8c
-cf
-61
-34
-1a
-22
-a2
-9c
-49
-74
-84
-24
-ad
-dc
-f5
-92
-53
-70
-de
-85
-72
-a8
-0b
-6f
-0b
-ef
-5e
-4e
-8d
-34
-e4
-52
-62
-8b
-57
-52
-b3
-16
-3a
-95
-45
-ae
-43
-34
-ff
-6a
-1f
-47
-45
-14
-f0
-73
-a4
-bb
-f5
-83
-ba
-80
-88
-5e
-1f
-37
-35
-66
-bc
-12
-07
-1e
-43
-f4
-79
-e0
-d6
-fe
-23
-22
-fb
-31
-17
-9f
-1a
-98
-ee
-91
-19
-a0
-c9
-df
-80
-f1
-b1
-34
-48
-0a
-3d
-35
-09
-57
-5d
-bc
-b1
-3c
-30
-8c
-10
-a4
-39
-34
-1f
-8f
-9f
-a7
-80
-e5
-31
-10
-fc
-7b
-12
-18
-9b
-af
-21
-80
-21
-e7
-b6
-77
-db
-62
-ea
-ff
-70
-23
-12
-fc
-f9
-82
-48
-79
-34
-b6
-09
-bc
-ff
-54
-77
-9b
-7a
-45
-00
-41
-d9
-0c
-04
-16
-a5
-88
-ee
-4c
-5a
-20
-35
-8d
-d3
-dc
-40
-a3
-d7
-46
-ed
-8e
-70
-f6
-86
-cc
-94
-b7
-4f
-87
-7e
-74
-eb
-a4
-fa
-72
-d1
-6b
-ba
-59
-17
-1c
-e9
-6a
-c7
-ed
-41
-0b
-07
-37
-4e
-cb
-5f
-f6
-d1
-96
-03
-a0
-6a
-a0
-56
-d8
-b7
-c9
-b5
-9d
-4b
-a7
-a1
-91
-15
-89
-7f
-67
-07
-3f
-72
-da
-04
-98
-a9
-0c
-c4
-75
-2c
-86
-f5
-37
-a8
-46
-ed
-3b
-dc
-3b
-19
-5b
-1a
-4c
-e9
-5a
-da
-5e
-f5
-37
-26
-28
-ca
-b0
-5c
-ea
-35
-8d
-50
-53
-2a
-5e
-b6
-63
-00
-72
-c0
-58
-8a
-1d
-5f
-94
-09
-82
-2f
-72
-9e
-b5
-6d
-42
-34
-36
-e7
-16
-1f
-53
-24
-f3
-b4
-f5
-20
-e6
-97
-18
-0d
-03
-66
-cc
-aa
-69
-2a
-17
-1e
-9d
-09
-d5
-82
-b2
-21
-da
-85
-c3
-62
-f6
-c3
-53
-25
-f0
-f0
-84
-d6
-b6
-5b
-0d
-7f
-70
-17
-7b
-ec
-7a
-b7
-9b
-4c
-b5
-1d
-74
-56
-0a
-bc
-7a
-46
-60
-da
-ed
-b3
-fd
-09
-3c
-f6
-78
-10
-5b
-0d
-49
-84
-8e
-fe
-fa
-cc
-23
-d1
-4e
-69
-76
-7b
-4f
-dd
-0c
-31
-40
-9c
-40
-be
-13
-70
-30
-13
-9d
-ff
-4a
-15
-b5
-4c
-eb
-6b
-c0
-e2
-c5
-8b
-9c
-b3
-2d
-e8
-05
-7f
-01
-d9
-1a
-5a
-2d
-00
-0a
-46
-4e
-d7
-87
-0e
-32
-c9
-13
-28
-c8
-26
-bf
-38
-42
-79
-39
-9f
-78
-20
-83
-d9
-e4
-e0
-c1
-1c
-d7
-eb
-db
-60
-93
-56
-7b
-c6
-c8
-de
-1e
-49
-5e
-c5
-6c
-6a
-57
-1b
-b9
-39
-6c
-42
-a7
-c9
-34
-77
-1c
-9c
-69
-8a
-f9
-c1
-f5
-10
-cd
-c0
-0a
-df
-56
-f0
-41
-65
-27
-13
-08
-f1
-7c
-5b
-9f
-31
-ea
-91
-a2
-45
-d3
-d6
-75
-aa
-55
-40
-00
-00
-40
-04
-00
-01
-06
-22
-01
-00
-00
-00
-00
-00
-00
-00
-00
-3c
-62
-88
-8b
-1b
-05
-20
-00
-00
-00
-00
-80
-00
-00
-00
-3c
-00
-80
-04
-00
-00
-00
-00
-00
-00
-00
-10
-00
-00
-00
-40
-00
-00
-00
-00
-00
-00
-89
-05
-1a
-00
-e0
-44
-30
-00
-00
-00
-00
-00
-00
-aa
-55
-08
-00
-0e
-47
-04
-85
-12
-01
-02
-22
-82
-17
-aa
-55
-05
-00
-65
-46
-ff
-05
-ff
-0b
-0a
-aa
-55
-1a
-00
-8d
-48
-0e
-08
-0f
-ff
-ff
-ff
-16
-17
-ff
-02
-02
-02
-00
-ff
-ff
-12
-07
-ff
-ff
-ff
-09
-01
-00
-03
-ff
-ff
-aa
-55
-02
-00
-ac
-48
-00
-0a
-aa
-55
-03
-00
-af
-48
-05
-02
-05
-aa
-55
-01
-00
-b4
-48
-14
-aa
-55
-01
-00
-b2
-48
-02
-aa
-55
-02
-00
-b6
-48
-02
-06
-aa
-55
-01
-00
-b9
-48
-0a
-aa
-55
-01
-00
-be
-48
-0a
-aa
-55
-02
-00
-bb
-48
-58
-02
-aa
-55
-02
-00
-51
-46
-58
-02
-aa
-55
-01
-00
-54
-46
-64
-aa
-55
-02
-00
-1a
-47
-05
-00
-aa
-55
-01
-00
-53
-46
-64
-aa
-55
-02
-00
-4f
-46
-b0
-04
-aa
-55
-01
-00
-19
-47
-0a
-aa
-55
-02
-00
-1e
-47
-70
-17
-aa
-55
-01
-00
-cf
-43
-08
-aa
-55
-01
-00
-16
-47
-03
-aa
-55
-01
-00
-94
-40
-01
-aa
-55
-01
-00
-c0
-40
-20
-aa
-55
-01
-00
-8b
-48
-20
-aa
-55
-03
-00
-2e
-47
-00
-00
-00
-aa
-55
-08
-00
-78
-46
-00
-34
-ff
-ff
-ff
-ff
-ff
-ff
-aa
-55
-07
-00
-86
-46
-34
-ff
-ff
-ff
-ff
-ff
-ff
-aa
-55
-07
-00
-93
-46
-34
-ff
-ff
-ff
-ff
-ff
-ff
-aa
-55
-0f
-00
-4f
-4e
-03
-00
-20
-20
-00
-03
-00
-22
-22
-00
-03
-00
-30
-23
-00
-aa
-55
-09
-00
-fd
-49
-00
-08
-00
-07
-00
-00
-00
-00
-00
-aa
-55
-01
-00
-be
-4a
-03
-aa
-55
-01
-00
-bd
-4a
-07
-aa
-55
-04
-00
-bf
-4a
-ff
-ff
-1e
-1e
-aa
-55
-01
-00
-60
-4e
-05
-aa
-55
-01
-00
-02
-45
-1e
-aa
-55
-06
-00
-08
-45
-24
-62
-81
-a1
-51
-61
-aa
-55
-05
-00
-fa
-45
-01
-0f
-0f
-0f
-0f
-aa
-55
-01
-00
-38
-47
-02
-aa
-55
-02
-00
-a2
-45
-c0
-12
-aa
-55
-01
-00
-bf
-48
-09
-aa
-55
-04
-00
-d0
-48
-c0
-5d
-00
-00
-aa
-55
-06
-00
-c0
-48
-6a
-63
-00
-80
-bb
-00
-aa
-55
-04
-00
-d4
-48
-f8
-bb
-00
-00
-aa
-55
-06
-00
-c6
-48
-1c
-1f
-01
-00
-77
-01
-aa
-55
-04
-00
-d8
-48
-00
-77
-01
-00
-aa
-55
-01
-00
-55
-46
-94
-aa
-55
-03
-00
-c6
-45
-00
-48
-60
-aa
-55
-02
-00
-34
-46
-05
-00
-aa
-55
-02
-00
-32
-46
-50
-00
-aa
-55
-02
-00
-1c
-47
-64
-00
-aa
-55
-01
-00
-06
-47
-01
-aa
-55
-01
-00
-3c
-47
-02
-aa
-55
-06
-00
-dd
-42
-34
-47
-29
-51
-31
-41
-aa
-55
-01
-00
-97
-43
-07
-aa
-55
-08
-00
-c4
-43
-fb
-00
-48
-08
-fb
-00
-48
-08
-aa
-55
-02
-00
-7d
-47
-96
-00
-aa
-55
-02
-00
-74
-47
-1b
-00
-aa
-55
-02
-00
-9f
-43
-1f
-00
-aa
-55
-04
-00
-76
-47
-23
-00
-27
-00
-aa
-55
-02
-00
-34
-43
-39
-00
-aa
-55
-02
-00
-7a
-47
-13
-00
-aa
-55
-06
-00
-be
-4c
-36
-00
-2e
-00
-32
-00
-aa
-55
-0c
-00
-4c
-43
-1f
-02
-01
-05
-03
-03
-12
-18
-03
-19
-c2
-03
-aa
-55
-11
-00
-5f
-47
-06
-ff
-06
-00
-03
-00
-80
-09
-09
-41
-49
-20
-4d
-6f
-75
-73
-65
-aa
-55
-0b
-00
-6c
-43
-1f
-09
-09
-41
-49
-20
-4d
-6f
-75
-73
-65
-aa
-55
-09
-00
-6d
-42
-08
-41
-49
-20
-4d
-6f
-75
-73
-65
-aa
-55
-09
-00
-1e
-4a
-08
-41
-49
-20
-4d
-6f
-75
-73
-65
-aa
-55
-08
-00
-d5
-42
-06
-00
-09
-00
-20
-00
-2c
-01
-aa
-55
-06
-00
-59
-47
-03
-12
-18
-ff
-00
-00
-aa
-55
-03
-00
-fe
-46
-00
-50
-00
-aa
-55
-02
-00
-f4
-43
-80
-3a
-aa
-55
-01
-00
-fd
-43
-80
-aa
-55
-02
-00
-9b
-4e
-00
-34
-aa
-55
-01
-00
-67
-4e
-ff
-aa
-55
-02
-00
-6c
-4e
-00
-00
-aa
-55
-04
-00
-6f
-4e
-20
-20
-00
-40
-aa
-55
-02
-00
-68
-4e
-00
-00
-aa
-55
-01
-00
-4a
-08
-ff
-aa
-55
-01
-00
-41
-41
-01
-aa
-55
-01
-00
-e9
-45
-07
-aa
-55
-02
-00
-07
-46
-43
-47
-aa
-55
-02
-00
-57
-46
-85
-90
-aa
-55
-02
-00
-5a
-46
-75
-80
-aa
-55
-01
-00
-59
-46
-63
-aa
-55
-01
-00
-3e
-46
-7d
-aa
-55
-01
-00
-1a
-44
-01
-aa
-55
-01
-00
-1d
-44
-02
-aa
-55
-01
-00
-1f
-44
-0a
-aa
-55
-01
-00
-1e
-44
-09
-aa
-55
-06
-00
-44
-46
-94
-00
-78
-00
-80
-00
-aa
-55
-01
-00
-4c
-46
-0c
-aa
-55
-01
-00
-4e
-44
-01
-aa
-55
-04
-00
-b7
-4c
-25
-20
-15
-10
-aa
-55
-11
-00
-d0
-45
-01
-06
-1a
-3a
-4d
-00
-13
-23
-4c
-0f
-2c
-31
-43
-11
-15
-36
-48
-aa
-55
-17
-00
-53
-48
-01
-76
-29
-37
-93
-09
-76
-ff
-4a
-26
-37
-50
-61
-bf
-d1
-16
-bd
-cf
-3f
-77
-d3
-16
-95
-aa
-55
-01
-00
-72
-48
-01
-aa
-55
-0c
-00
-e5
-4c
-0b
-59
-43
-2d
-41
-49
-2d
-4d
-6f
-75
-73
-65
-aa
-55
-10
-00
-c4
-4c
-06
-00
-06
-00
-2b
-00
-90
-01
-06
-00
-09
-00
-20
-00
-2c
-01
-aa
-55
-01
-00
-d5
-4c
-08
-aa
-55
-01
-00
-d9
-4c
-0f
-aa
-55
-01
-00
-dd
-4c
-0e
-aa
-55
-01
-00
-27
-44
-00
-aa
-55
-04
-00
-72
-4c
-26
-0a
-f5
-0c
-aa
-55
-74
-01
-c8
-4a
-ff
-ff
-ff
-ff
-02
-04
-06
-08
-ff
-ff
-ff
-ff
-02
-04
-06
-08
-07
-00
-00
-00
-08
-00
-00
-00
-09
-00
-00
-00
-0a
-00
-00
-00
-0b
-00
-00
-00
-0c
-00
-00
-00
-0d
-00
-00
-00
-0e
-00
-00
-00
-10
-00
-00
-00
-11
-00
-00
-00
-13
-00
-00
-00
-15
-00
-00
-00
-17
-00
-00
-00
-19
-00
-00
-00
-1c
-00
-00
-00
-1f
-00
-00
-00
-22
-00
-00
-00
-25
-00
-00
-00
-29
-00
-00
-00
-2d
-00
-00
-00
-32
-00
-00
-00
-37
-00
-00
-00
-3c
-00
-00
-00
-42
-00
-00
-00
-49
-00
-00
-00
-50
-00
-00
-00
-58
-00
-00
-00
-61
-00
-00
-00
-6b
-00
-00
-00
-76
-00
-00
-00
-82
-00
-00
-00
-8f
-00
-00
-00
-9d
-00
-00
-00
-ad
-00
-00
-00
-be
-00
-00
-00
-d1
-00
-00
-00
-e6
-00
-00
-00
-fd
-00
-00
-00
-17
-01
-00
-00
-33
-01
-00
-00
-51
-01
-00
-00
-73
-01
-00
-00
-98
-01
-00
-00
-c1
-01
-00
-00
-ee
-01
-00
-00
-20
-02
-00
-00
-56
-02
-00
-00
-92
-02
-00
-00
-d4
-02
-00
-00
-1c
-03
-00
-00
-6c
-03
-00
-00
-c3
-03
-00
-00
-24
-04
-00
-00
-8e
-04
-00
-00
-02
-05
-00
-00
-83
-05
-00
-00
-10
-06
-00
-00
-ab
-06
-00
-00
-56
-07
-00
-00
-12
-08
-00
-00
-e0
-08
-00
-00
-c3
-09
-00
-00
-bd
-0a
-00
-00
-d0
-0b
-00
-00
-ff
-0c
-00
-00
-4c
-0e
-00
-00
-ba
-0f
-00
-00
-4c
-11
-00
-00
-07
-13
-00
-00
-ee
-14
-00
-00
-06
-17
-00
-00
-54
-19
-00
-00
-dc
-1b
-00
-00
-a5
-1e
-00
-00
-b6
-21
-00
-00
-15
-25
-00
-00
-ca
-28
-00
-00
-df
-2c
-00
-00
-5b
-31
-00
-00
-4b
-36
-00
-00
-b9
-3b
-00
-00
-b2
-41
-00
-00
-44
-48
-00
-00
-7e
-4f
-00
-00
-71
-57
-00
-00
-2f
-60
-00
-00
-ce
-69
-00
-00
-62
-74
-00
-00
-ff
-7f
-00
-00
-aa
-55
-01
-00
-48
-41
-0c
-aa
-55
-06
-00
-c3
-40
-35
-3f
-64
-db
-7b
-3b
-aa
-55
-01
-00
-a7
-40
-20
-aa
-55
-03
-00
-c9
-40
-00
-08
-b4
-aa
-55
-01
-00
-99
-40
-18
-aa
-55
-01
-00
-1c
-41
-4d
-aa
-55
-0c
-00
-16
-00
-00
-00
-20
-00
-00
-00
-00
-00
-00
-00
-00
-00
-aa
-55
-05
-00
-60
-41
-08
-0e
-05
-03
-00
-aa
-55
-01
-00
-6a
-41
-20
-aa
-55
-02
-00
-9a
-40
-00
-0c
-aa
-55
-05
-00
-43
-41
-ff
-04
-00
-00
-08
-aa
-55
-01
-00
-fa
-01
-5a
-aa
-55
-01
-00
-27
-44
-00
-aa
-55
-04
-00
-23
-44
-00
-07
-ff
-07
-aa
-55
-01
-00
-4f
-44
-a0
-aa
-55
-02
-00
-52
-44
-bc
-02
-aa
-55
-02
-00
-50
-44
-90
-01
-aa
-55
-02
-00
-54
-44
-03
-09
-aa
-55
-03
-00
-49
-41
-88
-40
-ff
-aa
-55
-02
-00
-9c
-40
-49
-41
-aa
-55
-11
-00
-05
-49
-03
-04
-01
-02
-20
-2a
-3f
-15
-14
-1b
-28
-0e
-8a
-8b
-83
-84
-88
-aa
-55
-5a
-00
-19
-49
-09
-5a
-26
-34
-19
-04
-09
-00
-ff
-ff
-09
-5a
-0d
-f0
-1d
-e3
-7d
-d2
-ff
-ff
-09
-5a
-0d
-10
-1d
-ed
-7d
-80
-ff
-ff
-1b
-35
-28
-b4
-29
-46
-2a
-96
-2b
-8c
-2c
-6e
-2d
-64
-38
-5f
-39
-0f
-3a
-32
-3b
-47
-42
-10
-ff
-ff
-54
-2e
-55
-f2
-61
-f4
-63
-70
-75
-52
-76
-41
-77
-ed
-78
-23
-79
-46
-7a
-e5
-7c
-48
-7e
-77
-7f
-01
-0b
-00
-7f
-00
-09
-00
-ff
-ff
-aa
-55
-26
-00
-73
-4e
-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
-a7
-ff
-b5
-d0
-b6
-00
-ff
-00
-09
-00
-ff
-ff
-aa
-55
-0c
-00
-d1
-49
-05
-b9
-09
-5a
-0b
-72
-0c
-52
-09
-00
-ff
-ff
-aa
-55
-40
-00
-91
-49
-09
-5a
-0d
-10
-0e
-c5
-5b
-9a
-10
-38
-11
-42
-28
-28
-41
-23
-49
-39
-4a
-b0
-4b
-a0
-4c
-90
-4d
-70
-09
-00
-ff
-ff
-09
-5a
-06
-02
-09
-69
-0d
-48
-0e
-9f
-0f
-ba
-09
-00
-ff
-ff
-09
-a5
-26
-34
-19
-04
-60
-07
-69
-04
-7d
-20
-7e
-00
-09
-00
-ff
-ff
-aa
-55
-1c
-00
-dd
-49
-09
-a5
-46
-34
-6a
-c0
-69
-24
-09
-00
-ff
-ff
-09
-5a
-0b
-f3
-09
-00
-ff
-ff
-09
-a5
-0b
-f3
-09
-00
-ff
-ff
-aa
-55
-14
-00
-9e
-4e
-09
-a5
-46
-34
-19
-04
-60
-07
-69
-04
-68
-c3
-7d
-20
-7e
-00
-09
-00
-ff
-ff
-aa
-55
-03
-00
-6c
-4e
-d5
-2d
-00
-55
-aa
-aa
-55
-9a
-f5
-ff
-20
-20
-00
-40
-c0
-30
-00
-04
-c0
-30
-80
-27
-20
-60
-00
-00
-6f
-e0
-cc
-bb
-20
-3a
-00
-07
-20
-20
-00
-17
-6f
-e0
-c5
-a0
-79
-20
-7e
-07
-67
-e0
-c7
-c2
-70
-47
-c3
-00
-6f
-e0
-cc
-e5
-1f
-e0
-fe
-02
-67
-e0
-c7
-c4
-70
-47
-c5
-16
-6f
-20
-cc
-e5
-d8
-c0
-4c
-e6
-d8
-a0
-47
-c6
-20
-40
-7c
-dc
-6f
-e0
-cc
-e5
-1f
-e0
-fe
-04
-67
-e0
-c5
-9f
-20
-60
-00
-00
-6f
-e0
-c5
-a0
-79
-20
-7e
-07
-67
-e0
-cc
-76
-70
-4c
-77
-00
-6f
-e0
-cc
-e5
-1f
-e0
-fe
-02
-67
-e0
-cc
-78
-70
-4c
-79
-16
-6f
-20
-cc
-e5
-d8
-c0
-4c
-e6
-d8
-a0
-4c
-7a
-20
-40
-7c
-dc
-68
-48
-cc
-e5
-18
-40
-84
-04
-da
-20
-4c
-76
-20
-20
-04
-e5
-6f
-e0
-cc
-bb
-20
-3a
-00
-2a
-20
-20
-00
-33
-6f
-e0
-c5
-a0
-79
-20
-7e
-07
-67
-e0
-c7
-c2
-70
-47
-c3
-00
-70
-47
-c4
-02
-70
-47
-c5
-14
-70
-47
-c6
-01
-70
-45
-9f
-05
-20
-60
-00
-00
-6f
-e0
-c5
-a0
-79
-20
-7e
-07
-67
-e0
-cc
-76
-70
-4c
-77
-00
-70
-4c
-78
-02
-70
-4c
-79
-14
-70
-4c
-7a
-01
-d8
-40
-00
-05
-da
-20
-4c
-76
-20
-20
-04
-e5
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-20
-20
-00
-40
-c0
-28
-00
-04
-c0
-28
-80
-1c
-20
-60
-00
-00
-6f
-e0
-cc
-bb
-20
-3a
-00
-07
-20
-20
-00
-11
-6f
-e0
-c5
-a0
-79
-20
-7e
-07
-67
-e0
-c7
-c2
-70
-47
-c3
-00
-70
-47
-c4
-02
-70
-47
-c5
-12
-6f
-e0
-cc
-e3
-67
-e0
-c7
-c6
-70
-45
-9f
-05
-20
-60
-00
-00
-6f
-e0
-c5
-a0
-79
-20
-7e
-07
-67
-e0
-cc
-76
-70
-4c
-77
-00
-70
-4c
-78
-02
-70
-4c
-79
-12
-6f
-e0
-cc
-e3
-67
-e0
-cc
-7a
-d8
-40
-00
-05
-da
-20
-4c
-76
-20
-20
-04
-e5
-6f
-e0
-cc
-bb
-20
-3a
-00
-1f
-20
-20
-00
-2b
-6f
-e0
-c5
-a0
-79
-20
-7e
-07
-67
-e0
-c7
-c2
-70
-47
-c3
-00
-70
-47
-c4
-03
-70
-47
-c5
-13
-6f
-e0
-c7
-7c
-67
-e0
-c7
-c6
-6f
-e0
-cc
-e4
-e7
-e0
-80
-05
-70
-45
-9f
-06
-20
-60
-00
-00
-6f
-e0
-c5
-a0
-79
-20
-7e
-07
-67
-e0
-cc
-76
-70
-4c
-77
-00
-70
-4c
-78
-03
-70
-4c
-79
-13
-6f
-e0
-c7
-7c
-67
-e0
-cc
-7a
-6f
-e0
-cc
-e4
-e7
-e0
-80
-05
-d8
-40
-00
-06
-da
-20
-4c
-76
-20
-20
-04
-e5
-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
-20
-00
-04
-c0
-20
-80
-21
-20
-60
-00
-00
-6f
-e0
-cc
-bb
-20
-3a
-00
-07
-20
-20
-00
-13
-6f
-e0
-c5
-a0
-79
-20
-7e
-07
-67
-e0
-c7
-c2
-70
-47
-c3
-00
-70
-47
-c4
-30
-70
-47
-c5
-10
-70
-45
-9f
-33
-df
-20
-00
-1f
-d8
-c0
-48
-53
-d8
-a0
-47
-c6
-20
-40
-7c
-dc
-20
-20
-04
-bd
-6f
-e0
-c5
-a0
-79
-20
-7e
-07
-67
-e0
-cc
-76
-70
-4c
-77
-00
-70
-4c
-78
-30
-70
-4c
-79
-10
-df
-20
-00
-1f
-d8
-c0
-48
-53
-d8
-a0
-4c
-7a
-20
-40
-7c
-dc
-20
-40
-04
-bd
-d8
-40
-00
-34
-da
-20
-4c
-76
-20
-20
-04
-e5
-6f
-e0
-cc
-bb
-20
-3a
-00
-24
-20
-20
-00
-30
-6f
-e0
-c5
-a0
-79
-20
-7e
-07
-67
-e0
-c7
-c2
-70
-47
-c3
-00
-70
-47
-c4
-03
-70
-47
-c5
-11
-6f
-e0
-c6
-a2
-67
-e0
-c7
-c6
-6f
-e0
-cc
-e1
-e7
-e0
-80
-05
-70
-45
-9f
-06
-20
-60
-00
-00
-6f
-e0
-c5
-a0
-79
-20
-7e
-07
-67
-e0
-cc
-76
-70
-4c
-77
-00
-70
-4c
-78
-03
-70
-4c
-79
-11
-6f
-e0
-c6
-a2
-67
-e0
-cc
-7a
-6f
-e0
-cc
-e1
-e7
-e0
-80
-05
-d8
-40
-00
-06
-da
-20
-4c
-76
-20
-20
-04
-e5
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-20
-20
-00
-40
-c0
-18
-00
-03
-20
-60
-00
-00
-6f
-e0
-cc
-bb
-20
-3a
-00
-0d
-6f
-e0
-c5
-a0
-79
-20
-7e
-04
-67
-e0
-cc
-76
-70
-4c
-77
-ff
-d8
-40
-00
-02
-da
-20
-4c
-76
-20
-20
-04
-e5
-20
-60
-00
-00
-70
-45
-9f
-02
-6f
-e0
-c5
-a0
-79
-20
-7e
-04
-67
-e0
-c7
-c2
-70
-47
-c3
-ff
-20
-60
-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
-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
-20
-20
-00
-40
-c0
-10
-00
-03
-20
-60
-00
-00
-6f
-e0
-c5
-77
-c0
-03
-00
-0c
-c0
-08
-00
-0e
-c0
-08
-80
-10
-c0
-09
-00
-12
-c0
-09
-80
-16
-c0
-0b
-00
-19
-c0
-0a
-00
-1b
-20
-60
-00
-00
-d8
-e0
-00
-04
-20
-20
-03
-dc
-d8
-e0
-00
-06
-20
-20
-03
-dc
-70
-4c
-e1
-01
-20
-20
-03
-70
-d8
-c0
-45
-75
-20
-40
-03
-aa
-d8
-e0
-00
-08
-20
-20
-03
-dc
-70
-4c
-e4
-01
-d8
-e0
-00
-09
-20
-20
-03
-dc
-d8
-e0
-00
-0c
-20
-20
-03
-dc
-70
-4e
-5e
-00
-d8
-c0
-45
-75
-20
-40
-03
-76
-d8
-e0
-00
-0a
-20
-20
-03
-dc
-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
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-20
-20
-00
-40
-c0
-08
-00
-05
-c0
-08
-80
-18
-c0
-09
-00
-24
-20
-60
-00
-00
-20
-40
-00
-24
-20
-40
-56
-40
-20
-40
-00
-10
-6f
-e0
-ce
-5e
-20
-5a
-00
-14
-6f
-e0
-c6
-a2
-67
-e0
-cc
-e2
-d8
-40
-00
-08
-da
-20
-48
-6a
-da
-40
-00
-82
-20
-20
-6c
-d7
-d8
-40
-00
-01
-da
-20
-4e
-5e
-da
-40
-00
-99
-20
-20
-6c
-d7
-d8
-40
-00
-0f
-da
-20
-4e
-4f
-da
-40
-00
-8a
-20
-20
-6c
-d7
-6f
-e0
-c5
-f9
-c0
-02
-d9
-8c
-c0
-00
-80
-1c
-20
-20
-59
-75
-6f
-e4
-47
-0e
-c2
-9f
-00
-20
-c2
-98
-00
-20
-20
-20
-59
-83
-6f
-e1
-45
-ed
-67
-e1
-45
-f5
-70
-45
-f9
-05
-20
-20
-35
-0a
-d8
-40
-03
-34
-da
-20
-06
-f2
-da
-40
-00
-00
-6f
-e1
-4e
-9b
-20
-20
-6c
-da
-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
-20
-20
-00
-40
-c0
-00
-00
-05
-c0
-00
-80
-0b
-c0
-01
-00
-15
-20
-60
-00
-00
-6f
-e4
-47
-0e
-c2
-9f
-59
-4b
-6f
-e0
-c6
-78
-c0
-00
-59
-3a
-20
-40
-02
-b6
-20
-20
-4d
-fa
-20
-40
-4d
-89
-58
-00
-4d
-00
-67
-e1
-43
-43
-58
-00
-00
-50
-67
-e1
-43
-45
-58
-00
-06
-f2
-67
-e1
-42
-f9
-70
-42
-e3
-46
-70
-46
-38
-0f
-20
-60
-00
-00
-20
-40
-4d
-83
-70
-45
-e1
-01
-70
-44
-4e
-01
-70
-0e
-a2
-00
-70
-48
-fa
-01
-70
-48
-ef
-10
-20
-60
-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
-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
-fc
-9c
-24
Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/output/program.lis
===================================================================
--- /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/output/program.lis	(revision 5679)
+++ /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/output/program.lis	(nonexistent)
@@ -1,35380 +0,0 @@
-              include "bt_format "
-              org 0x0000
-
-p_start:
-0000 20200040 branch p_patch_array 
-
-p_zcode:
-0001 20000001 nop 1 
-0002 20000001 nop 1 
-0003 20000001 nop 1 
-0004 20000001 nop 1 
-0005 20000001 nop 1 
-0006 20000001 nop 1 
-0007 20000001 nop 1 
-0008 20000001 nop 1 
-0009 20000001 nop 1 
-000a 20000001 nop 1 
-000b 20000001 nop 1 
-000c 20000001 nop 1 
-000d 20000001 nop 1 
-000e 20000001 nop 1 
-000f 20000001 nop 1 
-0010 20000001 nop 1 
-0011 20000001 nop 1 
-0012 20000001 nop 1 
-0013 20000001 nop 1 
-0014 20000001 nop 1 
-0015 20000001 nop 1 
-0016 20000001 nop 1 
-0017 20000001 nop 1 
-0018 20000001 nop 1 
-0019 20000001 nop 1 
-001a 20000001 nop 1 
-001b 20000001 nop 1 
-001c 20000001 nop 1 
-001d 20000001 nop 1 
-001e 20000001 nop 1 
-001f 20000001 nop 1 
-0020 20000001 nop 1 
-0021 20000001 nop 1 
-0022 20000001 nop 1 
-0023 20000001 nop 1 
-0024 20000001 nop 1 
-0025 20000001 nop 1 
-0026 20000001 nop 1 
-0027 20000001 nop 1 
-0028 20000001 nop 1 
-0029 20000001 nop 1 
-002a 20000001 nop 1 
-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 
-0037 20000001 nop 1 
-0038 20000001 nop 1 
-0039 20000001 nop 1 
-003a 20000001 nop 1 
-003b 20000001 nop 1 
-003c 20000001 nop 1 
-003d 20000001 nop 1 
-003e 20000001 nop 1 
-003f 20000001 nop 1 
-
-p_patch_array:
-0040 c2840063 bbit1 8 ,pf_patch_ext 
-0041 c07580c2 beq patch1d_3 ,p_spid_init 
-0042 c07600b4 beq patch1d_4 ,p_spid_write_reg 
-0043 c07680ba beq patch1d_5 ,p_spid_read_regs 
-0044 c0010083 beq patch00_2 ,p_main_loop 
-0045 c0080097 beq patch02_0 ,p_shutdown_radio 
-0046 c00c8077 beq patch03_1 ,p_set_tx_power 
-0047 c00d0099 beq patch03_2 ,p_initialize_radio_cont 
-0048 c010d801 beq patch04_1 ,mouse_soft_reset 
-0049 c01280a4 beq patch04_5 ,p_lpm_sleep 
-004a c014007b beq patch05_0 ,p_lpm_dispatch 
-004b c03902bc beq patch0e_2 ,p_mouse_cb_fuction 
-004c c03980b2 beq patch0e_3 ,p_mouse_load_device_info_check 
-004d c03a02c3 beq patch0e_4 ,p_mouse_default_init 
-004e c03a81bc beq patch0e_5 ,p_mouse_param_info_init 
-004f c03c81be beq patch0f_1 ,p_mouse_start_work 
-0050 c03e80d0 beq patch0f_5 ,p_mouse_before_hibernate 
-0051 c03f015b beq patch0f_6 ,p_mouse_setgpio_hibernate 
-0052 c0418178 beq patch10_3 ,p_mouse_motion 
-0053 c04381c4 beq patch10_7 ,p_mouse_setting_sensor_type 
-0054 c0440171 beq patch11_0 ,p_mouse_check_key_gpio 
-0055 c044808f beq patch11_1 ,p_mouse_3io6key_check 
-0056 c0458165 beq patch11_3 ,p_mouse_init_sensor 
-0057 c04780f9 beq patch11_7 ,p_mouse_priority_bb_event 
-0058 c04881d2 beq patch12_1 ,p_mouse_le_parse_att 
-0059 c0480119 beq patch12_0 ,p_mouse_le 
-005a c04980d3 beq patch12_3 ,p_mouse_bb_event_timer 
-005b c04a01c0 beq patch12_4 ,p_mouse_start_discovery 
-005c c04c031d beq patch13_0 ,p_mouse_store_dpi_info_check 
-005d c0528321 beq patch14_5 ,p_mouse_24g_package_data 
-005e c06780ce beq patch19_7 ,p_app_init 
-005f c04d052e beq patch13_2 ,p_mouse_idle 
-0060 c07f8691 beq patch1f_7 ,p_sadc_calibration 
-0061 c075008c beq patch1d_2 ,p_otp_read_data 
-0062 2020233e branch assert 
-
-pf_patch_ext:
-0063 c0010668 beq patch20_2 ,p_enable_adc 
-0064 c02201c6 beq patch28_4 ,p_le_slave_more_data 
-0065 c03301c8 beq patch2c_6 ,p_le_parse_ll 
-0066 c04c0347 beq patch33_0 ,p_g24_dispatch 
-0067 c04d851f beq patch33_3 ,p_g24_receive_payload 
-0068 c0510511 beq patch34_2 ,p_g24_read_len_pid_crc 
-0069 c04f84ef beq patch33_7 ,p_g24_transmit_packet 
-006a c05004f9 beq patch34_0 ,p_g24_transmit_prep 
-006b c054807a beq patch35_1 ,p_g24_chamap_param_update 
-006c c05582c5 beq patch35_3 ,p_g24_pair_param_init 
-006d c05602c9 beq patch35_4 ,p_g24_pair_dispatch 
-006e c05e82ed beq patch37_5 ,p_g24_reconn_dispatch 
-006f c05f050e beq patch37_6 ,p_g24_txbuf_clear 
-0070 c05f8150 beq patch37_7 ,p_g24_reconn_device_fail 
-0071 c0610415 beq patch38_2 ,p_g24_transmit_no_interrupt 
-0072 c063033c beq patch38_6 ,p_g24_transmit_loop 
-0073 c06602ff beq patch39_4 ,p_g24_transmit_hop_process 
-0074 c06683fa beq patch39_5 ,p_g24_send_abort_packet 
-0075 c17f8000 rtneq patch3f_7 
-0076 2020233e branch assert 
-
-p_set_tx_power:
-0077 6fe0c141 fetch 1 ,mem_tx_power 
-0078 c04a2240 beq tx_power_f20db ,set_tx_power_f20db 
-0079 20202222 branch set_tx_power_3db 
-
-p_g24_chamap_param_update:
-
-p_mouse_store_device_info:
-007a 20600000 rtn 
-
-p_lpm_dispatch:
-007b 204023f0 call lpo_calibration 
-007c 6fe1c0bd fetch 3 ,mem_clks_per_lpo 
-007d 207a0000 rtn blank 
-007e 6fe0c8a8 fetch 1 ,mem_mouse_multi_led_blink_enable 
-007f 247a0000 nrtn blank 
-0080 6fe0ce9d fetch 1 ,mem_mouse_le_delay_enter_lpm_time 
-0081 247a0000 nrtn blank 
-0082 20202467 branch lpm_dispatch + 4 
-
-p_main_loop:
-0083 20407540 call sp_calc_sequence_256 
-0084 20407436 call sp_calc_sequence_256_check 
-0085 20402a23 call le_advertising_dispatch 
-0086 2040202a call idle_dispatch 
-0087 20403722 call app_process_idle 
-0088 204030ed call g24_dispatch 
-0089 20402018 call connection_dispatch 
-008a 20402463 call lpm_dispatch 
-008b 20200083 branch p_main_loop 
-
-p_otp_read_data:
-008c 20406b28 call enable_otp_read 
-008d 20406b63 call otp_read_data1 
-008e 20206b26 branch otp_disable_chgpump 
-
-p_mouse_3io6key_check:
-008f 1a627e00 copy regc ,pdata 
-0090 67e0ca10 store 1 ,mem_mouse_key_status 
-0091 1fe3fe00 lshift pdata ,pdata 
-0092 1fe22400 copy pdata ,regb 
-0093 18422600 copy temp ,regc 
-0094 20406ef1 call gpio_out_active 
-0095 1a620400 copy regc ,temp 
-0096 20205248 branch mouse_3io6key_check_next 
-
-p_shutdown_radio:
-0097 70890000 jam 0 ,0x8900 
-0098 20202156 branch shutdown_radio + 1 
-
-p_initialize_radio_cont:
-0099 37d98200 until null ,lpo_edge 
-009a 7089460d jam 0x0d ,0x8946 
-009b 70896f10 jam 0x10 ,0x896f 
-009c 708a13cd jam 0xcd ,0x8a13 
-009d 6ff08a06 fetch 1 ,0x8a06 
-009e 1fe17efc and pdata ,0xfc ,pdata 
-009f 67f08a06 store 1 ,0x8a06 
-00a0 37d98200 until null ,lpo_edge 
-00a1 70813c88 jam 0x88 ,0x813c 
-00a2 37d98200 until null ,lpo_edge 
-00a3 20202255 branch initialize_radio_cont + 6 
-
-p_lpm_sleep:
-00a4 6fe143f2 fetch 2 ,mem_cb_before_lpm_sleep 
-00a5 20407d7b call callback_func 
-
-p_lpm_sleep_skip_cb_function:
-00a6 6fe240ad fetch 4 ,mem_sleep_counter_all 
-00a7 9840fe00 iadd temp ,pdata 
-00a8 67e240ad store 4 ,mem_sleep_counter_all 
-00a9 204023d7 call lpm_save_context 
-00aa 6fe0c0cb fetch 1 ,mem_lpm_hv_sel 
-00ab 79207e04 set1 lpm_doze_en_bit ,pdata 
-00ac 204023c3 call lpm_write_sel_hv 
-00ad 2455a3ad ncall lpm_preon_counter ,wake 
-00ae 37d98200 until null ,lpo_edge 
-00af 1b227e00 copy clkn ,pdata 
-00b0 67e340b1 store 6 ,mem_sleep_clkn 
-00b1 20202413 branch lpm_sleep_skip_cb_function + 10 
-
-p_mouse_load_device_info_check:
-00b2 704e6610 jam zcode_10 ,mem_zcode_temp_param0 
-00b3 202007a2 branch p_zcode_entrance 
-
-p_spid_write_reg:
-00b4 6fe101bc fetch 2 ,mem_spid_tbuf 
-00b5 67e14cfa store 2 ,mem_spid_tbuf_new 
-00b6 70808202 jam 2 ,core_spid_txlen 
-00b7 70808800 jam 0 ,core_spid_rxlen 
-00b8 70800602 jam spid_start ,core_misc_ctrl 
-00b9 20206bd6 branch wait_spid_done 
-
-p_spid_read_regs:
-00ba 6fe101bc fetch 2 ,mem_spid_tbuf 
-00bb 67e0ccfa store 1 ,mem_spid_tbuf_new 
-00bc 70808201 jam 1 ,core_spid_txlen 
-00bd 60590088 storet 2 ,core_spid_rxlen 
-00be 70800602 jam spid_start ,core_misc_ctrl 
-00bf 20406bd6 call wait_spid_done 
-00c0 6fe0ccfc fetch 1 ,mem_spid_rbuf_new 
-00c1 20600000 rtn 
-
-p_spid_init:
-
-p_spid_init_common:
-00c2 6fe0c3fe fetch 1 ,mem_spi_init_clk 
-00c3 67f08080 store 1 ,core_spid_ctrl 
-00c4 6fe0c3ff fetch 1 ,mem_spi_init_delay_time 
-00c5 67f08081 store 1 ,core_spid_delay 
-00c6 58004cfa setarg mem_spid_tbuf_new 
-00c7 67f10084 store 2 ,core_spid_txaddr 
-00c8 58004cfc setarg mem_spid_rbuf_new 
-00c9 67f10086 store 2 ,core_spid_rxaddr 
-00ca 20206968 branch twspi_disable 
-
-p_mouse_lpm_wake_param_init:
-00cb 58000000 setarg 0 
-00cc 67e08ea2 store 1 ,mem_voice_queue_count 
-00cd 20600000 rtn 
-
-p_app_init:
-
-p_mouse_init:
-00ce 205580cb call p_mouse_lpm_wake_param_init ,wake 
-00cf 20204d11 branch mouse_init 
-
-p_mouse_before_hibernate:
-00d0 20407388 call disable_authrom 
-00d1 20404e42 call mouse_setgpio_hibernate 
-00d2 20204e3f branch mouse_before_hibernate_next 
-
-p_mouse_bb_event_timer:
-00d3 204000f6 call p_mouse_le_send_conn_param_update_timer 
-00d4 204000e7 call p_mouse_enter_lpm_timer 
-00d5 20405a29 call mouse_low_voltage_led_timer 
-00d6 20404ea5 call mouse_adc_read 
-00d7 204059f2 call mouse_logo_led_on_timer 
-00d8 20405a81 call mouse_led_multi_timer 
-00d9 20405a00 call mouse_dpi_led_blink_delay_timer 
-00da 20405050 call mouse_dpi_key_check_long_press 
-00db 204054ab call mouse_bt_discovery_check 
-00dc 204054d7 call mouse_commbination_key_process 
-00dd 204054ba call mouse_commbination_dpi_check_timer 
-00de 204054cb call mouse_commbination_key_select_device_timer 
-00df 204003a1 call p_mouse_key_info_store_delay_timer 
-00e0 20405527 call mouse_current_mult_update_timer 
-00e1 20404fd6 call mouse_wheel_trigger_timer 
-00e2 20405538 call mouse_store_information_delay_timer 
-00e3 2040552f call mouse_check_no_data_timeout_timer 
-00e4 204000ec call p_mouse_m_key_long_press_timer 
-00e5 204000f1 call p_mouse_24g_long_sleep_param_update_timer 
-00e6 202054a4 branch mouse_bb_event_timer_next 
-
-p_mouse_enter_lpm_timer:
-00e7 6fe0ce9d fetch 1 ,mem_mouse_le_delay_enter_lpm_time 
-00e8 207a0000 rtn blank 
-00e9 1fe0ffff pincrease -1 
-00ea 67e0ce9d store 1 ,mem_mouse_le_delay_enter_lpm_time 
-00eb 20600000 rtn 
-
-p_mouse_m_key_long_press_timer:
-00ec 6fe0ce63 fetch 1 ,mem_mouse_m_key_press_flag 
-00ed 207a0000 rtn blank 
-00ee da604e64 arg mem_mouse_m_key_press_count ,regc 
-00ef da4003f2 arg p_g24_send_http_info_enable ,regb 
-00f0 20203755 branch timer_single_step 
-
-p_mouse_24g_long_sleep_param_update_timer:
-00f1 da604636 arg mem_24g_long_sleep_param_update_timer ,regc 
-00f2 da4000f4 arg p_mouse_24g_long_sleep_normal_param ,regb 
-00f3 20203755 branch timer_single_step 
-
-p_mouse_24g_long_sleep_normal_param:
-00f4 704cbd01 jam 1 ,mem_device_tx_heart_data_flag 
-00f5 202058f9 branch mouse_24g_long_sleep_normal_param 
-
-p_mouse_le_send_conn_param_update_timer:
-00f6 da604ac6 arg mem_mouse_le_send_conn_param_update_timer ,regc 
-00f7 da405408 arg mouse_updata_le_param ,regb 
-00f8 20203755 branch timer_single_step 
-
-p_mouse_priority_bb_event:
-00f9 1a627e00 copy regc ,pdata 
-00fa c01d0113 beq bt_evt_24g_attempt_fail ,p_mouse_24g_attempt_fail 
-00fb c0200107 beq bt_evt_le_parse_conn_papa_update_rsp ,p_mouse_le_conn_param_update_rsp_recieved 
-00fc c00a010c beq bt_evt_le_connected ,p_mouse_le_bb_event_connected 
-00fd c00a810f beq bt_evt_le_disconnected ,p_mouse_le_bb_disconnected 
-00fe c0190100 beq bt_evt_le_start_enc ,p_mouse_le_ll_start_encryt 
-00ff 202053dc branch mouse_priority_bb_event + 2 
-
-p_mouse_le_ll_start_encryt:
-0100 6fe0c754 fetch 1 ,mem_device_le_reconnect_flag 
-0101 c0008104 beq 1 ,p_mouse_le_ll_reconn_start_encryt 
-0102 70488314 jam 20 ,mem_le_start_encrypt_timer 
-0103 2020540f branch mouse_le_ll_enable_start_enc_flag 
-
-p_mouse_le_ll_reconn_start_encryt:
-0104 20405408 call mouse_updata_le_param 
-0105 70488305 jam 5 ,mem_le_start_encrypt_timer 
-0106 2020540f branch mouse_le_ll_enable_start_enc_flag 
-
-p_mouse_le_conn_param_update_rsp_recieved:
-0107 6fe0cac5 fetch 1 ,mem_mouse_le_send_conn_param_update 
-0108 247a0000 nrtn blank 
-0109 704ac501 jam 1 ,mem_mouse_le_send_conn_param_update 
-010a 704ac61e jam 30 ,mem_mouse_le_send_conn_param_update_timer 
-010b 20600000 rtn 
-
-p_mouse_le_bb_event_connected:
-010c 204053e9 call mouse_le_bb_event_connected 
-010d 704e9d64 jam 0x64 ,mem_mouse_le_delay_enter_lpm_time 
-010e 20600000 rtn 
-
-p_mouse_le_bb_disconnected:
-010f 58000000 setarg 0 
-0110 67e0cac5 store 1 ,mem_mouse_le_send_conn_param_update 
-0111 67e0cac6 store 1 ,mem_mouse_le_send_conn_param_update_timer 
-0112 202053f9 branch mouse_le_bb_disconnected 
-
-p_mouse_24g_attempt_fail:
-0113 2040592b call mouse_soft_agc_disable 
-0114 20405933 call device_fetch_normal_tx_power 
-0115 6fe0c617 fetch 1 ,mem_24g_attempt_fail_flag 
-0116 243a590a nbranch mouse_24g_hibernate_set ,blank 
-0117 704e6611 jam zcode_11 ,mem_zcode_temp_param0 
-0118 202007a2 branch p_zcode_entrance 
-
-p_mouse_le:
-0119 6fe0cc6f fetch 1 ,mem_voice_enable 
-011a 247a0000 nrtn blank 
-011b 20402a06 call le_fifo_check_nearly_full 
-011c 247a0000 nrtn blank 
-011d 6fe0c74f fetch 1 ,mem_device_fast_conn_flag 
-011e c07f8122 beq 0xff ,p_mouse_le_next 
-011f 6fe0c882 fetch 1 ,mem_le_connect_status_flag 
-0120 1fe17e03 and pdata ,0x03 ,pdata 
-0121 c1818000 rtnne 0x03 
-
-p_mouse_le_next:
-0122 6fe0ccd4 fetch 1 ,mem_ms_le_lpm_flag 
-0123 205a014e call p_mouse_le_lpm_set ,blank 
-0124 6fe0c9f9 fetch 1 ,mem_mouse_clear_sensor_data_flag 
-0125 205a538b call mouse_clear_sensor_data_by_reset ,blank 
-0126 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
-0127 c280814b bbit1 mouse_24g_pairing_flag ,p_mouse_le_send_empty_packet 
-0128 c280014b bbit1 mouse_select_device_flag ,p_mouse_le_send_empty_packet 
-0129 c282814b bbit1 mouse_bt_discovery_button_down_flag ,p_mouse_le_send_empty_packet 
-012a c283014b bbit1 mouse_bt_discovery_button_long_down_flag ,p_mouse_le_send_empty_packet 
-012b 20400178 call p_mouse_motion 
-012c 204053cb call mouse_check_125hz 
-012d 24740000 nrtn user 
-012e 204053d5 call mouse_current_mult_update 
-012f 20400131 call p_mouse_data_xy_release 
-0130 2020544c branch mouse_le_package + 5 
-
-p_mouse_data_xy_release:
-0131 6fe0c667 fetch 1 ,mem_sensor_motion_gpio 
-0132 c1ff8000 rtnne gpio_disable 
-0133 6fe0c73d fetch 1 ,mem_mouse_long_mult_flag 
-0134 207a0000 rtn blank 
-0135 6fe0ccf9 fetch 1 ,mem_ms_le_spi_reset_type 
-0136 c000813a beq 1 ,p_mouse_le_p32xx_spi_reset 
-0137 c0010143 beq 2 ,p_mouse_le_p3212_spi_reset 
-0138 c0018147 beq 3 ,p_mouse_le_pka8g2_spi_reset 
-0139 20600000 rtn 
-
-p_mouse_le_p32xx_spi_reset:
-013a 58000000 setarg pan_reg_pid_l 
-013b 20406971 call twspi_read 
-013c c0985333 bne p32xx_id1 ,mouse_p3065_judge 
-
-p_mouse_le_sensor_poweron_set:
-013d 6fe0c73d fetch 1 ,mem_mouse_long_mult_flag 
-013e 1fe0ffff increase -1 ,pdata 
-013f 67e0c73d store 1 ,mem_mouse_long_mult_flag 
-0140 58000000 setarg 0 
-0141 67e2465d store 4 ,mem_mouse_x 
-0142 202052fd branch mouse_sensor_poweron 
-
-p_mouse_le_p3212_spi_reset:
-0143 58000000 setarg pan_reg_pid_l 
-0144 20406971 call twspi_read 
-0145 c098526c bne p32xx_id1 ,mouse_twspi_reset 
-0146 2020013d branch p_mouse_le_sensor_poweron_set 
-
-p_mouse_le_pka8g2_spi_reset:
-0147 58000000 setarg pan_reg_pid_l 
-0148 20406971 call twspi_read 
-0149 c0ac526c bne pka8g2_id1 ,mouse_twspi_reset 
-014a 2020013d branch p_mouse_le_sensor_poweron_set 
-
-p_mouse_le_send_empty_packet:
-014b 58000000 setarg 0 
-014c 67e3c65c store 7 ,mem_mouse_key 
-014d 2020683e branch hid_device_le_send_mouse_data 
-
-p_mouse_le_lpm_set:
-014e 704cd401 jam 1 ,mem_ms_le_lpm_flag 
-014f 20206820 branch hid_device_enable_lpm 
-
-p_g24_reconn_device_fail:
-0150 6fe0c5fa fetch 1 ,mem_24g_fast_conn_enable 
-0151 203a3201 branch g24_ch ,blank 
-0152 6fe145f7 fetch 2 ,mem_24g_reconn_count 
-0153 1fe0fe01 increase 1 ,pdata 
-0154 67e145f7 store 2 ,mem_24g_reconn_count 
-0155 2feffe09 isolate1 9 ,pdata 
-0156 6fe0c5f9 fetch 1 ,mem_24g_reconn_type 
-0157 c0028159 beq pair_and_receiver ,p_g24_reconn_pair_and_receiver 
-0158 20203565 branch g24_reconn_device_fail + 7 
-
-p_g24_reconn_pair_and_receiver:
-0159 2020b51f branch g24_reconn_receiver_addr ,true 
-015a 2020327a branch g24_pair_init_param 
-
-p_mouse_setgpio_hibernate:
-015b 2040015d call p_mouse_sensor_spi_reset 
-015c 20204e44 branch mouse_setgpio_hibernate + 2 
-
-p_mouse_sensor_spi_reset:
-015d 2040526f call mouse_read_sensor_id 
-015e c01853ab beq p32xx_id1 ,mouse_set_sdio_high 
-015f c018d3ab beq p3065_id1 ,mouse_set_sdio_high 
-0160 c02c53ab beq pka8g2_id1 ,mouse_set_sdio_high 
-0161 2040526c call mouse_twspi_reset 
-0162 200004b0 nop 1200 
-0163 2020015d branch p_mouse_sensor_spi_reset 
-
-p_mouse_ka8g2_id2_judge:
-0164 202052e5 branch mouse_ka8g2_id2_judge 
-
-p_mouse_init_sensor:
-0165 2040526f call mouse_read_sensor_id 
-0166 c0180169 beq p32xx_id1 ,p_mouse_init_p32xx_id2_judge 
-0167 c02c0164 beq pka8g2_id1 ,p_mouse_ka8g2_id2_judge 
-0168 20205267 branch mouse_init_sensor + 3 
-
-p_mouse_init_p32xx_id2_judge:
-0169 6fe0c8fc fetch 1 ,mem_sensor_id2 
-016a c02d016c beq p_mx8650 ,p_mouse_mx8650_init_param 
-016b 20205278 branch mouse_init_p32xx_id2_judge + 2 
-
-p_mouse_mx8650_init_param:
-016c 7049fa05 jam mx8650 ,mem_config_sensor_type 
-016d 204052f0 call mouse_sensor_reset 
-016e 20407c97 call delay_10ms 
-016f da604e73 arg mem_sensor_8650_init_new ,regc 
-0170 20205301 branch mouse_sensor_poweron_end 
-
-p_mouse_check_key_gpio:
-0171 6fe0c737 fetch 1 ,mem_24g_shutdown_flag 
-0172 245a51b9 ncall mouse_check_key_gpio_once ,blank 
-0173 da200000 arg 0 ,rega 
-0174 204051bc call mouse_check_lkey_gpio 
-0175 204051c5 call mouse_check_rkey_gpio 
-0176 204051ce call mouse_check_mkey_gpio 
-0177 202051b7 branch mouse_check_key_gpio_next 
-
-p_mouse_motion:
-0178 704cbb00 jam 0 ,mem_ms_rf_data_flag 
-0179 2040684e call hid_device_copy_key_data 
-017a 78547c00 disable user 
-017b 58000000 setarg 0 
-017c 67e3465d store 6 ,mem_mouse_x 
-017d 204001ae call p_mouse_check_sensor_data 
-017e 204053ab call mouse_set_sdio_high 
-017f 20404f38 call mouse_zwheel 
-0180 20404f3d call mouse_t_zwheel 
-0181 2040018f call p_mouse_key 
-0182 6fe0c72b fetch 1 ,mem_customer_key 
-0183 245a7dbc ncall enable_user ,blank 
-0184 6fe0c65c fetch 1 ,mem_mouse_key 
-0185 1fe17e1f and_into 0x1f ,pdata 
-0186 67e0c65c store 1 ,mem_mouse_key 
-0187 204001a2 call p_mouse_check_idle_key_state 
-0188 6fe0ce61 fetch 1 ,mem_mouse_fuction_key 
-0189 245a7dbc ncall enable_user ,blank 
-018a 204001a9 call p_mem_mouse_key_ior 
-018b 24345853 nbranch mouse_drawing_optima_init ,user 
-018c 704cbd00 jam 0 ,mem_device_tx_heart_data_flag 
-018d 704cbb01 jam 1 ,mem_ms_rf_data_flag 
-018e 20204f36 branch mouse_motion_rf_data 
-
-p_mouse_key:
-018f 20405170 call mouse_check_firekey_gpio 
-0190 6fe0ca19 fetch 1 ,mem_fire_key_flag 
-0191 243a5184 nbranch fire_key_press ,blank 
-0192 6fe0ca14 fetch 1 ,mem_fire_key_status 
-0193 243a5183 nbranch fire_key_process ,blank 
-0194 204051ac call mouse_check_key_gpio 
-0195 20400197 call p_mouse_m_key_press_check 
-0196 202050d0 branch mouse_key_next 
-
-p_mouse_m_key_press_check:
-0197 1a227e00 copy rega ,pdata 
-0198 c002019d beq mouse_m_button ,p_mouse_m_key_press 
-
-p_mouse_m_key_release:
-0199 6fe0ce63 fetch 1 ,mem_mouse_m_key_press_flag 
-019a 207a0000 rtn blank 
-019b 704e6300 jam 0 ,mem_mouse_m_key_press_flag 
-019c 20600000 rtn 
-
-p_mouse_m_key_press:
-019d 6fe0ce63 fetch 1 ,mem_mouse_m_key_press_flag 
-019e 247a0000 nrtn blank 
-019f 704e6301 jam 1 ,mem_mouse_m_key_press_flag 
-01a0 704e641e jam 30 ,mem_mouse_m_key_press_count 
-01a1 20600000 rtn 
-
-p_mouse_check_idle_key_state:
-01a2 6fe0ce61 fetch 1 ,mem_mouse_fuction_key 
-01a3 6848ce62 fetcht 1 ,mem_mouse_fuction_key_last 
-01a4 67e0ce62 store 1 ,mem_mouse_fuction_key_last 
-01a5 9842fe00 ixor temp ,pdata 
-01a6 1fe67c00 sub pdata ,0 ,null 
-01a7 20628000 rtn zero 
-01a8 20207dbc branch enable_user 
-
-p_mem_mouse_key_ior:
-01a9 6fe0c65c fetch 1 ,mem_mouse_key 
-01aa 6848ce61 fetcht 1 ,mem_mouse_fuction_key 
-01ab 9841fe00 ior temp ,pdata 
-01ac 67e0c65c store 1 ,mem_mouse_key 
-01ad 20600000 rtn 
-
-p_mouse_check_sensor_data:
-01ae 6fe0c437 fetch 1 ,mem_spi_write_flash_sm 
-01af c1800000 rtnne flash_sm_no_buys 
-01b0 20404f1b call mouse_sensor_spi_init 
-01b1 6fe0c9fa fetch 1 ,mem_config_sensor_type 
-01b2 c00081b6 beq p3065 ,p_mouse_p32xx_sensor_motion 
-01b3 c00181b8 beq p3212 ,p_mouse_p3212_sensor_motion 
-01b4 c00201b6 beq p3065_xy ,p_mouse_p32xx_sensor_motion 
-01b5 c00581ba beq ka8g2 ,p_mouse_pka8g2_sensor_motion 
-
-p_mouse_p32xx_sensor_motion:
-01b6 704cf901 jam 1 ,mem_ms_le_spi_reset_type 
-01b7 20205319 branch mouse_p32xx_sensor_motion 
-
-p_mouse_p3212_sensor_motion:
-01b8 704cf902 jam 2 ,mem_ms_le_spi_reset_type 
-01b9 2020533d branch mouse_p3212_sensor_motion 
-
-p_mouse_pka8g2_sensor_motion:
-01ba 704cf903 jam 3 ,mem_ms_le_spi_reset_type 
-01bb 2020535b branch mouse_pka8g2_sensor_motion 
-
-p_mouse_param_info_init:
-01bc 704e6601 jam zcode_01 ,mem_zcode_temp_param0 
-01bd 202007a2 branch p_zcode_entrance 
-
-p_mouse_start_work:
-01be 704e6600 jam zcode_00 ,mem_zcode_temp_param0 
-01bf 202007a2 branch p_zcode_entrance 
-
-p_mouse_start_discovery:
-01c0 20405303 call mouse_sensor_powerdown 
-01c1 204003a8 call p_mouse_eeprom_load_le_att_list_info 
-01c2 204002b6 call p_mouse_le_param_default 
-01c3 20205545 branch mouse_start_discovery + 1 
-
-p_mouse_setting_sensor_type:
-01c4 2040015d call p_mouse_sensor_spi_reset 
-01c5 2020506c branch mouse_setting_sensor_type + 1 
-
-p_le_slave_more_data:
-01c6 204006ce call p_le_audio_data_out_from_queue 
-01c7 20202556 branch le_slave_more_data + 1 
-
-p_le_parse_ll:
-01c8 6fe0c336 fetch 1 ,mem_le_packet_llid 
-01c9 c1000000 rtneq llid_reserved 
-01ca c00181cc beq llid_le_ll ,p_le_parse_ll_next 
-01cb 202028c0 branch le_parse_l2cap 
-
-p_le_parse_ll_next:
-01cc 6fe0804e fetch 1 ,mem_le_rxbuf_data_ll_opcode 
-01cd c00a01cf beq ll_length_req ,p_le_parse_length_req 
-01ce 20203029 branch le_parse_ll + 1 
-
-p_le_parse_length_req:
-01cf 6fe20053 fetch 4 ,mem_le_rxbuf_data_ll_control_data + 4 
-01d0 203a303d branch p_le_send_unknown_rsp ,blank 
-01d1 2020308c branch le_parse_length_req 
-
-p_mouse_le_parse_att:
-01d2 1a220c00 copy rega ,contr 
-01d3 efe18006 ifetch 3 ,contr 
-01d4 67e1c39b store 3 ,mem_le_att_opcode 
-01d5 c00601e8 beq attop_read_blob_request ,p_le_parse_att_read_blob_request 
-01d6 c00501f1 beq attop_read_request ,p_mouse_le_parse_att_read_request 
-01d7 c009021e beq attop_write_request ,p_mouse_le_parse_att_write_request 
-01d8 c029022b beq attop_write_command ,p_le_parse_att_write_command 
-01d9 c00b01db beq attop_prepare_write_request ,p_le_parse_att_prepare_write_request 
-01da 20202b76 branch le_parse_att2 
-
-p_le_parse_att_prepare_write_request:
-01db 20402a06 call le_fifo_check_nearly_full 
-01dc 245a6924 ncall l2cap_malloc_free ,blank 
-01dd 20402dac call le_parse_att_prepare_write_request 
-01de 6fe1433b fetch 2 ,mem_le_payload_ptr 
-01df 1fe08c07 add pdata ,7 ,contr 
-01e0 efe10006 ifetch 2 ,contr 
-01e1 247a0000 nrtn blank 
-01e2 20402a06 call le_fifo_check_nearly_full 
-01e3 245a6924 ncall l2cap_malloc_free ,blank 
-01e4 6fe1433b fetch 2 ,mem_le_payload_ptr 
-01e5 1fe22200 copy pdata ,rega 
-01e6 1a20a209 add rega ,9 ,rega 
-01e7 2020022c branch p_le_parse_att_write_command + 1 
-
-p_le_parse_att_read_blob_request:
-01e8 efe10006 ifetch 2 ,contr 
-01e9 67e10693 store 2 ,mem_le_att_offset 
-01ea 98002200 iforce rega 
-01eb 6849439c fetcht 2 ,mem_le_att_handle 
-
-p_le_send_att_read_blob_response:
-01ec 20402cad call le_att_get_handle_ptr 
-01ed 203a2de1 branch le_send_att_error_response_notfound ,blank 
-01ee efe10006 ifetch 2 ,contr 
-01ef 9a267200 isub rega ,loopcnt 
-01f0 20202d32 branch le_send_att_read_blob_response + 4 
-
-p_mouse_le_parse_att_read_request:
-01f1 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
-01f2 c31d8200 bbit0 mouse_enable_le_battery_service_cancel ,p_le_parse_att_read_request 
-01f3 20402da5 call le_check_encrypt_state 
-01f4 6849439c fetcht 2 ,mem_le_att_handle 
-01f5 6fe0c323 fetch 1 ,mem_le_configuration 
-01f6 c28181fb bbit1 bit_ble_read_auth ,p_mouse_le_send_att_read_response_check_auth 
-
-p_mouse_le_send_att_read_response:
-01f7 6fe1439c fetch 2 ,mem_le_att_handle 
-01f8 c009ade1 beq 0x13 ,le_send_att_error_response_notfound 
-01f9 6849439c fetcht 2 ,mem_le_att_handle 
-01fa 20200204 branch p_le_send_att_read_response 
-
-p_mouse_le_send_att_read_response_check_auth:
-01fb 6fe14334 fetch 2 ,mem_le_pairing_handle 
-01fc 98467c00 isub temp ,null 
-01fd 242281f7 nbranch p_mouse_le_send_att_read_response ,zero 
-01fe 243401f7 nbranch p_mouse_le_send_att_read_response ,user 
-01ff 20202d24 branch le_send_att_read_response_error_insufficient_auth 
-
-p_le_parse_att_read_request:
-0200 20402da5 call le_check_encrypt_state 
-0201 6849439c fetcht 2 ,mem_le_att_handle 
-0202 6fe0c323 fetch 1 ,mem_le_configuration 
-0203 c2818212 bbit1 bit_ble_read_auth ,p_le_send_att_read_response_check_auth 
-
-p_le_send_att_read_response:
-0204 20402cb0 call le_att_get_handle_ptr2 
-0205 2422ade1 nbranch le_send_att_error_response_notfound ,zero 
-0206 20542d26 call le_send_att_read_response_check_handle ,user 
-0207 20740000 rtn user 
-0208 20402cbb call le_att_get_handle_ptr_found 
-0209 18c08dfe increase -2 ,contr 
-020a efe10006 ifetch 2 ,contr 
-020b d8402a00 arg uuid_chrctr_device_name ,temp 
-020c 98467c00 isub temp ,null 
-020d 2022ad14 branch le_send_device_name ,zero 
-020e d8402a4b arg uuid_chrctr_report_map ,temp 
-020f 98467c00 isub temp ,null 
-0210 20228217 branch p_le_modify_report_map_header ,zero 
-0211 20202d05 branch le_send_att_read_response_next 
-
-p_le_send_att_read_response_check_auth:
-0212 6fe14334 fetch 2 ,mem_le_pairing_handle 
-0213 98467c00 isub temp ,null 
-0214 24228204 nbranch p_le_send_att_read_response ,zero 
-0215 24340204 nbranch p_le_send_att_read_response ,user 
-0216 20202d24 branch le_send_att_read_response_error_insufficient_auth 
-
-p_le_modify_report_map_header:
-0217 18c22600 copy contr ,regc 
-0218 20402e24 call le_get_search_max_mtu_data 
-0219 1a620c00 copy regc ,contr 
-021a e8410006 ifetcht 2 ,contr 
-021b 18408401 increase 1 ,temp 
-021c 20407db2 call not_greater_than 
-021d 20202d0b branch le_send_att_read_response_less 
-
-p_mouse_le_parse_att_write_request:
-021e 2040022b call p_le_parse_att_write_command 
-021f 20402a06 call le_fifo_check_nearly_full 
-0220 245a6924 ncall l2cap_malloc_free ,blank 
-
-p_hid_device_le_parse_att_write_request:
-0221 6fe0c74f fetch 1 ,mem_device_fast_conn_flag 
-0222 c07fad8a beq 0xff ,le_send_att_write_response_check_auth 
-0223 6fe0c74f fetch 1 ,mem_device_fast_conn_flag 
-0224 203a2d8a branch le_send_att_write_response_check_auth ,blank 
-0225 6fe0c882 fetch 1 ,mem_le_connect_status_flag 
-0226 c280ad8a bbit1 ll_start_enc_flag ,le_send_att_write_response_check_auth 
-0227 6fe0cac7 fetch 1 ,mem_att_write_resposnse_error_insufficient_auth 
-0228 243a2d24 nbranch le_send_att_read_response_error_insufficient_auth ,blank 
-0229 704ac701 jam 1 ,mem_att_write_resposnse_error_insufficient_auth 
-022a 20202d8a branch le_send_att_write_response_check_auth 
-
-p_le_parse_att_write_command:
-022b 20402dc8 call le_parse_att_write_command 
-022c 6849439c fetcht 2 ,mem_le_att_handle 
-022d 6fe14cbe fetch 2 ,mem_le_protocol_rx_handle 
-022e 98467c00 isub temp ,null 
-022f 24628000 nrtn zero 
-
-p_mouse_le_receive_driver_data:
-0230 1a220c00 copy rega ,contr 
-0231 efe08006 ifetch 1 ,contr 
-0232 c1800000 rtnne start_flag 
-0233 efe08006 ifetch 1 ,contr 
-0234 efe08006 ifetch 1 ,contr 
-0235 c003023e beq opcode_voice_start ,p_ms_le_receive_voice_start_data 
-0236 c0038248 beq opcode_voice_end ,p_ms_le_receive_voice_end_data 
-0237 c0080250 beq opcode_get_device_info ,p_ms_le_receive_get_device_info_data 
-0238 c008825b beq opcode_get_dpi ,p_ms_le_receive_get_dpi_data 
-0239 c0090267 beq opcode_set_dpi ,p_ms_le_receive_set_dpi_data 
-023a c0098272 beq opcode_get_battery ,p_ms_le_receive_get_battery_data 
-023b c00b0275 beq opcode_get_device_type ,p_ms_le_receive_get_device_type_data 
-023c c00a0280 beq opcode_set_key_fuction ,p_ms_le_receive_set_key_fuction_data 
-023d 20600000 rtn 
-
-p_ms_le_receive_voice_start_data:
-023e 20402a06 call le_fifo_check_nearly_full 
-023f 245a6924 ncall l2cap_malloc_free ,blank 
-0240 20400657 call p_audio_enable 
-0241 58000002 setarg 0x02 
-0242 67e0c782 store 1 ,mem_le_tx_buffer0_omemalloc 
-0243 58000006 setarg opcode_voice_start 
-0244 e7e08005 istore 1 ,contw 
-0245 58000010 setarg 0x10 
-0246 e7e08005 istore 1 ,contw 
-0247 20200294 branch p_ms_le_tx_protocol_header_interface 
-
-p_ms_le_receive_voice_end_data:
-0248 20402a06 call le_fifo_check_nearly_full 
-0249 245a6924 ncall l2cap_malloc_free ,blank 
-024a 2040064c call p_audio_disable 
-024b 58000001 setarg 0x01 
-024c 67e0c782 store 1 ,mem_le_tx_buffer0_omemalloc 
-024d 58000007 setarg opcode_voice_end 
-024e e7e08005 istore 1 ,contw 
-024f 20200294 branch p_ms_le_tx_protocol_header_interface 
-
-p_ms_le_receive_get_device_info_data:
-0250 20402a06 call le_fifo_check_nearly_full 
-0251 245a6924 ncall l2cap_malloc_free ,blank 
-0252 58000030 setarg device_info_len 
-0253 67e0c782 store 1 ,mem_le_tx_buffer0_omemalloc 
-0254 58000010 setarg opcode_get_device_info 
-0255 e7e08005 istore 1 ,contw 
-0256 df20001f arg auth_len ,loopcnt 
-0257 d8c04853 arg mem_ms_auth_appkey ,contr 
-0258 20407cdc call memcpy 
-0259 204004bd call p_g24_ms_info_set 
-025a 20200294 branch p_ms_le_tx_protocol_header_interface 
-
-p_ms_le_receive_get_dpi_data:
-025b 704ce101 jam app_ask ,mem_mouse_dpi_type 
-
-p_ms_le_tx_dpi_info:
-025c 20402a06 call le_fifo_check_nearly_full 
-025d 245a6924 ncall l2cap_malloc_free ,blank 
-025e 58000003 setarg nor_pro_header_len 
-025f 67e0c782 store 1 ,mem_le_tx_buffer0_omemalloc 
-0260 58000011 setarg opcode_get_dpi 
-0261 e7e08005 istore 1 ,contw 
-0262 6fe0c6a2 fetch 1 ,mem_mouse_dpi 
-0263 e7e08005 istore 1 ,contw 
-0264 6fe0cce1 fetch 1 ,mem_mouse_dpi_type 
-0265 e7e08005 istore 1 ,contw 
-0266 20200294 branch p_ms_le_tx_protocol_header_interface 
-
-p_ms_le_receive_set_dpi_data:
-0267 1a220c00 copy rega ,contr 
-0268 204003aa call p_mouse_receive_dpi_check 
-0269 20402a06 call le_fifo_check_nearly_full 
-026a 245a6924 ncall l2cap_malloc_free ,blank 
-026b 58000002 setarg set_dpi_len 
-026c 67e0c782 store 1 ,mem_le_tx_buffer0_omemalloc 
-026d 58000012 setarg opcode_set_dpi 
-026e e7e08005 istore 1 ,contw 
-026f 6fe0cce3 fetch 1 ,mem_mouse_dpi_set_result 
-0270 e7e08005 istore 1 ,contw 
-0271 20200294 branch p_ms_le_tx_protocol_header_interface 
-
-p_ms_le_receive_get_battery_data:
-0272 20402a06 call le_fifo_check_nearly_full 
-0273 245a6924 ncall l2cap_malloc_free ,blank 
-0274 2020551f branch mouse_le_battery_level_updata 
-
-p_ms_le_receive_get_device_type_data:
-0275 20402a06 call le_fifo_check_nearly_full 
-0276 245a6924 ncall l2cap_malloc_free ,blank 
-0277 6fe0cce5 fetch 1 ,mem_mouse_device_type 
-0278 1fe0fe02 increase 2 ,pdata 
-0279 67e0c782 store 1 ,mem_le_tx_buffer0_omemalloc 
-027a 58000016 setarg opcode_get_device_type 
-027b e7e08005 istore 1 ,contw 
-027c 6f20cce5 fetchr loopcnt ,1 ,mem_mouse_device_type 
-027d d8c04ce6 arg mem_mouse_device_type + 1 ,contr 
-027e 20407cdc call memcpy 
-027f 20200294 branch p_ms_le_tx_protocol_header_interface 
-
-p_ms_le_receive_set_key_fuction_data:
-0280 1a220c00 copy rega ,contr 
-0281 20400376 call p_mouse_receive_key_fuction_check 
-0282 20402a06 call le_fifo_check_nearly_full 
-0283 245a6924 ncall l2cap_malloc_free ,blank 
-0284 58000007 setarg 0x07 
-0285 67e0c782 store 1 ,mem_le_tx_buffer0_omemalloc 
-0286 58000014 setarg opcode_set_key_fuction 
-0287 e7e08005 istore 1 ,contw 
-0288 58000001 setarg 1 
-0289 e7e08005 istore 1 ,contw 
-028a 20200294 branch p_ms_le_tx_protocol_header_interface 
-
-p_ms_le_tx_key_state_interface:
-028b 6048c873 storet 1 ,mem_ms_recv_ackpayload_temp 
-028c 20402a06 call le_fifo_check_nearly_full 
-028d 245a6924 ncall l2cap_malloc_free ,blank 
-028e 58000002 setarg key_state_payload_len 
-028f 67e0c782 store 1 ,mem_le_tx_buffer0_omemalloc 
-0290 6fe0c873 fetch 1 ,mem_ms_recv_ackpayload_temp 
-0291 e7e08005 istore 1 ,contw 
-0292 6fe0c87d fetch 1 ,mem_ms_tx_pro_key_val 
-0293 e7e08005 istore 1 ,contw 
-
-p_ms_le_tx_protocol_header_interface:
-0294 da20003f arg 63 ,rega 
-0295 68494cc0 fetcht 2 ,mem_le_protocol_tx_handle 
-0296 20402dcc call le_att_malloc_tx_notify 
-0297 58000000 setarg start_flag 
-0298 e7e08005 istore 1 ,contw 
-0299 df20003e arg 62 ,loopcnt 
-029a d8c04782 arg mem_le_tx_buffer0_omemalloc ,contr 
-029b 20407cce call memcpy_fast 
-029c df20003e arg 62 ,loopcnt 
-029d d8a04782 arg mem_le_tx_buffer0_omemalloc ,contw 
-029e 20207ca5 branch memset0 
-
-p_ms_le_tx_audio_data:
-029f da20003f arg 63 ,rega 
-02a0 68494cc2 fetcht 2 ,mem_le_audio_tx_handle 
-02a1 20402dcc call le_att_malloc_tx_notify 
-02a2 5800003c setarg voice_queue_unit 
-02a3 e7e08005 istore 1 ,contw 
-02a4 df20003c arg voice_queue_unit ,loopcnt 
-02a5 d8c00ea3 arg mem_queue_buf ,contr 
-02a6 20407cdc call memcpy 
-02a7 58000000 setarg 0 
-02a8 e7e10005 istore 2 ,contw 
-02a9 20600000 rtn 
-
-p_voice_updata_connect_param_req:
-02aa 6fe0c678 fetch 1 ,mem_device_flag 
-02ab c1000000 rtneq mode_24g_device 
-02ac d8c04cc4 arg mem_ms_le_interval_min_voice ,contr 
-
-p_le_updata_connect_param:
-02ad d8a042d5 arg mem_le_interval_min ,contw 
-02ae df200008 arg 8 ,loopcnt 
-02af 20407cdc call memcpy 
-02b0 20202e71 branch le_l2cap_tx_update_req 
-
-p_ms_updata_connect_param_req:
-02b1 6fe0c678 fetch 1 ,mem_device_flag 
-02b2 c1000000 rtneq mode_24g_device 
-02b3 2040552c call mouse_long_mult_init 
-02b4 d8c04ccc arg mem_ms_le_interval_min_new ,contr 
-02b5 202002ad branch p_le_updata_connect_param 
-
-p_mouse_le_param_default:
-02b6 6fe44ccc fetch 8 ,mem_ms_le_interval_min_new 
-02b7 67e442d5 store 8 ,mem_le_interval_min 
-02b8 70409400 jam 0 ,mem_lpm_mode 
-02b9 704cd400 jam 0 ,mem_ms_le_lpm_flag 
-02ba 704ac700 jam 0 ,mem_att_write_resposnse_error_insufficient_auth 
-02bb 20600000 rtn 
-
-p_mouse_cb_fuction:
-02bc 58005b02 setarg mouse_24g_short_sleep 
-02bd 67e1460f store 2 ,mem_cb_24g_transmit_short_sleep 
-02be 58005af7 setarg mouse_24g_long_sleep 
-02bf 67e14611 store 2 ,mem_cb_24g_transmit_long_sleep 
-02c0 58006f4b setarg lpm_puchk_set_check 
-02c1 67e143f2 store 2 ,mem_cb_before_lpm_sleep 
-02c2 20204d29 branch mouse_cb_fuction + 7 
-
-p_mouse_default_init:
-02c3 704e6602 jam zcode_02 ,mem_zcode_temp_param0 
-02c4 202007a2 branch p_zcode_entrance 
-
-p_g24_pair_param_init:
-02c5 7045e74a jam 0x4a ,mem_24g_pair_ch 
-02c6 6fe24cb7 fetch 4 ,mem_24g_pair_addr_new 
-02c7 67e245e3 store 4 ,mem_24g_pair_addr 
-02c8 20600000 rtn 
-
-p_g24_pair_dispatch:
-02c9 7045f900 jam default_24g_device ,mem_24g_reconn_type 
-02ca 6fe145f1 fetch 2 ,mem_24g_pair_count 
-02cb 1fe0fe01 increase 1 ,pdata 
-02cc 67e145f1 store 2 ,mem_24g_pair_count 
-02cd 6fe0c5f1 fetch 1 ,mem_24g_pair_count 
-02ce 1fe17eff and pdata ,0xff ,pdata 
-02cf 247a0000 nrtn blank 
-02d0 6fe0c5eb fetch 1 ,mem_24g_pair_sm 
-02d1 c07fb2d6 beq state_24g_pairing_success ,g24_pair_exit 
-02d2 c00082d7 beq state_24g_pairing_1 ,p_g24_pair_sm_1 
-02d3 c00102d9 beq state_24g_pairing_2 ,p_g24_pair_sm_2 
-02d4 c00182df beq state_24g_pairing_3 ,p_g24_pair_sm_3 
-02d5 c00202e5 beq state_24g_pairing_4 ,p_g24_pair_sm_4 
-02d6 20600000 rtn 
-
-p_g24_pair_sm_1:
-02d7 7047c2ff jam datatype_attemp ,mem_24g_txbuf_new 
-02d8 202002e6 branch p_g24_pair_sm_prep 
-
-p_g24_pair_sm_2:
-02d9 6fe0c5c5 fetch 1 ,mem_24g_pair_switch 
-02da 203a02dd branch p_g24_pair_sm_2_skip ,blank 
-02db 6fe2461b fetch 4 ,mem_24g_device_addr 
-02dc 20403215 call g24_update_addr_and_synccrc8 
-
-p_g24_pair_sm_2_skip:
-02dd 7047c2aa jam datatype_bind ,mem_24g_txbuf_new 
-02de 202002e6 branch p_g24_pair_sm_prep 
-
-p_g24_pair_sm_3:
-02df 7047c255 jam datatype_config ,mem_24g_txbuf_new 
-02e0 6fe0c5c5 fetch 1 ,mem_24g_pair_switch 
-02e1 203a02e6 branch p_g24_pair_sm_prep ,blank 
-02e2 6fe245ff fetch 4 ,mem_24g_receiver_addr 
-02e3 67e247c4 store 4 ,mem_24g_txbuf_new + 2 
-02e4 202002e8 branch p_g24_pair_sm_common 
-
-p_g24_pair_sm_4:
-02e5 7047c222 jam datatype_ok ,mem_24g_txbuf_new 
-
-p_g24_pair_sm_prep:
-02e6 6fe2461b fetch 4 ,mem_24g_device_addr 
-02e7 67e247c4 store 4 ,mem_24g_txbuf_new + 2 
-
-p_g24_pair_sm_common:
-02e8 6fe0c5a0 fetch 1 ,mem_24g_data_type 
-02e9 1fe17e07 and_into bits_data ,pdata 
-02ea 67e0c7c3 store 1 ,mem_24g_txbuf_new + 1 
-02eb 7047c800 jam 0 ,mem_24g_txbuf_new + 6 
-02ec 202032a5 branch g24_pair_sm_common + 4 
-
-p_g24_reconn_dispatch:
-02ed 6fe145f7 fetch 2 ,mem_24g_reconn_count 
-02ee d84001f8 arg 0x01f8 ,temp 
-02ef 98417e00 iand temp ,pdata 
-02f0 203a02f2 branch p_g24_reconn_dispatch_next ,blank 
-02f1 20203537 branch g24_reconn_dispatch + 5 
-
-p_g24_reconn_dispatch_next:
-02f2 204002f8 call p_g24_reconn_data_prep 
-02f3 2040362a call g24_transmit_receive_ack 
-02f4 242c355e nbranch g24_reconn_device_fail ,sync 
-02f5 2437b55e nbranch g24_reconn_device_fail ,user3 
-02f6 20403647 call g24_ackpayload_parse 
-02f7 20204d5d branch mouse_g24_reconn_dispatch_set 
-
-p_g24_reconn_data_prep:
-02f8 7047c2ff jam datatype_attemp ,mem_24g_txbuf_new 
-02f9 6fe0c5a0 fetch 1 ,mem_24g_data_type 
-02fa 67e0c7c3 store 1 ,mem_24g_txbuf_new + 1 
-02fb 6fe2461b fetch 4 ,mem_24g_device_addr 
-02fc 67e247c4 store 4 ,mem_24g_txbuf_new + 2 
-02fd 70459f06 jam 6 ,mem_24g_datalen 
-02fe 202004f9 branch p_g24_transmit_prep 
-
-p_g24_transmit_hop_process:
-02ff 6848c618 fetcht 1 ,mem_24g_retry 
-0300 6fe0c638 fetch 1 ,mem_24g_fast_hop_count 
-0301 98467c00 isub temp ,null 
-0302 24213675 nbranch g24_tx_fast_hop ,positive 
-0303 18408401 increase 1 ,temp 
-0304 6048c618 storet 1 ,mem_24g_retry 
-0305 6fe0c638 fetch 1 ,mem_24g_fast_hop_count 
-0306 c002830b beq 5 ,p_g24_transmit_hop_process_4ms 
-0307 6fe0c618 fetch 1 ,mem_24g_retry 
-0308 c003030f beq 6 ,p_g24_hop_ch_disable 
-0309 c006030f beq 12 ,p_g24_hop_ch_disable 
-030a 20600000 rtn 
-
-p_g24_transmit_hop_process_4ms:
-030b 6fe0c618 fetch 1 ,mem_24g_retry 
-030c c001830f beq 3 ,p_g24_hop_ch_disable 
-030d c003030f beq 6 ,p_g24_hop_ch_disable 
-030e 20600000 rtn 
-
-p_g24_hop_ch_disable:
-030f 6fe0c5a0 fetch 1 ,mem_24g_data_type 
-0310 793ffe04 set0 bit_hop ,pdata 
-0311 67e0c5a0 store 1 ,mem_24g_data_type 
-0312 20400314 call p_g24_txpayload_type_update 
-0313 20203673 branch g24_hop_ch_disable + 4 
-
-p_g24_txpayload_type_update:
-0314 1fe9fe00 lshift3 pdata ,pdata 
-0315 6848c595 fetcht 1 ,mem_24g_pid 
-0316 18410403 and temp ,0x03 ,temp 
-0317 18438400 lshift temp ,temp 
-0318 9841fe00 ior temp ,pdata 
-0319 6848c596 fetcht 1 ,mem_24g_no_ack 
-031a 9840fe00 iadd temp ,pdata 
-031b 67e0c809 store 1 ,mem_24g_txpayload_new + offset_data_type 
-031c 20600000 rtn 
-
-p_mouse_store_dpi_info_check:
-
-p_mouse_store_eerpom_dpi:
-031d d8400001 arg 1 ,temp 
-031e da2046a2 arg mem_mouse_dpi ,rega 
-031f da40002a arg 0x2a ,regb 
-0320 20206cc9 branch iicd_write_protect_eep_data 
-
-p_mouse_24g_package_data:
-0321 c6930000 rtnmark0 mark_24g 
-0322 20400178 call p_mouse_motion 
-0323 204003df call p_mouse_g24_tx_info_check 
-0324 24740000 nrtn user 
-0325 6fe0c73b fetch 1 ,mem_mouse_24g_long_sleep_flag 
-0326 70473b00 jam 0 ,mem_mouse_24g_long_sleep_flag 
-0327 245a59ba ncall mouse_24g_short_sleep_clear_wake ,blank 
-0328 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
-0329 c30a032c bbit0 mouse_enable_keyboard ,p_mouse_24g_mouse_package_data 
-032a 6fe0c72b fetch 1 ,mem_customer_key 
-032b 243a59dc nbranch mouse_24g_keyboard_package_data ,blank 
-
-p_mouse_24g_mouse_package_data:
-032c 2040538e call mouse_data_xy_release 
-032d 6fe0c5a0 fetch 1 ,mem_24g_data_type 
-032e c280d9d6 bbit1 1 ,mouse_24g_mouse_package_data_now 
-032f 6848c7c3 fetcht 1 ,mem_24g_txbuf_new + 1 
-0330 6fe0c65c fetch 1 ,mem_mouse_key 
-0331 9841fe00 ior temp ,pdata 
-0332 67e0c65c store 1 ,mem_mouse_key 
-0333 6848c7c8 fetcht 1 ,mem_24g_txbuf_new + 6 
-0334 6fe0c661 fetch 1 ,mem_mouse_z 
-0335 9840fe00 iadd temp ,pdata 
-0336 67e0c661 store 1 ,mem_mouse_z 
-0337 6848c7c9 fetcht 1 ,mem_24g_txbuf_new + 7 
-0338 6fe0c662 fetch 1 ,mem_mouse_tz 
-0339 9840fe00 iadd temp ,pdata 
-033a 67e0c662 store 1 ,mem_mouse_tz 
-033b 202059d6 branch mouse_24g_mouse_package_data_now 
-
-p_g24_transmit_loop:
-033c 2040362a call g24_transmit_receive_ack 
-033d 242c3638 nbranch g24_retransmit ,sync 
-033e 2437b638 nbranch g24_retransmit ,user3 
-033f 20403647 call g24_ackpayload_parse 
-0340 2040035d call p_g24_parse_receive_work_data 
-0341 20405b33 call mouse_24g_transmit_callback 
-0342 20400344 call p_g24_rxpayload_clear 
-0343 2020361f branch g24_transmit_no_ack 
-
-p_g24_rxpayload_clear:
-0344 df200008 arg 8 ,loopcnt 
-0345 d8a04574 arg mem_24g_rxpayload ,contw 
-0346 20207ca5 branch memset0 
-
-p_g24_dispatch:
-0347 c513b37c bmark1 mark_24g_rxmode ,g24_receive_dispatch 
-0348 c6930000 rtnmark0 mark_24g 
-
-p_g24_transmit_dispatch:
-0349 6fe0c613 fetch 1 ,mem_24g_conn_sm 
-034a c28082c9 bbit1 state_24g_pair ,p_g24_pair_dispatch 
-034b c28102ed bbit1 state_24g_reconn ,p_g24_reconn_dispatch 
-034c 6fe0cc6c fetch 1 ,mem_ms_audio_enable_flag 
-034d 245a36bb ncall g24_transmit_by_interrupt_enable ,blank 
-034e 6fe0c62f fetch 1 ,mem_24g_transmit_by_interrupt 
-034f c0008351 beq g24_tx_timer_int_enable ,p_g24_transmit_by_interrupt 
-0350 20200415 branch p_g24_transmit_no_interrupt 
-
-p_g24_transmit_by_interrupt:
-0351 20403224 call g24_timer_check 
-0352 24740000 nrtn user 
-0353 204036b5 call g24_interval_calibrate 
-0354 6fe08ea2 fetch 1 ,mem_voice_queue_count 
-0355 245a03e8 ncall p_g24_send_audio_info_enable ,blank 
-0356 6fe14630 fetch 2 ,mem_24g_transmit_by_interrupt_exit_count 
-0357 1fe0fe01 increase 1 ,pdata 
-0358 67e14630 store 2 ,mem_24g_transmit_by_interrupt_exit_count 
-0359 68494632 fetcht 2 ,mem_24g_transmit_by_interrupt_exit_count_init 
-035a 98467c00 isub temp ,null 
-035b 2042b6aa call g24_transmit_by_interrupt_exit ,zero 
-035c 202035e0 branch g24_transmit_no_interrupt 
-
-p_g24_parse_receive_work_data:
-035d 204003b4 call p_mouse_g24_tx_flag_clr_check 
-035e 6fe0c594 fetch 1 ,mem_24g_rxdata_length 
-035f 207a0000 rtn blank 
-
-p_g24_receive_ack_data:
-0360 6fe0c574 fetch 1 ,mem_24g_rxpayload 
-0361 c1e00000 rtnne report_id_pro_data 
-0362 6fe0c575 fetch 1 ,mem_24g_rxpayload + 1 
-0363 c1800000 rtnne start_flag 
-0364 6fe0c594 fetch 1 ,mem_24g_rxdata_length 
-0365 67e0c873 store 1 ,mem_ms_recv_ackpayload_temp 
-0366 1fe27200 copy pdata ,loopcnt 
-0367 d8c04575 arg mem_24g_rxpayload + 1 ,contr 
-0368 d8a04874 arg mem_ms_recv_ackpayload_temp + 1 ,contw 
-0369 20407cdc call memcpy 
-
-p_g24_receive_ack_data_next:
-036a 6fe0c577 fetch 1 ,mem_24g_rxpayload + 3 
-036b c003836e beq opcode_voice_end ,p_mouse_receive_dg_voice_end_data 
-036c 704e6620 jam zcode_20 ,mem_zcode_temp_param0 
-036d 202007a2 branch p_zcode_entrance 
-
-p_mouse_receive_dg_voice_end_data:
-036e d8e00005 arg voice_end ,queue 
-036f 202003dc branch p_ms_tx_nor_pro_flag_enable 
-
-p_mouse_g24_tx_dpi_data:
-0370 d8e00007 arg get_dpi ,queue 
-0371 202003dc branch p_ms_tx_nor_pro_flag_enable 
-
-p_memcpy_9:
-0372 df200009 arg 9 ,loopcnt 
-0373 20207cdc branch memcpy 
-
-p_memcpy_4:
-0374 df200004 arg 4 ,loopcnt 
-0375 20207cdc branch memcpy 
-
-p_mouse_receive_key_fuction_check:
-0376 d8a04e41 arg mem_rxpayload_temp + 1 ,contw 
-0377 20400372 call p_memcpy_9 
-0378 6fe0ce44 fetch 1 ,mem_rxpayload_temp + 4 
-0379 c000837d beq b4_fuction ,p_mouse_receive_b4key_data 
-037a c001037f beq b5_fuction ,p_mouse_receive_b5key_data 
-037b c0018381 beq dpi_fuction ,p_mouse_receive_dpikey_data 
-037c 20600000 rtn 
-
-p_mouse_receive_b4key_data:
-037d da604e4f arg mem_mouse_b4_fuction_info ,regc 
-037e 20200383 branch p_mouse_key_info_compare_interface 
-
-p_mouse_receive_b5key_data:
-037f da604e54 arg mem_mouse_b5_fuction_info ,regc 
-0380 20200383 branch p_mouse_key_info_compare_interface 
-
-p_mouse_receive_dpikey_data:
-0381 da604e59 arg mem_mouse_dpi_fuction_info ,regc 
-0382 20200383 branch p_mouse_key_info_compare_interface 
-
-p_mouse_key_info_compare_interface:
-0383 1a620c00 copy regc ,contr 
-0384 d8a04e4a arg mem_mouse_key_fuction_info_temp ,contw 
-0385 20400389 call p_memcpy_5 
-0386 2040038b call p_g24_key_info_updata_check 
-0387 d8c04e4a arg mem_mouse_key_fuction_info_temp ,contr 
-0388 1a620a00 copy regc ,contw 
-
-p_memcpy_5:
-0389 df200005 arg 5 ,loopcnt 
-038a 20207cdc branch memcpy 
-
-p_g24_key_info_updata_check:
-038b 6fe0ce45 fetch 1 ,mem_rxpayload_temp + 5 
-038c c0018398 beq app_key ,p_g24_key_info_updata_app_check 
-038d df200005 arg 5 ,loopcnt 
-038e da204e45 arg mem_rxpayload_temp + 5 ,rega 
-038f da404e4a arg mem_mouse_key_fuction_info_temp ,regb 
-0390 20407d66 call compare_loop 
-0391 20628000 rtn zero 
-0392 d8c04e45 arg mem_rxpayload_temp + 5 ,contr 
-0393 d8a04e4a arg mem_mouse_key_fuction_info_temp ,contw 
-0394 20400389 call p_memcpy_5 
-0395 2020039e branch p_mouse_store_key_info_delay 
-
-p_g24_key_info_updata_app_long_check:
-0396 6048ce4d storet 1 ,mem_mouse_key_fuction_info_temp + 3 
-0397 2020039e branch p_mouse_store_key_info_delay 
-
-p_g24_key_info_updata_app_check:
-0398 67e0ce4a store 1 ,mem_mouse_key_fuction_info_temp 
-0399 6fe0ce46 fetch 1 ,mem_rxpayload_temp + 6 
-039a 6848ce47 fetcht 1 ,mem_rxpayload_temp + 7 
-039b c0008396 beq press_long ,p_g24_key_info_updata_app_long_check 
-039c 6048ce4c storet 1 ,mem_mouse_key_fuction_info_temp + 2 
-039d 2020039e branch p_mouse_store_key_info_delay 
-
-p_mouse_store_key_info_delay:
-039e 6fe0ce60 fetch 1 ,mem_store_key_info_delay_timer_init 
-039f 67e0ce5f store 1 ,mem_store_key_info_delay_timer 
-03a0 20600000 rtn 
-
-p_mouse_key_info_store_delay_timer:
-03a1 da604e5f arg mem_store_key_info_delay_timer ,regc 
-03a2 da4003a4 arg p_mouse_store_key_info_check ,regb 
-03a3 20203755 branch timer_single_step 
-
-p_mouse_store_key_info_check:
-03a4 d8400010 arg 16 ,temp 
-03a5 da204e4f arg mem_mouse_key_information_start ,rega 
-03a6 da40008a arg mouse_value_eeprom_offect ,regb 
-03a7 20206cc9 branch iicd_write_protect_eep_data 
-
-p_mouse_eeprom_load_le_att_list_info:
-03a8 704e6612 jam zcode_12 ,mem_zcode_temp_param0 
-03a9 202007a2 branch p_zcode_entrance 
-
-p_mouse_receive_dpi_check:
-03aa d8a04e41 arg mem_rxpayload_temp + 1 ,contw 
-03ab 20400374 call p_memcpy_4 
-03ac 704ce300 jam 0 ,mem_mouse_dpi_set_result 
-03ad 6fe0ce44 fetch 1 ,mem_rxpayload_temp + 4 
-03ae 1fe67c0a sub pdata ,10 ,null 
-03af 24610000 nrtn positive 
-03b0 67e0c6a2 store 1 ,mem_mouse_dpi 
-03b1 67e0cce2 store 1 ,mem_mouse_last_dpi 
-03b2 704ce301 jam 1 ,mem_mouse_dpi_set_result 
-03b3 20205025 branch mouse_dpi_level_store 
-
-p_mouse_g24_tx_flag_clr_check:
-03b4 6fe0ccbc fetch 1 ,mem_ms_tx_data_type 
-03b5 2feffe04 isolate1 http_bit ,pdata 
-03b6 204083be call p_g24_clr_tx_http_info_flag ,true 
-03b7 2feffe05 isolate1 audio_bit ,pdata 
-03b8 204083c0 call p_g24_clr_tx_audio_info_flag ,true 
-03b9 2feffe06 isolate1 spec_pro_bit ,pdata 
-03ba 204083c2 call p_g24_clr_tx_spec_info_flag_check ,true 
-03bb 2feffe07 isolate1 nor_pro_bit ,pdata 
-03bc 204083c8 call p_g24_clr_tx_nor_pro_flag_check ,true 
-03bd 20600000 rtn 
-
-p_g24_clr_tx_http_info_flag:
-03be 793ffe04 set0 http_bit ,pdata 
-03bf 202003ea branch p_g24_store_ms_tx_flag 
-
-p_g24_clr_tx_audio_info_flag:
-03c0 793ffe05 set0 audio_bit ,pdata 
-03c1 202003ea branch p_g24_store_ms_tx_flag 
-
-p_g24_clr_tx_spec_info_flag_check:
-03c2 204003c6 call p_g24_clr_tx_spec_info_flag 
-03c3 d8400000 arg 0 ,temp 
-03c4 6049487b storet 2 ,mem_ms_tx_pro_key_flag 
-03c5 20600000 rtn 
-
-p_g24_clr_tx_spec_info_flag:
-03c6 793ffe06 set0 spec_pro_bit ,pdata 
-03c7 202003ea branch p_g24_store_ms_tx_flag 
-
-p_g24_clr_tx_nor_pro_flag_check:
-03c8 204003cc call p_g24_clr_tx_nor_info_flag 
-03c9 d8400000 arg 0 ,temp 
-03ca 60494880 storet 2 ,mem_ms_tx_nor_pro_data_flag 
-03cb 20600000 rtn 
-
-p_g24_clr_tx_nor_info_flag:
-03cc 793ffe07 set0 nor_pro_bit ,pdata 
-03cd 202003ea branch p_g24_store_ms_tx_flag 
-
-p_ms_param_bit_set1:
-03ce f9207e00 qset1 pdata 
-
-p_istore_2_contw_rtn:
-03cf e7e10005 istore 2 ,contw 
-03d0 20600000 rtn 
-
-p_ms_param_bit_set0:
-03d1 f93ffe00 qset0 pdata 
-03d2 202003cf branch p_istore_2_contw_rtn 
-
-p_ms_long_press_key_index_enable:
-03d3 6fe1487e fetch 2 ,mem_ms_long_press_key_index 
-03d4 d8a0487e arg mem_ms_long_press_key_index ,contw 
-03d5 202003ce branch p_ms_param_bit_set1 
-
-p_ms_long_press_key_index_disable:
-03d6 6fe1487e fetch 2 ,mem_ms_long_press_key_index 
-03d7 d8a0487e arg mem_ms_long_press_key_index ,contw 
-03d8 202003d1 branch p_ms_param_bit_set0 
-
-p_ms_tx_pro_key_flag_enable:
-03d9 6fe1487b fetch 2 ,mem_ms_tx_pro_key_flag 
-03da d8a0487b arg mem_ms_tx_pro_key_flag ,contw 
-03db 202003ce branch p_ms_param_bit_set1 
-
-p_ms_tx_nor_pro_flag_enable:
-03dc 6fe14880 fetch 2 ,mem_ms_tx_nor_pro_data_flag 
-03dd d8a04880 arg mem_ms_tx_nor_pro_data_flag ,contw 
-03de 202003ce branch p_ms_param_bit_set1 
-
-p_mouse_g24_tx_info_check:
-03df 204003e3 call p_mouse_g24_tx_flag_check 
-
-p_mouse_tx_device_info_check:
-03e0 6fe0ccbc fetch 1 ,mem_ms_tx_data_type 
-03e1 207a0000 rtn blank 
-03e2 20207dbc branch enable_user 
-
-p_mouse_g24_tx_flag_check:
-03e3 6fe1487b fetch 2 ,mem_ms_tx_pro_key_flag 
-03e4 243a03ec nbranch p_g24_send_spec_info_enable ,blank 
-03e5 6fe14880 fetch 2 ,mem_ms_tx_nor_pro_data_flag 
-03e6 243a03ef nbranch p_g24_send_nor_info_enable ,blank 
-03e7 20600000 rtn 
-
-p_g24_send_audio_info_enable:
-03e8 6fe0ccbc fetch 1 ,mem_ms_tx_data_type 
-03e9 79207e05 set1 audio_bit ,pdata 
-
-p_g24_store_ms_tx_flag:
-03ea 67e0ccbc store 1 ,mem_ms_tx_data_type 
-03eb 20600000 rtn 
-
-p_g24_send_spec_info_enable:
-03ec 6fe0ccbc fetch 1 ,mem_ms_tx_data_type 
-03ed 79207e06 set1 spec_pro_bit ,pdata 
-03ee 202003ea branch p_g24_store_ms_tx_flag 
-
-p_g24_send_nor_info_enable:
-03ef 6fe0ccbc fetch 1 ,mem_ms_tx_data_type 
-03f0 79207e07 set1 nor_pro_bit ,pdata 
-03f1 202003ea branch p_g24_store_ms_tx_flag 
-
-p_g24_send_http_info_enable:
-03f2 6fe0ccbc fetch 1 ,mem_ms_tx_data_type 
-03f3 79207e04 set1 http_bit ,pdata 
-03f4 202003ea branch p_g24_store_ms_tx_flag 
-
-p_g24_nodata_transmit:
-03f5 6fe0c619 fetch 1 ,mem_24g_abort_pac 
-03f6 205a03fa call p_g24_send_abort_packet ,blank 
-03f7 6fe0ccbd fetch 1 ,mem_device_tx_heart_data_flag 
-03f8 245a040c ncall p_g24_send_slow_heart_info ,blank 
-03f9 20203680 branch g24_nodata_transmit + 2 
-
-p_g24_send_abort_packet:
-03fa 6fe0ccbd fetch 1 ,mem_device_tx_heart_data_flag 
-03fb 247a0000 nrtn blank 
-03fc 7045a001 jam type_ms ,mem_24g_data_type 
-03fd 6fe0c737 fetch 1 ,mem_24g_shutdown_flag 
-03fe 79407e00 setflip 0 ,pdata 
-03ff 67e0c619 store 1 ,mem_24g_abort_pac 
-0400 2040360e call g24_transmit_rf_ctrl_clear 
-0401 67e0c7c2 store 1 ,mem_24g_txbuf_new 
-0402 58000000 setarg 0 
-0403 67e3c7c3 store 7 ,mem_24g_txbuf_new + 1 
-0404 6fe2461b fetch 4 ,mem_24g_device_addr 
-0405 67e247ca store 4 ,mem_24g_txbuf_new + 8 
-0406 70459f0c jam 12 ,mem_24g_datalen 
-0407 6fe0c5a0 fetch 1 ,mem_24g_data_type 
-0408 79207e03 set1 bit_abort ,pdata 
-0409 67e0c5a0 store 1 ,mem_24g_data_type 
-040a 204004f9 call p_g24_transmit_prep 
-040b 202035e3 branch g24_transmit_start 
-
-p_g24_send_slow_heart_info:
-040c 70461900 jam 0 ,mem_24g_abort_pac 
-040d 7045a001 jam type_ms ,mem_24g_data_type 
-040e 2040360e call g24_transmit_rf_ctrl_clear 
-040f 70459f01 jam 1 ,mem_24g_datalen 
-0410 6fe0c5a0 fetch 1 ,mem_24g_data_type 
-0411 79207e03 set1 heart_bit ,pdata 
-0412 67e0c7c2 store 1 ,mem_24g_txbuf_new 
-0413 204004f9 call p_g24_transmit_prep 
-0414 20203612 branch g24_transmit_process 
-
-p_g24_transmit_no_interrupt:
-0415 20400418 call p_g24_txdata_prep 
-0416 243403f5 nbranch p_g24_nodata_transmit ,user 
-0417 202035e3 branch g24_transmit_start 
-
-p_g24_txdata_prep:
-0418 2040041b call p_g24_package_data 
-0419 24740000 nrtn user 
-041a 202004f9 branch p_g24_transmit_prep 
-
-p_g24_package_data:
-041b 6fe14609 fetch 2 ,mem_cb_24g_transmit_data 
-041c 20407d7b call callback_func 
-041d 20340427 branch p_g24_accumulate_data_set ,user 
-041e 6fe3c7c3 fetch 7 ,mem_24g_txbuf_new + 1 
-041f 207a0000 rtn blank 
-0420 20207dbc branch enable_user 
-
-p_g24_accumulate_data:
-0421 70461900 jam 0 ,mem_24g_abort_pac 
-0422 1a20fe01 add rega ,1 ,pdata 
-0423 67e0c59f store 1 ,mem_24g_datalen 
-0424 2040360e call g24_transmit_rf_ctrl_clear 
-0425 67e0c7c2 store 1 ,mem_24g_txbuf_new 
-0426 2020360b branch g24_accumulate_data + 5 
-
-p_g24_accumulate_data_set:
-0427 70461900 jam 0 ,mem_24g_abort_pac 
-0428 6fe0ccbc fetch 1 ,mem_ms_tx_data_type 
-0429 c0000421 beq 0 ,p_g24_accumulate_data 
-042a c283042f bbit1 spec_pro_bit ,p_g24_send_spec_pro_info_check 
-042b c2838473 bbit1 nor_pro_bit ,p_g24_send_nor_pro_info_check 
-042c c28284d0 bbit1 audio_bit ,p_g24_send_audio_info_check 
-042d c28204ce bbit1 http_bit ,p_g24_send_http_info_check 
-042e 20600000 rtn 
-
-p_g24_send_spec_pro_info_check:
-042f 6fe1487b fetch 2 ,mem_ms_tx_pro_key_flag 
-0430 c2800434 bbit1 audio_key_bit ,p_g24_tx_audio_key_info 
-0431 c2810455 bbit1 transmit_key_bit ,p_g24_tx_transmit_key_info 
-0432 c2850461 bbit1 one_pullup_key_bit ,p_g24_tx_one_pullup_key_info 
-0433 20600000 rtn 
-
-p_g24_tx_audio_key_info:
-0434 6fe0ce4f fetch 1 ,mem_mouse_b4_fuction_info 
-0435 c001844e beq app_key ,p_b4_app_key_function 
-
-p_g24_tx_audio_key_info_next:
-0436 d8400020 arg opcode_voice_key ,temp 
-
-p_g24_tx_key_info_check:
-0437 6fe0ccbb fetch 1 ,mem_ms_rf_data_flag 
-0438 203a0444 branch p_g24_only_send_key_info_interface ,blank 
-
-p_g24_send_key_info_interface:
-0439 6048cc79 storet 1 ,mem_ms_24g_temp_buff + 3 
-043a 6fe0c5a0 fetch 1 ,mem_24g_data_type 
-043b 79207e06 set1 spec_pro_bit ,pdata 
-043c 67e0cc76 store 1 ,mem_ms_24g_temp_buff 
-043d 704c7700 jam start_flag ,mem_ms_24g_temp_buff + 1 
-043e 704c7802 jam key_state_payload_len ,mem_ms_24g_temp_buff + 2 
-043f 6fe0c87d fetch 1 ,mem_ms_tx_pro_key_val 
-0440 67e0cc7a store 1 ,mem_ms_24g_temp_buff + 4 
-0441 d8400005 arg key_state_info_len ,temp 
-0442 da204c76 arg mem_ms_24g_temp_buff ,rega 
-0443 202004e5 branch p_g24_send_rf_other_data 
-
-p_g24_only_send_key_info_interface:
-0444 6048c7c5 storet 1 ,mem_24g_txbuf_new + 3 
-0445 6fe0c5a0 fetch 1 ,mem_24g_data_type 
-0446 79207e06 set1 spec_pro_bit ,pdata 
-0447 67e0c7c2 store 1 ,mem_24g_txbuf_new 
-0448 7047c300 jam start_flag ,mem_24g_txbuf_new + 1 
-0449 7047c402 jam key_state_payload_len ,mem_24g_txbuf_new + 2 
-044a 6fe0c87d fetch 1 ,mem_ms_tx_pro_key_val 
-044b 67e0c7c6 store 1 ,mem_24g_txbuf_new + 4 
-044c 70459f05 jam key_state_info_len ,mem_24g_datalen 
-044d 20600000 rtn 
-
-p_b4_app_key_function:
-044e 6fe0c87d fetch 1 ,mem_ms_tx_pro_key_val 
-044f c0018453 beq long_press ,p_b4_app_key_long_function 
-0450 c0020453 beq long_release ,p_b4_app_key_long_function 
-0451 6848ce51 fetcht 1 ,mem_mouse_b4_fuction_info + 2 
-0452 20200437 branch p_g24_tx_key_info_check 
-
-p_b4_app_key_long_function:
-0453 6848ce52 fetcht 1 ,mem_mouse_b4_fuction_info + 3 
-0454 20200437 branch p_g24_tx_key_info_check 
-
-p_g24_tx_transmit_key_info:
-0455 6fe0ce54 fetch 1 ,mem_mouse_b5_fuction_info 
-0456 c0018458 beq app_key ,p_b5_app_key_function 
-0457 2020045d branch p_g24_tx_transmit_key_info_next 
-
-p_b5_app_key_function:
-0458 6fe0c87d fetch 1 ,mem_ms_tx_pro_key_val 
-0459 c001845f beq long_press ,p_b5_app_key_long_function 
-045a c002045f beq long_release ,p_b5_app_key_long_function 
-045b 6848ce56 fetcht 1 ,mem_mouse_b5_fuction_info + 2 
-045c 20200437 branch p_g24_tx_key_info_check 
-
-p_g24_tx_transmit_key_info_next:
-045d d8400022 arg opcode_transmit_key ,temp 
-045e 20200437 branch p_g24_tx_key_info_check 
-
-p_b5_app_key_long_function:
-045f 6848ce57 fetcht 1 ,mem_mouse_b5_fuction_info + 3 
-0460 20200437 branch p_g24_tx_key_info_check 
-
-p_g24_tx_one_pullup_key_info:
-0461 6fe0ce59 fetch 1 ,mem_mouse_dpi_fuction_info 
-0462 c0018464 beq app_key ,p_dpi_app_key_function 
-0463 20200469 branch p_g24_tx_one_pullup_key_info_next 
-
-p_dpi_app_key_function:
-0464 6fe0c87d fetch 1 ,mem_ms_tx_pro_key_val 
-0465 c001846b beq long_press ,p_dpi_app_key_long_function 
-0466 c002046b beq long_release ,p_dpi_app_key_long_function 
-0467 6848ce5b fetcht 1 ,mem_mouse_dpi_fuction_info + 2 
-0468 20200437 branch p_g24_tx_key_info_check 
-
-p_g24_tx_one_pullup_key_info_next:
-0469 d8400030 arg opcode_one_pullup_key ,temp 
-046a 20200437 branch p_g24_tx_key_info_check 
-
-p_dpi_app_key_long_function:
-046b 6848ce5c fetcht 1 ,mem_mouse_dpi_fuction_info + 3 
-046c 20200437 branch p_g24_tx_key_info_check 
-
-p_g24_audio_data_out_from_queue:
-046d 6fe0cc6f fetch 1 ,mem_voice_enable 
-046e 207a0000 rtn blank 
-046f 6fe08ea2 fetch 1 ,mem_voice_queue_count 
-0470 207a0000 rtn blank 
-0471 204006d8 call p_voice_out_queue 
-0472 20600000 rtn 
-
-p_g24_send_nor_pro_info_check:
-0473 6fe14880 fetch 2 ,mem_ms_tx_nor_pro_data_flag 
-0474 c282047d bbit1 voice_start ,p_g24_voice_on_set 
-0475 c2828481 bbit1 voice_end ,p_g24_voice_off_set 
-0476 c2830485 bbit1 device_info ,p_g24_tx_device_info 
-0477 c2838487 bbit1 get_dpi ,p_g24_get_dpi 
-0478 c2840489 bbit1 set_dpi ,p_g24_set_dpi 
-0479 c284848b bbit1 get_battery ,p_g24_get_battery 
-047a c286048d bbit1 get_device_type ,p_g24_get_device_type 
-047b c285048f bbit1 set_key_fuction ,p_g24_set_key_fuction 
-047c 20600000 rtn 
-
-p_g24_voice_on_set:
-047d 20400657 call p_audio_enable 
-047e d8400002 arg 2 ,temp 
-047f 704cb410 jam voice_start_data ,mem_ms_nor_pro_temp_buff 
-0480 20200491 branch p_g24_send_nor_pro_respond_info_check 
-
-p_g24_voice_off_set:
-0481 2040064c call p_audio_disable 
-0482 6fe0ccbb fetch 1 ,mem_ms_rf_data_flag 
-0483 203a04b6 branch p_g24_only_send_nor_same_pro_respond_info ,blank 
-0484 202004ae branch p_g24_send_nor_pro_same_respond_info 
-
-p_g24_tx_device_info:
-0485 704e6640 jam zcode_40 ,mem_zcode_temp_param0 
-0486 202007a2 branch p_zcode_entrance 
-
-p_g24_get_dpi:
-0487 704e6641 jam zcode_41 ,mem_zcode_temp_param0 
-0488 202007a2 branch p_zcode_entrance 
-
-p_g24_set_dpi:
-0489 704e6650 jam zcode_50 ,mem_zcode_temp_param0 
-048a 202007a2 branch p_zcode_entrance 
-
-p_g24_get_battery:
-048b 704e6651 jam zcode_51 ,mem_zcode_temp_param0 
-048c 202007a2 branch p_zcode_entrance 
-
-p_g24_get_device_type:
-048d 704e6660 jam zcode_60 ,mem_zcode_temp_param0 
-048e 202007a2 branch p_zcode_entrance 
-
-p_g24_set_key_fuction:
-048f 704e6661 jam zcode_61 ,mem_zcode_temp_param0 
-0490 202007a2 branch p_zcode_entrance 
-
-p_g24_send_nor_pro_respond_info_check:
-0491 6fe0c5a0 fetch 1 ,mem_24g_data_type 
-0492 79207e07 set1 nor_pro_bit ,pdata 
-0493 67e0cc76 store 1 ,mem_ms_24g_temp_buff 
-0494 704c7700 jam start_flag ,mem_ms_24g_temp_buff + 1 
-0495 6048cc78 storet 1 ,mem_ms_24g_temp_buff + 2 
-0496 6fe0c876 fetch 1 ,mem_ms_recv_ackpayload_temp + 3 
-0497 67e0cc79 store 1 ,mem_ms_24g_temp_buff + 3 
-0498 1840f3ff add temp ,-1 ,loopcnt 
-0499 d8c04cb4 arg mem_ms_nor_pro_temp_buff ,contr 
-049a d8a04c7a arg mem_ms_24g_temp_buff + 4 ,contw 
-049b 20407cdc call memcpy 
-049c 1840f203 add temp ,nor_pro_header_len ,loopcnt 
-049d 1f222200 copy loopcnt ,rega 
-049e d8a047c2 arg mem_24g_txbuf_new ,contw 
-049f 6fe0ccbb fetch 1 ,mem_ms_rf_data_flag 
-04a0 245a04a6 ncall p_g24_rf_data_fii_fifo ,blank 
-04a1 d8c04c76 arg mem_ms_24g_temp_buff ,contr 
-04a2 20407cdc call memcpy 
-04a3 1a227e00 copy rega ,pdata 
-04a4 67e0c59f store 1 ,mem_24g_datalen 
-04a5 20600000 rtn 
-
-p_g24_rf_data_fii_fifo:
-04a6 18a22600 copy contw ,regc 
-04a7 1a20a208 add rega ,8 ,rega 
-04a8 2040360e call g24_transmit_rf_ctrl_clear 
-04a9 1a620a00 copy regc ,contw 
-04aa e7e08005 istore 1 ,contw 
-04ab 6fe3c65c fetch 7 ,mem_mouse_key 
-04ac e7e38005 istore 7 ,contw 
-04ad 20600000 rtn 
-
-p_g24_send_nor_pro_same_respond_info:
-04ae 6fe0c5a0 fetch 1 ,mem_24g_data_type 
-04af 79207e07 set1 nor_pro_bit ,pdata 
-04b0 67e0cc76 store 1 ,mem_ms_24g_temp_buff 
-04b1 6fe24874 fetch 4 ,mem_ms_recv_ackpayload_temp + 1 
-04b2 67e24c77 store 4 ,mem_ms_24g_temp_buff + 1 
-04b3 d8400005 arg nor_pro_res_len ,temp 
-04b4 da204c76 arg mem_ms_24g_temp_buff ,rega 
-04b5 202004e5 branch p_g24_send_rf_other_data 
-
-p_g24_only_send_nor_same_pro_respond_info:
-04b6 6fe0c5a0 fetch 1 ,mem_24g_data_type 
-04b7 79207e07 set1 nor_pro_bit ,pdata 
-04b8 67e0c7c2 store 1 ,mem_24g_txbuf_new 
-04b9 6fe24874 fetch 4 ,mem_ms_recv_ackpayload_temp + 1 
-04ba 67e247c3 store 4 ,mem_24g_txbuf_new + 1 
-04bb 70459f05 jam nor_pro_res_len ,mem_24g_datalen 
-04bc 20600000 rtn 
-
-p_g24_ms_info_set:
-04bd 6fe0c9fa fetch 1 ,mem_config_sensor_type 
-04be e7e08005 istore 1 ,contw 
-04bf 6fe0c6a2 fetch 1 ,mem_mouse_dpi 
-04c0 e7e08005 istore 1 ,contw 
-04c1 6fe0c77c fetch 1 ,mem_le_battery_level_percentage 
-04c2 e7e08005 istore 1 ,contw 
-04c3 6fe0c872 fetch 1 ,mem_ms_version 
-04c4 e7e08005 istore 1 ,contw 
-04c5 df200003 arg 3 ,loopcnt 
-04c6 d8c04e4f arg mem_mouse_b4_fuction_info ,contr 
-
-p_g24_send_device_info_loop:
-04c7 efe08006 ifetch 1 ,contr 
-04c8 e7e08005 istore 1 ,contw 
-04c9 18c08c01 increase 1 ,contr 
-04ca efe18006 ifetch 3 ,contr 
-04cb e7e18005 istore 3 ,contw 
-04cc c20004c7 loop p_g24_send_device_info_loop 
-04cd 20600000 rtn 
-
-p_g24_send_http_info_check:
-04ce 704e6630 jam zcode_30 ,mem_zcode_temp_param0 
-04cf 202007a2 branch p_zcode_entrance 
-
-p_g24_send_audio_info_check:
-04d0 2040046d call p_g24_audio_data_out_from_queue 
-04d1 6fe0ccbb fetch 1 ,mem_ms_rf_data_flag 
-04d2 203a04dd branch p_g24_only_send_audio_info ,blank 
-
-p_g24_send_audio_info:
-04d3 6fe0c5a0 fetch 1 ,mem_24g_data_type 
-04d4 79207e05 set1 audio_bit ,pdata 
-04d5 67e0cc76 store 1 ,mem_ms_24g_temp_buff 
-04d6 df20003c arg voice_queue_unit ,loopcnt 
-04d7 d8c00ea3 arg mem_queue_buf ,contr 
-04d8 d8a04c77 arg mem_ms_24g_temp_buff + 1 ,contw 
-04d9 20407cdc call memcpy 
-04da d840003d arg 61 ,temp 
-04db da204c76 arg mem_ms_24g_temp_buff ,rega 
-04dc 202004e5 branch p_g24_send_rf_other_data 
-
-p_g24_only_send_audio_info:
-04dd 70459f3d jam 61 ,mem_24g_datalen 
-04de 6fe0c5a0 fetch 1 ,mem_24g_data_type 
-04df 79207e05 set1 audio_bit ,pdata 
-04e0 67e0c7c2 store 1 ,mem_24g_txbuf_new 
-04e1 df20003c arg voice_queue_unit ,loopcnt 
-04e2 d8c00ea3 arg mem_queue_buf ,contr 
-04e3 d8a047c3 arg mem_24g_txbuf_new + 1 ,contw 
-04e4 20207cdc branch memcpy 
-
-p_g24_send_rf_other_data:
-04e5 1840fe08 add temp ,8 ,pdata 
-04e6 67e0c59f store 1 ,mem_24g_datalen 
-04e7 2040360e call g24_transmit_rf_ctrl_clear 
-04e8 67e0c7c2 store 1 ,mem_24g_txbuf_new 
-04e9 6fe3c65c fetch 7 ,mem_mouse_key 
-04ea 67e3c7c3 store 7 ,mem_24g_txbuf_new + 1 
-04eb 18427200 copy temp ,loopcnt 
-04ec 1a220c00 copy rega ,contr 
-04ed d8a047ca arg mem_24g_txbuf_new + 8 ,contw 
-04ee 20207cdc branch memcpy 
-
-p_g24_transmit_packet:
-04ef 6fe0c5e1 fetch 1 ,mem_24g_disable_fec1 
-04f0 243a04f3 nbranch p_g24_transmit_nolr ,blank 
-04f1 784efc00 disable encode_fec0 
-04f2 782dfc00 enable encode_fec1 
-
-p_g24_transmit_nolr:
-04f3 7823fc00 enable enable_white 
-04f4 7824fc00 enable enable_crc 
-04f5 6fe0c5a1 fetch 1 ,mem_24g_txlen 
-04f6 98007200 iforce loopcnt 
-04f7 d8c04808 arg mem_24g_txpayload_new ,contr 
-04f8 20203192 branch g24tr_loop 
-
-p_g24_transmit_prep:
-04f9 6fe0c59f fetch 1 ,mem_24g_datalen 
-04fa 1fe0fe03 increase 3 ,pdata 
-04fb 67e0c5a1 store 1 ,mem_24g_txlen 
-04fc 6fe0c5c3 fetch 1 ,mem_24g_syncword_crc8 
-04fd 67e0c808 store 1 ,mem_24g_txpayload_new 
-04fe 6fe0c5a0 fetch 1 ,mem_24g_data_type 
-04ff 1fe9fe00 lshift3 pdata ,pdata 
-0500 6848c595 fetcht 1 ,mem_24g_pid 
-0501 18410403 and temp ,0x03 ,temp 
-0502 18438400 lshift temp ,temp 
-0503 9841fe00 ior temp ,pdata 
-0504 6848c596 fetcht 1 ,mem_24g_no_ack 
-0505 9840fe00 iadd temp ,pdata 
-0506 e7e08005 istore 1 ,contw 
-0507 6fe0c59f fetch 1 ,mem_24g_datalen 
-0508 e7e08005 istore 1 ,contw 
-0509 6fe0c59f fetch 1 ,mem_24g_datalen 
-050a 98007200 iforce loopcnt 
-050b d8c047c2 arg mem_24g_txbuf_new ,contr 
-050c 20407cdc call memcpy 
-050d 202031db branch g24_transmit_prep_next 
-
-p_g24_txbuf_clear:
-050e df20000a arg 10 ,loopcnt 
-050f d8a047c2 arg mem_24g_txbuf_new ,contw 
-0510 20207ca5 branch memset0 
-
-p_g24_read_len_pid_crc:
-0511 6fe0c50f fetch 1 ,mem_24g_rxbuf + 1 
-0512 67e0c594 store 1 ,mem_24g_rxdata_length 
-0513 1fe0fe01 increase 1 ,pdata 
-0514 d8c0450f arg mem_24g_rxbuf + 1 ,contr 
-0515 98c08c00 iadd contr ,contr 
-0516 efe18006 ifetch 3 ,contr 
-0517 67e1c597 store 3 ,mem_24g_sta_crc 
-0518 6fe0c50e fetch 1 ,mem_24g_rxbuf 
-0519 1fe30400 rshift pdata ,temp 
-051a 18410403 and temp ,0x03 ,temp 
-051b 6048c59d storet 1 ,mem_24g_sta_pid 
-051c 1fe97e00 rshift3 pdata ,pdata 
-051d 67e0c50e store 1 ,mem_24g_rxbuf 
-051e 20600000 rtn 
-
-p_g24_receive_payload:
-051f 2040315c call g24_receive_byte 
-0520 67e0c50e store 1 ,mem_24g_rxbuf 
-0521 c5138527 bmark1 mark_24g_rxmode ,p_g24_receive_skip 
-0522 6fe0c50e fetch 1 ,mem_24g_rxbuf 
-0523 1fe97e00 rshift3 pdata ,pdata 
-0524 6848c5a0 fetcht 1 ,mem_24g_data_type 
-0525 a8400e00 icompare bits_data ,temp 
-0526 2420b16b nbranch g24_type_error ,true 
-
-p_g24_receive_skip:
-0527 2040315c call g24_receive_byte 
-0528 e7e08005 istore 1 ,contw 
-0529 1fe67c1f sub pdata ,0x1f ,null 
-052a 2421316d nbranch g24_len_over_error ,positive 
-052b 1fe27200 copy pdata ,loopcnt 
-052c 2022b133 branch g24rx_nopayload ,zero 
-052d 20203130 branch g24rx_loop 
-
-p_mouse_idle:
-052e 2040575a call mouse_idle + 1 
-052f 20400539 call p_mouse_dpi_level_check 
-0530 20400534 call p_mouse_fuction_key 
-0531 204006a2 call p_voice_adpcm_enter_queue 
-0532 20400542 call p_mouse_g24_hop_set 
-0533 202006ce branch p_le_audio_data_out_from_queue 
-
-p_mouse_fuction_key:
-0534 70472b00 jam 0 ,mem_customer_key 
-0535 2040055d call p_mouse_audio_key_scan 
-0536 204005bc call p_mouse_one_pullup_key_scan 
-0537 20400604 call p_mouse_transmit_key_scan 
-0538 2020054a branch p_mouse_bb_event_10ms_timer 
-
-p_mouse_dpi_level_check:
-0539 6fe0c6a2 fetch 1 ,mem_mouse_dpi 
-053a 6848cce2 fetcht 1 ,mem_mouse_last_dpi 
-053b 98467c00 isub temp ,null 
-053c 20628000 rtn zero 
-053d 67e0cce2 store 1 ,mem_mouse_last_dpi 
-053e 704ce100 jam auto_in ,mem_mouse_dpi_type 
-053f 6fe0c678 fetch 1 ,mem_device_flag 
-0540 c0000370 beq mode_24g_device ,p_mouse_g24_tx_dpi_data 
-0541 2020025c branch p_ms_le_tx_dpi_info 
-
-p_mouse_g24_hop_set:
-0542 6fe0c678 fetch 1 ,mem_device_flag 
-0543 c1800000 rtnne mode_24g_device 
-0544 6fe08ea2 fetch 1 ,mem_voice_queue_count 
-0545 203a0548 branch p_mouse_default_hop_set ,blank 
-
-p_mouse_audio_hop_set:
-0546 70463805 jam 0x05 ,mem_24g_fast_hop_count 
-0547 20600000 rtn 
-
-p_mouse_default_hop_set:
-0548 7046380f jam 0x0f ,mem_24g_fast_hop_count 
-0549 20600000 rtn 
-
-p_mouse_bb_event_10ms_timer:
-054a d8e00003 arg app_ms_key_scan_timer ,queue 
-054b 20407cf1 call timer_check 
-054c 247a0000 nrtn blank 
-054d 204005a1 call p_mouse_audio_key_long_press_check 
-054e 204005e9 call p_mouse_one_pullup_key_long_press_check 
-054f 20400631 call p_mouse_transmit_key_long_press_check 
-0550 20400554 call p_app_audio_enable_set 
-
-p_mouse_bb_event_10ms_timer_init:
-0551 d8e00003 arg app_ms_key_scan_timer ,queue 
-0552 58000010 setarg 16 
-0553 20207ce3 branch timer_init 
-
-p_app_audio_enable_set:
-0554 6fe0cc6d fetch 1 ,mem_ms_audio_enable_timer 
-0555 207a0000 rtn blank 
-0556 1fe0ffff increase -1 ,pdata 
-0557 67e0cc6d store 1 ,mem_ms_audio_enable_timer 
-0558 247a0000 nrtn blank 
-
-p_audio_data_get_enable:
-0559 704c6f01 jam 1 ,mem_voice_enable 
-055a d8a00a26 arg mem_voice_raw_start ,contw 
-055b df2002d0 arg audio_buf_len ,loopcnt 
-055c 20207ca3 branch clear_mem 
-
-p_mouse_audio_key_scan:
-055d 6fe0ccd5 fetch 1 ,mem_ms_audio_key_gpio 
-055e c17f8000 rtneq gpio_disable 
-055f 704a1d01 jam mouse_audio_key ,mem_mouse_key_temp_patch 
-0560 6848ccd5 fetcht 1 ,mem_ms_audio_key_gpio 
-0561 20400568 call p_mouse_audio_key_check 
-0562 67e0ccd7 store 1 ,mem_ms_audio_key_press_status 
-0563 20405203 call mouse_matrix_public_gpio_reset 
-0564 6fe0ccd7 fetch 1 ,mem_ms_audio_key_press_status 
-0565 c000058e beq 0 ,p_audio_key_up 
-0566 c0038572 beq 7 ,p_audio_key_down 
-0567 20600000 rtn 
-
-p_mouse_audio_key_check:
-0568 20406ee0 call gpio_get_bit 
-0569 6848c89c fetcht 1 ,mem_matrix_public_gpio 
-056a 20208570 branch p_mouse_check_audio_button_connect_gnd ,true 
-056b 6848c89c fetcht 1 ,mem_matrix_public_gpio 
-056c 20406ef1 call gpio_out_active 
-056d 6848ccd5 fetcht 1 ,mem_ms_audio_key_gpio 
-056e 6fe0ccd7 fetch 1 ,mem_ms_audio_key_press_status 
-056f 20205157 branch mouse_check_key_connect_gnd_new 
-
-p_mouse_check_audio_button_connect_gnd:
-0570 6fe0ccd7 fetch 1 ,mem_ms_audio_key_press_status 
-0571 20205157 branch mouse_check_key_connect_gnd_new 
-
-p_audio_key_down:
-0572 6fe0ccd6 fetch 1 ,mem_ms_audio_key_state 
-0573 c1008000 rtneq key_down 
-0574 704cd601 jam key_down ,mem_ms_audio_key_state 
-0575 6fe2ce4f fetch 5 ,mem_mouse_b4_fuction_info 
-
-p_app_key_replace:
-0576 67e2ce4a store 5 ,mem_mouse_key_fuction_info_temp 
-0577 6fe0ce4a fetch 1 ,mem_mouse_key_fuction_info_temp 
-0578 c000857e beq ms_key ,p_mouse_key_value_replace 
-0579 c001057b beq kb_key ,p_keyboard_key_value_replace 
-057a 20600000 rtn 
-
-p_keyboard_key_value_replace:
-057b 6fe1ce4c fetch 3 ,mem_mouse_key_fuction_info_temp + 2 
-057c 67e1c9fe store 3 ,mem_customer_key_press_init + 1 
-057d 2020522c branch mouse_customerkey_press 
-
-p_mouse_key_value_replace:
-057e 6a20ce61 fetchr rega ,1 ,mem_mouse_fuction_key 
-057f 6fe0ce4c fetch 1 ,mem_mouse_key_fuction_info_temp + 2 
-0580 c07f8584 beq dpi_value ,p_mouse_dpi_process_new 
-0581 9a21a200 ior rega ,rega 
-0582 6220ce61 storer rega ,1 ,mem_mouse_fuction_key 
-0583 20600000 rtn 
-
-p_mouse_dpi_process_new:
-0584 6220ce61 storer rega ,1 ,mem_mouse_fuction_key 
-0585 2040501b call mouse_dpi_process 
-0586 6a20ce61 fetchr rega ,1 ,mem_mouse_fuction_key 
-0587 20600000 rtn 
-
-p_app_key_clear:
-0588 6fe0ce4c fetch 1 ,mem_mouse_key_fuction_info_temp + 2 
-0589 c17f8000 rtneq dpi_value 
-058a 1fe47e00 invert pdata ,pdata 
-058b 9a212200 iand rega ,rega 
-058c 6220ce61 storer rega ,1 ,mem_mouse_fuction_key 
-058d 20600000 rtn 
-
-p_audio_key_up:
-058e 6fe0ccd6 fetch 1 ,mem_ms_audio_key_state 
-058f c1000000 rtneq key_up 
-0590 704cd600 jam key_up ,mem_ms_audio_key_state 
-0591 6fe2ce4f fetch 5 ,mem_mouse_b4_fuction_info 
-0592 67e2ce4a store 5 ,mem_mouse_key_fuction_info_temp 
-0593 6a20ce61 fetchr rega ,1 ,mem_mouse_fuction_key 
-0594 6fe0ce4a fetch 1 ,mem_mouse_key_fuction_info_temp 
-0595 c0008588 beq ms_key ,p_app_key_clear 
-0596 c001522f beq kb_key ,mouse_customerkey_release 
-0597 704cd800 jam 0 ,mem_ms_audio_key_press_count 
-0598 70487d01 jam signle_press ,mem_ms_tx_pro_key_val 
-0599 6fe1487e fetch 2 ,mem_ms_long_press_key_index 
-059a 2feffe00 isolate1 audio_key_bit ,pdata 
-059b 2040859f call p_ms_audio_key_long_release ,true 
-059c d8e00000 arg audio_key_bit ,queue 
-059d 204003d6 call p_ms_long_press_key_index_disable 
-059e 202005af branch p_mouse_audio_key_state_enable 
-
-p_ms_audio_key_long_release:
-059f 70487d04 jam long_release ,mem_ms_tx_pro_key_val 
-05a0 20600000 rtn 
-
-p_mouse_audio_key_long_press_check:
-05a1 6fe0ccd6 fetch 1 ,mem_ms_audio_key_state 
-05a2 c1000000 rtneq key_up 
-05a3 6fe0ce4f fetch 1 ,mem_mouse_b4_fuction_info 
-05a4 c1818000 rtnne app_key 
-05a5 6fe1487e fetch 2 ,mem_ms_long_press_key_index 
-05a6 c3800000 rtnbit1 audio_key_bit 
-05a7 6fe0ccd8 fetch 1 ,mem_ms_audio_key_press_count 
-05a8 1fe0fe01 increase 1 ,pdata 
-05a9 67e0ccd8 store 1 ,mem_ms_audio_key_press_count 
-05aa 1fe67c32 sub pdata ,key_long_press ,null 
-05ab 20610000 rtn positive 
-05ac 70487d03 jam long_press ,mem_ms_tx_pro_key_val 
-05ad d8e00000 arg audio_key_bit ,queue 
-05ae 204003d3 call p_ms_long_press_key_index_enable 
-
-p_mouse_audio_key_state_enable:
-05af 6fe0cac4 fetch 1 ,mem_mouse_pair_flag 
-05b0 207a0000 rtn blank 
-05b1 6fe0c678 fetch 1 ,mem_device_flag 
-05b2 c00003d9 beq mode_24g_device ,p_ms_tx_pro_key_flag_enable 
-
-p_le_audio_app_key_set:
-05b3 6fe0c87d fetch 1 ,mem_ms_tx_pro_key_val 
-05b4 c00185b8 beq long_press ,p_le_audio_app_key_long_set 
-05b5 c00205b8 beq long_release ,p_le_audio_app_key_long_set 
-05b6 c00085ba beq signle_press ,p_le_audio_key_single_set 
-05b7 20600000 rtn 
-
-p_le_audio_app_key_long_set:
-05b8 6848ce52 fetcht 1 ,mem_mouse_b4_fuction_info + 3 
-05b9 2020028b branch p_ms_le_tx_key_state_interface 
-
-p_le_audio_key_single_set:
-05ba 6848ce51 fetcht 1 ,mem_mouse_b4_fuction_info + 2 
-05bb 2020028b branch p_ms_le_tx_key_state_interface 
-
-p_mouse_one_pullup_key_scan:
-05bc 6fe0ccd9 fetch 1 ,mem_ms_one_pullup_key_gpio 
-05bd c17f8000 rtneq gpio_disable 
-05be 704a1d04 jam mouse_one_pullup_key ,mem_mouse_key_temp_patch 
-05bf 6848ccd9 fetcht 1 ,mem_ms_one_pullup_key_gpio 
-05c0 204005c7 call p_mouse_one_pullup_key_check 
-05c1 67e0ccdb store 1 ,mem_ms_one_pullup_key_press_status 
-05c2 20405203 call mouse_matrix_public_gpio_reset 
-05c3 6fe0ccdb fetch 1 ,mem_ms_one_pullup_key_press_status 
-05c4 c00005d6 beq 0 ,p_one_pullup_key_up 
-05c5 c00385d1 beq 7 ,p_one_pullup_key_down 
-05c6 20600000 rtn 
-
-p_mouse_one_pullup_key_check:
-05c7 20406ee0 call gpio_get_bit 
-05c8 6848c89c fetcht 1 ,mem_matrix_public_gpio 
-05c9 202085cf branch p_mouse_check_one_pullup_button_connect_gnd ,true 
-05ca 6848c89c fetcht 1 ,mem_matrix_public_gpio 
-05cb 20406ef1 call gpio_out_active 
-05cc 6848ccd9 fetcht 1 ,mem_ms_one_pullup_key_gpio 
-05cd 6fe0ccdb fetch 1 ,mem_ms_one_pullup_key_press_status 
-05ce 20205157 branch mouse_check_key_connect_gnd_new 
-
-p_mouse_check_one_pullup_button_connect_gnd:
-05cf 6fe0ccdb fetch 1 ,mem_ms_one_pullup_key_press_status 
-05d0 20205157 branch mouse_check_key_connect_gnd_new 
-
-p_one_pullup_key_down:
-05d1 6fe0ccda fetch 1 ,mem_ms_one_pullup_key_state 
-05d2 c1008000 rtneq key_down 
-05d3 704cda01 jam key_down ,mem_ms_one_pullup_key_state 
-05d4 6fe2ce59 fetch 5 ,mem_mouse_dpi_fuction_info 
-05d5 20200576 branch p_app_key_replace 
-
-p_one_pullup_key_up:
-05d6 6fe0ccda fetch 1 ,mem_ms_one_pullup_key_state 
-05d7 c1000000 rtneq key_up 
-05d8 704cda00 jam key_up ,mem_ms_one_pullup_key_state 
-05d9 6fe2ce59 fetch 5 ,mem_mouse_dpi_fuction_info 
-05da 67e2ce4a store 5 ,mem_mouse_key_fuction_info_temp 
-05db 6a20ce61 fetchr rega ,1 ,mem_mouse_fuction_key 
-05dc 6fe0ce4a fetch 1 ,mem_mouse_key_fuction_info_temp 
-05dd c0008588 beq ms_key ,p_app_key_clear 
-05de c001522f beq kb_key ,mouse_customerkey_release 
-05df 704cdc00 jam 0 ,mem_ms_one_pullup_key_press_count 
-05e0 70487d01 jam signle_press ,mem_ms_tx_pro_key_val 
-05e1 6fe1487e fetch 2 ,mem_ms_long_press_key_index 
-05e2 2feffe0a isolate1 one_pullup_key_bit ,pdata 
-05e3 204085e7 call p_ms_one_pullup_key_long_release ,true 
-05e4 d8e0000a arg one_pullup_key_bit ,queue 
-05e5 204003d6 call p_ms_long_press_key_index_disable 
-05e6 202005f7 branch p_mouse_one_pullup_key_state_enable 
-
-p_ms_one_pullup_key_long_release:
-05e7 70487d04 jam long_release ,mem_ms_tx_pro_key_val 
-05e8 20600000 rtn 
-
-p_mouse_one_pullup_key_long_press_check:
-05e9 6fe0ccda fetch 1 ,mem_ms_one_pullup_key_state 
-05ea c1000000 rtneq key_up 
-05eb 6fe0ce59 fetch 1 ,mem_mouse_dpi_fuction_info 
-05ec c1818000 rtnne app_key 
-05ed 6fe1487e fetch 2 ,mem_ms_long_press_key_index 
-05ee c3850000 rtnbit1 one_pullup_key_bit 
-05ef 6fe0ccdc fetch 1 ,mem_ms_one_pullup_key_press_count 
-05f0 1fe0fe01 increase 1 ,pdata 
-05f1 67e0ccdc store 1 ,mem_ms_one_pullup_key_press_count 
-05f2 1fe67c32 sub pdata ,key_long_press ,null 
-05f3 20610000 rtn positive 
-05f4 70487d03 jam long_press ,mem_ms_tx_pro_key_val 
-05f5 d8e0000a arg one_pullup_key_bit ,queue 
-05f6 204003d3 call p_ms_long_press_key_index_enable 
-
-p_mouse_one_pullup_key_state_enable:
-05f7 6fe0cac4 fetch 1 ,mem_mouse_pair_flag 
-05f8 207a0000 rtn blank 
-05f9 6fe0c678 fetch 1 ,mem_device_flag 
-05fa c00003d9 beq mode_24g_device ,p_ms_tx_pro_key_flag_enable 
-
-p_le_one_pullup_app_key_set:
-05fb 6fe0c87d fetch 1 ,mem_ms_tx_pro_key_val 
-05fc c0018600 beq long_press ,p_le_one_pullup_app_key_long_set 
-05fd c0020600 beq long_release ,p_le_one_pullup_app_key_long_set 
-05fe c0008602 beq signle_press ,p_le_one_pullup_key_single_set 
-05ff 20600000 rtn 
-
-p_le_one_pullup_app_key_long_set:
-0600 6848ce5c fetcht 1 ,mem_mouse_dpi_fuction_info + 3 
-0601 2020028b branch p_ms_le_tx_key_state_interface 
-
-p_le_one_pullup_key_single_set:
-0602 6848ce5b fetcht 1 ,mem_mouse_dpi_fuction_info + 2 
-0603 2020028b branch p_ms_le_tx_key_state_interface 
-
-p_mouse_transmit_key_scan:
-0604 6fe0ccdd fetch 1 ,mem_ms_transmit_key_gpio 
-0605 c17f8000 rtneq gpio_disable 
-0606 704a1d03 jam mouse_transmit_key ,mem_mouse_key_temp_patch 
-0607 6848ccdd fetcht 1 ,mem_ms_transmit_key_gpio 
-0608 2040060f call p_mouse_transmit_key_check 
-0609 67e0ccdf store 1 ,mem_ms_transmit_key_press_status 
-060a 20405203 call mouse_matrix_public_gpio_reset 
-060b 6fe0ccdf fetch 1 ,mem_ms_transmit_key_press_status 
-060c c000061e beq 0 ,p_transmit_key_up 
-060d c0038619 beq 7 ,p_transmit_key_down 
-060e 20600000 rtn 
-
-p_mouse_transmit_key_check:
-060f 20406ee0 call gpio_get_bit 
-0610 6848c89c fetcht 1 ,mem_matrix_public_gpio 
-0611 20208617 branch p_mouse_check_transmit_button_connect_gnd ,true 
-0612 6848c89c fetcht 1 ,mem_matrix_public_gpio 
-0613 20406ef1 call gpio_out_active 
-0614 6848ccdd fetcht 1 ,mem_ms_transmit_key_gpio 
-0615 6fe0ccdf fetch 1 ,mem_ms_transmit_key_press_status 
-0616 20205157 branch mouse_check_key_connect_gnd_new 
-
-p_mouse_check_transmit_button_connect_gnd:
-0617 6fe0ccdf fetch 1 ,mem_ms_transmit_key_press_status 
-0618 20205157 branch mouse_check_key_connect_gnd_new 
-
-p_transmit_key_down:
-0619 6fe0ccde fetch 1 ,mem_ms_transmit_key_state 
-061a c1008000 rtneq key_down 
-061b 704cde01 jam key_down ,mem_ms_transmit_key_state 
-061c 6fe2ce54 fetch 5 ,mem_mouse_b5_fuction_info 
-061d 20200576 branch p_app_key_replace 
-
-p_transmit_key_up:
-061e 6fe0ccde fetch 1 ,mem_ms_transmit_key_state 
-061f c1000000 rtneq key_up 
-0620 704cde00 jam key_up ,mem_ms_transmit_key_state 
-0621 6fe2ce54 fetch 5 ,mem_mouse_b5_fuction_info 
-0622 67e2ce4a store 5 ,mem_mouse_key_fuction_info_temp 
-0623 6a20ce61 fetchr rega ,1 ,mem_mouse_fuction_key 
-0624 6fe0ce4a fetch 1 ,mem_mouse_key_fuction_info_temp 
-0625 c0008588 beq ms_key ,p_app_key_clear 
-0626 c001522f beq kb_key ,mouse_customerkey_release 
-0627 704ce000 jam 0 ,mem_ms_transmit_key_press_count 
-0628 70487d01 jam signle_press ,mem_ms_tx_pro_key_val 
-0629 6fe1487e fetch 2 ,mem_ms_long_press_key_index 
-062a 2feffe02 isolate1 transmit_key_bit ,pdata 
-062b 2040862f call p_ms_transmit_key_long_release ,true 
-062c d8e00002 arg transmit_key_bit ,queue 
-062d 204003d6 call p_ms_long_press_key_index_disable 
-062e 2020063f branch p_mouse_transmit_key_state_enable 
-
-p_ms_transmit_key_long_release:
-062f 70487d04 jam long_release ,mem_ms_tx_pro_key_val 
-0630 20600000 rtn 
-
-p_mouse_transmit_key_long_press_check:
-0631 6fe0ccde fetch 1 ,mem_ms_transmit_key_state 
-0632 c1000000 rtneq key_up 
-0633 6fe0ce54 fetch 1 ,mem_mouse_b5_fuction_info 
-0634 c1818000 rtnne app_key 
-0635 6fe1487e fetch 2 ,mem_ms_long_press_key_index 
-0636 c3810000 rtnbit1 transmit_key_bit 
-0637 6fe0cce0 fetch 1 ,mem_ms_transmit_key_press_count 
-0638 1fe0fe01 increase 1 ,pdata 
-0639 67e0cce0 store 1 ,mem_ms_transmit_key_press_count 
-063a 1fe67c32 sub pdata ,key_long_press ,null 
-063b 20610000 rtn positive 
-063c 70487d03 jam long_press ,mem_ms_tx_pro_key_val 
-063d d8e00002 arg transmit_key_bit ,queue 
-063e 204003d3 call p_ms_long_press_key_index_enable 
-
-p_mouse_transmit_key_state_enable:
-063f 6fe0cac4 fetch 1 ,mem_mouse_pair_flag 
-0640 207a0000 rtn blank 
-0641 6fe0c678 fetch 1 ,mem_device_flag 
-0642 c00003d9 beq mode_24g_device ,p_ms_tx_pro_key_flag_enable 
-
-p_le_transmit_app_key_set:
-0643 6fe0c87d fetch 1 ,mem_ms_tx_pro_key_val 
-0644 c0018648 beq long_press ,p_le_transmit_app_key_long_set 
-0645 c0020648 beq long_release ,p_le_transmit_app_key_long_set 
-0646 c000864a beq signle_press ,p_le_transmit_key_single_set 
-0647 20600000 rtn 
-
-p_le_transmit_app_key_long_set:
-0648 6848ce57 fetcht 1 ,mem_mouse_b5_fuction_info + 3 
-0649 2020028b branch p_ms_le_tx_key_state_interface 
-
-p_le_transmit_key_single_set:
-064a 6848ce56 fetcht 1 ,mem_mouse_b5_fuction_info + 2 
-064b 2020028b branch p_ms_le_tx_key_state_interface 
-
-p_audio_disable:
-064c 6fe0cc6c fetch 1 ,mem_ms_audio_enable_flag 
-064d 207a0000 rtn blank 
-064e 704c6c00 jam 0 ,mem_ms_audio_enable_flag 
-064f 70409401 jam 1 ,mem_lpm_mode 
-0650 704c6f00 jam 0 ,mem_voice_enable 
-0651 70442700 jam 0 ,mem_adc_dma_enable 
-0652 7046380f jam 0x0f ,mem_24g_fast_hop_count 
-0653 700ea200 jam 0 ,mem_voice_queue_count 
-0654 7080cc00 jam 0 ,core_sadc_ctrl 
-0655 704c6e00 jam adc_battery ,mem_ms_adc_mode 
-0656 202002b1 branch p_ms_updata_connect_param_req 
-
-p_audio_enable:
-0657 6fe0cc6c fetch 1 ,mem_ms_audio_enable_flag 
-0658 247a0000 nrtn blank 
-0659 704c6c01 jam 1 ,mem_ms_audio_enable_flag 
-065a 70409400 jam 0 ,mem_lpm_mode 
-065b 704c6d02 jam 2 ,mem_ms_audio_enable_timer 
-
-p_audio_enable_config:
-065c 70807400 jam 0 ,0x8074 
-065d 70807600 jam 0 ,0x8076 
-065e 204002aa call p_voice_updata_connect_param_req 
-065f 204006e2 call p_voice_queue_init 
-
-p_audio_init:
-0660 20406f53 call sadc_calibration 
-0661 70441e00 jam 0x00 ,mem_adc_channel 
-0662 70441f01 jam 1 ,mem_adc_clkdiv 
-0663 70442701 jam 1 ,mem_adc_dma_enable 
-0664 704c6e01 jam adc_audio ,mem_ms_adc_mode 
-0665 6fe14c72 fetch 2 ,mem_adc_audio_saddr_ptr 
-0666 67e14c70 store 2 ,mem_adc_dma_rptr 
-0667 20200668 branch p_enable_adc 
-
-p_enable_adc:
-0668 6fe0cc6e fetch 1 ,mem_ms_adc_mode 
-0669 c0008670 beq adc_audio ,p_enable_adc_audio 
-066a 20600000 rtn 
-
-p_enable_adc_battery:
-066b 708ac600 jam 0x00 ,0x8ac6 
-066c 708ac730 jam 0x30 ,0x8ac7 
-066d 70441e09 jam 0x09 ,mem_adc_channel 
-066e 70441f0a jam 0x0a ,mem_adc_clkdiv 
-066f 20206fb3 branch enable_adc + 1 
-
-p_enable_adc_audio:
-0670 708ac61b jam 0x1b ,0x8ac6 
-0671 708ac71f jam 0x1f ,0x8ac7 
-0672 20406f6b call sadc_cal_write 
-0673 6ff08a09 fetch 1 ,core_gpadc_cfg1 
-0674 793ffe07 set0 7 ,pdata 
-0675 67f08a09 store 1 ,core_gpadc_cfg1 
-0676 708a0770 jam 0x70 ,core_gpadc_ctrl 
-0677 708a0843 jam 0x43 ,core_gpadc_cfg0 
-0678 708a0b0c jam 0x0c ,core_gpadc_cfg3 
-0679 708a0aef jam 0xef ,core_gpadc_cfg2 
-067a 20407007 call sadc_channel 
-067b 6fe0c41f fetch 1 ,mem_adc_clkdiv 
-067c 67f080cd store 1 ,core_sadc_clkdiv 
-067d 20000bb8 nop 3000 
-067e 2040069a call p_sadc_read 
-067f 7080cd00 jam 0 ,core_sadc_clkdiv 
-0680 20200681 branch p_sadc_audio_dma 
-
-p_sadc_audio_dma:
-0681 6fe0c427 fetch 1 ,mem_adc_dma_enable 
-0682 207a0000 rtn blank 
-0683 6ff08a09 fetch 1 ,core_gpadc_cfg1 
-0684 79207e07 set1 7 ,pdata 
-0685 67f08a09 store 1 ,core_gpadc_cfg1 
-0686 6fe0c41f fetch 1 ,mem_adc_clkdiv 
-0687 67f080cd store 1 ,core_sadc_clkdiv 
-0688 6fe14c72 fetch 2 ,mem_adc_audio_saddr_ptr 
-0689 67f100ce store 2 ,core_sadc_saddr 
-068a 6fe14c74 fetch 2 ,mem_adc_audio_eaddr_ptr 
-068b 67f100d0 store 2 ,core_sadc_eaddr 
-068c 7080cc8b jam 0x8b ,core_sadc_ctrl 
-068d 20000bb8 nop 3000 
-068e 7080cc83 jam 0x83 ,core_sadc_ctrl 
-068f 7080cd02 jam 2 ,core_sadc_clkdiv 
-0690 20600000 rtn 
-
-p_sadc_calibration:
-0691 20758000 rtn wake 
-0692 708a0777 jam 0x77 ,core_gpadc_ctrl 
-0693 708a08c9 jam 0xc9 ,core_gpadc_cfg0 
-0694 708a0b00 jam 0x00 ,core_gpadc_cfg3 
-0695 6fe0c41f fetch 1 ,mem_adc_clkdiv 
-0696 67f080cd store 1 ,core_sadc_clkdiv 
-0697 2040069a call p_sadc_read 
-0698 68590164 fetcht 2 ,core_sadc_data 
-0699 20206f5e branch sadc_calibration + 11 
-
-p_sadc_read:
-069a 7080cc83 jam 0x83 ,core_sadc_ctrl 
-069b 6fe0cc6e fetch 1 ,mem_ms_adc_mode 
-069c 245a06a0 ncall p_sadc_ctrl_set ,blank 
-069d 2040700e call sar_adc_read_wait 
-069e 7080cc80 jam 0x80 ,core_sadc_ctrl 
-069f 20600000 rtn 
-
-p_sadc_ctrl_set:
-06a0 7080cc8b jam 0x8b ,core_sadc_ctrl 
-06a1 20600000 rtn 
-
-p_voice_adpcm_enter_queue:
-06a2 6fe0cc6f fetch 1 ,mem_voice_enable 
-06a3 207a0000 rtn blank 
-06a4 204006b7 call p_audio_get_len 
-06a5 1fe67cf0 sub pdata ,audio_buf_uint ,null 
-06a6 20610000 rtn positive 
-
-p_voice_enter_queue:
-06a7 6fe08ea2 fetch 1 ,mem_voice_queue_count 
-06a8 d8400005 arg voice_queue_max_count ,temp 
-06a9 184085ff increase -1 ,temp 
-06aa 98467c00 isub temp ,null 
-06ab 202106c3 branch p_audio_update_adc_rptr ,positive 
-06ac 204006e7 call p_audio_adpcm_encode 
-06ad 204006c3 call p_audio_update_adc_rptr 
-06ae 58000d76 setarg mem_voice_adpcm_buf_start 
-06af 204060ac call rec_queue_enter_config 
-06b0 d8c00cf6 arg mem_adpcm ,contr 
-06b1 df20003c arg voice_queue_unit ,loopcnt 
-06b2 204060c0 call rec_enter_queue 
-06b3 6fe08ea2 fetch 1 ,mem_voice_queue_count 
-06b4 1fe0fe01 increase 1 ,pdata 
-06b5 67e08ea2 store 1 ,mem_voice_queue_count 
-06b6 20600000 rtn 
-
-p_audio_get_len:
-06b7 6ff10122 fetch 2 ,core_adc_dma_wptr 
-06b8 1fe22200 copy pdata ,rega 
-06b9 68494c70 fetcht 2 ,mem_adc_dma_rptr 
-06ba 98467e00 isub temp ,pdata 
-06bb 242106bd nbranch p_audio_get_len_wptr_over ,positive 
-06bc 20600000 rtn 
-
-p_audio_get_len_wptr_over:
-06bd 1a220400 copy rega ,temp 
-06be 6fe14c70 fetch 2 ,mem_adc_dma_rptr 
-06bf 98460400 isub temp ,temp 
-06c0 580002d0 setarg audio_buf_len 
-06c1 98467e00 isub temp ,pdata 
-06c2 20600000 rtn 
-
-p_audio_update_adc_rptr:
-06c3 6fe14c70 fetch 2 ,mem_adc_dma_rptr 
-06c4 1fe0fef0 increase audio_buf_uint ,pdata 
-06c5 d8400cf5 arg mem_voice_raw_end ,temp 
-06c6 18408401 increase 1 ,temp 
-06c7 98467c00 isub temp ,null 
-06c8 202286cb branch p_audio_adc_dma_ptr_over ,zero 
-06c9 67e14c70 store 2 ,mem_adc_dma_rptr 
-06ca 20600000 rtn 
-
-p_audio_adc_dma_ptr_over:
-06cb 58000a26 setarg mem_voice_raw_start 
-06cc 67e14c70 store 2 ,mem_adc_dma_rptr 
-06cd 20600000 rtn 
-
-p_le_audio_data_out_from_queue:
-06ce 6fe0c678 fetch 1 ,mem_device_flag 
-06cf c1000000 rtneq mode_24g_device 
-06d0 6fe0cc6f fetch 1 ,mem_voice_enable 
-06d1 207a0000 rtn blank 
-06d2 6fe08ea2 fetch 1 ,mem_voice_queue_count 
-06d3 207a0000 rtn blank 
-06d4 20402a06 call le_fifo_check_nearly_full 
-06d5 247a0000 nrtn blank 
-06d6 204006d8 call p_voice_out_queue 
-06d7 2020029f branch p_ms_le_tx_audio_data 
-
-p_voice_out_queue:
-06d8 58000d76 setarg mem_voice_adpcm_buf_start 
-06d9 204060b6 call rec_queue_out_config 
-06da df20003c arg voice_queue_unit ,loopcnt 
-06db d8a00ea3 arg mem_queue_buf ,contw 
-06dc 20406068 call rec_out_queue 
-06dd 6fe08ea2 fetch 1 ,mem_voice_queue_count 
-06de 1fe0ffff increase -1 ,pdata 
-06df 67e08ea2 store 1 ,mem_voice_queue_count 
-06e0 58000ea3 setarg mem_queue_buf 
-06e1 20600000 rtn 
-
-p_voice_queue_init:
-06e2 58000d76 setarg mem_voice_adpcm_buf_start 
-06e3 d840012c arg voice_queue_size ,temp 
-06e4 20406048 call rec_queue_init_config 
-06e5 700ea200 jam 0 ,mem_voice_queue_count 
-06e6 20600000 rtn 
-
-p_audio_adpcm_encode:
-06e7 704c4478 jam 120 ,mem_ad_in_numsamples1 
-06e8 6fe14c70 fetch 2 ,mem_adc_dma_rptr 
-06e9 67e14c45 store 2 ,mem_ad_in_ptr1 
-06ea 58000cf6 setarg mem_adpcm 
-06eb 67e14c47 store 2 ,mem_ad_out_ptr1 
-
-p_adpcm_encode:
-06ec 6fe24c3c fetch 4 ,mem_ad_state_valpred1 
-06ed 67e24c4f store 4 ,mem_ad_valpred1 
-06ee 6fe24c40 fetch 4 ,mem_ad_state_index1 
-06ef 67e24c53 store 4 ,mem_ad_index1 
-06f0 6fe0cc53 fetch 1 ,mem_ad_index1 
-06f1 1febfe00 lshift2 pdata ,pdata 
-06f2 d8404ad8 arg mem_ad_stepsizetable1 ,temp 
-06f3 98408400 iadd temp ,temp 
-06f4 efe20002 ifetch 4 ,temp 
-06f5 67e24c4b store 4 ,mem_ad_step1 
-06f6 704c5f01 jam 1 ,mem_ad_bufferstep1 
-
-p_adpcm_encode_loop:
-06f7 2040079b call p_adpcm_get_val_from_inp 
-06f8 6fe24c60 fetch 4 ,mem_ad_val1 
-06f9 684a4c4f fetcht 4 ,mem_ad_valpred1 
-06fa 98467e00 isub temp ,pdata 
-06fb 67e24c68 store 4 ,mem_ad_diff1 
-06fc 20400731 call p_adpcm_encode_cal_delta 
-06fd 20400739 call p_adpcm_set_diff_by_sign 
-06fe 704c4a00 jam 0 ,mem_ad_delta1 
-06ff 6fe24c4b fetch 4 ,mem_ad_step1 
-0700 1fe97e00 rshift3 pdata ,pdata 
-0701 67e24c57 store 4 ,mem_ad_vpdiff1 
-0702 20400740 call p_check_diff_big_step1 
-0703 6fe24c4b fetch 4 ,mem_ad_step1 
-0704 1fe37e00 rshift pdata ,pdata 
-0705 67e24c4b store 4 ,mem_ad_step1 
-0706 2040074e call p_check_diff_big_step2 
-0707 6fe24c4b fetch 4 ,mem_ad_step1 
-0708 1fe37e00 rshift pdata ,pdata 
-0709 67e24c4b store 4 ,mem_ad_step1 
-070a 20400756 call p_check_diff_big_step3 
-070b 2040075e call p_check_sign_deal1 
-070c 20400769 call p_adpcm_check_valpred_more_32767 
-070d 6fe0cc4a fetch 1 ,mem_ad_delta1 
-070e 6848cc49 fetcht 1 ,mem_ad_sign1 
-070f 9841fe00 ior temp ,pdata 
-0710 67e0cc4a store 1 ,mem_ad_delta1 
-0711 6fe0cc4a fetch 1 ,mem_ad_delta1 
-0712 d8404ac8 arg mem_ad_indextable1 ,temp 
-0713 98408400 iadd temp ,temp 
-0714 efe08002 ifetch 1 ,temp 
-0715 20405f49 call rec_char_2_int32 
-0716 684a4c53 fetcht 4 ,mem_ad_index1 
-0717 9840fe00 iadd temp ,pdata 
-0718 67e24c53 store 4 ,mem_ad_index1 
-0719 20400776 call p_adpcm_check_index_less_0 
-071a 2040077b call p_adpcm_check_index_big_88 
-071b 6fe24c53 fetch 4 ,mem_ad_index1 
-071c 1febfe00 lshift2 pdata ,pdata 
-071d d8404ad8 arg mem_ad_stepsizetable1 ,temp 
-071e 98408400 iadd temp ,temp 
-071f efe20002 ifetch 4 ,temp 
-0720 67e24c4b store 4 ,mem_ad_step1 
-0721 20400785 call p_adpcm_check_bufferstep 
-0722 6fe0cc5f fetch 1 ,mem_ad_bufferstep1 
-0723 d8400001 arg 0x01 ,temp 
-0724 9842fe00 ixor temp ,pdata 
-0725 67e0cc5f store 1 ,mem_ad_bufferstep1 
-0726 6fe0cc44 fetch 1 ,mem_ad_in_numsamples1 
-0727 1fe0ffff increase -1 ,pdata 
-0728 67e0cc44 store 1 ,mem_ad_in_numsamples1 
-0729 243a06f7 nbranch p_adpcm_encode_loop ,blank 
-072a 6fe0cc5f fetch 1 ,mem_ad_bufferstep1 
-072b 205a0795 call p_adpcm_set_bufferstep_to_outp ,blank 
-072c 6fe24c4f fetch 4 ,mem_ad_valpred1 
-072d 67e24c3c store 4 ,mem_ad_state_valpred1 
-072e 6fe24c53 fetch 4 ,mem_ad_index1 
-072f 67e24c40 store 4 ,mem_ad_state_index1 
-0730 20600000 rtn 
-
-p_adpcm_encode_cal_delta:
-0731 6fe24c68 fetch 4 ,mem_ad_diff1 
-0732 c28f8736 bbit1 31 ,p_adpcm_encode_cal_smaller_zero 
-0733 58000000 setarg 0 
-0734 67e0cc49 store 1 ,mem_ad_sign1 
-0735 20600000 rtn 
-
-p_adpcm_encode_cal_smaller_zero:
-0736 58000008 setarg 8 
-0737 67e0cc49 store 1 ,mem_ad_sign1 
-0738 20600000 rtn 
-
-p_adpcm_set_diff_by_sign:
-0739 6fe0cc49 fetch 1 ,mem_ad_sign1 
-073a 243a073c nbranch p_adpcm_diff_negation ,blank 
-073b 20600000 rtn 
-
-p_adpcm_diff_negation:
-073c 6fe24c68 fetch 4 ,mem_ad_diff1 
-073d 1fe67e00 sub pdata ,0 ,pdata 
-073e 67e24c68 store 4 ,mem_ad_diff1 
-073f 20600000 rtn 
-
-p_check_diff_big_step1:
-0740 6fe24c68 fetch 4 ,mem_ad_diff1 
-0741 684a4c4b fetcht 4 ,mem_ad_step1 
-0742 98467e00 isub temp ,pdata 
-0743 c38f8000 rtnbit1 31 
-0744 704c4a04 jam 4 ,mem_ad_delta1 
-
-p_check_diff_big_common:
-0745 6fe24c68 fetch 4 ,mem_ad_diff1 
-0746 684a4c4b fetcht 4 ,mem_ad_step1 
-0747 98467e00 isub temp ,pdata 
-0748 67e24c68 store 4 ,mem_ad_diff1 
-
-p_check_diff_big_common_next:
-0749 6fe24c57 fetch 4 ,mem_ad_vpdiff1 
-074a 684a4c4b fetcht 4 ,mem_ad_step1 
-074b 9840fe00 iadd temp ,pdata 
-074c 67e24c57 store 4 ,mem_ad_vpdiff1 
-074d 20600000 rtn 
-
-p_check_diff_big_step2:
-074e 6fe24c68 fetch 4 ,mem_ad_diff1 
-074f 684a4c4b fetcht 4 ,mem_ad_step1 
-0750 98467e00 isub temp ,pdata 
-0751 c38f8000 rtnbit1 31 
-0752 6fe0cc4a fetch 1 ,mem_ad_delta1 
-0753 1fe1fe02 or pdata ,2 ,pdata 
-0754 67e0cc4a store 1 ,mem_ad_delta1 
-0755 20200745 branch p_check_diff_big_common 
-
-p_check_diff_big_step3:
-0756 6fe24c68 fetch 4 ,mem_ad_diff1 
-0757 684a4c4b fetcht 4 ,mem_ad_step1 
-0758 98467e00 isub temp ,pdata 
-0759 c38f8000 rtnbit1 31 
-075a 6fe0cc4a fetch 1 ,mem_ad_delta1 
-075b 1fe1fe01 or pdata ,1 ,pdata 
-075c 67e0cc4a store 1 ,mem_ad_delta1 
-075d 20200749 branch p_check_diff_big_common_next 
-
-p_check_sign_deal1:
-075e 6fe0cc49 fetch 1 ,mem_ad_sign1 
-075f 203a0765 branch p_valpred_add_vpdiff ,blank 
-
-p_valpred_sub_vpdiff:
-0760 6fe24c4f fetch 4 ,mem_ad_valpred1 
-0761 684a4c57 fetcht 4 ,mem_ad_vpdiff1 
-0762 98467e00 isub temp ,pdata 
-
-p_valpred1_store:
-0763 67e24c4f store 4 ,mem_ad_valpred1 
-0764 20600000 rtn 
-
-p_valpred_add_vpdiff:
-0765 6fe24c4f fetch 4 ,mem_ad_valpred1 
-0766 684a4c57 fetcht 4 ,mem_ad_vpdiff1 
-0767 9840fe00 iadd temp ,pdata 
-0768 20200763 branch p_valpred1_store 
-
-p_adpcm_check_valpred_more_32767:
-0769 6fe24c4f fetch 4 ,mem_ad_valpred1 
-076a d8407fff arg 32767 ,temp 
-076b 98467e00 isub temp ,pdata 
-076c c30f8772 bbit0 31 ,p_adpcm_valpred_more_32767 
-
-p_adpcm_check_valpred_less_f32767:
-076d 6fe24c4f fetch 4 ,mem_ad_valpred1 
-076e d85f8001 arg -32767 ,temp 
-076f 98467e00 isub temp ,pdata 
-0770 c28f8774 bbit1 31 ,p_adpcm_valpred_less_f32767 
-0771 20600000 rtn 
-
-p_adpcm_valpred_more_32767:
-0772 58007fff setarg 32767 
-0773 20200763 branch p_valpred1_store 
-
-p_adpcm_valpred_less_f32767:
-0774 5fff8001 setarg -32767 
-0775 20200763 branch p_valpred1_store 
-
-p_adpcm_check_index_less_0:
-0776 6fe24c53 fetch 4 ,mem_ad_index1 
-0777 d8400000 arg 0 ,temp 
-0778 98467e00 isub temp ,pdata 
-0779 c28f8780 bbit1 31 ,p_adpcm_set_0_index 
-077a 20600000 rtn 
-
-p_adpcm_check_index_big_88:
-077b 6fe24c53 fetch 4 ,mem_ad_index1 
-077c d8400058 arg 88 ,temp 
-077d 98467e00 isub temp ,pdata 
-077e c30f8783 bbit0 31 ,p_adpcm_set_88_index 
-077f 20600000 rtn 
-
-p_adpcm_set_0_index:
-0780 58000000 setarg 0 
-
-p_adpcm_store_index1:
-0781 67e24c53 store 4 ,mem_ad_index1 
-0782 20600000 rtn 
-
-p_adpcm_set_88_index:
-0783 58000058 setarg 88 
-0784 20200781 branch p_adpcm_store_index1 
-
-p_adpcm_check_bufferstep:
-0785 6fe0cc5f fetch 1 ,mem_ad_bufferstep1 
-0786 203a078b branch p_adpcm_bufferstep_eque_0 ,blank 
-
-p_adpcm_bufferstep_neque_0:
-0787 6fe0cc4a fetch 1 ,mem_ad_delta1 
-0788 1fe17e0f and pdata ,0x0f ,pdata 
-0789 67e24c64 store 4 ,mem_ad_outputbuffer1 
-078a 20600000 rtn 
-
-p_adpcm_bufferstep_eque_0:
-078b 6fe0cc4a fetch 1 ,mem_ad_delta1 
-078c 1ff27e00 lshift4 ,pdata ,pdata 
-078d 1fe17ef0 and pdata ,0xf0 ,pdata 
-078e 684a4c64 fetcht 4 ,mem_ad_outputbuffer1 
-078f 9841fe00 ior temp ,pdata 
-0790 68494c47 fetcht 2 ,mem_ad_out_ptr1 
-0791 e7e08002 istore 1 ,temp 
-0792 18408401 increase 1 ,temp 
-0793 60494c47 storet 2 ,mem_ad_out_ptr1 
-0794 20600000 rtn 
-
-p_adpcm_set_bufferstep_to_outp:
-0795 6fe24c64 fetch 4 ,mem_ad_outputbuffer1 
-0796 68494c47 fetcht 2 ,mem_ad_out_ptr1 
-0797 e7e08002 istore 1 ,temp 
-0798 18408401 increase 1 ,temp 
-0799 60494c47 storet 2 ,mem_ad_out_ptr1 
-079a 20600000 rtn 
-
-p_adpcm_get_val_from_inp:
-079b 68494c45 fetcht 2 ,mem_ad_in_ptr1 
-079c efe10002 ifetch 2 ,temp 
-079d 18408402 increase 2 ,temp 
-079e 60494c45 storet 2 ,mem_ad_in_ptr1 
-079f 20405f43 call rec_int16_2_int32 
-07a0 67e24c60 store 4 ,mem_ad_val1 
-07a1 20600000 rtn 
-
-p_zcode_entrance:
-07a2 6848ce66 fetcht 1 ,mem_zcode_temp_param0 
-07a3 18518400 rshift4 temp ,temp 
-07a4 6fe0ce67 fetch 1 ,mem_zcode_current_number 
-07a5 98467c00 isub temp ,null 
-07a6 202287c0 branch p_zcode_run ,zero 
-07a7 6048ce67 storet 1 ,mem_zcode_current_number 
-07a8 18408401 increase 1 ,temp 
-07a9 58000100 setarg zcode_buff_size 
-07aa 984f8400 imul32 temp ,temp 
-07ab 6fe14e6c fetch 2 ,mem_xip_flash_offset 
-07ac 98467e00 isub temp ,pdata 
-07ad 68494e68 fetcht 2 ,mem_eeprom_start_addr 
-07ae 9840fe00 iadd temp ,pdata 
-07af 67e14e6a store 2 ,mem_eeprom_address 
-
-p_zcode_read_loop:
-07b0 6fe14e6a fetch 2 ,mem_eeprom_address 
-07b1 1ff0fe00 byteswap pdata ,pdata 
-07b2 67e101be store 2 ,mem_addr_mi 
-07b3 d8400100 arg zcode_buff_size ,temp 
-07b4 da200e00 arg mem_zcode_buff ,rega 
-07b5 20406cdd call iicd_read_eep 
-07b6 6fe20e00 fetch 4 ,mem_zcode_buff 
-07b7 684a4e6f fetcht 4 ,mem_zcode_head 
-07b8 98467c00 isub temp ,null 
-07b9 242287b0 nbranch p_zcode_read_loop ,zero 
-07ba 58000e00 setarg mem_zcode_buff 
-07bb 67e140f0 store 2 ,mem_patch_ptr 
-07bc 7040f240 jam zcode_code_size ,mem_patch_len 
-07bd 20406aff call load_ucode 
-07be 58000000 setarg 0 
-07bf 67e240f0 store 4 ,mem_patch_ptr 
-
-p_zcode_run:
-07c0 6fe0ce66 fetch 1 ,mem_zcode_temp_param0 
-07c1 20200001 branch p_zcode 
-              org 0x2000
-
-start:
-2000 20402369 call lpmstate 
-
-soft_reset:
-2001 44804000 bpatch patch00_0 ,mem_patch00 
-2002 20800000 clear_stack 
-2003 204069e4 call load_otp_set_init 
-2004 20403717 call app_param_init 
-2005 20402244 call initialize_radio 
-2006 20406ca3 call iic_init_360khz 
-2007 20402347 call init_param 
-2008 204068d2 call l2cap_init 
-2009 4480c000 bpatch patch00_1 ,mem_patch00 
-200a 2040775d call ui_init 
-200b 2040370a call app_init 
-200c 20407435 call publickey_init 
-200d 2055a421 call lpm_recover_clk ,wake 
-
-main_loop:
-200e 44814000 bpatch patch00_2 ,mem_patch00 
-200f 20407540 call sp_calc_sequence_256 
-2010 20407436 call sp_calc_sequence_256_check 
-2011 20402a23 call le_advertising_dispatch 
-2012 2040202a call idle_dispatch 
-2013 20403722 call app_process_idle 
-2014 20402018 call connection_dispatch 
-2015 204030ed call g24_dispatch 
-2016 20402463 call lpm_dispatch 
-2017 2020200e branch main_loop 
-
-connection_dispatch:
-2018 2040201d call connection_incontext 
-2019 c6848000 rtnmark0 mark_context 
-201a 793f8009 set0 mark_context ,mark 
-201b 20402041 call context_save 
-201c 20202591 branch le_disable 
-
-connection_incontext:
-201d 4481c000 bpatch patch00_3 ,mem_patch00 
-201e 20402066 call context_search_insniff 
-201f 2422a025 nbranch connection_nosniff ,zero 
-2020 20402036 call context_load 
-2021 1a208c01 add rega ,coffset_mode ,contr 
-2022 efe08006 ifetch 1 ,contr 
-2023 c280250d bbit1 mode_le ,le_conn_dispatch 
-2024 20600000 rtn 
-
-connection_nosniff:
-2025 70000600 jam 0 ,mem_current_context 
-2026 20402047 call context_get_next 
-2027 1f227c00 copy loopcnt ,null 
-2028 20628000 rtn zero 
-2029 2020233e branch assert 
-
-idle_dispatch:
-202a 6fe0c114 fetch 1 ,mem_hci_cmd 
-202b 207a0000 rtn blank 
-202c c00da033 beq hci_cmd_le_create_conn ,idle_le_create_conn 
-202d 2040205f call context_search_conn_handle 
-202e 20628000 rtn zero 
-202f 20402062 call context_search_plap 
-2030 20628000 rtn zero 
-
-idle_exit:
-2031 70411400 jam 0 ,mem_hci_cmd 
-2032 20600000 rtn 
-
-idle_le_create_conn:
-2033 70433e1b jam hci_cmd_le_create_conn ,mem_cmd_le_create_conn 
-2034 70411400 jam 0 ,mem_hci_cmd 
-2035 20600000 rtn 
-
-context_load:
-2036 44824000 bpatch patch00_4 ,mem_patch00 
-2037 79200009 set1 mark_context ,mark 
-2038 1a227e00 deposit rega 
-2039 67e1000a store 2 ,mem_context_ptr 
-203a 18007253 force context_size ,loopcnt 
-203b d8a00168 arg mem_le_state ,contw 
-203c 1a208c01 add rega ,coffset_mode ,contr 
-203d efe08006 ifetch 1 ,contr 
-203e 1a220c00 copy rega ,contr 
-203f c2807cdc bbit1 mode_le ,memcpy 
-2040 20600000 rtn 
-
-context_save:
-2041 4482c000 bpatch patch00_5 ,mem_patch00 
-2042 6fe1000a fetch 2 ,mem_context_ptr 
-2043 98000a00 iforce contw 
-2044 18007253 force context_size ,loopcnt 
-2045 d8c00168 arg mem_le_state ,contr 
-2046 20207cdc branch memcpy 
-
-context_get_next:
-2047 df200001 arg context_num ,loopcnt 
-2048 68488006 fetcht 1 ,mem_current_context 
-
-context_get_next_loop:
-2049 18408401 increase 1 ,temp 
-204a 2841fe01 compare context_num ,temp ,0xff 
-204b 2420a04d nbranch context_get_next_cont ,true 
-204c d8400000 arg 0 ,temp 
-
-context_get_next_cont:
-204d 60488006 storet 1 ,mem_current_context 
-204e 184ffe53 mul32 temp ,context_size ,pdata 
-204f da204040 arg mem_context ,rega 
-2050 9a20a200 iadd rega ,rega 
-2051 efe08011 ifetch 1 ,rega 
-2052 c280a054 bbit1 state_insniff ,context_get_next_sniff 
-2053 c3800000 rtnbit1 state_inconn 
-
-context_get_next_sniff:
-2054 c2002049 loop context_get_next_loop 
-2055 20600000 rtn 
-
-context_new:
-2056 44834000 bpatch patch00_6 ,mem_patch00 
-2057 da602073 arg context_search_empty ,regc 
-2058 20402069 call context_search 
-2059 24628000 nrtn zero 
-205a 1a227e00 deposit rega 
-205b 67e1000a store 2 ,mem_context_ptr 
-205c 20207dba branch enable_zero 
-
-context_check_idle:
-205d da6020ad arg context_check_inconn ,regc 
-205e 20202069 branch context_search 
-
-context_search_conn_handle:
-205f 6848c115 fetcht 1 ,mem_hci_conn_handle 
-
-context_search_conn_handle2:
-2060 da60207b arg context_search_handle ,regc 
-2061 20202069 branch context_search 
-
-context_search_plap:
-2062 4483c000 bpatch patch00_7 ,mem_patch00 
-2063 684b4116 fetcht 6 ,mem_hci_plap 
-
-context_search_plap2:
-2064 da602075 arg context_search_lap ,regc 
-2065 20202069 branch context_search 
-
-context_search_insniff:
-2066 da602081 arg context_search_sniff ,regc 
-2067 20202069 branch context_search 
-
-context_search_sniff_window:
-2068 da6020c7 arg context_search_window ,regc 
-
-context_search:
-2069 44844001 bpatch patch01_0 ,mem_patch01 
-206a da204040 arg mem_context ,rega 
-206b df200001 arg context_num ,loopcnt 
-
-context_search_loop:
-206c efe08011 ifetch 1 ,rega 
-206d 1a627a00 copy regc ,pc 
-
-context_search_next:
-206e 4484c001 bpatch patch01_1 ,mem_patch01 
-206f 1a20a253 increase context_size ,rega 
-2070 c200206c loop context_search_loop 
-2071 18007c01 force 1 ,null 
-2072 20600000 rtn 
-
-context_search_empty:
-2073 c280206e bbit1 state_inconn ,context_search_next 
-2074 20207dba branch enable_zero 
-
-context_search_lap:
-2075 c300206e bbit0 state_inconn ,context_search_next 
-
-context_search_lap_cont:
-2076 1a208c10 add rega ,coffset_plap ,contr 
-2077 efe30006 ifetch 6 ,contr 
-2078 98467c00 isub temp ,null 
-2079 20628000 rtn zero 
-207a 2020206e branch context_search_next 
-
-context_search_handle:
-207b c300206e bbit0 state_inconn ,context_search_next 
-207c 1a208c16 add rega ,coffset_conn_handle ,contr 
-207d efe08006 ifetch 1 ,contr 
-207e 98467c00 isub temp ,null 
-207f 20628000 rtn zero 
-2080 2020206e branch context_search_next 
-
-context_search_sniff:
-2081 c300a06e bbit0 state_insniff ,context_search_next 
-
-context_search_sniff_loop:
-2082 204020b4 call context_get_anchor 
-2083 2040209d call sign_pdata_temp 
-2084 98467e00 isub temp ,pdata 
-2085 1fe0fe01 increase 1 ,pdata 
-2086 20212097 branch context_search_sniff_miss ,positive 
-2087 18c22400 copy contr ,regb 
-2088 67e48656 store 9 ,mem_temp 
-2089 44854001 bpatch patch01_2 ,mem_patch01 
-208a 6fe0c484 fetch 1 ,mem_sc_calc 
-208b 243a2090 nbranch context_search_sniff_sc ,blank 
-208c 6fe48656 fetch 9 ,mem_temp 
-208d 1a420c00 copy regb ,contr 
-208e 1fe0fe05 increase 5 ,pdata 
-208f 20202093 branch context_search_meet1 
-
-context_search_sniff_sc:
-2090 6fe48656 fetch 9 ,mem_temp 
-2091 1a420c00 copy regb ,contr 
-2092 1fe0fe14 increase 20 ,pdata 
-
-context_search_meet1:
-2093 2421206e nbranch context_search_next ,positive 
-
-context_search_meet:
-2094 18424200 copy temp ,bt_clk 
-2095 204020c0 call context_next_anchor 
-2096 20207dba branch enable_zero 
-
-context_search_sniff_miss:
-2097 98002400 iforce regb 
-2098 1a208c02 add rega ,coffset_tsniff ,contr 
-2099 efe10006 ifetch 2 ,contr 
-209a 203a2094 branch context_search_meet ,blank 
-209b 204020c0 call context_next_anchor 
-209c 20202082 branch context_search_sniff_loop 
-
-sign_pdata_temp:
-209d 1ff11600 rshift16 pdata ,timeup 
-209e 196c9600 rshift8 timeup ,timeup 
-209f 2022a0a7 branch sign_pdata_temp_p0 ,zero 
-20a0 29601e0f compare 0xf ,timeup ,0xf 
-20a1 24608000 nrtn true 
-20a2 18511600 rshift16 temp ,timeup 
-20a3 196c9600 rshift8 timeup ,timeup 
-20a4 24628000 nrtn zero 
-20a5 7920041c set1 28 ,temp 
-20a6 20600000 rtn 
-
-sign_pdata_temp_p0:
-20a7 18511600 rshift16 temp ,timeup 
-20a8 196c9600 rshift8 timeup ,timeup 
-20a9 29601e0f compare 0xf ,timeup ,0xf 
-20aa 24608000 nrtn true 
-20ab 79207e1c set1 28 ,pdata 
-20ac 20600000 rtn 
-
-context_check_inconn:
-20ad c300206e bbit0 state_inconn ,context_search_next 
-20ae 20207dba branch enable_zero 
-
-context_check_a_wack:
-20af c300206e bbit0 state_inconn ,context_search_next 
-20b0 1a208c01 add rega ,coffset_mode ,contr 
-20b1 efe08006 ifetch 1 ,contr 
-20b2 c280206e bbit1 mode_le ,context_search_next 
-20b3 20600000 rtn 
-
-context_get_anchor:
-20b4 1a208c01 add rega ,coffset_mode ,contr 
-20b5 e8408006 ifetcht 1 ,contr 
-20b6 1c427e00 deposit clkn_bt 
-20b7 284ffe01 isolate1 mode_master ,temp 
-20b8 1a208c04 add rega ,coffset_sniff_anchor ,contr 
-20b9 e8420006 ifetcht 4 ,contr 
-20ba 20608000 rtn true 
-20bb 1a208c08 add rega ,coffset_clk_offset ,contr 
-20bc efe30006 ifetch 6 ,contr 
-20bd 20402109 call calc_clke2 
-20be 1d027e00 deposit clke_bt 
-20bf 20600000 rtn 
-
-context_next_anchor:
-20c0 1a208c02 add rega ,coffset_tsniff ,contr 
-20c1 1a208a04 add rega ,coffset_sniff_anchor ,contw 
-20c2 efe10006 ifetch 2 ,contr 
-20c3 98409600 iadd temp ,timeup 
-20c4 19627e00 deposit timeup 
-20c5 e7e20005 istore 4 ,contw 
-20c6 202025de branch le_context_nextevent 
-
-context_search_window:
-20c7 c300a06e bbit0 state_insniff ,context_search_next 
-20c8 204020b4 call context_get_anchor 
-20c9 9b60fe00 iadd stop_watch ,pdata 
-20ca 9b60fe00 iadd stop_watch ,pdata 
-20cb 98e0fe00 iadd queue ,pdata 
-20cc 98467c00 isub temp ,null 
-20cd 2421206e nbranch context_search_next ,positive 
-20ce 20207dba branch enable_zero 
-
-end_of_packet:
-20cf 4485c001 bpatch patch01_3 ,mem_patch01 
-20d0 785d7c00 disable lr_s2en 
-20d1 784efc00 disable encode_fec0 
-20d2 784e7c00 disable encode_fec2 
-20d3 7846fc00 disable decode_fec0 
-20d4 78467c00 disable decode_fec2 
-20d5 7844fc00 disable enable_crc 
-20d6 78477c00 disable encrypt 
-20d7 7843fc00 disable enable_white 
-20d8 2030a155 branch shutdown_radio ,is_rx 
-20d9 37d38200 until null ,tx_clear 
-20da 20000064 nop 100 
-20db 20202155 branch shutdown_radio 
-
-sniff_check_window:
-20dc 44864001 bpatch patch01_4 ,mem_patch01 
-20dd 78487c00 disable swfine 
-20de 18423600 copy temp ,stop_watch 
-20df 20402068 call context_search_sniff_window 
-20e0 78547c00 disable user 
-20e1 24628000 nrtn zero 
-20e2 18003600 force 0 ,stop_watch 
-20e3 20207dbc branch enable_user 
-
-calc_slot_offset:
-20e4 4486c001 bpatch patch01_5 ,mem_patch01 
-20e5 37d10200 until null ,halfslot 
-20e6 1b427e00 deposit clke 
-20e7 98000c00 iforce contr 
-20e8 1ff17e00 rshift16 ,pdata ,pdata 
-20e9 9c467200 isub clkn_bt ,loopcnt 
-20ea 1f217203 and_into 3 ,loopcnt 
-20eb 2422a0ee nbranch calc_bt_portion ,zero 
-20ec 18007e00 force 0 ,pdata 
-20ed 202020f2 branch calc_skip_bt 
-
-calc_bt_portion:
-20ee 68490044 fetcht 2 ,mem_param_rt_rthalfslot 
-20ef 18007e00 force 0 ,pdata 
-
-calc_slot_offset_loop:
-20f0 9840fe00 iadd temp ,pdata 
-20f1 c20020f0 loop calc_slot_offset_loop 
-
-calc_skip_bt:
-20f2 98c0fe00 iadd contr ,pdata 
-20f3 1fe6fc0c div pdata ,12 
-20f4 20407d61 call get_div_result 
-20f5 67e1002e store 2 ,mem_slot_offset 
-20f6 20600000 rtn 
-
-calc_clke_offset:
-20f7 44874001 bpatch patch01_6 ,mem_patch01 
-20f8 1b427e00 deposit clke 
-20f9 1b220400 copy clkn ,temp 
-20fa 98467c00 isub temp ,null 
-20fb 7d217e2c nsetflag positive ,44 ,pdata 
-20fc 98460400 isub temp ,temp 
-20fd 6fe10044 fetch 2 ,mem_param_rt_rthalfslot 
-20fe 284c000f isolate0 15 ,temp 
-20ff 2020a105 branch calc_clke_pos ,true 
-2100 18426000 copy temp ,alarm 
-2101 d8410000 arg 0x10000 ,temp 
-2102 6fe10044 fetch 2 ,mem_param_rt_rthalfslot 
-2103 98467e00 isub temp ,pdata 
-2104 9e008400 iadd alarm ,temp 
-
-calc_clke_pos:
-2105 604b0170 storet 6 ,mem_le_clk_offset 
-2106 20600000 rtn 
-
-calc_clke:
-2107 78587c00 disable clknt 
-2108 6fe30170 fetch 6 ,mem_le_clk_offset 
-
-calc_clke2:
-2109 9b20e000 iadd clkn ,alarm 
-210a 1e00e00a increase 10 ,alarm 
-210b 6fe10044 fetch 2 ,mem_param_rt_rthalfslot 
-210c 9e067e00 isub alarm ,pdata 
-210d 2fec000f isolate0 15 ,pdata 
-210e 2020a115 branch calc_clke_pos_adj ,true 
-210f 58010000 setarg 0x10000 
-2110 6b010044 fetchr regd ,2 ,mem_param_rt_rthalfslot 
-2111 9b067e00 isub regd ,pdata 
-2112 9e00e000 iadd alarm ,alarm 
-
-calc_clke_pos2:
-2113 1e023400 copy alarm ,clke 
-2114 20600000 rtn 
-
-calc_clke_pos_adj:
-2115 18007c00 force 0 ,null 
-2116 20202113 branch calc_clke_pos2 
-
-qsetxor:
-2117 1fe97e00 rshift3 pdata ,pdata 
-2118 ea208005 ifetchr rega ,1 ,contw 
-2119 9a22fe00 ixor rega ,pdata 
-211a 2fec0006 isolate0 6 ,pdata 
-211b 2020211e branch qset_p 
-
-qset1_p:
-211c 2fcc0000 isolate0 0 ,null 
-
-qset_start:
-211d d8a08ac2 arg 0x8ac2 ,contw 
-
-qset_p:
-211e efe08005 ifetch 1 ,contw 
-211f f920fe00 qsetflag true ,pdata 
-2120 e7e08005 istore 1 ,contw 
-2121 20600000 rtn 
-
-rx_dcoc_avg:
-2122 2000003c nop 60 
-
-btdma:
-2123 58000f00 setarg mem_dcoc_buf 
-2124 67f10982 store 2 ,0x8982 
-2125 58000ff0 setarg mem_dcoc_buf_end 
-2126 67f10984 store 2 ,0x8984 
-2127 70898109 jam 0x9 ,0x8981 
-2128 70898103 jam 0x3 ,0x8981 
-2129 70898006 jam 0x6 ,0x8980 
-212a 2000003c nop 60 
-212b da200000 arg 0 ,rega 
-212c da400000 arg 0 ,regb 
-212d df200010 arg 16 ,loopcnt 
-212e d8c00f00 arg mem_dcoc_buf ,contr 
-
-rx_dcoc_loop:
-212f efe10006 ifetch 2 ,contr 
-2130 9a20a200 iadd rega ,rega 
-2131 efe10006 ifetch 2 ,contr 
-2132 9a40a400 iadd regb ,regb 
-2133 c200212f loop rx_dcoc_loop 
-2134 20600000 rtn 
-
-rx_dcoc:
-2135 4487c001 bpatch patch01_7 ,mem_patch01 
-2136 20758000 rtn wake 
-2137 20402164 call set_sync_on 
-2138 d8400027 arg 39 ,temp 
-2139 20402173 call set_freq_rx 
-213a 204021aa call rf_rx_enable 
-213b 708a257f jam 0x7f ,0x8a25 
-213c 708a301a jam 0x1a ,0x8a30 
-213d 708a3178 jam 0x78 ,0x8a31 
-213e 708a8fb2 jam 0xb2 ,0x8a8f 
-213f 708ac200 jam 0 ,0x8ac2 
-2140 708ac300 jam 0 ,0x8ac3 
-2141 d8e00006 arg 6 ,queue 
-2142 20402122 call rx_dcoc_avg 
-2143 2a2ffe0d isolate1 13 ,rega 
-2144 2040211d call qset_start 
-2145 2a4ffe0d isolate1 13 ,regb 
-2146 2040211e call qset_p 
-2147 d8e00005 arg 5 ,queue 
-
-rx_dcoc_loop2:
-2148 2040211c call qset1_p 
-2149 2040211e call qset_p 
-214a 20402122 call rx_dcoc_avg 
-214b d8a08ac2 arg 0x8ac2 ,contw 
-214c 1a31fe00 rshift4 rega ,pdata 
-214d 20402117 call qsetxor 
-214e 1a51fe00 rshift4 regb ,pdata 
-214f 20402117 call qsetxor 
-2150 18e08fff increase -1 ,queue 
-2151 20212148 branch rx_dcoc_loop2 ,positive 
-2152 708a8f52 jam 0x52 ,0x8a8f 
-2153 708a3002 jam 2 ,0x8a30 
-2154 70898100 jam 0 ,0x8981 
-
-shutdown_radio:
-2155 44884002 bpatch patch02_0 ,mem_patch02 
-2156 204066e5 call rf_debug_shutdown_radio_line 
-2157 78507c00 disable is_tx 
-2158 7850fc00 disable is_rx 
-2159 58000200 setarg 0x0200 
-215a 67f20a23 store 4 ,0x8a23 
-215b 708a01fa jam 0xfa ,0x8a01 
-215c 2000000c nop 12 
-215d 708a0f00 jam 0 ,0x8a0f 
-215e 708a121a jam 0x1a ,0x8a12 
-215f 708a142b jam 0x2b ,0x8a14 
-2160 18002a08 force 8 ,radio_ctrl 
-2161 18002a00 force 0 ,radio_ctrl 
-2162 70890000 jam 0 ,0x8900 
-2163 202022f3 branch gain_control 
-
-set_sync_on:
-2164 4488c002 bpatch patch02_1 ,mem_patch02 
-2165 708a0f60 jam 0x60 ,0x8a0f 
-2166 708a10aa jam 0xaa ,0x8a10 
-2167 708a127a jam 0x7a ,0x8a12 
-2168 708a2500 jam 0x00 ,0x8a25 
-2169 708a2600 jam 0x00 ,0x8a26 
-216a 2000003c nop 60 
-216b 708a2020 jam 0x20 ,0x8a20 
-216c 708a23f5 jam 0xf5 ,0x8a23 
-216d 708a2412 jam 0x12 ,0x8a24 
-216e 708a2410 jam 0x10 ,0x8a24 
-216f 2000003c nop 60 
-2170 708a1260 jam 0x60 ,0x8a12 
-2171 708a23dd jam 0xdd ,0x8a23 
-2172 20600000 rtn 
-
-set_freq_rx:
-2173 44894002 bpatch patch02_2 ,mem_patch02 
-2174 70890001 jam 0x01 ,0x8900 
-2175 708a239d jam 0x9d ,0x8a23 
-2176 708a2402 jam 0x02 ,0x8a24 
-2177 20000014 nop 20 
-2178 708a7065 jam 0x65 ,0x8a70 
-2179 708a239f jam 0x9f ,0x8a23 
-217a 20402193 call set_lemode 
-217b 60488008 storet 1 ,mem_last_freq 
-217c 18408401 increase 1 ,temp 
-
-aac_res_lookup:
-217d 4489c002 bpatch patch02_3 ,mem_patch02 
-217e 1851fe00 rshift4 temp ,pdata 
-217f d8c04135 arg mem_aac_res_table ,contr 
-2180 98c08c00 iadd contr ,contr 
-2181 efe08006 ifetch 1 ,contr 
-2182 6a308a71 fetchr rega ,1 ,0x8a71 
-2183 1a21220f and_into 0xf ,rega 
-2184 9a21fe00 ior rega ,pdata 
-2185 67f08a71 store 1 ,0x8a71 
-2186 204021d4 call calc_freq 
-2187 20000090 nop 144 
-2188 6fe0c099 fetch 1 ,mem_fcomp_div 
-2189 c00c218b beq xtal_24m ,aac_res_lookup_end 
-218a 20000024 nop 36 
-
-aac_res_lookup_end:
-218b 708a2080 jam 0x80 ,0x8a20 
-218c 20600000 rtn 
-
-set_lemode_2m_16m:
-218d 58008312 setarg 0x8312 
-218e 67f10907 store 2 ,0x8907 
-218f 2020219b branch set_lemode_2m 
-
-set_lemode_1m_16m:
-2190 58004189 setarg 0x4189 
-2191 67f10907 store 2 ,0x8907 
-2192 202021a6 branch set_lemode_1m 
-
-set_lemode:
-2193 448a4002 bpatch patch02_4 ,mem_patch02 
-2194 708a8211 jam 0x11 ,0x8a82 
-2195 708a8d12 jam 0x12 ,0x8a8d 
-2196 708a8e0a jam 0x0a ,0x8a8e 
-2197 6fe0c099 fetch 1 ,mem_fcomp_div 
-2198 c008218d beq xtal_16m ,set_lemode_2m_16m 
-2199 58005762 setarg 0x5762 
-219a 67f10907 store 2 ,0x8907 
-
-set_lemode_2m:
-219b 70890103 jam 3 ,0x8901 
-219c 70893003 jam 3 ,0x8930 
-219d c6168000 rtnmark1 mark_ble_2m 
-219e 70890101 jam 1 ,0x8901 
-219f 708a8207 jam 0x07 ,0x8a82 
-21a0 708a8d44 jam 0x44 ,0x8a8d 
-21a1 708a8e0a jam 0x0a ,0x8a8e 
-21a2 6fe0c099 fetch 1 ,mem_fcomp_div 
-21a3 c0082190 beq xtal_16m ,set_lemode_1m_16m 
-21a4 58002bb1 setarg 0x2bb1 
-21a5 67f10907 store 2 ,0x8907 
-
-set_lemode_1m:
-21a6 c6978000 rtnmark0 mark_ble_lr 
-21a7 70893024 jam 0x24 ,0x8930 
-21a8 70890105 jam 5 ,0x8901 
-21a9 20600000 rtn 
-
-rf_rx_enable:
-21aa 448ac002 bpatch patch02_5 ,mem_patch02 
-21ab 204066df call rf_debug_rx_gpio_high 
-21ac 204021be call rf_rx_agc_set 
-21ad 18002a08 force 8 ,radio_ctrl 
-21ae 18002a00 force 0 ,radio_ctrl 
-21af 580aaada setarg 0x0aaada 
-21b0 67f18a0f store 3 ,0x8a0f 
-21b1 708a2540 jam 0x40 ,0x8a25 
-21b2 708a2610 jam 0x10 ,0x8a26 
-21b3 2000003c nop 60 
-21b4 708a01fb jam 0xfb ,0x8a01 
-21b5 708a25ff jam 0xff ,0x8a25 
-21b6 708a2630 jam 0x30 ,0x8a26 
-21b7 708a16fe jam 0xfe ,0x8a16 
-21b8 20000014 nop 20 
-21b9 708a1000 jam 0x00 ,0x8a10 
-21ba 708a1108 jam 0x08 ,0x8a11 
-21bb 20000078 nop 120 
-21bc 7089000d jam 0xd ,0x8900 
-21bd 20600000 rtn 
-
-rf_rx_agc_set:
-21be 6fe0c143 fetch 1 ,mem_gain_fix 
-21bf c07fa1c5 beq 0xff ,rf_rx_enable_no_soft_agc 
-21c0 d8c04144 arg mem_gain_table ,contr 
-21c1 98c08c00 iadd contr ,contr 
-21c2 efe08006 ifetch 1 ,contr 
-21c3 67f08961 store 1 ,core_rf_rx_gain_fix 
-21c4 70896027 jam 0x27 ,core_rf_rx_agc_ctrl 
-
-rf_rx_enable_no_soft_agc:
-21c5 6848c147 fetcht 1 ,mem_gain_second_agc_en 
-21c6 6ff08960 fetch 1 ,core_rf_rx_agc_ctrl 
-21c7 9841fe00 ior temp ,pdata 
-21c8 67f08960 store 1 ,core_rf_rx_agc_ctrl 
-21c9 20600000 rtn 
-
-set_freq_tx_int:
-21ca 70890003 jam 0x03 ,0x8900 
-21cb 708a2402 jam 0x02 ,0x8a24 
-21cc 20000014 nop 20 
-21cd 708a7065 jam 0x65 ,0x8a70 
-21ce 708a23df jam 0xdf ,0x8a23 
-21cf 20402193 call set_lemode 
-21d0 204021ee call ghp_lookup 
-21d1 60488008 storet 1 ,mem_last_freq 
-21d2 18408402 increase 2 ,temp 
-21d3 2020217d branch aac_res_lookup 
-
-calc_freq:
-21d4 448b4002 bpatch patch02_6 ,mem_patch02 
-21d5 58000960 setarg 2400 
-21d6 9840fe00 iadd temp ,pdata 
-21d7 1fe22200 copy pdata ,rega 
-21d8 6848c099 fetcht 1 ,mem_fcomp_div 
-21d9 18430400 rshift temp ,temp 
-21da 9846fc00 idiv temp 
-21db 20407d64 call wait_div_end 
-21dc 1807fe00 quotient pdata 
-21dd 1fec8e00 rshift8 pdata ,queue 
-21de 60f0890a storer queue ,1 ,0x890a 
-21df 67f08909 store 1 ,0x8909 
-21e0 18077e00 remainder pdata 
-21e1 1ff07e00 lshift16 pdata ,pdata 
-21e2 1fed7e00 lshift8 pdata ,pdata 
-21e3 9846fc00 idiv temp 
-21e4 20407d64 call wait_div_end 
-21e5 1807fe00 quotient pdata 
-21e6 67f1890b store 3 ,0x890b 
-21e7 62308a22 storer rega ,1 ,0x8a22 
-21e8 1a2ca200 rshift8 rega ,rega 
-21e9 62308a21 storer rega ,1 ,0x8a21 
-21ea 708a20a0 jam 0xa0 ,0x8a20 
-21eb 708a20e0 jam 0xe0 ,0x8a20 
-21ec 708a20a0 jam 0xa0 ,0x8a20 
-21ed 20600000 rtn 
-
-ghp_lookup:
-21ee 1840fe02 add temp ,2 ,pdata 
-21ef 1fe97e00 rshift3 pdata ,pdata 
-21f0 1fe17ffe and_into -2 ,pdata 
-21f1 d8c0411d arg mem_ghpc_table ,contr 
-21f2 c596a1f4 bmark0 mark_ble_2m ,ghp_1m 
-21f3 18c08c0c increase 12 ,contr 
-
-ghp_1m:
-21f4 98c08c00 iadd contr ,contr 
-21f5 ea210006 ifetchr rega ,2 ,contr 
-21f6 efe10006 ifetch 2 ,contr 
-21f7 9a267e00 isub rega ,pdata 
-21f8 18408c02 add temp ,2 ,contr 
-21f9 18c10c0f and_into 0xf ,contr 
-21fa 98cffe00 imul32 contr ,pdata 
-21fb 1ff1fe00 rshift4 pdata ,pdata 
-21fc 9a20fe00 iadd rega ,pdata 
-21fd 67f10905 store 2 ,0x8905 
-21fe 20600000 rtn 
-
-set_freq_tx:
-21ff 448bc002 bpatch patch02_7 ,mem_patch02 
-2200 204021ca call set_freq_tx_int 
-2201 20000258 nop 600 
-
-txon:
-2202 448c4003 bpatch patch03_0 ,mem_patch03 
-2203 580aaa7e setarg 0x0aaa7e 
-2204 67f18a0f store 3 ,0x8a0f 
-2205 2000003c nop 60 
-2206 708a2500 jam 0x00 ,0x8a25 
-2207 708a260d jam 0x0d ,0x8a26 
-2208 708a16f6 jam 0xf6 ,0x8a16 
-2209 2000001e nop 30 
-220a 708a151b jam 0x1b ,0x8a15 
-220b 20402212 call set_tx_power 
-220c 20000014 nop 20 
-220d 708a260f jam 0x0f ,0x8a26 
-220e 20000014 nop 20 
-220f 708a10a8 jam 0xa8 ,0x8a10 
-2210 708a1100 jam 0x00 ,0x8a11 
-2211 20600000 rtn 
-
-set_tx_power:
-2212 448cc003 bpatch patch03_1 ,mem_patch03 
-2213 6fe0c141 fetch 1 ,mem_tx_power 
-2214 c000221d beq tx_power_0db ,set_tx_power_0db 
-2215 c001a222 beq tx_power_3db ,set_tx_power_3db 
-2216 c002a227 beq tx_power_5db ,set_tx_power_5db 
-2217 c003a22b beq tx_power_7db ,set_tx_power_7db 
-2218 c005222f beq tx_power_10db ,set_tx_power_10db 
-2219 c041a234 beq tx_power_f3db ,set_tx_power_f3db 
-221a c042a238 beq tx_power_f5db ,set_tx_power_f5db 
-221b c045223c beq tx_power_f10db ,set_tx_power_f10db 
-221c c04a2240 beq tx_power_f20db ,set_tx_power_f20db 
-
-set_tx_power_0db:
-221d 708a1417 jam 0x17 ,0x8a14 
-221e 58251a3f setarg 0x251a3f 
-221f 67f18a60 store 3 ,0x8a60 
-
-set_tx_power_8a63_28:
-2220 708a6328 jam 0x28 ,0x8a63 
-2221 20600000 rtn 
-
-set_tx_power_3db:
-2222 708a1425 jam 0x25 ,0x8a14 
-2223 58a91c2d setarg 0xa91c2d 
-2224 67f18a60 store 3 ,0x8a60 
-
-set_tx_power_8a63_2f:
-2225 708a632f jam 0x2f ,0x8a63 
-2226 20600000 rtn 
-
-set_tx_power_5db:
-2227 708a1425 jam 0x25 ,0x8a14 
-2228 58a91c3f setarg 0xa91c3f 
-2229 67f18a60 store 3 ,0x8a60 
-222a 20202225 branch set_tx_power_8a63_2f 
-
-set_tx_power_7db:
-222b 708a1425 jam 0x25 ,0x8a14 
-222c 58a9383f setarg 0xa9383f 
-222d 67f18a60 store 3 ,0x8a60 
-222e 20202225 branch set_tx_power_8a63_2f 
-
-set_tx_power_10db:
-222f 708a1425 jam 0x25 ,0x8a14 
-2230 58a93f3f setarg 0xa93f3f 
-2231 67f18a60 store 3 ,0x8a60 
-2232 708a631f jam 0x1f ,0x8a63 
-2233 20600000 rtn 
-
-set_tx_power_f3db:
-2234 708a1417 jam 0x17 ,0x8a14 
-2235 58251827 setarg 0x251827 
-2236 67f18a60 store 3 ,0x8a60 
-2237 20202220 branch set_tx_power_8a63_28 
-
-set_tx_power_f5db:
-2238 708a1417 jam 0x17 ,0x8a14 
-2239 5825181c setarg 0x25181c 
-223a 67f18a60 store 3 ,0x8a60 
-223b 20202220 branch set_tx_power_8a63_28 
-
-set_tx_power_f10db:
-223c 708a1417 jam 0x17 ,0x8a14 
-223d 5825180b setarg 0x25180b 
-223e 67f18a60 store 3 ,0x8a60 
-223f 20202220 branch set_tx_power_8a63_28 
-
-set_tx_power_f20db:
-2240 708a1417 jam 0x17 ,0x8a14 
-2241 58251000 setarg 0x251000 
-2242 67f18a60 store 3 ,0x8a60 
-2243 20202220 branch set_tx_power_8a63_28 
-
-initialize_radio:
-2244 70804206 jam clksel_rc ,core_clksel 
-
-initialize_radio_wait:
-2245 6fe1409c fetch 2 ,mem_rf_init_ptr 
-2246 c3072245 bbit0 14 ,initialize_radio_wait 
-2247 98000c00 iforce contr 
-2248 d8408a00 arg 0x8a00 ,temp 
-
-initialize_radio_loop:
-2249 efe08006 ifetch 1 ,contr 
-224a c07fa24f beq 0xff ,initialize_radio_cont 
-224b 98418a00 ior temp ,contw 
-224c efe08006 ifetch 1 ,contr 
-224d e7e08005 istore 1 ,contw 
-224e 20202249 branch initialize_radio_loop 
-
-initialize_radio_cont:
-224f 448d4003 bpatch patch03_2 ,mem_patch03 
-2250 37d98200 until null ,lpo_edge 
-2251 7089460d jam 0x0d ,0x8946 
-2252 70896f10 jam 0x10 ,0x896f 
-2253 708a13cd jam 0xcd ,0x8a13 
-2254 708a0610 jam 0x10 ,0x8a06 
-2255 708a844a jam 0x4a ,0x8a84 
-2256 708a8540 jam 0x40 ,0x8a85 
-2257 708a16fe jam 0xfe ,0x8a16 
-2258 6fe0c44d fetch 1 ,mem_wdt_always_work 
-2259 205a711d call wdt_set_disable ,blank 
-225a 37d98200 until null ,lpo_edge 
-225b 70813b5f jam 0x5f ,0x813b 
-
-initialize_radio_cont_next:
-225c 6fe0c099 fetch 1 ,mem_fcomp_div 
-225d c0082276 beq xtal_16m ,initialize_radio_16m 
-225e 6fe0c44f fetch 1 ,mem_ring_ibias_trim 
-225f 1fe1fe04 or_into 0x04 ,pdata 
-2260 67f08a02 store 1 ,0x8a02 
-2261 70890f01 jam 0x01 ,0x890f 
-2262 708a8024 jam 0x24 ,0x8a80 
-2263 708a8162 jam 0x62 ,0x8a81 
-2264 58e61212 setarg 0xe61212 
-2265 67f18a73 store 3 ,0x8a73 
-
-initialize_radio2:
-2266 4779c03e bpatchx patch3e_3 ,mem_patch3e 
-2267 708a8660 jam 0x60 ,0x8a86 
-2268 708a8b3b jam 0x3b ,0x8a8b 
-2269 2040229d call dpll_on 
-226a 70804300 jam 0 ,core_config 
-226b 70804205 jam clksel_dpll ,core_clksel 
-226c 58557474 setarg 0x557474 
-226d 67f18968 store 3 ,0x8968 
-226e 7089606e jam 0x6e ,0x8960 
-226f 20402135 call rx_dcoc 
-2270 20402287 call rfpll_aac_ghpc 
-2271 20402281 call set_xtal_cap 
-2272 7041480c jam system_clk_12m ,mem_system_clk 
-2273 20406f53 call sadc_calibration 
-2274 204022cb call dpll_ring_ibias_calc 
-2275 20206ac9 branch set_bistfix_save_patchram 
-
-initialize_radio_16m:
-2276 6fe0c44f fetch 1 ,mem_ring_ibias_trim 
-2277 1fe1fe06 or_into 0x06 ,pdata 
-2278 67f08a02 store 1 ,0x8a02 
-2279 70890f00 jam 0x00 ,0x890f 
-227a 708a8023 jam 0x23 ,0x8a80 
-227b 708a81b0 jam 0xb0 ,0x8a81 
-227c 58e40909 setarg 0xe40909 
-227d 67f18a73 store 3 ,0x8a73 
-227e 708a762a jam 0x2a ,0x8a76 
-227f 70890204 jam 0x04 ,0x8902 
-2280 20202266 branch initialize_radio2 
-
-set_xtal_cap:
-2281 20758000 rtn wake 
-2282 37d98200 until null ,lpo_edge 
-2283 6fe0c11c fetch 1 ,mem_xtal_c_sel 
-2284 67f0813a store 1 ,core_xtal_cap 
-2285 37d98200 until null ,lpo_edge 
-2286 20600000 rtn 
-
-rfpll_aac_ghpc:
-2287 448dc003 bpatch patch03_3 ,mem_patch03 
-2288 20758000 rtn wake 
-2289 20402164 call set_sync_on 
-228a 70890003 jam 3 ,0x8900 
-228b 708a7001 jam 0x1 ,0x8a70 
-228c da40411d arg mem_ghpc_table ,regb 
-228d db004135 arg mem_aac_res_table ,regd 
-228e 20402293 call rfpll_aac_ghpc_once 
-228f 7920002d set1 mark_ble_2m ,mark 
-2290 20402293 call rfpll_aac_ghpc_once 
-2291 708a7061 jam 0x61 ,0x8a70 
-2292 20202155 branch shutdown_radio 
-
-rfpll_aac_ghpc_once:
-2293 20402193 call set_lemode 
-2294 df200006 arg 6 ,loopcnt 
-2295 da600000 arg 0 ,regc 
-
-rfpll_cal_loop:
-2296 1a620400 copy regc ,temp 
-2297 204022ab call aac_ghpc 
-2298 1a40a402 increase 2 ,regb 
-2299 1b00b001 increase 1 ,regd 
-229a 1a60a610 increase 16 ,regc 
-229b c2002296 loop rfpll_cal_loop 
-229c 20600000 rtn 
-
-dpll_on:
-229d 6fe0c099 fetch 1 ,mem_fcomp_div 
-229e c00c22a3 beq xtal_24m ,dpll_on_24m 
-229f 6fe0c44f fetch 1 ,mem_ring_ibias_trim 
-22a0 1fe1fe06 or_into 0x06 ,pdata 
-22a1 67f08a02 store 1 ,0x8a02 
-22a2 708a05e0 jam 0xe0 ,0x8a05 
-
-dpll_on_24m:
-22a3 708a00d8 jam 0xd8 ,0x8a00 
-22a4 2000003c nop 60 
-22a5 708a01a0 jam 0xa0 ,0x8a01 
-22a6 708a00df jam 0xdf ,0x8a00 
-22a7 708a01fa jam 0xfa ,0x8a01 
-22a8 20000014 nop 20 
-22a9 708a009f jam 0x9f ,0x8a00 
-22aa 20600000 rtn 
-
-aac_ghpc:
-22ab 448e4003 bpatch patch03_4 ,mem_patch03 
-22ac 708a2030 jam 0x30 ,0x8a20 
-22ad 708a23dd jam 0xdd ,0x8a23 
-22ae 204021d4 call calc_freq 
-
-wait_cal_done:
-22af 6ff08a7c fetch 1 ,0x8a7c 
-22b0 c30022af bbit0 0 ,wait_cal_done 
-22b1 708a7b30 jam 0x30 ,0x8a7b 
-22b2 204022c5 call read_cal_result 
-22b3 98002200 iforce rega 
-22b4 708a7b40 jam 0x40 ,0x8a7b 
-22b5 204022c5 call read_cal_result 
-22b6 9a267e00 isub rega ,pdata 
-22b7 1fef847d mul32 pdata ,125 ,temp 
-22b8 58b00000 setarg 0xb00000 
-22b9 9846fc00 idiv temp 
-22ba 20407d64 call wait_div_end 
-22bb 1807fe00 quotient pdata 
-22bc c596a2be bmark0 mark_ble_2m ,aac_ghpc_1m 
-22bd 1fe3fe00 lshift pdata ,pdata 
-
-aac_ghpc_1m:
-22be e7e10012 istore 2 ,regb 
-22bf 708a7b20 jam 0x20 ,0x8a7b 
-22c0 6ff08a7e fetch 1 ,0x8a7e 
-22c1 1ff27e00 lshift4 pdata ,pdata 
-22c2 e7e08018 istore 1 ,regd 
-22c3 708a7b00 jam 0 ,0x8a7b 
-22c4 20600000 rtn 
-
-read_cal_result:
-22c5 6ff10a7d fetch 2 ,0x8a7d 
-22c6 1ff0fe00 byteswap pdata ,pdata 
-22c7 68588a7c fetcht 1 ,0x8a7c 
-22c8 18500400 lshift16 temp ,temp 
-22c9 9841fe00 ior temp ,pdata 
-22ca 20600000 rtn 
-
-dpll_ring_ibias_calc:
-22cb 448ec003 bpatch patch03_5 ,mem_patch03 
-22cc 20600000 rtn 
-
-save_rssi:
-22cd 448f4003 bpatch patch03_6 ,mem_patch03 
-22ce 6ff089a2 fetch 1 ,modem_nb_pow 
-22cf 2feffe06 isolate1 6 ,pdata 
-22d0 7920fe07 setflag true ,7 ,pdata 
-22d1 67e0c142 store 1 ,mem_modem_rssi 
-22d2 6ff089a3 fetch 1 ,modem_gain 
-22d3 1fe1040f and pdata ,0x0f ,temp 
-22d4 18438400 lshift temp ,temp 
-22d5 1ff1fe00 rshift4 pdata ,pdata 
-22d6 98408400 iadd temp ,temp 
-22d7 184fa203 mul32 temp ,3 ,rega 
-22d8 6fe0c142 fetch 1 ,mem_modem_rssi 
-22d9 204022e3 call byte_sign_extern 
-22da 1fe67e00 sub pdata ,0 ,pdata 
-22db 9a20fe00 iadd rega ,pdata 
-22dc 1fe0fff7 increase -9 ,pdata 
-22dd 1fe17fff and pdata ,0x1ff ,pdata 
-22de 2feffe08 isolate1 8 ,pdata 
-22df 2420a2e1 nbranch save_rssi_store ,true 
-22e0 58000000 setarg 0 
-
-save_rssi_store:
-22e1 67e08035 store 1 ,mem_rssi_hex 
-22e2 202022e8 branch rssi_hex2dec 
-
-byte_sign_extern:
-22e3 2feffe07 isolate1 7 ,pdata 
-22e4 24608000 nrtn true 
-22e5 d840ff00 arg 0xff00 ,temp 
-22e6 9841fe00 ior temp ,pdata 
-22e7 20600000 rtn 
-
-rssi_hex2dec:
-22e8 6fe08035 fetch 1 ,mem_rssi_hex 
-22e9 204022ec call bcd 
-22ea 67e08009 store 1 ,mem_rssi 
-22eb 20600000 rtn 
-
-bcd:
-22ec 1fe17eff and_into 0xff ,pdata 
-22ed 1fe6fc0a div pdata ,10 
-22ee 20407d61 call get_div_result 
-22ef 1ff27e00 lshift4 pdata ,pdata 
-22f0 18070400 remainder temp 
-22f1 9841fe00 ior temp ,pdata 
-22f2 20600000 rtn 
-
-gain_control:
-22f3 448fc003 bpatch patch03_7 ,mem_patch03 
-22f4 6fe0c143 fetch 1 ,mem_gain_fix 
-22f5 c17f8000 rtneq 0xff 
-22f6 242c231a nbranch gain_increase ,sync 
-22f7 6fe0c142 fetch 1 ,mem_modem_rssi 
-22f8 1fe67cf0 sub pdata ,0xf0 ,null 
-22f9 2421231e nbranch gain_descend ,positive 
-22fa 1fe67c7f sub pdata ,0x7f ,null 
-22fb 2021231e branch gain_descend ,positive 
-22fc 6a308961 fetchr rega ,1 ,core_rf_rx_gain_fix 
-22fd 6fe0c143 fetch 1 ,mem_gain_fix 
-22fe c1000000 rtneq 0 
-22ff d8c04144 arg mem_gain_table ,contr 
-2300 98c08c00 iadd contr ,contr 
-2301 efe08006 ifetch 1 ,contr 
-2302 9a267c00 isub rega ,null 
-2303 24628000 nrtn zero 
-2304 18c08dfe increase -2 ,contr 
-2305 e8408006 ifetcht 1 ,contr 
-2306 1851fe00 rshift4 temp ,pdata 
-2307 1a31a400 rshift4 rega ,regb 
-2308 9a462400 isub regb ,regb 
-2309 18417e0f and temp ,0xf ,pdata 
-230a 1a21220f and rega ,0xf ,rega 
-230b 9a262200 isub rega ,rega 
-230c 1a23fe00 lshift rega ,pdata 
-230d 9a40a400 iadd regb ,regb 
-230e 1a4fa403 mul32 regb ,3 ,regb 
-230f 6848c142 fetcht 1 ,mem_modem_rssi 
-2310 18417e80 and temp ,0x80 ,pdata 
-2311 207a0000 rtn blank 
-
-add_negative:
-2312 58000100 setarg 0x100 
-2313 98460400 isub temp ,temp 
-2314 1a427e00 copy regb ,pdata 
-2315 98467e00 isub temp ,pdata 
-2316 20610000 rtn positive 
-2317 1fe17eff and pdata ,0xff ,pdata 
-2318 c17f8000 rtneq 0xff 
-2319 c17f0000 rtneq 0xfe 
-
-gain_increase:
-231a 6fe0c143 fetch 1 ,mem_gain_fix 
-231b c000a323 beq 1 ,set_rx_gain0 
-231c c0012325 beq 2 ,set_rx_gain1 
-231d 20202323 branch set_rx_gain0 
-
-gain_descend:
-231e 6fe0c143 fetch 1 ,mem_gain_fix 
-231f c0002325 beq 0 ,set_rx_gain1 
-2320 c000a321 beq 1 ,set_rx_gain2 
-
-set_rx_gain2:
-2321 70414302 jam 2 ,mem_gain_fix 
-2322 20600000 rtn 
-
-set_rx_gain0:
-2323 70414300 jam 0 ,mem_gain_fix 
-2324 20600000 rtn 
-
-set_rx_gain1:
-2325 70414301 jam 1 ,mem_gain_fix 
-2326 20600000 rtn 
-
-ahead_window:
-2327 1fe20400 copy pdata ,temp 
-2328 44904004 bpatch patch04_0 ,mem_patch04 
-2329 18427e00 copy temp ,pdata 
-232a 20407d2e call clk2bt 
-232b 1c307e00 lshift16 bt_clk ,pdata 
-232c 79207e2c set1 44 ,pdata 
-232d 20407d14 call clk_diff 
-232e 793ffe2c set0 44 ,pdata 
-232f 20402336 call get_clk 
-2330 20407d14 call clk_diff 
-2331 20740000 rtn user 
-2332 20407d21 call clk2rt 
-2333 98003600 iforce stop_watch 
-2334 37c18200 until null ,timeout 
-2335 20600000 rtn 
-
-get_clk:
-2336 1b220400 copy clkn ,temp 
-2337 20748000 rtn master 
-2338 1b420400 copy clke ,temp 
-2339 20600000 rtn 
-
-get_clkbt:
-233a 1c427e00 deposit clkn_bt 
-233b 20748000 rtn master 
-233c 1d027e00 deposit clke_bt 
-233d 20600000 rtn 
-
-assert:
-233e 4490c004 bpatch patch04_1 ,mem_patch04 
-233f 2020233e branch assert 
-
-sleep:
-2340 207a0000 rtn blank 
-2341 1fe37e00 rshift pdata ,pdata 
-2342 1fe0fffd increase -3 ,pdata 
-
-sleep_loop:
-2343 1fe0ffff increase -1 ,pdata 
-2344 2422a343 nbranch sleep_loop ,zero 
-2345 18007e00 force 0 ,pdata 
-2346 20600000 rtn 
-
-init_param:
-2347 58000e43 setarg param_tx_setup 
-2348 67e10036 store 2 ,mem_param_tx_setup 
-2349 58000600 setarg param_rf_setup 
-234a 67e10038 store 2 ,mem_param_rf_setup 
-234b 58000600 setarg param_conn_access 
-234c 67e1003a store 2 ,mem_param_conn_access 
-234d 58000d00 setarg param_rx_setup 
-234e 67e10040 store 2 ,mem_param_rx_setup 
-234f 580003bb setarg param_clke_cal 
-2350 67e1003c store 2 ,mem_param_clke_cal 
-2351 58000500 setarg param_pll_setup 
-2352 67e1003e store 2 ,mem_param_pll_setup 
-2353 580007d0 setarg param_dpll_start_delay 
-2354 67e10042 store 2 ,mem_param_dpll_start_delay 
-2355 58000ea6 setarg param_rt_rthalfslot 
-2356 67e10044 store 2 ,mem_param_rt_rthalfslot 
-2357 580001e0 setarg param_clke_cal_le_1m 
-2358 67e10046 store 2 ,mem_param_clke_cal_le_1m 
-2359 58000120 setarg param_clke_cal_le_2m 
-235a 67e10048 store 2 ,mem_param_clke_cal_le_2m 
-235b 5800011a setarg param_clke_cal_le_coded 
-235c 67e1004a store 2 ,mem_param_clke_cal_le_coded 
-235d 44914004 bpatch patch04_2 ,mem_patch04 
-235e 20758000 rtn wake 
-235f 58000017 setarg att_default_mtu 
-2360 67e142e5 store 2 ,mem_le_remote_mtu 
-2361 7041698b jam param_t_ifs_150us + param_sync_time_difference ,mem_le_tx_ifs_defference 
-2362 58000d00 setarg mem_ble_tx_buff0 
-2363 67e14343 store 2 ,mem_ble_l2cap_tx_buff0_ptr 
-2364 58000060 setarg mem_ble_l2cap_tx_buff_size 
-2365 67e14345 store 2 ,mem_ble_l2cap_tx_buff_size_ptr 
-2366 1c437e00 rshift clkn_bt ,pdata 
-2367 67e24095 store 4 ,mem_last_clkn 
-2368 20600000 rtn 
-
-lpmstate:
-2369 5800ee21 setarg 0xee21 
-236a 67f10050 store 2 ,core_clkoff 
-236b 6e12011c fetchr alarm ,4 ,core_gpio_in 
-236c 6ff08132 fetch 1 ,core_lpm_isogate 
-236d c302a383 bbit0 gpio_latch ,power_up 
-236e 7835fc00 enable wake 
-236f c2822377 bbit1 cold_wake ,lpmwake 
-2370 7855fc00 disable wake 
-2371 1ce27e00 deposit auxcnt 
-2372 243a2377 nbranch lpmwake ,blank 
-2373 6ff08142 fetch 1 ,core_lpm_sysctl 
-2374 c2822377 bbit1 reload_code ,lpmwake 
-2375 d85fffff arg param_hibernate_clks ,temp 
-2376 2020241d branch lpm_enter_sleep 
-
-lpmwake:
-2377 20402387 call lpm_poweron_retmem 
-2378 2055a3c9 call lpm_load_context ,wake 
-2379 37d98200 until null ,lpo_edge 
-237a 6ff08132 fetch 1 ,core_lpm_isogate 
-237b 793ffe05 set0 gpio_latch ,pdata 
-237c 67f08132 store 1 ,core_lpm_isogate 
-237d 37d98200 until null ,lpo_edge 
-237e 2435a384 nbranch boot_load ,wake 
-237f 20406aaf call set_bistfix_wake 
-2380 6602067b storer alarm ,4 ,mem_saved_gpio_in 
-2381 70800608 jam otp_key_lock ,core_misc_ctrl 
-2382 20600000 rtn 
-
-power_up:
-2383 20402387 call lpm_poweron_retmem 
-
-boot_load:
-2384 20406a20 call loadcode 
-2385 6602067b storer alarm ,4 ,mem_saved_gpio_in 
-2386 20600000 rtn 
-
-lpm_poweron_retmem:
-2387 37d98200 until null ,lpo_edge 
-2388 6ff08133 fetch 1 ,core_lpm_ldosel 
-2389 1fe17e88 and_into 0x88 ,pdata 
-238a 67f08133 store 1 ,core_lpm_ldosel 
-238b 37d98200 until null ,lpo_edge 
-238c 6ff08132 fetch 1 ,core_lpm_isogate 
-238d 1fe1fe0f or_into 0xf ,pdata 
-238e 67f08132 store 1 ,core_lpm_isogate 
-238f 37d98200 until null ,lpo_edge 
-2390 79207e07 set1 isogate ,pdata 
-2391 67f08132 store 1 ,core_lpm_isogate 
-2392 37d98200 until null ,lpo_edge 
-2393 79207e06 set1 retmem_cs ,pdata 
-2394 67f08132 store 1 ,core_lpm_isogate 
-2395 37d98200 until null ,lpo_edge 
-2396 20600000 rtn 
-
-xtal_fast_wake:
-2397 37d98200 until null ,lpo_edge 
-2398 70813d76 jam 0x76 ,core_xtal_ib 
-2399 37d98200 until null ,lpo_edge 
-239a 70813a37 jam 0x37 ,core_xtal_cap 
-239b 20600000 rtn 
-
-lpm_write_lock:
-239c 6fe0c3cf fetch 1 ,mem_device_option 
-239d 1ff27e00 lshift4 pdata ,pdata 
-239e 67f08143 store 1 ,core_ucode_flag 
-239f 37d98200 until null ,lpo_edge 
-23a0 6fe0c3d0 fetch 1 ,mem_peripheral_lock_flag 
-23a1 79207e05 set1 rom_lock_bit ,pdata 
-23a2 79207e06 set1 option_lock ,pdata 
-23a3 67f08144 store 1 ,core_peripheral_lock 
-23a4 202023c4 branch lpm_write_wait 
-
-lpm_write_ice_disable:
-23a5 6ff08142 fetch 1 ,core_lpm_sysctl 
-23a6 793ffe03 set0 ice_mode ,pdata 
-23a7 67f08142 store 1 ,core_lpm_sysctl 
-23a8 20600000 rtn 
-
-lpm_write_ice_enable:
-23a9 6ff08142 fetch 1 ,core_lpm_sysctl 
-23aa 79207e03 set1 ice_mode ,pdata 
-23ab 67f08142 store 1 ,core_lpm_sysctl 
-23ac 20600000 rtn 
-
-lpm_preon_counter:
-23ad 6fe1c0c3 fetch 3 ,mem_lpm_xtalcnt 
-23ae d8a0813e arg core_lpm_xtalcnt ,contw 
-
-lpm_write_3bytes:
-23af df200003 arg 3 ,loopcnt 
-23b0 202023b3 branch lpm_write_loop 
-
-lpm_write_mpu_s0:
-23b1 d8a08145 arg core_mpu_s0_saddr ,contw 
-
-lpm_write_dword:
-23b2 df200004 arg 4 ,loopcnt 
-
-lpm_write_loop:
-23b3 37d98200 until null ,lpo_edge 
-23b4 e7e08005 istore 1 ,contw 
-23b5 1fecfe00 rshift8 pdata ,pdata 
-23b6 c20023b3 loop lpm_write_loop 
-23b7 202023c4 branch lpm_write_wait 
-
-lpm_write_mpu_s1:
-23b8 d8a08149 arg core_mpu_s1_saddr ,contw 
-23b9 202023b2 branch lpm_write_dword 
-
-lpm_disable_exen_output:
-23ba 6ff08133 fetch 1 ,core_lpm_ldosel 
-23bb 793ffe03 set0 3 ,pdata 
-23bc 67f08133 store 1 ,core_lpm_ldosel 
-23bd 20600000 rtn 
-
-lpm_disable_io_dozed:
-23be 6fe0c0cb fetch 1 ,mem_lpm_hv_sel 
-23bf 207a0000 rtn blank 
-23c0 793ffe04 set0 lpm_doze_en_bit ,pdata 
-23c1 202023c3 branch lpm_write_sel_hv 
-
-lpm_save_sel_hv:
-23c2 67e0c0cb store 1 ,mem_lpm_hv_sel 
-
-lpm_write_sel_hv:
-23c3 67f08135 store 1 ,core_io_doze_en 
-
-lpm_write_wait:
-23c4 37d98200 until null ,lpo_edge 
-23c5 37d98200 until null ,lpo_edge 
-23c6 20600000 rtn 
-
-lpm_write_io_vsel:
-23c7 67f08134 store 1 ,core_io_vsel 
-23c8 202023c4 branch lpm_write_wait 
-
-lpm_load_context:
-23c9 204023be call lpm_disable_io_dozed 
-23ca 6fe0c0ef fetch 1 ,mem_saved_spidctrl 
-23cb 67f08080 store 1 ,core_spid_ctrl 
-23cc d8c040cc arg mem_saved_gpio ,contr 
-23cd d8a08070 arg core_gpio_conf ,contw 
-23ce 20407c91 call memcpy16 
-23cf d8a080d4 arg core_gpio_conf_hi ,contw 
-23d0 20407c8b call memcpy8 
-23d1 680440e7 fetchr mark ,8 ,mem_saved_mark 
-23d2 d8c0814d arg core_gpio_wakeup_cfg ,contr 
-23d3 d8a00016 arg mem_gpio_wakeup_cfg ,contw 
-23d4 df20000c arg 12 ,loopcnt 
-23d5 20407cdc call memcpy 
-23d6 20206aff branch load_ucode 
-
-lpm_save_context:
-23d7 600440e7 storer mark ,8 ,mem_saved_mark 
-23d8 d8c08070 arg core_gpio_conf ,contr 
-23d9 d8a040cc arg mem_saved_gpio ,contw 
-23da 20407c91 call memcpy16 
-23db d8c080d4 arg core_gpio_conf_hi ,contr 
-23dc 20407c8b call memcpy8 
-23dd 6ff08080 fetch 1 ,core_spid_ctrl 
-23de 67e0c0ef store 1 ,mem_saved_spidctrl 
-23df 18422400 copy temp ,regb 
-23e0 202023e1 branch lpm_write_gpio_wakeup 
-
-lpm_write_gpio_wakeup:
-23e1 df20000c arg 12 ,loopcnt 
-23e2 da200016 arg mem_gpio_wakeup_cfg ,rega 
-23e3 da60814d arg core_gpio_wakeup_cfg ,regc 
-23e4 37d98200 until null ,lpo_edge 
-
-lpm_write_gpio_loop:
-23e5 efe08011 ifetch 1 ,rega 
-23e6 e8408013 ifetcht 1 ,regc 
-23e7 98467c00 isub temp ,null 
-23e8 2022a3eb branch lpm_write_gpio_loop_next ,zero 
-23e9 e7e08013 istore 1 ,regc 
-23ea 37d98200 until null ,lpo_edge 
-
-lpm_write_gpio_loop_next:
-23eb 1a20a201 increase 1 ,rega 
-23ec 1a60a601 increase 1 ,regc 
-23ed c20023e5 loop lpm_write_gpio_loop 
-23ee 1a420400 copy regb ,temp 
-23ef 20600000 rtn 
-
-lpo_calibration:
-23f0 4491c004 bpatch patch04_3 ,mem_patch04 
-23f1 6ff080cb fetch 1 ,core_ccnt_bit 
-23f2 243a23f7 nbranch lpo_cal_inited ,blank 
-23f3 6fe1c0bd fetch 3 ,mem_clks_per_lpo 
-23f4 247a0000 nrtn blank 
-23f5 7080cb0c jam 0xc ,core_ccnt_bit 
-23f6 70800680 jam ccnt_start ,core_misc_ctrl 
-
-lpo_cal_inited:
-23f7 6ff08129 fetch 1 ,core_perf_status 
-23f8 c4008000 rtnbit0 1 
-23f9 6ff1815b fetch 3 ,core_clk_counter 
-23fa 67e1c0bd store 3 ,mem_clks_per_lpo 
-23fb 20600000 rtn 
-
-lpm_doze:
-23fc 6fe0c0ca fetch 1 ,mem_lpm_sysctl 
-23fd 79207e04 set1 reload_code ,pdata 
-23fe 67e0c0ca store 1 ,mem_lpm_sysctl 
-
-lpm_hibernate:
-23ff 44924004 bpatch patch04_4 ,mem_patch04 
-2400 d85fffff arg param_hibernate_clks ,temp 
-2401 6fe0c0a7 fetch 1 ,mem_lpm_hibernate_switch 
-2402 67e0c0c8 store 1 ,mem_lpm_isogate_final 
-2403 6fe0c0ca fetch 1 ,mem_lpm_sysctl 
-2404 67f08142 store 1 ,core_lpm_sysctl 
-2405 37d98200 until null ,lpo_edge 
-
-lpm_sleep:
-2406 4492c004 bpatch patch04_5 ,mem_patch04 
-2407 6fe143f2 fetch 2 ,mem_cb_before_lpm_sleep 
-2408 20407d7b call callback_func 
-
-lpm_sleep_skip_cb_function:
-2409 6fe240ad fetch 4 ,mem_sleep_counter_all 
-240a 9840fe00 iadd temp ,pdata 
-240b 67e240ad store 4 ,mem_sleep_counter_all 
-240c 204023d7 call lpm_save_context 
-240d 6fe0c0cb fetch 1 ,mem_lpm_hv_sel 
-240e 79207e04 set1 lpm_doze_en_bit ,pdata 
-240f 204023c3 call lpm_write_sel_hv 
-2410 2455a3ad ncall lpm_preon_counter ,wake 
-2411 37d98200 until null ,lpo_edge 
-2412 632340b1 storer clkn ,6 ,mem_sleep_clkn 
-2413 20406abf call set_bistfix_save_xram 
-2414 6fe1c0c6 fetch 3 ,mem_lpm_isogate 
-2415 6a20c0c9 fetchr rega ,1 ,mem_lpm_ldo_sel 
-2416 df200003 arg 3 ,loopcnt 
-
-lpm_sleep_loop:
-2417 37d98200 until null ,lpo_edge 
-2418 67f08132 store 1 ,core_lpm_isogate 
-2419 1fecfe00 rshift8 pdata ,pdata 
-241a c2002417 loop lpm_sleep_loop 
-241b 37d98200 until null ,lpo_edge 
-241c 62308133 storer rega ,1 ,core_lpm_ldosel 
-
-lpm_enter_sleep:
-241d 37d98200 until null ,lpo_edge 
-241e 605a004c storet 4 ,core_lpm_reg 
-241f 70800501 jam lpmreg_sel_counter ,core_lpm_wr 
-2420 37df8200 until null ,never 
-
-lpm_recover_clk:
-2421 44934004 bpatch patch04_6 ,mem_patch04 
-2422 58000000 setarg 0 
-2423 1ce27c00 copy auxcnt ,null 
-2424 2022a42c branch lpm_recover_timeout ,zero 
-2425 6ff0813e fetch 1 ,core_lpm_xtalcnt 
-2426 6858813f fetcht 1 ,core_lpm_buckcnt 
-2427 98467c00 isub temp ,null 
-2428 2021242a branch lpm_recover_xtal ,positive 
-2429 18427e00 deposit temp 
-
-lpm_recover_xtal:
-242a 9ce67e00 isub auxcnt ,pdata 
-242b 1fe0fe01 increase 1 ,pdata 
-
-lpm_recover_timeout:
-242c 1fe0fe08 increase 8 ,pdata 
-242d 37d98200 until null ,lpo_edge 
-242e 9e20fe00 iadd lpo_time ,pdata 
-242f 684a40a9 fetcht 4 ,mem_sleep_counter 
-2430 9840fe00 iadd temp ,pdata 
-2431 6849c0bd fetcht 3 ,mem_clks_per_lpo 
-2432 984ffe00 imul32 temp ,pdata 
-2433 1fecfe00 rshift8 pdata ,pdata 
-2434 1ff1fe00 rshift4 pdata ,pdata 
-2435 1fe0fe6e increase param_lpm_fix ,pdata 
-2436 68490044 fetcht 2 ,mem_param_rt_rthalfslot 
-2437 9846fc00 idiv temp 
-2438 20407d61 call get_div_result 
-2439 1ff07e00 lshift16 pdata ,pdata 
-243a 18070400 remainder temp 
-243b 9841fe00 ior temp ,pdata 
-243c 684b40b1 fetcht 6 ,mem_sleep_clkn 
-243d 20407d07 call clk_add 
-243e 18423200 copy temp ,clkn 
-243f 6fe34048 fetch 6 ,mem_context + coffset_clk_offset 
-2440 20402109 call calc_clke2 
-2441 1b427e00 deposit clke 
-2442 67e3064e store 6 ,mem_pdatatemp 
-2443 1ce27e00 deposit auxcnt 
-2444 e7e08005 istore 1 ,contw 
-2445 6ff0811d fetch 1 ,core_gpio_in1 
-2446 1fe1fef0 or_into 0xf0 ,pdata 
-2447 e7e08005 istore 1 ,contw 
-2448 20600000 rtn 
-
-lpm_adjust_clk:
-2449 4493c004 bpatch patch04_7 ,mem_patch04 
-244a c584a460 bmark0 mark_context ,lpm_clear_counter 
-244b 684a40ad fetcht 4 ,mem_sleep_counter_all 
-244c dfe00600 arg 0x600 ,pdata 
-244d 98467c00 isub temp ,null 
-244e 20610000 rtn positive 
-244f 18422200 copy temp ,rega 
-2450 684b000f fetcht 6 ,mem_sync_clke 
-2451 1d627e00 deposit rege 
-2452 20407d12 call clk_diff_rt 
-2453 1a220400 copy rega ,temp 
-2454 1fed7e00 lshift8 pdata ,pdata 
-2455 1ff27e00 lshift4 pdata ,pdata 
-2456 9846fc00 idiv temp 
-2457 20407d61 call get_div_result 
-2458 d84000c8 arg param_lpm_adjmax ,temp 
-2459 20407d6e call ceiling 
-245a 67e0800e store 1 ,mem_lpm_adjust 
-245b 2434245d nbranch lpm_adjust_positive ,user 
-245c 1fe67e00 sub pdata ,0 ,pdata 
-
-lpm_adjust_positive:
-245d 6849c0bd fetcht 3 ,mem_clks_per_lpo 
-245e 9840fe00 iadd temp ,pdata 
-245f 67e1c0bd store 3 ,mem_clks_per_lpo 
-
-lpm_clear_counter:
-2460 58000000 setarg 0 
-2461 67e240ad store 4 ,mem_sleep_counter_all 
-2462 20600000 rtn 
-
-lpm_dispatch:
-2463 44944005 bpatch patch05_0 ,mem_patch05 
-2464 204023f0 call lpo_calibration 
-2465 6fe1c0bd fetch 3 ,mem_clks_per_lpo 
-2466 207a0000 rtn blank 
-2467 6fe0c094 fetch 1 ,mem_lpm_mode 
-2468 207a0000 rtn blank 
-2469 6fe0c483 fetch 1 ,mem_secure_connections_enable 
-246a 203a246d branch lpm_dispatch_next ,blank 
-246b 6fe0c485 fetch 1 ,mem_sc_local_key_invalid 
-246c 207a0000 rtn blank 
-
-lpm_dispatch_next:
-246d 6fe0c484 fetch 1 ,mem_sc_calc 
-246e 247a0000 nrtn blank 
-246f da6020af arg context_check_a_wack ,regc 
-2470 20402069 call context_search 
-2471 20628000 rtn zero 
-2472 204024c6 call lpm_check_wake_lock 
-2473 247a0000 nrtn blank 
-2474 2040205d call context_check_idle 
-2475 2422a494 nbranch lpm_dispatch_unconn ,zero 
-2476 20758000 rtn wake 
-2477 4494c005 bpatch patch05_1 ,mem_patch05 
-2478 68488015 fetcht 1 ,mem_lpm_current_mult 
-2479 6fe14042 fetch 2 ,mem_context + coffset_tsniff 
-247a 984ffe00 imul32 temp ,pdata 
-247b 18518400 rshift4 temp ,temp 
-247c 184b0400 rshift2 temp ,temp 
-247d 98467e00 isub temp ,pdata 
-247e 684a4044 fetcht 4 ,mem_context + coffset_sniff_anchor 
-247f 9840fe00 iadd temp ,pdata 
-2480 6848c0a6 fetcht 1 ,mem_lpm_overhead 
-2481 98467e00 isub temp ,pdata 
-2482 1ff06000 lshift16 pdata ,alarm 
-2483 6fe1404e fetch 2 ,mem_context + coffset_rx_window 
-2484 1fe37e00 rshift pdata ,pdata 
-2485 20407d2e call clk2bt 
-2486 1e027e00 deposit alarm 
-2487 20407d14 call clk_diff 
-2488 1b420400 copy clke ,temp 
-2489 20407d12 call clk_diff_rt 
-248a 20740000 rtn user 
-
-lpm_dispatch_sleep:
-248b 20407d27 call clk2lpo 
-
-lpm_dispatch_lpo:
-248c 44954005 bpatch patch05_2 ,mem_patch05 
-248d 6fe0c0c3 fetch 1 ,mem_lpm_xtalcnt 
-248e 98467c00 isub temp ,null 
-248f 20212460 branch lpm_clear_counter ,positive 
-2490 604a40a9 storet 4 ,mem_sleep_counter 
-2491 2040373a call app_will_enter_lpm 
-2492 684a40a9 fetcht 4 ,mem_sleep_counter 
-2493 20202406 branch lpm_sleep 
-
-lpm_dispatch_unconn:
-2494 4495c005 bpatch patch05_3 ,mem_patch05 
-2495 6fe0c38c fetch 1 ,mem_le_adv_enable 
-2496 243a2498 nbranch lpm_unconn_cont ,blank 
-2497 20600000 rtn 
-
-lpm_unconn_cont:
-2498 6fe140a4 fetch 2 ,mem_lpm_interval 
-2499 207a0000 rtn blank 
-
-lpm_sleep_btclk:
-249a 6848c0a6 fetcht 1 ,mem_lpm_overhead 
-249b 98467e00 isub temp ,pdata 
-249c d8401d4c arg 7500 ,temp 
-249d 984ffe00 imul32 temp ,pdata 
-249e 2020248b branch lpm_dispatch_sleep 
-
-lpm_mult_wait_timeout:
-249f 6fe143ee fetch 2 ,mem_cb_bt_set_mult 
-24a0 20407d7b call callback_func 
-24a1 243a24b7 nbranch lpm_mult_short ,blank 
-24a2 70001500 jam 0 ,mem_lpm_current_mult 
-24a3 c586a4b7 bmark0 mark_lpm_mult_enable ,lpm_mult_short 
-24a4 6fe0c0c2 fetch 1 ,mem_lpm_mult_cnt 
-24a5 203a24bb branch lpm_mult_long ,blank 
-24a6 1fe0ffff increase -1 ,pdata 
-24a7 67e0c0c2 store 1 ,mem_lpm_mult_cnt 
-24a8 20600000 rtn 
-
-lpm_match:
-24a9 7040a800 jam 0 ,mem_sniff_unint_lost 
-24aa 6fe1c0b7 fetch 3 ,mem_sniff_rcv 
-24ab 1fe0fe01 increase 1 ,pdata 
-24ac 67e1c0b7 store 3 ,mem_sniff_rcv 
-24ad 20600000 rtn 
-
-lpm_lost:
-24ae 44964005 bpatch patch05_4 ,mem_patch05 
-24af 70001500 jam 0 ,mem_lpm_current_mult 
-24b0 6fe1c0ba fetch 3 ,mem_sniff_lost 
-24b1 1fe0fe01 increase 1 ,pdata 
-24b2 67e1c0ba store 3 ,mem_sniff_lost 
-24b3 6fe0c0a8 fetch 1 ,mem_sniff_unint_lost 
-24b4 1fe0fe01 increase 1 ,pdata 
-24b5 67e0c0a8 store 1 ,mem_sniff_unint_lost 
-24b6 20600000 rtn 
-
-lpm_mult_short:
-24b7 70001500 jam 0 ,mem_lpm_current_mult 
-24b8 6fe0c0c1 fetch 1 ,mem_lpm_mult_timeout 
-24b9 67e0c0c2 store 1 ,mem_lpm_mult_cnt 
-24ba 20600000 rtn 
-
-lpm_mult_long:
-24bb 6848c0c0 fetcht 1 ,mem_lpm_mult 
-24bc 60488015 storet 1 ,mem_lpm_current_mult 
-24bd 20600000 rtn 
-
-lpm_get_wake_lock:
-24be 6fe140a2 fetch 2 ,mem_lpm_wake_lock 
-24bf f9207e00 qset1 pdata 
-24c0 67e140a2 store 2 ,mem_lpm_wake_lock 
-24c1 20600000 rtn 
-
-lpm_put_wake_lock:
-24c2 6fe140a2 fetch 2 ,mem_lpm_wake_lock 
-24c3 f93ffe00 qset0 pdata 
-24c4 67e140a2 store 2 ,mem_lpm_wake_lock 
-24c5 20600000 rtn 
-
-lpm_check_wake_lock:
-24c6 4496c005 bpatch patch05_5 ,mem_patch05 
-24c7 20403738 call app_check_wake_lock 
-24c8 6fe140a2 fetch 2 ,mem_lpm_wake_lock 
-24c9 1fe22200 copy pdata ,rega 
-24ca 6fe1c462 fetch 3 ,mem_tx_fifo3 
-24cb 7d3a2201 nsetflag blank ,wake_lock_ble_tx ,rega 
-24cc 6fe444ea fetch util_fifo_len ,mem_ipc_fifo_bt2c51 
-24cd 7d3a220f nsetflag blank ,wake_lock_ipc_bt2c51 ,rega 
-24ce 6fe444f2 fetch util_fifo_len ,mem_ipc_fifo_c512bt 
-24cf 7d3a220e nsetflag blank ,wake_lock_ipc_c512bt ,rega 
-24d0 6fe0c114 fetch 1 ,mem_hci_cmd 
-24d1 7d3a2208 nsetflag blank ,wake_lock_cmd ,rega 
-24d2 6fe0c3cf fetch 1 ,mem_device_option 
-24d3 2fe1fe0a compare dvc_op_module ,pdata ,0xff 
-24d4 2040a4d8 call lpm_uart_wake_lock ,true 
-24d5 1a227e00 copy rega ,pdata 
-24d6 67e140a2 store 2 ,mem_lpm_wake_lock 
-24d7 20600000 rtn 
-
-lpm_uart_wake_lock:
-24d8 6ff10112 fetch 2 ,core_uart_rxitems 
-24d9 7d3a2206 nsetflag blank ,wake_lock_uart_rx ,rega 
-24da 6ff1010e fetch 2 ,core_uart_txitems 
-24db 7d3a2205 nsetflag blank ,wake_lock_uart_tx ,rega 
-24dc 20600000 rtn 
-
-le_init_conn:
-24dd 471dc027 bpatchx patch27_3 ,mem_patch27 
-24de 7855fc00 disable wake 
-24df 70017e01 jam 1 ,mem_le_conn_handle 
-24e0 70016803 jam 3 ,mem_le_state 
-24e1 70017f01 jam 1 ,mem_le_arq 
-24e2 5fffffff setarg -1 
-24e3 67e10182 store 2 ,mem_le_event_count 
-24e4 18007e00 force 0 ,pdata 
-24e5 67e08180 store 1 ,mem_le_ch 
-24e6 67e0818b store 1 ,mem_le_op 
-24e7 67e1c0b7 store 3 ,mem_sniff_rcv 
-24e8 67e1c0ba store 3 ,mem_sniff_lost 
-24e9 2040283a call le_clear_enc 
-24ea 70416b01 jam 1 ,mem_le_txheader 
-24eb 70416c00 jam 0 ,mem_le_txlen 
-24ec 70019d01 jam fun_rx_ll_1m_phy ,mem_le_rx_phy 
-24ed 70019e01 jam fun_tx_ll_1m_phy ,mem_le_tx_phy 
-24ee 70439a00 jam 0 ,mem_le_l2cap_att_states 
-24ef 20202914 branch le_supervision_flush 
-
-le_init_master:
-24f0 471e4027 bpatchx patch27_4 ,mem_patch27 
-24f1 7834fc00 enable master 
-24f2 70016903 jam lemode_master ,mem_le_mode 
-24f3 70439c01 jam 1 ,mem_le_att_handle 
-24f4 70068f01 jam 1 ,mem_le_search_handle_start 
-24f5 5800ffff setarg 0xffff 
-24f6 67e10691 store 2 ,mem_le_search_handle_end 
-24f7 18007e00 force 0 ,pdata 
-24f8 67e2c46c store 5 ,mem_ccm_pcnt_rx 
-24f9 79207e27 set1 le_ccm_directionbit ,pdata 
-24fa 67e2c467 store 5 ,mem_ccm_pcnt_tx 
-24fb 202024dd branch le_init_conn 
-
-le_init_slave:
-24fc 471ec027 bpatchx patch27_5 ,mem_patch27 
-24fd 7854fc00 disable master 
-24fe 58000017 setarg 0x17 
-24ff 67e142e5 store 2 ,mem_le_remote_mtu 
-2500 1fe0fe04 increase 4 ,pdata 
-2501 67e143bc store 2 ,mem_remote_rx_max_octets 
-2502 70016901 jam lemode_slave ,mem_le_mode 
-2503 70438c00 jam 0 ,mem_le_adv_enable 
-2504 70001500 jam 0 ,mem_lpm_current_mult 
-2505 20402567 call le_clear_pairing_state 
-2506 6fe10196 fetch 2 ,mem_le_superto 
-2507 67e142f7 store 2 ,mem_le_init_superto 
-2508 6fe1016a fetch 2 ,mem_le_tsniff 
-2509 1feffe05 mul32 pdata ,5 ,pdata 
-250a 1ff1fe00 rshift4 pdata ,pdata 
-250b 67e10196 store 2 ,mem_le_superto 
-250c 202024dd branch le_init_conn 
-
-le_conn_dispatch:
-250d 471f4027 bpatchx patch27_6 ,mem_patch27 
-250e 2040258d call le_enable 
-250f 6fe08168 fetch 1 ,mem_le_state 
-2510 2feffe04 isolate1 lestate_encryption ,pdata 
-2511 79208032 setflag true ,mark_ble_encryption ,mark 
-2512 20403727 call app_process_ble 
-2513 6fe08169 fetch 1 ,mem_le_mode 
-2514 c280a516 bbit1 mode_master ,le_master_dispatch 
-2515 20202527 branch le_slave_dispatch 
-
-le_master_dispatch:
-2516 471fc027 bpatchx patch27_7 ,mem_patch27 
-2517 7834fc00 enable master 
-2518 2040290a call le_supervision_update 
-2519 20212524 branch le_master_disconn ,positive 
-251a 204025d0 call le_setup 
-251b 2040284f call le_prepare_tx 
-251c 7856fc00 disable match 
-251d 2040270e call le_transmit_receive_sifs 
-251e 24768000 nrtn match 
-251f 6fe08005 fetch 1 ,mem_le_conn_rcv 
-2520 1fe0fe01 increase 1 ,pdata 
-2521 67e08005 store 1 ,mem_le_conn_rcv 
-2522 20402801 call le_acknowledge 
-2523 20202525 branch le_disable_master 
-
-le_master_disconn:
-2524 2040255b call le_disconnect 
-
-le_disable_master:
-2525 7854fc00 disable master 
-2526 20600000 rtn 
-
-le_slave_dispatch:
-2527 47204028 bpatchx patch28_0 ,mem_patch28 
-2528 70434200 jam 0 ,mem_le_md_count 
-2529 793f8030 set0 mark_ble_crc_fail ,mark 
-252a 20407540 call sp_calc_sequence_256 
-252b 20402fd3 call le_secure_connect_sm 
-252c 78577c00 disable attempt 
-252d 2040290a call le_supervision_update 
-252e 2021255b branch le_slave_disconn ,positive 
-252f 6fe0819d fetch 1 ,mem_le_rx_phy 
-2530 20402579 call le_enable_phy_by_pdata 
-2531 204025d0 call le_setup 
-2532 20402627 call le_receive_slave 
-2533 242c254d nbranch le_slave_unsync ,sync 
-2534 2040256c call le_got_first_packet 
-2535 2036a538 branch le_slave_match ,match 
-2536 c5182538 bmark1 mark_ble_crc_fail ,le_slave_crc_fail 
-2537 20202547 branch le_slave_cont 
-
-le_slave_crc_fail:
-
-le_slave_match:
-2538 4720c028 bpatchx patch28_1 ,mem_patch28 
-2539 6fe0c342 fetch 1 ,mem_le_md_count 
-253a 1fe0fe01 pincrease 1 
-253b 67e0c342 store 1 ,mem_le_md_count 
-253c c0062547 beq le_md_max_count ,le_slave_cont 
-253d 20402801 call le_acknowledge 
-253e 2040284f call le_prepare_tx 
-253f 6fe0819e fetch 1 ,mem_le_tx_phy 
-2540 20402579 call le_enable_phy_by_pdata 
-2541 2040271f call le_transmit 
-2542 204028b2 call le_parse 
-2543 6fe143ea fetch 2 ,mem_cb_ble_transmit 
-2544 20407d7b call callback_func 
-2545 20402551 call le_check_md 
-2546 20342555 branch le_slave_more_data ,user 
-
-le_slave_cont:
-2547 47214028 bpatchx patch28_2 ,mem_patch28 
-2548 20402f98 call le_pairing_sm 
-2549 20402f8f call le_check_paring_time 
-254a 20407831 call check_51cmd 
-254b 6fe0818b fetch 1 ,mem_le_op 
-254c c281a55b bbit1 op_disconn ,le_slave_disconn 
-
-le_slave_unsync:
-254d 4721c028 bpatchx patch28_3 ,mem_patch28 
-254e 204020cf call end_of_packet 
-254f 20402984 call le_lpm_set_mult 
-2550 202020f7 branch calc_clke_offset 
-
-le_check_md:
-2551 c5157dbc bmark1 mark_ble_rx_md ,enable_user 
-2552 c514fdbc bmark1 mark_ble_tx_md ,enable_user 
-2553 c5187dbc bmark1 mark_ble_crc_fail ,enable_user 
-2554 20207dbe branch disable_user 
-
-le_slave_more_data:
-2555 47224028 bpatchx patch28_4 ,mem_patch28 
-2556 78377c00 enable attempt 
-2557 20402712 call le_transmit_receive_sifs_notx 
-2558 2036a538 branch le_slave_match ,match 
-2559 c5182538 bmark1 mark_ble_crc_fail ,le_slave_crc_fail 
-255a 20202547 branch le_slave_cont 
-
-le_slave_disconn:
-
-le_disconnect:
-255b 4722c028 bpatchx patch28_5 ,mem_patch28 
-255c 20402562 call le_clear_connection_info 
-255d 20403777 call app_disconn_reason_collect_ble 
-255e 20402567 call le_clear_pairing_state 
-255f 20402fe1 call le_sc_state_clear 
-2560 70064d15 jam bt_evt_le_disconnected ,mem_fifo_temp 
-2561 20207819 branch ui_ipc_send_event 
-
-le_clear_connection_info:
-2562 d8a04458 arg mem_used_map ,contw 
-2563 20407c9b call memset0_16 
-2564 70017e00 jam 0 ,mem_le_conn_handle 
-2565 70016900 jam lemode_idle ,mem_le_mode 
-2566 70016800 jam 0 ,mem_le_state 
-
-le_clear_pairing_state:
-2567 47234028 bpatchx patch28_6 ,mem_patch28 
-2568 7042ff00 jam flag_le_enc_null ,mem_le_enc_state 
-2569 7042fe00 jam flag_le_pairing_null ,mem_le_pairing_state 
-256a 20407440 call sp_clear_flags 
-256b 20600000 rtn 
-
-le_got_first_packet:
-256c 4723c028 bpatchx patch28_7 ,mem_patch28 
-256d 6fe08005 fetch 1 ,mem_le_conn_rcv 
-256e 1fe0fe01 increase 1 ,pdata 
-256f 67e08005 store 1 ,mem_le_conn_rcv 
-2570 6fe08168 fetch 1 ,mem_le_state 
-2571 c3818000 rtnbit1 lestate_got_first_packet 
-2572 79207e03 set1 lestate_got_first_packet ,pdata 
-2573 67e08168 store 1 ,mem_le_state 
-2574 6fe142f7 fetch 2 ,mem_le_init_superto 
-2575 67e10196 store 2 ,mem_le_superto 
-2576 58000000 setarg 0 
-2577 67e2431f store 4 ,mem_le_transmit_window 
-2578 20600000 rtn 
-
-le_enable_phy_by_pdata:
-2579 1fe20400 copy pdata ,temp 
-257a 47244029 bpatchx patch29_0 ,mem_patch29 
-
-le_enable_phy_by_pdata1:
-257b 18427e00 copy temp ,pdata 
-257c c280258d bbit1 bit_le_1m_phy ,le_enable 
-257d c280a582 bbit1 bit_le_2m_phy ,le_enable_2m 
-257e c301258d bbit0 bit_le_coded_phy ,le_enable 
-257f c283a589 bbit1 bit_le_coded_phy_s8 ,le_enable_coded_s8 
-2580 c2812585 bbit1 bit_le_coded_phy_s2 ,le_enable_coded_s2 
-2581 2020258d branch le_enable 
-
-le_enable_2m:
-2582 793f802f set0 mark_ble_lr ,mark 
-2583 7920002d set1 mark_ble_2m ,mark 
-2584 20600000 rtn 
-
-le_enable_coded_s2:
-
-le_enable_coded:
-2585 793f802d set0 mark_ble_2m ,mark 
-2586 7920002f set1 mark_ble_lr ,mark 
-2587 793f802e set0 mark_ble_lr_s8 ,mark 
-2588 20600000 rtn 
-
-le_enable_coded_s8:
-2589 793f802d set0 mark_ble_2m ,mark 
-258a 7920002f set1 mark_ble_lr ,mark 
-258b 7920002e set1 mark_ble_lr_s8 ,mark 
-258c 20600000 rtn 
-
-le_enable:
-258d 4724c029 bpatchx patch29_1 ,mem_patch29 
-258e 793f802d set0 mark_ble_2m ,mark 
-258f 793f802f set0 mark_ble_lr ,mark 
-2590 20600000 rtn 
-
-le_disable:
-2591 47254029 bpatchx patch29_2 ,mem_patch29 
-2592 793f8032 set0 mark_ble_encryption ,mark 
-2593 70890101 jam 0x01 ,0x8901 
-2594 70892080 jam 0x80 ,0x8920 
-2595 70893003 jam 0x03 ,0x8930 
-2596 20600000 rtn 
-
-le_prep:
-2597 4725c029 bpatchx patch29_3 ,mem_patch29 
-2598 7844fc00 disable enable_crc 
-2599 7843fc00 disable enable_white 
-259a 6fe18190 fetch 3 ,mem_le_crcinit 
-259b 98001e00 iforce crc24_init 
-259c 6fe08007 fetch 1 ,mem_le_ch_mapped 
-
-le_prep_next:
-259d 1fed8400 reverse pdata ,temp 
-259e 79200401 set1 1 ,temp 
-259f 18431c00 rshift temp ,white_init 
-25a0 20600000 rtn 
-
-le_rx_setfreq:
-25a1 204025aa call le_setfreq 
-
-le_rf_rx_enable:
-25a2 20402173 call set_freq_rx 
-25a3 6fe1003e fetch 2 ,mem_param_pll_setup 
-25a4 20402340 call sleep 
-25a5 202021aa branch rf_rx_enable 
-
-le_tx_setfreq:
-25a6 2036a202 branch txon ,match 
-25a7 c5182202 bmark1 mark_ble_crc_fail ,txon 
-
-le_tx_setfreq0:
-25a8 204025aa call le_setfreq 
-25a9 202021ff branch set_freq_tx 
-
-le_setfreq:
-25aa 47264029 bpatchx patch29_4 ,mem_patch29 
-25ab 20402164 call set_sync_on 
-25ac 6fe0c33d fetch 1 ,mem_le_testtype 
-25ad 243a25bd nbranch le_ctf_test ,blank 
-25ae 6fe08007 fetch 1 ,mem_le_ch_mapped 
-25af 1fe67c24 sub pdata ,36 ,null 
-25b0 202125b7 branch le_ctf_normal ,positive 
-25b1 18000400 force 0 ,temp 
-25b2 c1128000 rtneq 37 
-25b3 18000418 force 24 ,temp 
-25b4 c1130000 rtneq 38 
-25b5 1800044e force 78 ,temp 
-25b6 20600000 rtn 
-
-le_ctf_normal:
-25b7 1fe67c0a sub pdata ,10 ,null 
-25b8 202125ba branch le_ctf_low ,positive 
-25b9 1fe0fe01 increase 1 ,pdata 
-
-le_ctf_low:
-25ba 1fe3fe00 lshift pdata ,pdata 
-25bb 1fe08402 add pdata ,2 ,temp 
-25bc 20600000 rtn 
-
-le_ctf_test:
-25bd 6fe08007 fetch 1 ,mem_le_ch_mapped 
-25be 1fe38400 lshift pdata ,temp 
-25bf 20600000 rtn 
-
-le_sca_map:
-25c0 d84001f4 arg 500 ,temp 
-25c1 207a0000 rtn blank 
-25c2 d84000fa arg 250 ,temp 
-25c3 c1008000 rtneq 1 
-25c4 d8400096 arg 150 ,temp 
-25c5 c1010000 rtneq 2 
-25c6 d8400064 arg 100 ,temp 
-25c7 c1018000 rtneq 3 
-25c8 d840004b arg 75 ,temp 
-25c9 c1020000 rtneq 4 
-25ca d8400032 arg 50 ,temp 
-25cb c1028000 rtneq 5 
-25cc d8400028 arg 40 ,temp 
-25cd c1030000 rtneq 6 
-25ce d8400014 arg 20 ,temp 
-25cf 20600000 rtn 
-
-le_setup:
-25d0 4726c029 bpatchx patch29_5 ,mem_patch29 
-25d1 78287c00 enable swfine 
-25d2 6fe2018c fetch 4 ,mem_le_access 
-25d3 98001200 iforce access 
-25d4 20402605 call le_map_channel 
-25d5 58000200 setarg 0x200 
-25d6 2034a5d9 branch le_setup_master ,master 
-25d7 6fe10176 fetch 2 ,mem_le_receive_window 
-25d8 1fe37e00 rshift pdata ,pdata 
-
-le_setup_master:
-25d9 6849003e fetcht 2 ,mem_param_pll_setup 
-25da 9840fe00 iadd temp ,pdata 
-25db 20402327 call ahead_window 
-25dc 1b427e00 deposit clke 
-25dd 20600000 rtn 
-
-le_context_nextevent:
-25de 47274029 bpatchx patch29_6 ,mem_patch29 
-25df 20407c53 call push_stack_rega_b_c 
-25e0 67210679 storer loopcnt ,2 ,mem_loopcnt 
-25e1 1a208c01 add rega ,coffset_mode ,contr 
-25e2 efe08006 ifetch 1 ,contr 
-25e3 c4000000 rtnbit0 mode_le 
-25e4 1a208a1a add rega ,coffset_le_event_cnt ,contw 
-25e5 efe10005 ifetch 2 ,contw 
-25e6 1fe0fe01 increase 1 ,pdata 
-25e7 e7e10005 istore 2 ,contw 
-25e8 20402780 call le_update_param 
-25e9 204027a2 call le_update_channel_map 
-25ea 204027ab call le_update_phy 
-25eb 204025ef call le_context_nexthop 
-25ec 20407c62 call pop_stack_rega_b_c 
-25ed 6f210679 fetchr loopcnt ,2 ,mem_loopcnt 
-25ee 20600000 rtn 
-
-le_context_nexthop:
-25ef 1a208c19 add rega ,coffset_le_hop ,contr 
-25f0 efe08006 ifetch 1 ,contr 
-25f1 1a208a18 add rega ,coffset_le_ch ,contw 
-25f2 e8408005 ifetcht 1 ,contw 
-25f3 9840fe00 iadd temp ,pdata 
-25f4 1fe67c24 sub pdata ,36 ,null 
-25f5 202125f7 branch le_nexthop_nowrap ,positive 
-25f6 1fe0ffdb increase -37 ,pdata 
-
-le_nexthop_nowrap:
-25f7 e7e08005 istore 1 ,contw 
-25f8 20600000 rtn 
-
-le_calc_channel_map:
-25f9 1a208c30 add rega ,coffset_le_channel_map ,contr 
-25fa efe28006 ifetch 5 ,contr 
-25fb 18000400 force 0 ,temp 
-25fc 18007225 force 37 ,loopcnt 
-
-le_count_channels_loop:
-25fd c30025ff bbit0 0 ,le_count_channels_notused 
-25fe 18408401 increase 1 ,temp 
-
-le_count_channels_notused:
-25ff 1fe37e00 rshift pdata ,pdata 
-2600 c20025fd loop le_count_channels_loop 
-2601 1840ffff add temp ,-1 ,pdata 
-2602 1a208a22 add rega ,coffset_le_channels ,contw 
-2603 e7e08005 istore 1 ,contw 
-2604 20600000 rtn 
-
-le_map_channel:
-2605 4727c029 bpatchx patch29_7 ,mem_patch29 
-2606 6fe08180 fetch 1 ,mem_le_ch 
-2607 98000e00 iforce queue 
-2608 684a8198 fetcht 5 ,mem_le_channel_map 
-2609 a84fffff qisolate1 temp 
-260a 2020a61a branch le_map_channel_end ,true 
-
-le_map_channel_next:
-260b 6fe0818a fetch 1 ,mem_le_channels 
-260c 98e67e00 isub queue ,pdata 
-260d 20212610 branch le_map_channel_cont ,positive 
-260e 1fe60fff sub pdata ,-1 ,queue 
-260f 2020260b branch le_map_channel_next 
-
-le_map_channel_cont:
-2610 18e27200 copy queue ,loopcnt 
-2611 18000e00 force 0 ,queue 
-
-le_map_channel_loop:
-2612 a84fffff qisolate1 temp 
-2613 2020a615 branch le_map_channel_skip ,true 
-2614 1f20f201 increase 1 ,loopcnt 
-
-le_map_channel_skip:
-2615 1f227e00 deposit loopcnt 
-2616 203a261a branch le_map_channel_end ,blank 
-2617 18e08e01 increase 1 ,queue 
-2618 1f20f3ff increase -1 ,loopcnt 
-2619 20202612 branch le_map_channel_loop 
-
-le_map_channel_end:
-261a 18e27e00 deposit queue 
-261b 67e08007 store 1 ,mem_le_ch_mapped 
-261c 20600000 rtn 
-
-le_wait_tx:
-261d 2034a620 branch le_wait_master ,master 
-261e 37c18200 until null ,timeout 
-261f 20600000 rtn 
-
-le_wait_master:
-2620 d9600ea0 arg 0xea0 ,timeup 
-2621 34730200 until clkn_rt ,meet 
-2622 20600000 rtn 
-
-le_receive_adv:
-2623 78487c00 disable swfine 
-2624 6fe1434a fetch 2 ,mem_le_scan_window 
-2625 1fe21600 copy pdata ,timeup 
-2626 2020262d branch le_receive_packet 
-
-le_receive_slave:
-2627 4728402a bpatchx patch2a_0 ,mem_patch2a 
-2628 20402692 call le_dec_init 
-2629 78287c00 enable swfine 
-262a 6fe10176 fetch 2 ,mem_le_receive_window 
-262b 684a431f fetcht 4 ,mem_le_transmit_window 
-262c 98409600 iadd temp ,timeup 
-
-le_receive_packet:
-262d 204025a1 call le_rx_setfreq 
-
-le_receive_rxon:
-262e 4728c02a bpatchx patch2a_1 ,mem_patch2a 
-262f 20402597 call le_prep 
-2630 c597a635 bmark0 mark_ble_lr ,le_receive_nolr 
-2631 783cfc00 pulse dewhiten_code_calc 
-2632 2000001e nop 30 
-2633 20402597 call le_prep 
-2634 19699600 lshift3 timeup ,timeup 
-
-le_receive_nolr:
-2635 7856fc00 disable match 
-2636 7826fc00 enable decode_fec0 
-2637 7830fc00 enable is_rx 
-2638 78507c00 disable is_tx 
-2639 19623600 copy timeup ,stop_watch 
-263a 37c18400 correlate null ,timeout 
-263b 2037263e branch le_receive_on_attempt ,attempt 
-263c 1b420400 copy clke ,temp 
-263d 604b000f storet 6 ,mem_sync_clke 
-
-le_receive_on_attempt:
-263e 242c26ce nbranch le_unsync_end ,sync 
-263f 78287c00 enable swfine 
-2640 6fe0c169 fetch 1 ,mem_le_tx_ifs_defference 
-2641 d8404e20 arg param_20ms_init ,temp 
-2642 98408400 iadd temp ,temp 
-2643 6fe0c148 fetch 1 ,mem_system_clk 
-2644 984fb600 imul32 temp ,stop_watch 
-2645 204066e7 call rf_debug_rx_sync_line 
-2646 2037264b branch le_receive_skip ,attempt 
-2647 204026d3 call calc_clke_all_modem 
-2648 6fe08168 fetch 1 ,mem_le_state 
-2649 c301a64b bbit0 lestate_got_first_packet ,le_receive_skip 
-264a 2055a449 call lpm_adjust_clk ,wake 
-
-le_receive_skip:
-264b 204022cd call save_rssi 
-264c 7823fc00 enable enable_white 
-264d 7824fc00 enable enable_crc 
-264e 09800008 parse demod ,bucket ,8 
-264f 19897e00 rshift3 pwindow ,pdata 
-2650 67e0804c store 1 ,mem_le_rxbuf_data_header 
-2651 09800008 parse demod ,bucket ,8 
-2652 19897e00 rshift3 pwindow ,pdata 
-2653 67e0804d store 1 ,mem_le_rxbuf_data_length 
-2654 1fe27200 copy pdata ,loopcnt 
-2655 2022a671 branch le_rx_nopayload ,zero 
-2656 c519265c bmark1 mark_ble_encryption ,le_rx_dec 
-
-le_rx_loop:
-2657 09800008 parse demod ,bucket ,8 
-2658 19897e00 rshift3 pwindow ,pdata 
-2659 e7e08005 istore 1 ,contw 
-265a c2002657 loop le_rx_loop 
-265b 20202671 branch le_rx_nopayload 
-
-le_rx_dec:
-265c 18a22400 copy contw ,regb 
-265d 4729402a bpatchx patch2a_2 ,mem_patch2a 
-265e 204027fa call le_check_retransmit 
-265f 6a20804d fetchr rega ,1 ,mem_le_rxbuf_data_length 
-2660 1a20a3fc increase -4 ,rega 
-2661 242126ce nbranch le_crc_fail_consecutive ,positive 
-2662 20402697 call le_dec_start 
-2663 1a420a00 copy regb ,contw 
-2664 d8400000 arg 0 ,temp 
-2665 6f20804d fetchr loopcnt ,1 ,mem_le_rxbuf_data_length 
-2666 1f20f3fc increase -4 ,loopcnt 
-2667 2022a66f branch le_rx_dec_loop_end ,zero 
-
-le_rx_dec_loop:
-2668 09800008 parse demod ,bucket ,8 
-2669 19897e00 rshift3 pwindow ,pdata 
-266a e7e08005 istore 1 ,contw 
-266b 18408401 increase 1 ,temp 
-266c 18417c0f and temp ,0xf ,null 
-266d 2042a6b5 call le_dec ,zero 
-266e c2002668 loop le_rx_dec_loop 
-
-le_rx_dec_loop_end:
-266f 204026bd call le_dec_end 
-2670 1a420a00 copy regb ,contw 
-
-le_rx_nopayload:
-2671 4729c02a bpatchx patch2a_3 ,mem_patch2a 
-2672 09800018 parse demod ,bucket ,24 
-2673 1fef7e00 rshift32 pdata ,pdata 
-2674 1ff17e00 rshift16 pdata ,pdata 
-2675 e7e18005 istore 3 ,contw 
-2676 78287c00 enable swfine 
-2677 204026eb call le_set_until_tx_timer 
-2678 202326c9 branch le_crc_fail ,crc_failed 
-2679 c5992683 bmark0 mark_ble_encryption ,le_rx_match 
-267a 6fe0804d fetch 1 ,mem_le_rxbuf_data_length 
-267b 203a2683 branch le_rx_match ,blank 
-267c 1fe0fffc increase -4 ,pdata 
-267d 67e0804d store 1 ,mem_le_rxbuf_data_length 
-267e 204072b9 call wait_ccm_done 
-267f 6ff08108 fetch 1 ,core_misc_status 
-2680 c303a6ce bbit0 7 ,le_crc_fail_consecutive 
-2681 1800700c force regidx_result ,regext_index 
-2682 65e20154 storer regext ,4 ,mem_le_peer_mic 
-
-le_rx_match:
-2683 204066e6 call rf_debug_rx_crc_line 
-2684 7836fc00 enable match 
-2685 793f8030 set0 mark_ble_crc_fail ,mark 
-
-le_crc_fail_tx:
-2686 472a402a bpatchx patch2a_4 ,mem_patch2a 
-2687 204072bb call ccm_ctrl_clr 
-2688 6fe0819d fetch 1 ,mem_le_rx_phy 
-2689 7d3e7e07 nsetflag ble_coded_info ,bit_le_coded_phy_s8 ,pdata 
-268a 67e0819d store 1 ,mem_le_rx_phy 
-268b 2040268d call le_match_set_sync_on 
-268c 2020268f branch le_match_set_txfreq 
-
-le_match_set_sync_on:
-268d 7846fc00 disable decode_fec0 
-268e 20202164 branch set_sync_on 
-
-le_match_set_txfreq:
-268f 472ac02a bpatchx patch2a_5 ,mem_patch2a 
-2690 68488008 fetcht 1 ,mem_last_freq 
-2691 202021ca branch set_freq_tx_int 
-
-le_dec_init:
-2692 c6990000 rtnmark0 mark_ble_encryption 
-2693 20407356 call load_sk 
-2694 1800700c force regidx_result ,regext_index 
-2695 2040735e call aes_clear 
-2696 2020735d branch aes_clear_data 
-
-le_dec_start:
-2697 472b402a bpatchx patch2a_6 ,mem_patch2a 
-2698 70806c00 jam 0 ,core_ccm_aad0 
-2699 70806d01 jam 1 ,core_ccm_aad1 
-269a 6fe0804c fetch 1 ,mem_le_rxbuf_data_header 
-269b 1fe17e03 and_into 0x3 ,pdata 
-269c 67f0806e store 1 ,core_ccm_aad2 
-269d 5800004e setarg mem_le_rxbuf_data_payload 
-269e 67f10068 store 2 ,core_ccm_input_playload_addr 
-269f 67f1006a store 2 ,core_ccm_output_playload_addr 
-26a0 6a20804d fetchr rega ,1 ,mem_le_rxbuf_data_length 
-26a1 1a20a3fc increase -4 ,rega 
-26a2 684ac46c fetcht 5 ,mem_ccm_pcnt_rx 
-26a3 280ffe0f isolate1 mark_old_packet ,mark 
-26a4 2040a6ab call le_pcnt_rx_sub1 ,true 
-26a5 20407253 call ccm_b0 
-26a6 58000000 setarg 0 
-26a7 67f100c0 store 2 ,core_ccm_inptr 
-26a8 70800a06 jam 6 ,core_ccm_ctrl 
-26a9 70800a07 jam 7 ,core_ccm_ctrl 
-26aa 20600000 rtn 
-
-le_pcnt_rx_sub1:
-26ab 18467c00 sub temp ,0 ,null 
-26ac 2022a6b0 branch le_pcnt_rx_sub1_0 ,zero 
-26ad 184085ff increase -1 ,temp 
-26ae 79200427 set1 le_ccm_directionbit ,temp 
-26af 20600000 rtn 
-
-le_pcnt_rx_sub1_0:
-26b0 58ffffff setarg 0xffffff 
-26b1 1ff07e00 lshift16 pdata ,pdata 
-26b2 d840ffff arg 0xffff ,temp 
-26b3 98418400 ior temp ,temp 
-26b4 20600000 rtn 
-
-le_dec:
-26b5 18a22400 copy contw ,regb 
-26b6 6fe0804d fetch 1 ,mem_le_rxbuf_data_length 
-26b7 1fe0fffc increase -4 ,pdata 
-26b8 98467c00 isub temp ,null 
-26b9 20628000 rtn zero 
-26ba 605900c0 storet 2 ,core_ccm_inptr 
-26bb 1a420a00 copy regb ,contw 
-26bc 20600000 rtn 
-
-le_dec_end:
-26bd 09800020 parse demod ,bucket ,32 
-26be 1fef7e00 rshift32 pdata ,pdata 
-26bf 1fecfe00 rshift8 pdata ,pdata 
-26c0 e7e20005 istore 4 ,contw 
-26c1 18a22400 copy contw ,regb 
-26c2 18007000 force regidx_data ,regext_index 
-26c3 1fe25e00 copy pdata ,regext 
-26c4 605900c0 storet 2 ,core_ccm_inptr 
-26c5 20600000 rtn 
-
-le_retransmit_end_of_packet:
-26c6 204026eb call le_set_until_tx_timer 
-26c7 204020cf call end_of_packet 
-26c8 20202683 branch le_rx_match 
-
-le_crc_fail:
-26c9 204066e8 call rf_debug_rx_crc_fail_line 
-26ca c50826ce bmark1 mark_adv ,le_crc_fail_consecutive 
-26cb c51826ce bmark1 mark_ble_crc_fail ,le_crc_fail_consecutive 
-26cc 79200030 set1 mark_ble_crc_fail ,mark 
-26cd 20202686 branch le_crc_fail_tx 
-
-le_unsync_end:
-
-le_crc_fail_consecutive:
-26ce 793f8030 set0 mark_ble_crc_fail ,mark 
-26cf 202026d0 branch le_end_of_packet 
-
-le_end_of_packet:
-26d0 472bc02a bpatchx patch2a_7 ,mem_patch2a 
-26d1 204072bb call ccm_ctrl_clr 
-26d2 202020cf branch end_of_packet 
-
-calc_clke_all_modem:
-26d3 684b000f fetcht 6 ,mem_sync_clke 
-26d4 1b427e00 copy clke ,pdata 
-26d5 20407d14 call clk_diff 
-26d6 1fe20400 copy pdata ,temp 
-26d7 204026dd call calc_clke_all_modem_1 
-26d8 1b425600 copy clke ,rege 
-26d9 1d227e00 copy clke_rt ,pdata 
-26da 9840fe00 iadd temp ,pdata 
-26db 1fe25200 copy pdata ,clke_rt 
-26dc 20600000 rtn 
-
-calc_clke_all_modem_1:
-26dd c517a6e3 bmark1 mark_ble_lr ,calc_clke_modem_coded 
-26de c516a6e7 bmark1 mark_ble_2m ,calc_clke_modem_2m 
-26df 6fe10046 fetch 2 ,mem_param_clke_cal_le_1m 
-26e0 1fe25200 copy pdata ,clke_rt 
-26e1 1c225000 copy bt_clk ,clke_bt 
-26e2 20600000 rtn 
-
-calc_clke_modem_coded:
-26e3 6fe1004a fetch 2 ,mem_param_clke_cal_le_coded 
-26e4 1fe25200 copy pdata ,clke_rt 
-26e5 1c20d001 add bt_clk ,1 ,clke_bt 
-26e6 20600000 rtn 
-
-calc_clke_modem_2m:
-26e7 6fe10048 fetch 2 ,mem_param_clke_cal_le_2m 
-26e8 1fe25200 copy pdata ,clke_rt 
-26e9 1c225000 copy bt_clk ,clke_bt 
-26ea 20600000 rtn 
-
-le_set_until_tx_timer:
-26eb 6fe0804d fetch 1 ,mem_le_rxbuf_data_length 
-26ec 1fe08405 add pdata ,5 ,temp 
-26ed 18498400 lshift3 temp ,temp 
-26ee 6fe0819d fetch 1 ,mem_le_rx_phy 
-26ef c517a6f2 bmark1 mark_ble_lr ,le_set_until_tx_timer_rx_lr 
-26f0 c28026f4 bbit1 bit_le_1m_phy ,le_set_until_tx_timer_rx_1m 
-26f1 c280a6f5 bbit1 bit_le_2m_phy ,le_set_until_tx_timer_rx_2m 
-
-le_set_until_tx_timer_rx_lr:
-26f2 203e26f7 branch le_set_until_tx_timer_rx_coded_s2 ,ble_coded_info 
-26f3 202026fa branch le_set_until_tx_timer_rx_coded_s8 
-
-le_set_until_tx_timer_rx_1m:
-26f4 202026ff branch le_calc_stop_watch 
-
-le_set_until_tx_timer_rx_2m:
-26f5 18430400 rshift temp ,temp 
-26f6 202026ff branch le_calc_stop_watch 
-
-le_set_until_tx_timer_rx_coded_s2:
-26f7 18408403 add temp ,3 ,temp 
-26f8 18438400 lshift temp ,temp 
-26f9 202026fc branch le_set_until_tx_timer_rx_coded 
-
-le_set_until_tx_timer_rx_coded_s8:
-26fa 18408403 add temp ,3 ,temp 
-26fb 18498400 lshift3 temp ,temp 
-
-le_set_until_tx_timer_rx_coded:
-26fc 58000028 setarg param_coded_c1_term1_time_40us 
-26fd 98408400 iadd temp ,temp 
-26fe 202026ff branch le_calc_stop_watch 
-
-le_calc_stop_watch:
-26ff 6fe0c148 fetch 1 ,mem_system_clk 
-2700 984f8400 imul32 temp ,temp 
-2701 da204e20 arg param_20ms_init ,rega 
-2702 9a2ffe00 imul32 rega ,pdata 
-2703 98460400 isub temp ,temp 
-2704 1b627e00 copy stop_watch ,pdata 
-2705 98463600 isub temp ,stop_watch 
-2706 20600000 rtn 
-
-le_transmit_receive_sifs_without_change_mode:
-2707 2040271f call le_transmit 
-2708 68488008 fetcht 1 ,mem_last_freq 
-2709 20402173 call set_freq_rx 
-270a 204021aa call rf_rx_enable 
-270b 78287c00 enable swfine 
-270c d960157c arg 5500 ,timeup 
-270d 2020262e branch le_receive_rxon 
-
-le_transmit_receive_sifs:
-270e 472c402b bpatchx patch2b_0 ,mem_patch2b 
-270f 6fe0819e fetch 1 ,mem_le_tx_phy 
-2710 20402579 call le_enable_phy_by_pdata 
-2711 2040271f call le_transmit 
-
-le_transmit_receive_sifs_notx:
-2712 6fe0819d fetch 1 ,mem_le_rx_phy 
-2713 20402579 call le_enable_phy_by_pdata 
-2714 68488008 fetcht 1 ,mem_last_freq 
-2715 20402173 call set_freq_rx 
-2716 204021aa call rf_rx_enable 
-2717 78287c00 enable swfine 
-2718 d960157c arg 5500 ,timeup 
-2719 c597a62e bmark0 mark_ble_lr ,le_receive_rxon 
-271a d9602134 arg 8500 ,timeup 
-271b 2020262e branch le_receive_rxon 
-
-le_transmit_norx:
-271c 472cc02b bpatchx patch2b_1 ,mem_patch2b 
-271d 2040271f call le_transmit 
-271e 202020cf branch end_of_packet 
-
-le_transmit:
-271f 472d402b bpatchx patch2b_2 ,mem_patch2b 
-2720 20402597 call le_prep 
-2721 204025a6 call le_tx_setfreq 
-2722 204066ed call rf_debug_tx_on_line 
-2723 79202a00 set1 txgfsk ,radio_ctrl 
-2724 782efc00 enable encode_fec0 
-2725 78307c00 enable is_tx 
-2726 7850fc00 disable is_rx 
-2727 2040261d call le_wait_tx 
-2728 785d7c00 disable lr_s2en 
-2729 c517a762 bmark1 mark_ble_lr ,le_transmit_lr 
-272a c516a774 bmark1 mark_ble_2m ,le_transmit_2m 
-272b 19317e00 rshift16 access ,pdata 
-272c 1fecfe00 rshift8 pdata ,pdata 
-272d 1ff1fe00 rshift4 pdata ,pdata 
-272e 08008628 inject mod ,40 
-
-le_transmit_packet:
-272f 7823fc00 enable enable_white 
-2730 7824fc00 enable enable_crc 
-2731 472dc02b bpatchx patch2b_3 ,mem_patch2b 
-2732 6fe0c16b fetch 1 ,mem_le_txheader 
-2733 08008608 inject mod ,8 
-2734 efe08006 ifetch 1 ,contr 
-2735 1fe27200 copy pdata ,loopcnt 
-2736 08008608 inject mod ,8 
-2737 1f267c00 sub loopcnt ,0 ,null 
-2738 2022a740 branch le_tr_nopayload ,zero 
-2739 6ff0800a fetch 1 ,core_ccm_ctrl 
-273a 203a273c branch le_transmit_packet_not_enc ,blank 
-273b c5192757 bmark1 mark_ble_encryption ,le_transmit_packet_enc 
-
-le_transmit_packet_not_enc:
-273c d8c0416d arg mem_le_txpayload ,contr 
-
-le_tr_loop:
-273d efe08006 ifetch 1 ,contr 
-273e 08008608 inject mod ,8 
-273f c200273d loop le_tr_loop 
-
-le_tr_nopayload:
-2740 78247c00 enable enable_parity 
-2741 08008618 inject mod ,24 
-2742 78447c00 disable enable_parity 
-2743 c597a747 bmark0 mark_ble_lr ,le_transmit_skip 
-2744 7843fc00 disable enable_white 
-2745 58000000 setarg 0 
-2746 08008603 inject mod ,3 
-
-le_transmit_skip:
-2747 37d38200 until null ,tx_clear 
-2748 20000064 nop 100 
-2749 472e402b bpatchx patch2b_4 ,mem_patch2b 
-274a 784efc00 disable encode_fec0 
-274b 785c7c00 disable encode_fec3 
-274c 20402164 call set_sync_on 
-274d 204066eb call rf_debug_tx_off_line 
-
-le_check_start_pause_enc:
-274e 6fe0c16b fetch 1 ,mem_le_txheader 
-274f 1fe17e03 and pdata ,llid_le_ll ,pdata 
-2750 c1818000 rtnne llid_le_ll 
-2751 6fe0c2ff fetch 1 ,mem_le_enc_state 
-2752 c001283a beq flag_le_enc_pause ,le_clear_enc 
-2753 c1828000 rtnne flag_le_send_start_enc_req 
-2754 6fe0c16d fetch 1 ,mem_le_txpayload 
-2755 c002a835 beq ll_start_enc_req ,le_set_enc 
-2756 20600000 rtn 
-
-le_transmit_packet_enc:
-2757 1f20f3fc increase -4 ,loopcnt 
-2758 1f220400 copy loopcnt ,temp 
-2759 204072a6 call ccm_wait_enc 
-275a d8c0416d arg mem_le_txpayload ,contr 
-
-le_transmit_packet_enc_loop:
-275b efe08006 ifetch 1 ,contr 
-275c 08008608 inject mod ,8 
-275d c200275b loop le_transmit_packet_enc_loop 
-275e 204072ab call ccm_check_enc_done 
-275f 1de27e00 copy regext ,pdata 
-2760 08008620 inject mod ,32 
-2761 20202740 branch le_tr_nopayload 
-
-le_transmit_lr:
-2762 df20000a arg 10 ,loopcnt 
-
-le_transmit_lr_preamble_loop:
-2763 5800003c setarg 0x3c 
-2764 08008608 inject mod ,8 
-2765 c2002763 loop le_transmit_lr_preamble_loop 
-2766 784efc00 disable encode_fec0 
-2767 783c7c00 enable encode_fec3 
-2768 19317e00 rshift16 access ,pdata 
-2769 1ff17e00 rshift16 pdata ,pdata 
-276a 1ff1fe00 rshift4 pdata ,pdata 
-276b 08008620 inject mod ,32 
-276c c5172771 bmark1 mark_ble_lr_s8 ,le_transmit_lr_s8 
-
-le_transmit_lr_s2:
-276d 58000001 setarg 1 
-276e 08008605 inject mod ,5 
-276f 783d7c00 enable lr_s2en 
-2770 2020272f branch le_transmit_packet 
-
-le_transmit_lr_s8:
-2771 58000000 setarg 0 
-2772 08008605 inject mod ,5 
-2773 2020272f branch le_transmit_packet 
-
-le_transmit_2m:
-2774 6fe0c148 fetch 1 ,mem_system_clk 
-2775 6848c16a fetcht 1 ,mem_le_tx2m_delay 
-2776 9840fe00 iadd temp ,pdata 
-2777 20402340 call sleep 
-2778 19317e00 rshift16 access ,pdata 
-2779 1fecfe00 rshift8 pdata ,pdata 
-277a 1ff18400 rshift4 pdata ,temp 
-277b 18427e00 copy temp ,pdata 
-277c 08008608 inject mod ,8 
-277d 18427e00 copy temp ,pdata 
-277e 08008628 inject mod ,40 
-277f 2020272f branch le_transmit_packet 
-
-le_update_param:
-2780 da602784 arg le_update_param_ahead1_cb ,regc 
-2781 da40279a arg le_update_param_cb ,regb 
-2782 d8e00005 arg lestate_update_param ,queue 
-2783 202027d9 branch le_check_update_flag 
-
-le_update_param_ahead1_cb:
-2784 1a208c04 add rega ,coffset_sniff_anchor ,contr 
-2785 e8420006 ifetcht 4 ,contr 
-2786 1a208c37 add rega ,coffest_le_new_transmitwindowsize ,contr 
-2787 efe08006 ifetch 1 ,contr 
-2788 1a208a2b add rega ,coffset_le_window_size ,contw 
-2789 e7e08005 istore 1 ,contw 
-278a efe10006 ifetch 2 ,contr 
-278b 1febfe00 lshift2 pdata ,pdata 
-278c 98409600 iadd temp ,timeup 
-278d 1a208a04 add rega ,coffset_sniff_anchor ,contw 
-278e 19627e00 deposit timeup 
-278f e7e20005 istore 4 ,contw 
-2790 efe10006 ifetch 2 ,contr 
-2791 1febfe00 lshift2 pdata ,pdata 
-2792 1a208a02 add rega ,coffset_tsniff ,contw 
-2793 e7e10005 istore 2 ,contw 
-2794 efe10006 ifetch 2 ,contr 
-2795 1a208a2c add rega ,coffset_le_slave_latency ,contw 
-2796 e7e10005 istore 2 ,contw 
-2797 efe10006 ifetch 2 ,contr 
-2798 67e142f7 store 2 ,mem_le_init_superto 
-2799 20202917 branch le_receive_window_size 
-
-le_update_param_cb:
-279a efe08011 ifetch 1 ,rega 
-279b 793ffe03 set0 lestate_got_first_packet ,pdata 
-279c e7e08011 istore 1 ,rega 
-279d 62210662 storer rega ,2 ,mem_rega 
-279e 70064d44 jam bt_evt_le_parse_conn_param_accepted ,mem_fifo_temp 
-279f 20407819 call ui_ipc_send_event 
-27a0 6a210662 fetchr rega ,2 ,mem_rega 
-27a1 20600000 rtn 
-
-le_update_channel_map:
-27a2 da600000 arg 0 ,regc 
-27a3 da4027a6 arg le_update_channel_map_cb ,regb 
-27a4 d8e00006 arg lestate_update_map ,queue 
-27a5 202027d9 branch le_check_update_flag 
-
-le_update_channel_map_cb:
-27a6 1a208c37 add rega ,coffset_le_new_map ,contr 
-27a7 efe28006 ifetch 5 ,contr 
-27a8 1a208a30 add rega ,coffset_le_channel_map ,contw 
-27a9 e7e28005 istore 5 ,contw 
-27aa 202025f9 branch le_calc_channel_map 
-
-le_update_phy:
-27ab da600000 arg 0 ,regc 
-27ac da4027af arg le_update_phy_cb ,regb 
-27ad d8e00007 arg lestate_update_phy ,queue 
-27ae 202027d9 branch le_check_update_flag 
-
-le_update_phy_cb:
-27af 1a208c37 add rega ,coffset_le_new_m2s_phy ,contr 
-27b0 efe08006 ifetch 1 ,contr 
-27b1 204027bc call le_update_phy_cb_m2s 
-27b2 e7e08005 istore 1 ,contw 
-27b3 1a208c38 add rega ,coffset_le_new_s2m_phy ,contr 
-27b4 efe08006 ifetch 1 ,contr 
-27b5 204027ca call le_update_phy_cb_s2m 
-27b6 e7e08005 istore 1 ,contw 
-27b7 62210662 storer rega ,2 ,mem_rega 
-27b8 70064d42 jam bt_evt_le_update_phy ,mem_fifo_temp 
-27b9 20407819 call ui_ipc_send_event 
-27ba 6a210662 fetchr rega ,2 ,mem_rega 
-27bb 20600000 rtn 
-
-le_update_phy_cb_m2s:
-27bc 205a27c4 call le_update_phy_cb_m2s_no_change ,blank 
-27bd 1a208a35 add rega ,coffset_le_rx_phy ,contw 
-27be 24748000 nrtn master 
-27bf 6848c3ba fetcht 1 ,mem_le_tx_phys 
-27c0 284ffe07 isolate1 bit_le_coded_phy_s8 ,temp 
-27c1 7920fe07 setflag true ,bit_le_coded_phy_s8 ,pdata 
-27c2 1a208a36 add rega ,coffset_le_tx_phy ,contw 
-27c3 20600000 rtn 
-
-le_update_phy_cb_m2s_no_change:
-27c4 1a208c35 add rega ,coffset_le_rx_phy ,contr 
-27c5 efe08006 ifetch 1 ,contr 
-27c6 24748000 nrtn master 
-27c7 1a208c36 add rega ,coffset_le_tx_phy ,contr 
-27c8 efe08006 ifetch 1 ,contr 
-27c9 20600000 rtn 
-
-le_update_phy_cb_s2m:
-27ca 205a27d3 call le_update_phy_cb_s2m_no_change ,blank 
-27cb 6848c3ba fetcht 1 ,mem_le_tx_phys 
-27cc 284ffe07 isolate1 bit_le_coded_phy_s8 ,temp 
-27cd 7920fe07 setflag true ,bit_le_coded_phy_s8 ,pdata 
-27ce 1a208a36 add rega ,coffset_le_tx_phy ,contw 
-27cf 24748000 nrtn master 
-27d0 793ffe07 set0 bit_le_coded_phy_s8 ,pdata 
-27d1 1a208a35 add rega ,coffset_le_rx_phy ,contw 
-27d2 20600000 rtn 
-
-le_update_phy_cb_s2m_no_change:
-27d3 1a208c36 add rega ,coffset_le_tx_phy ,contr 
-27d4 efe08006 ifetch 1 ,contr 
-27d5 24748000 nrtn master 
-27d6 1a208c35 add rega ,coffset_le_rx_phy ,contr 
-27d7 efe08006 ifetch 1 ,contr 
-27d8 20600000 rtn 
-
-le_check_update_flag:
-27d9 472ec02b bpatchx patch2b_5 ,mem_patch2b 
-27da efe08011 ifetch 1 ,rega 
-27db afec0000 qisolate0 pdata 
-27dc 20608000 rtn true 
-27dd 1a208c1a add rega ,coffset_le_event_cnt ,contr 
-27de e8410006 ifetcht 2 ,contr 
-27df 1a208c20 add rega ,coffset_le_instant ,contr 
-27e0 efe10006 ifetch 2 ,contr 
-27e1 98467e00 isub temp ,pdata 
-27e2 2022a7e9 branch le_update ,zero 
-27e3 242127ee nbranch le_check_update_small ,positive 
-27e4 1fe67c01 sub pdata ,1 ,null 
-27e5 2022a7e7 branch le_update_ahead1 ,zero 
-27e6 20600000 rtn 
-
-le_update_ahead1:
-27e7 1a627e00 copy regc ,pdata 
-27e8 20207d7b branch callback_func 
-
-le_update:
-27e9 efe08011 ifetch 1 ,rega 
-27ea f93ffe00 qset0 pdata 
-27eb e7e08011 istore 1 ,rega 
-27ec 1a427e00 copy regb ,pdata 
-27ed 20207d7b branch callback_func 
-
-le_check_update_small:
-27ee 1a208c1a add rega ,coffset_le_event_cnt ,contr 
-27ef efe10006 ifetch 2 ,contr 
-27f0 1a208c20 add rega ,coffset_le_instant ,contr 
-27f1 efe10006 ifetch 2 ,contr 
-27f2 98467e00 isub temp ,pdata 
-27f3 d840ffff arg 0xffff ,temp 
-27f4 98467c00 isub temp ,null 
-27f5 2022a7e9 branch le_update ,zero 
-27f6 d840f000 arg 0xf000 ,temp 
-27f7 98467c00 isub temp ,null 
-27f8 242127e9 nbranch le_update ,positive 
-27f9 20600000 rtn 
-
-le_check_retransmit:
-27fa 6848817f fetcht 1 ,mem_le_arq 
-27fb 6fe0804c fetch 1 ,mem_le_rxbuf_data_header 
-27fc 1fe37e00 rshift pdata ,pdata 
-27fd 9842fe00 ixor temp ,pdata 
-27fe 2feffe02 isolate1 nesn ,pdata 
-27ff 7920800f setflag true ,mark_old_packet ,mark 
-2800 20600000 rtn 
-
-le_acknowledge:
-2801 472f402b bpatchx patch2b_6 ,mem_patch2b 
-2802 20402914 call le_supervision_flush 
-2803 c6180000 rtnmark1 mark_ble_crc_fail 
-2804 20402828 call le_check_wak 
-2805 6fe0804c fetch 1 ,mem_le_rxbuf_data_header 
-2806 2feffe04 isolate1 md ,pdata 
-2807 7920802a setflag true ,mark_ble_rx_md ,mark 
-2808 1fe37e00 rshift pdata ,pdata 
-2809 9842fe00 ixor temp ,pdata 
-280a 2feffe02 isolate1 nesn ,pdata 
-280b 7920800f setflag true ,mark_old_packet ,mark 
-280c c6078000 rtnmark1 mark_old_packet 
-280d 6fe0804d fetch 1 ,mem_le_rxbuf_data_length 
-280e 203a281a branch le_ack_unenc ,blank 
-280f 6fe08168 fetch 1 ,mem_le_state 
-2810 c302281a bbit0 lestate_encryption ,le_ack_unenc 
-2811 684a0154 fetcht 4 ,mem_le_peer_mic 
-2812 6fe24471 fetch 4 ,mem_ccm_last_mic 
-2813 98467c00 isub temp ,null 
-2814 2022a33e branch assert ,zero 
-2815 604a4471 storet 4 ,mem_ccm_last_mic 
-2816 6fe2c46c fetch 5 ,mem_ccm_pcnt_rx 
-2817 1fe0fe01 increase 1 ,pdata 
-2818 79207e27 set1 le_ccm_directionbit ,pdata 
-2819 67e2c46c store 5 ,mem_ccm_pcnt_rx 
-
-le_ack_unenc:
-281a 6848817f fetcht 1 ,mem_le_arq 
-281b 79400402 setflip nesn ,temp 
-281c 6048817f storet 1 ,mem_le_arq 
-281d 6fe0c323 fetch 1 ,mem_le_configuration 
-281e c4030000 rtnbit0 bit_ble_deal_bb_packet 
-281f 472fc02b bpatchx patch2b_7 ,mem_patch2b 
-2820 6fe0804d fetch 1 ,mem_le_rxbuf_data_length 
-2821 207a0000 rtn blank 
-2822 6fe0804c fetch 1 ,mem_le_rxbuf_data_header 
-2823 2fe00601 compare llid_continue ,pdata ,3 
-2824 2020ae43 branch le_parse_writing_attribute_continue ,true 
-2825 2fe00602 compare llid_start ,pdata ,3 
-2826 2020ae31 branch le_parse_writing_attribute_start ,true 
-2827 20600000 rtn 
-
-le_check_wak:
-2828 4730402c bpatchx patch2c_0 ,mem_patch2c 
-2829 6848817f fetcht 1 ,mem_le_arq 
-282a 284c0005 isolate0 wak ,temp 
-282b 20608000 rtn true 
-282c 6fe0804c fetch 1 ,mem_le_rxbuf_data_header 
-282d 1fe3fe00 lshift pdata ,pdata 
-282e 9842fe00 ixor temp ,pdata 
-282f c4018000 rtnbit0 sn 
-2830 793f8405 set0 wak ,temp 
-2831 79400403 setflip sn ,temp 
-2832 6048817f storet 1 ,mem_le_arq 
-2833 28400603 compare 3 ,temp ,3 
-2834 20600000 rtn 
-
-le_set_enc:
-2835 6fe08168 fetch 1 ,mem_le_state 
-2836 79207e04 set1 lestate_encryption ,pdata 
-2837 67e08168 store 1 ,mem_le_state 
-2838 79200032 set1 mark_ble_encryption ,mark 
-2839 20600000 rtn 
-
-le_clear_enc:
-283a 4730c02c bpatchx patch2c_1 ,mem_patch2c 
-283b 7042ff00 jam flag_le_enc_null ,mem_le_enc_state 
-283c dfe00000 arg 0 ,pdata 
-283d 67e24471 store 4 ,mem_ccm_last_mic 
-283e 67e2c467 store 5 ,mem_ccm_pcnt_tx 
-283f 79207e27 set1 le_ccm_directionbit ,pdata 
-2840 67e2c46c store 5 ,mem_ccm_pcnt_rx 
-2841 6fe08168 fetch 1 ,mem_le_state 
-2842 793ffe04 set0 lestate_encryption ,pdata 
-2843 67e08168 store 1 ,mem_le_state 
-2844 793f8032 set0 mark_ble_encryption ,mark 
-2845 20600000 rtn 
-
-le_scan_check_sender_addr_type:
-2846 da200001 arg 1 ,rega 
-2847 6fe0804c fetch 1 ,mem_le_rxbuf_adv_connect_ind_header 
-2848 c3830000 rtnbit1 le_sender_addr_bit 
-2849 da200000 arg 0 ,rega 
-284a 20600000 rtn 
-
-le_get_master_rx_max:
-284b 18c20a00 copy contr ,contw 
-284c 684943bc fetcht 2 ,mem_remote_rx_max_octets 
-284d 18a20c00 copy contw ,contr 
-284e 20600000 rtn 
-
-le_prepare_tx:
-284f 4731402c bpatchx patch2c_2 ,mem_patch2c 
-2850 6fe0817f fetch 1 ,mem_le_arq 
-2851 c3828000 rtnbit1 wak 
-2852 20402870 call le_check_tx_md 
-2853 204029ee call le_fifo_get_first_tx_ptr 
-2854 203a2894 branch le_send_empty ,blank 
-2855 efe10006 ifetch 2 ,contr 
-2856 e8410006 ifetcht 2 ,contr 
-2857 18422200 copy temp ,rega 
-2858 9a267e00 isub rega ,pdata 
-2859 2040284b call le_get_master_rx_max 
-285a 20407db2 call not_greater_than 
-285b 1fe20400 copy pdata ,temp 
-285c e8208006 ifetchr type ,1 ,contr 
-285d 1a227e00 copy rega ,pdata 
-285e 98c0fe00 iadd contr ,pdata 
-285f 67e1066d store 2 ,mem_contr 
-2860 20402884 call le_update_tx_type 
-2861 20402896 call le_send_packet 
-2862 204029ee call le_fifo_get_first_tx_ptr 
-2863 efe10006 ifetch 2 ,contr 
-2864 1fe22200 copy pdata ,rega 
-2865 18c22600 copy contr ,regc 
-2866 e8410006 ifetcht 2 ,contr 
-2867 18422400 copy temp ,regb 
-2868 9a467e00 isub regb ,pdata 
-2869 2040284b call le_get_master_rx_max 
-286a 20407db2 call not_greater_than 
-286b 9a40fe00 iadd regb ,pdata 
-286c e7e10013 istore 2 ,regc 
-286d 9a267c00 isub rega ,null 
-286e 24628000 nrtn zero 
-286f 20202a08 branch le_fifo_release_first_node 
-
-le_check_tx_md:
-2870 20402877 call le_check_continue 
-2871 c6148000 rtnmark1 mark_ble_tx_md 
-2872 6fe0c323 fetch 1 ,mem_le_configuration 
-2873 c3012882 bbit0 bit_ble_transmit_packet_by_md ,le_clear_md 
-2874 204029f2 call le_fifo_get_second_tx_ptr 
-2875 203a2882 branch le_clear_md ,blank 
-2876 20202880 branch le_set_md 
-
-le_check_continue:
-2877 204029ee call le_fifo_get_first_tx_ptr 
-2878 203a2882 branch le_clear_md ,blank 
-2879 efe10006 ifetch 2 ,contr 
-287a e8410006 ifetcht 2 ,contr 
-287b 98462200 isub temp ,rega 
-287c 2040284b call le_get_master_rx_max 
-287d 18427e00 copy temp ,pdata 
-287e 9a267c00 isub rega ,null 
-287f 20212882 branch le_clear_md ,positive 
-
-le_set_md:
-2880 79200029 set1 mark_ble_tx_md ,mark 
-2881 20600000 rtn 
-
-le_clear_md:
-2882 793f8029 set0 mark_ble_tx_md ,mark 
-2883 20600000 rtn 
-
-le_update_tx_type:
-2884 1a227e00 copy rega ,pdata 
-2885 207a0000 rtn blank 
-2886 d8200001 arg llid_continue ,type 
-2887 20600000 rtn 
-
-le_att_check_notification_enable:
-2888 4731c02c bpatchx patch2c_3 ,mem_patch2c 
-2889 18408401 increase 1 ,temp 
-288a 20402cad call le_att_get_handle_ptr 
-288b 18c08dfe increase -2 ,contr 
-288c efe10006 ifetch 2 ,contr 
-288d d8402902 arg client_charactertic_configuration ,temp 
-288e 98467c00 isub temp ,null 
-288f 24628000 nrtn zero 
-2890 18c08c01 increase 1 ,contr 
-2891 18c22200 copy contr ,rega 
-2892 efe08006 ifetch 1 ,contr 
-2893 20600000 rtn 
-
-le_send_empty:
-2894 18000400 force 0 ,temp 
-2895 18000201 force 1 ,type 
-
-le_send_packet:
-2896 4732402c bpatchx patch2c_4 ,mem_patch2c 
-2897 6048c16c storet 1 ,mem_le_txlen 
-2898 6848817f fetcht 1 ,mem_le_arq 
-2899 79200405 set1 wak ,temp 
-289a 18417efc and temp ,0xfc ,pdata 
-289b 9821fe00 ior type ,pdata 
-289c 67e0817f store 1 ,mem_le_arq 
-289d 1fe17e1f and_into 0x1f ,pdata 
-289e 280ffe29 isolate1 mark_ble_tx_md ,mark 
-289f 7920fe04 setflag true ,md ,pdata 
-28a0 67e0c16b store 1 ,mem_le_txheader 
-28a1 6fe0c16b fetch 1 ,mem_le_txheader 
-28a2 28200601 compare 1 ,type ,3 
-28a3 2420a8a6 nbranch le_send_no_txlen ,true 
-28a4 6fe0c16c fetch 1 ,mem_le_txlen 
-28a5 207a0000 rtn blank 
-
-le_send_no_txlen:
-28a6 c51928ac bmark1 mark_ble_encryption ,le_send_packet_enc 
-28a7 6f20c16c fetchr loopcnt ,1 ,mem_le_txlen 
-28a8 6fe1066d fetch 2 ,mem_contr 
-28a9 1fe20c00 copy pdata ,contr 
-28aa d8a0416d arg mem_le_txpayload ,contw 
-28ab 20207cce branch memcpy_fast 
-
-le_send_packet_enc:
-28ac 20407356 call load_sk 
-28ad 2020728d branch le_encrypt_new_start 
-
-get_lpm_wake_ble_rx_lock:
-28ae d8e00000 arg wake_lock_ble_rx ,queue 
-28af 202024be branch lpm_get_wake_lock 
-
-put_lpm_wake_ble_rx_lock:
-28b0 d8e00000 arg wake_lock_ble_rx ,queue 
-28b1 202024c2 branch lpm_put_wake_lock 
-
-le_parse:
-28b2 4732c02c bpatchx patch2c_5 ,mem_patch2c 
-28b3 c6078000 rtnmark1 mark_old_packet 
-28b4 c6180000 rtnmark1 mark_ble_crc_fail 
-28b5 6fe0804c fetch 1 ,mem_le_rxbuf_data_header 
-28b6 1fe17e03 and pdata ,0x3 ,pdata 
-28b7 67e0c336 store 1 ,mem_le_packet_llid 
-28b8 6fe0804d fetch 1 ,mem_le_rxbuf_data_length 
-28b9 207a0000 rtn blank 
-28ba 5800004e setarg mem_le_rxbuf_data_payload 
-28bb 67e1433b store 2 ,mem_le_payload_ptr 
-28bc 4733402c bpatchx patch2c_6 ,mem_patch2c 
-28bd 6fe0c336 fetch 1 ,mem_le_packet_llid 
-28be c1000000 rtneq llid_reserved 
-28bf c001b028 beq llid_le_ll ,le_parse_ll 
-
-le_parse_l2cap:
-28c0 204028cd call le_check_l2cap_complete 
-28c1 243428ae nbranch get_lpm_wake_ble_rx_lock ,user 
-28c2 204028b0 call put_lpm_wake_ble_rx_lock 
-28c3 58000000 setarg 0 
-28c4 67e14339 store 2 ,mem_le_packet_len_recved 
-28c5 6fe1433b fetch 2 ,mem_le_payload_ptr 
-28c6 1fe08c02 add pdata ,2 ,contr 
-28c7 4733c02c bpatchx patch2c_7 ,mem_patch2c 
-28c8 efe10006 ifetch 2 ,contr 
-28c9 c0022b6e beq le_l2cap_cid_att ,le_parse_att 
-28ca c0032ea6 beq le_l2cap_cid_smp ,le_parse_smp 
-28cb c002ae68 beq le_l2cap_cid_signal ,le_parse_signaling 
-28cc 20600000 rtn 
-
-le_check_l2cap_complete:
-28cd 6fe0c336 fetch 1 ,mem_le_packet_llid 
-28ce c00128dc beq llid_start ,le_check_l2cap_llid_start 
-28cf c000a8f3 beq llid_continue ,le_check_l2cap_llid_continue 
-28d0 20600000 rtn 
-
-le_check_l2cap_cid_legal:
-28d1 20407dbc call enable_user 
-28d2 d8400004 arg le_l2cap_cid_att ,temp 
-28d3 9fe67c00 isub pdata ,null 
-28d4 20628000 rtn zero 
-28d5 d8400005 arg le_l2cap_cid_signal ,temp 
-28d6 9fe67c00 isub pdata ,null 
-28d7 20628000 rtn zero 
-28d8 d8400006 arg le_l2cap_cid_smp ,temp 
-28d9 9fe67c00 isub pdata ,null 
-28da 20628000 rtn zero 
-28db 20207dbe branch disable_user 
-
-le_check_l2cap_llid_start:
-28dc 6fe1433b fetch 2 ,mem_le_payload_ptr 
-28dd 1fe20c00 copy pdata ,contr 
-28de efe10006 ifetch 2 ,contr 
-28df 67e14337 store 2 ,mem_le_l2cap_size 
-28e0 efe10006 ifetch 2 ,contr 
-28e1 204028d1 call le_check_l2cap_cid_legal 
-28e2 24740000 nrtn user 
-28e3 6848804d fetcht 1 ,mem_le_rxbuf_data_length 
-28e4 60494339 storet 2 ,mem_le_packet_len_recved 
-28e5 6fe14337 fetch 2 ,mem_le_l2cap_size 
-28e6 1fe0fe04 increase 4 ,pdata 
-28e7 98467c00 isub temp ,null 
-28e8 2022fdbc branch enable_user ,zero 
-28e9 6f20804d fetchr loopcnt ,1 ,mem_le_rxbuf_data_length 
-28ea d8a00f00 arg mem_le_l2cap_buf ,contw 
-28eb 6fe1433b fetch 2 ,mem_le_payload_ptr 
-28ec 1fe20c00 copy pdata ,contr 
-28ed 20407cce call memcpy_fast 
-28ee 20207dbe branch disable_user 
-
-le_check_l2cap_continue_legal:
-28ef 20407dbc call enable_user 
-28f0 6fe14339 fetch 2 ,mem_le_packet_len_recved 
-28f1 247a0000 nrtn blank 
-28f2 20207dbe branch disable_user 
-
-le_check_l2cap_llid_continue:
-28f3 204028ef call le_check_l2cap_continue_legal 
-28f4 24740000 nrtn user 
-28f5 6fe14339 fetch 2 ,mem_le_packet_len_recved 
-28f6 d8a00f00 arg mem_le_l2cap_buf ,contw 
-28f7 98a0a200 iadd contw ,rega 
-28f8 6848804d fetcht 1 ,mem_le_rxbuf_data_length 
-28f9 9840fe00 iadd temp ,pdata 
-28fa 67e14339 store 2 ,mem_le_packet_len_recved 
-28fb 6f20804d fetchr loopcnt ,1 ,mem_le_rxbuf_data_length 
-28fc 1a220a00 copy rega ,contw 
-28fd 6fe1433b fetch 2 ,mem_le_payload_ptr 
-28fe 1fe20c00 copy pdata ,contr 
-28ff 20407cce call memcpy_fast 
-2900 58000f00 setarg mem_le_l2cap_buf 
-2901 67e1433b store 2 ,mem_le_payload_ptr 
-2902 6fe14337 fetch 2 ,mem_le_l2cap_size 
-2903 1fe0fe04 increase 4 ,pdata 
-2904 68494339 fetcht 2 ,mem_le_packet_len_recved 
-2905 98467c00 isub temp ,null 
-2906 2022fdbc branch enable_user ,zero 
-2907 20207dbe branch disable_user 
-
-le_writeatt_cb:
-2908 6fe143e8 fetch 2 ,mem_cb_att_write 
-2909 20207d7b branch callback_func 
-
-le_supervision_update:
-290a 4734402d bpatchx patch2d_0 ,mem_patch2d 
-290b 684a0184 fetcht 4 ,mem_le_supervision_timer 
-290c 2040233a call get_clkbt 
-290d 98461600 isub temp ,timeup 
-290e 19627e00 deposit timeup 
-290f 68490196 fetcht 2 ,mem_le_superto 
-2910 18520400 lshift4 temp ,temp 
-2911 18438400 lshift temp ,temp 
-2912 98467e00 isub temp ,pdata 
-2913 20600000 rtn 
-
-le_supervision_flush:
-2914 2040233a call get_clkbt 
-2915 67e20184 store 4 ,mem_le_supervision_timer 
-2916 20600000 rtn 
-
-le_receive_window_size:
-2917 4734c02d bpatchx patch2d_1 ,mem_patch2d 
-2918 1a208c50 add rega ,coffset_le_peer_sca ,contr 
-2919 efe08006 ifetch 1 ,contr 
-291a 204025c0 call le_sca_map 
-291b 1a208c02 add rega ,coffset_tsniff ,contr 
-291c efe10006 ifetch 2 ,contr 
-291d 984ffe00 imul32 temp ,pdata 
-291e 68490044 fetcht 2 ,mem_param_rt_rthalfslot 
-291f 984ffe00 imul32 temp ,pdata 
-2920 d84f4240 arg 1000000 ,temp 
-2921 9846fc00 idiv temp 
-2922 d8400682 arg param_windown_size ,temp 
-2923 6fe0c148 fetch 1 ,mem_system_clk 
-2924 984f8400 imul32 temp ,temp 
-2925 1a208c2b add rega ,coffset_le_window_size ,contr 
-2926 efe08006 ifetch 1 ,contr 
-2927 984ffe00 imul32 temp ,pdata 
-2928 9840fe00 iadd temp ,pdata 
-2929 67e2431f store 4 ,mem_le_transmit_window 
-292a 6fe1409a fetch 2 ,mem_rx_window_sniff 
-292b 20407d64 call wait_div_end 
-292c 18078400 quotient temp 
-292d 9840fe00 iadd temp ,pdata 
-292e 1a208a0e add rega ,coffset_rx_window ,contw 
-292f e7e10005 istore 2 ,contw 
-2930 20600000 rtn 
-
-le_modified_name:
-2931 4735402d bpatchx patch2d_2 ,mem_patch2d 
-2932 20402934 call le_modified_name_att_list 
-2933 20202948 branch le_modified_name_adv 
-
-le_modified_name_att_list:
-2934 70069302 jam 2 ,mem_le_search_att_type_length 
-2935 d8402a00 arg uuid_chrctr_device_name ,temp 
-2936 60490694 storet 2 ,mem_le_search_att_type 
-2937 20402cbe call le_att_get_uuid_ptr 
-2938 207a0000 rtn blank 
-2939 efe08006 ifetch 1 ,contr 
-293a 18c20a00 copy contr ,contw 
-293b 6848c26d fetcht 1 ,mem_le_name_len 
-293c 18427200 copy temp ,loopcnt 
-293d 98467c00 isub temp ,null 
-293e 24212945 nbranch le_name_length_longer_than_att ,positive 
-293f 98460400 isub temp ,temp 
-2940 d8c0426e arg mem_le_name ,contr 
-2941 20407cce call memcpy_fast 
-2942 18427200 copy temp ,loopcnt 
-2943 2442a980 ncall memcpy_empty ,zero 
-2944 20600000 rtn 
-
-le_name_length_longer_than_att:
-2945 1fe27200 copy pdata ,loopcnt 
-2946 d8c0426e arg mem_le_name ,contr 
-2947 20207cce branch memcpy_fast 
-
-le_modified_name_adv:
-2948 da60436c arg mem_le_adv_data_len + 32 ,regc 
-2949 da20434d arg mem_le_adv_data ,rega 
-294a 20402955 call le_modified_name_adv_and_scan 
-294b 58000000 setarg 0 
-294c 79347e00 setflag user ,0 ,pdata 
-294d 67e0864e store 1 ,mem_pdatatemp 
-294e da60438c arg mem_le_scan_data_len + 32 ,regc 
-294f da20436d arg mem_le_scan_data ,rega 
-2950 20402955 call le_modified_name_adv_and_scan 
-2951 20740000 rtn user 
-2952 6fe0864e fetch 1 ,mem_pdatatemp 
-2953 203a233e branch assert ,blank 
-2954 20600000 rtn 
-
-le_modified_name_adv_and_scan:
-2955 4735c02d bpatchx patch2d_3 ,mem_patch2d 
-2956 20407dbc call enable_user 
-2957 20407ca8 call clear_temp_block 
-2958 da400000 arg 0 ,regb 
-2959 d8a00680 arg mem_le_data_temp ,contw 
-295a 2040296f call le_modified_name_adv_loop 
-295b 6fe0c26d fetch 1 ,mem_le_name_len 
-295c 1fe08401 add pdata ,1 ,temp 
-295d 9a40a200 iadd regb ,rega 
-295e 1a20a202 increase 2 ,rega 
-295f 1a267c1f sub rega ,0x1f ,null 
-2960 2421296d nbranch le_modified_name_adv_and_scan_name_overflow ,positive 
-2961 e0408005 istoret 1 ,contw 
-2962 d8400009 arg gap_adtype_local_name_complete ,temp 
-2963 e0408005 istoret 1 ,contw 
-2964 98007200 iforce loopcnt 
-2965 20407cce call memcpy_fast 
-2966 1a222400 copy rega ,regb 
-
-le_modified_name_adv_and_scan_store_data:
-2967 1a427e00 deposit regb 
-2968 67e0867f store 1 ,mem_le_data_len_temp 
-2969 d8c0067f arg mem_le_data_len_temp ,contr 
-296a 5fffffe0 setarg -32 
-296b 9a608a00 iadd regc ,contw 
-296c 20207c8f branch memcpy32 
-
-le_modified_name_adv_and_scan_name_overflow:
-296d 20407dbe call disable_user 
-296e 20202967 branch le_modified_name_adv_and_scan_store_data 
-
-le_modified_name_adv_loop:
-296f efe08011 ifetch 1 ,rega 
-2970 207a0000 rtn blank 
-2971 1fe0fe01 pincrease 1 
-2972 e8408006 ifetcht 1 ,contr 
-2973 18467c09 sub temp ,gap_adtype_local_name_complete ,null 
-2974 2022a97e branch le_modified_name_adv_found_name ,zero 
-2975 9a40a400 iadd regb ,regb 
-2976 1a220c00 copy rega ,contr 
-2977 98007200 iforce loopcnt 
-2978 20407cce call memcpy_fast 
-2979 18c22200 copy contr ,rega 
-
-le_modified_name_adv_loop2:
-297a 1a227e00 deposit rega 
-297b 9a667c00 isub regc ,null 
-297c 20610000 rtn positive 
-297d 2020296f branch le_modified_name_adv_loop 
-
-le_modified_name_adv_found_name:
-297e 9a20a200 iadd rega ,rega 
-297f 2020297a branch le_modified_name_adv_loop2 
-
-memcpy_empty:
-2980 58000020 setarg space 
-2981 e7e08005 istore 1 ,contw 
-2982 c2002980 loop memcpy_empty 
-2983 20600000 rtn 
-
-le_lpm_set_mult:
-2984 4736402d bpatchx patch2d_4 ,mem_patch2d 
-2985 7855fc00 disable wake 
-2986 20372988 branch le_lpm_set_mult_attempt ,attempt 
-2987 2436a997 nbranch le_lpm_lost ,match 
-
-le_lpm_set_mult_attempt:
-2988 204024a9 call lpm_match 
-2989 6fe1409a fetch 2 ,mem_rx_window_sniff 
-298a 67e10176 store 2 ,mem_le_receive_window 
-298b 6fe0c323 fetch 1 ,mem_le_configuration 
-298c c282a4b7 bbit1 bit_ble_short_mult ,lpm_mult_short 
-298d c507a4b7 bmark1 mark_old_packet ,lpm_mult_short 
-298e 6fe0804d fetch 1 ,mem_le_rxbuf_data_length 
-298f 243a24b7 nbranch lpm_mult_short ,blank 
-2990 6fe0c16c fetch 1 ,mem_le_txlen 
-2991 243a24b7 nbranch lpm_mult_short ,blank 
-2992 6fe08168 fetch 1 ,mem_le_state 
-2993 c282a4b7 bbit1 lestate_update_param ,lpm_mult_short 
-2994 c283a4b7 bbit1 lestate_update_phy ,lpm_mult_short 
-2995 c28324b7 bbit1 lestate_update_map ,lpm_mult_short 
-2996 2020249f branch lpm_mult_wait_timeout 
-
-le_lpm_lost:
-2997 6fe0c0a8 fetch 1 ,mem_sniff_unint_lost 
-2998 1fe67c1e sub pdata ,30 ,null 
-2999 242124ae nbranch lpm_lost ,positive 
-299a 6849409a fetcht 2 ,mem_rx_window_sniff 
-299b 18430400 rshift temp ,temp 
-299c 6fe10176 fetch 2 ,mem_le_receive_window 
-299d 9840fe00 iadd temp ,pdata 
-299e 67e10176 store 2 ,mem_le_receive_window 
-299f 202024ae branch lpm_lost 
-
-le_set_config_fixed_tk:
-29a0 d8e00000 arg bit_ble_passkey_fixed_key ,queue 
-29a1 202029b5 branch le_set_config 
-
-le_clr_config_fixed_tk:
-29a2 d8e00000 arg bit_ble_passkey_fixed_key ,queue 
-29a3 202029ba branch le_clr_config 
-
-le_set_config_fixed_ltk:
-29a4 d8e00001 arg bit_ble_pairing_fixed_ltk ,queue 
-29a5 202029b5 branch le_set_config 
-
-le_clr_config_fixed_ltk:
-29a6 d8e00001 arg bit_ble_pairing_fixed_ltk ,queue 
-29a7 202029ba branch le_clr_config 
-
-le_set_config_more_data:
-29a8 d8e00002 arg bit_ble_transmit_packet_by_md ,queue 
-29a9 202029b5 branch le_set_config 
-
-le_clr_config_more_data:
-29aa d8e00002 arg bit_ble_transmit_packet_by_md ,queue 
-29ab 202029ba branch le_clr_config 
-
-le_set_config_read_authentication:
-29ac d8e00003 arg bit_ble_read_auth ,queue 
-29ad 202029b5 branch le_set_config 
-
-le_clr_config_read_authentication:
-29ae d8e00003 arg bit_ble_read_auth ,queue 
-29af 202029ba branch le_clr_config 
-
-le_set_config_write_authentication:
-29b0 d8e00004 arg bit_ble_write_auth ,queue 
-29b1 202029b5 branch le_set_config 
-
-le_clr_config_write_authentication:
-29b2 d8e00004 arg bit_ble_write_auth ,queue 
-29b3 202029ba branch le_clr_config 
-
-le_set_config_short_mult:
-29b4 d8e00005 arg bit_ble_short_mult ,queue 
-
-le_set_config:
-29b5 6fe0c323 fetch 1 ,mem_le_configuration 
-29b6 f9207e00 qset1 pdata 
-29b7 67e0c323 store 1 ,mem_le_configuration 
-29b8 20600000 rtn 
-
-le_clr_config_short_mult:
-29b9 d8e00005 arg bit_ble_short_mult ,queue 
-
-le_clr_config:
-29ba 6fe0c323 fetch 1 ,mem_le_configuration 
-29bb f93ffe00 qset0 pdata 
-29bc 67e0c323 store 1 ,mem_le_configuration 
-29bd 20600000 rtn 
-
-le_set_fixed_ltk:
-29be 58112233 setarg 0x112233 
-29bf 67e1c324 store 3 ,mem_le_fixed_ltk 
-29c0 58445566 setarg 0x445566 
-29c1 e7e18005 istore 3 ,contw 
-29c2 58778899 setarg 0x778899 
-29c3 e7e18005 istore 3 ,contw 
-29c4 58001122 setarg 0x001122 
-29c5 e7e18005 istore 3 ,contw 
-29c6 58334455 setarg 0x334455 
-29c7 e7e18005 istore 3 ,contw 
-29c8 58000066 setarg 0x66 
-29c9 20207dce branch istore_1_contw_rtn 
-
-le_set_justwork:
-29ca 59000302 setarg 0x01000302 
-29cb 67e242c6 store 4 ,mem_le_pres 
-29cc 58010010 setarg 0x010010 
-29cd 67e1c2ca store 3 ,mem_le_pres_max_keysize 
-29ce 70430001 jam 1 ,mem_le_pairing_mode 
-29cf 20600000 rtn 
-
-le_fifo_malloc_tx_empty:
-29d0 da200000 arg 0 ,rega 
-29d1 d8200001 arg llid_empty ,type 
-29d2 202029e3 branch le_fifo_malloc_tx 
-
-le_fifo_malloc_tx_ll:
-29d3 4736c02d bpatchx patch2d_5 ,mem_patch2d 
-29d4 d8200003 arg llid_le_ll ,type 
-29d5 204029e3 call le_fifo_malloc_tx 
-29d6 1a427e00 copy regb ,pdata 
-29d7 e7e08005 istore 1 ,contw 
-29d8 20600000 rtn 
-
-le_fifo_malloc_tx_l2cap:
-29d9 4737402d bpatchx patch2d_6 ,mem_patch2d 
-29da 18000202 force llid_start ,type 
-29db 1a20a204 increase 4 ,rega 
-29dc 204029e3 call le_fifo_malloc_tx 
-29dd 1a20a3fc increase -4 ,rega 
-29de 1a227e00 copy rega ,pdata 
-29df e7e10005 istore 2 ,contw 
-29e0 1a427e00 copy regb ,pdata 
-29e1 e7e10005 istore 2 ,contw 
-29e2 20600000 rtn 
-
-le_fifo_malloc_tx:
-29e3 4737c02d bpatchx patch2d_7 ,mem_patch2d 
-29e4 1a20a205 increase 5 ,rega 
-29e5 204068e5 call ble_l2cap_malloc 
-29e6 1a20a3fb increase -5 ,rega 
-29e7 1a227e00 copy rega ,pdata 
-29e8 e7e10005 istore 2 ,contw 
-29e9 58000000 setarg 0 
-29ea e7e10005 istore 2 ,contw 
-29eb 18227e00 copy type ,pdata 
-29ec e7e08005 istore 1 ,contw 
-29ed 20600000 rtn 
-
-le_fifo_get_first_tx_ptr:
-29ee 4738402e bpatchx patch2e_0 ,mem_patch2e 
-29ef 2040691f call l2cap_malloc_fifo_out 
-29f0 1fe20c00 copy pdata ,contr 
-29f1 20600000 rtn 
-
-le_fifo_get_second_tx_ptr:
-29f2 6fe14460 fetch 2 ,mem_tx_fifo2_ptr 
-29f3 20600000 rtn 
-
-le_fifo_get_last_tx_ptr:
-29f4 204029f7 call le_fifo_get_last_tx_ptr0 
-29f5 1fe20c00 copy pdata ,contr 
-29f6 20600000 rtn 
-
-le_fifo_get_last_tx_ptr0:
-29f7 6fe14463 fetch 2 ,mem_tx_fifo3_ptr 
-29f8 20600000 rtn 
-
-le_fifo_get_first_l2cap_ptr:
-29f9 204029ee call le_fifo_get_first_tx_ptr 
-29fa 18c08c05 increase 5 ,contr 
-29fb 20600000 rtn 
-
-le_fifo_get_first_att_ptr:
-29fc 204029ee call le_fifo_get_first_tx_ptr 
-29fd 18c08c09 increase 9 ,contr 
-29fe 20600000 rtn 
-
-le_fifo_get_last_att_ptr:
-29ff 204029f4 call le_fifo_get_last_tx_ptr 
-2a00 18c08c09 increase 9 ,contr 
-2a01 20600000 rtn 
-
-le_fifo_get_last_l2cap_ptr:
-2a02 204029f4 call le_fifo_get_last_tx_ptr 
-2a03 18c08c05 increase 5 ,contr 
-2a04 20600000 rtn 
-
-le_fifo_check_full:
-2a05 20206935 branch l2cap_malloc_is_fifo_full 
-
-le_fifo_check_nearly_full:
-2a06 20206938 branch l2cap_malloc_is_fifo_nearly_full 
-
-le_fifo_check_empty:
-2a07 2020693b branch l2cap_malloc_is_fifo_empty 
-
-le_fifo_release_first_node:
-2a08 20206924 branch l2cap_malloc_free 
-
-le_set_dle:
-2a09 67e443c4 store 8 ,mem_local_rx_max_octets 
-2a0a 20202a1a branch le_set_feature_data_packet_length_extension 
-
-le_set_phys:
-2a0b 184122ff and temp ,0xff ,rega 
-2a0c 20402a10 call le_set_tx_phy 
-2a0d 184ca200 rshift8 temp ,rega 
-
-le_set_rx_phy:
-2a0e 6220c3bb storer rega ,1 ,mem_le_rx_phys 
-2a0f 20202a11 branch le_set_phy_common 
-
-le_set_tx_phy:
-2a10 6220c3ba storer rega ,1 ,mem_le_tx_phys 
-
-le_set_phy_common:
-2a11 2a2ffe01 isolate1 bit_le_2m_phy ,rega 
-2a12 2040aa16 call le_set_feature_2m_phy ,true 
-2a13 2a2ffe02 isolate1 bit_le_coded_phy ,rega 
-2a14 2040aa18 call le_set_feature_coded_phy ,true 
-2a15 20600000 rtn 
-
-le_set_feature_2m_phy:
-2a16 d8e00008 arg bit_ll_feature_le_2m_phy ,queue 
-2a17 20202a1b branch le_set_feature 
-
-le_set_feature_coded_phy:
-2a18 d8e0000b arg bit_ll_feature_le_coded_phy ,queue 
-2a19 20202a1b branch le_set_feature 
-
-le_set_feature_data_packet_length_extension:
-2a1a d8e00005 arg bit_ll_feature_le_data_packet_length_extension ,queue 
-
-le_set_feature:
-2a1b 6fe443b2 fetch 8 ,mem_le_local_feature 
-2a1c f9207e00 qset1 pdata 
-2a1d 67e443b2 store 8 ,mem_le_local_feature 
-2a1e 20600000 rtn 
-
-le_set_fixed_ltk_justwork:
-2a1f 204029a4 call le_set_config_fixed_ltk 
-2a20 204029ca call le_set_justwork 
-2a21 204029be call le_set_fixed_ltk 
-2a22 202029ac branch le_set_config_read_authentication 
-
-le_advertising_dispatch:
-2a23 70019d01 jam fun_rx_ll_1m_phy ,mem_le_rx_phy 
-2a24 70019e01 jam fun_tx_ll_1m_phy ,mem_le_tx_phy 
-2a25 793f8030 set0 mark_ble_crc_fail ,mark 
-2a26 79200010 set1 mark_adv ,mark 
-2a27 793f8032 set0 mark_ble_encryption ,mark 
-2a28 2040258d call le_enable 
-2a29 20402a2d call le_scan 
-2a2a 20402aad call le_adv 
-2a2b 793f8010 set0 mark_adv ,mark 
-2a2c 20202591 branch le_disable 
-
-le_scan:
-2a2d 4738c02e bpatchx patch2e_1 ,mem_patch2e 
-2a2e 6fe0c347 fetch 1 ,mem_le_scan_enable 
-2a2f c1808000 rtnne le_scan_enable 
-2a30 d8e00002 arg le_scan_interval_timer ,queue 
-2a31 20407cf1 call timer_check 
-2a32 247a0000 nrtn blank 
-2a33 6fe14348 fetch 2 ,mem_le_scan_interval 
-2a34 6849434a fetcht 2 ,mem_le_scan_window 
-2a35 98467e00 isub temp ,pdata 
-2a36 d8e00002 arg le_scan_interval_timer ,queue 
-2a37 20407ce3 call timer_init 
-2a38 7854fc00 disable master 
-2a39 20402ada call le_init_adv 
-2a3a 20402a4c call le_wait_adv 
-2a3b 24768000 nrtn match 
-2a3c 4739402e bpatchx patch2e_2 ,mem_patch2e 
-2a3d 6fe3004e fetch 6 ,mem_le_rxbuf + 2 
-2a3e 67e30178 store 6 ,mem_le_plap 
-2a3f 6fe08002 fetch 1 ,mem_le_adv_rcv 
-2a40 1fe0fe01 increase 1 ,pdata 
-2a41 67e08002 store 1 ,mem_le_adv_rcv 
-2a42 20402a53 call le_create_conn 
-2a43 20748000 rtn master 
-2a44 20402b01 call le_send_scan_request 
-2a45 24768000 nrtn match 
-2a46 6fe08004 fetch 1 ,mem_le_scanrsp_rcv 
-2a47 1fe0fe01 increase 1 ,pdata 
-2a48 67e08004 store 1 ,mem_le_scanrsp_rcv 
-2a49 6fe48054 fetch 9 ,mem_le_rxbuf + 8 
-2a4a 67e4867f store 9 ,mem_temp_block0 
-2a4b 20600000 rtn 
-
-le_wait_adv:
-2a4c 4739c02e bpatchx patch2e_3 ,mem_patch2e 
-2a4d 20402b4d call le_next_adv_channel 
-2a4e 20402623 call le_receive_adv 
-2a4f 6fe08001 fetch 1 ,mem_le_adv_waitcnt 
-2a50 1fe0fe01 increase 1 ,pdata 
-2a51 67e08001 store 1 ,mem_le_adv_waitcnt 
-2a52 20600000 rtn 
-
-le_create_conn:
-2a53 473a402e bpatchx patch2e_4 ,mem_patch2e 
-2a54 6fe0c33e fetch 1 ,mem_cmd_le_create_conn 
-2a55 c18d8000 rtnne hci_cmd_le_create_conn 
-2a56 6fe30178 fetch 6 ,mem_le_plap 
-2a57 684b42ce fetcht 6 ,mem_le_conn_peer_addr 
-2a58 98467c00 isub temp ,null 
-2a59 24628000 nrtn zero 
-2a5a 20402056 call context_new 
-2a5b 24628000 nrtn zero 
-2a5c 20402a66 call le_connect_request 
-2a5d 204024f0 call le_init_master 
-2a5e 204030cb call le_send_version_ind 
-2a5f 70064d14 jam bt_evt_le_connected ,mem_fifo_temp 
-2a60 20407819 call ui_ipc_send_event 
-2a61 70411400 jam 0 ,mem_hci_cmd 
-2a62 7001b800 jam 0 ,mem_le_peer_sca 
-2a63 70434700 jam 0 ,mem_le_scan_enable 
-2a64 70433e00 jam 0 ,mem_cmd_le_create_conn 
-2a65 20202041 branch context_save 
-
-le_connect_request:
-2a66 473ac02e bpatchx patch2e_5 ,mem_patch2e 
-2a67 18007fff force -1 ,pdata 
-2a68 38080001 setsect 2 ,1 
-2a69 67e28198 store 5 ,mem_le_channel_map 
-2a6a da200168 arg mem_le_state ,rega 
-2a6b 204025f9 call le_calc_channel_map 
-2a6c 18007204 force 4 ,loopcnt 
-2a6d d8a0018c arg mem_le_access ,contw 
-2a6e 20407dee call generate_random_loop 
-2a6f 6fe142db fetch 2 ,mem_le_timeout 
-2a70 67e10196 store 2 ,mem_le_superto 
-
-le_con_req_hop_retry:
-2a71 180a7e00 random pdata 
-2a72 1fe17e0f and_into 0xf ,pdata 
-2a73 1fe67c04 sub pdata ,4 ,null 
-2a74 20212a71 branch le_con_req_hop_retry ,positive 
-2a75 67e08181 store 1 ,mem_le_hop 
-2a76 473b402e bpatchx patch2e_6 ,mem_patch2e 
-2a77 68494167 fetcht 2 ,mem_le_conn_interval 
-2a78 6049016a storet 2 ,mem_le_tsniff 
-2a79 18422600 copy temp ,regc 
-2a7a 1c40fe07 add clkn_bt ,7 ,pdata 
-2a7b 9a66fc00 idiv regc 
-2a7c 20407d64 call wait_div_end 
-2a7d 18072200 remainder rega 
-2a7e 9a267e00 isub rega ,pdata 
-2a7f 9a60fe00 iadd regc ,pdata 
-2a80 68494165 fetcht 2 ,mem_le_dsniff 
-2a81 9840fe00 iadd temp ,pdata 
-2a82 67e2016c store 4 ,mem_le_anchor 
-2a83 9c462200 isub clkn_bt ,rega 
-2a84 1a20a3fa increase -6 ,rega 
-2a85 da402205 arg 0x2205 ,regb 
-2a86 6fe0c2d4 fetch 1 ,mem_le_conn_own_addr_type 
-2a87 7d3a2406 nsetflag blank ,le_sender_addr_bit ,regb 
-2a88 6fe0c2cd fetch 1 ,mem_le_conn_peer_addr_type 
-2a89 7d3a2407 nsetflag blank ,le_receiver_addr_bit ,regb 
-2a8a 1a427e00 copy regb ,pdata 
-2a8b 67e1416b store 2 ,mem_le_txheader 
-2a8c 6fe342dd fetch 6 ,mem_le_lap 
-2a8d e7e30005 istore 6 ,contw 
-2a8e 6fe30178 fetch 6 ,mem_le_plap 
-2a8f e7e30005 istore 6 ,contw 
-2a90 6fe2018c fetch 4 ,mem_le_access 
-2a91 e7e20005 istore 4 ,contw 
-2a92 180a7e00 random pdata 
-2a93 e7e10005 istore 2 ,contw 
-2a94 180a7e00 random pdata 
-2a95 e7e08005 istore 1 ,contw 
-2a96 18007e02 force 2 ,pdata 
-2a97 e7e08005 istore 1 ,contw 
-2a98 1a2b7e00 rshift2 rega ,pdata 
-2a99 e7e10005 istore 2 ,contw 
-2a9a 1a6b7e00 rshift2 regc ,pdata 
-2a9b e7e10005 istore 2 ,contw 
-2a9c 473bc02e bpatchx patch2e_7 ,mem_patch2e 
-2a9d 58000000 setarg 0 
-2a9e e7e10005 istore 2 ,contw 
-2a9f 6fe142db fetch 2 ,mem_le_timeout 
-2aa0 e7e10005 istore 2 ,contw 
-2aa1 6fe28198 fetch 5 ,mem_le_channel_map 
-2aa2 e7e28005 istore 5 ,contw 
-2aa3 6fe08181 fetch 1 ,mem_le_hop 
-2aa4 d84000a0 arg param_le_sca ,temp 
-2aa5 9841fe00 ior temp ,pdata 
-2aa6 e7e08005 istore 1 ,contw 
-2aa7 2040271c call le_transmit_norx 
-2aa8 5800416b setarg mem_le_txheader 
-2aa9 1fe08c12 add pdata ,18 ,contr 
-2aaa efe18006 ifetch 3 ,contr 
-2aab 67e18190 store 3 ,mem_le_crcinit 
-2aac 20600000 rtn 
-
-le_adv:
-2aad 70000724 jam 36 ,mem_le_ch_mapped 
-2aae 70067f00 jam 0 ,mem_le_adv_channel_map_temp 
-2aaf 20402ad4 call le_send_adv_protect_txbuf 
-2ab0 20402ab2 call le_adv_loop 
-2ab1 20202ad7 branch le_send_adv_recover_txbuf 
-
-le_adv_loop:
-2ab2 473c402f bpatchx patch2f_0 ,mem_patch2f 
-2ab3 6fe0c38c fetch 1 ,mem_le_adv_enable 
-2ab4 207a0000 rtn blank 
-2ab5 d8e00000 arg le_adv_interval_timer ,queue 
-2ab6 20407cf1 call timer_check 
-2ab7 247a0000 nrtn blank 
-2ab8 78287c00 enable swfine 
-2ab9 20402ada call le_init_adv 
-2aba 20402b4d call le_next_adv_channel 
-2abb 20402ae3 call le_send_adv_ind 
-2abc 2436aac4 nbranch le_adv_not_match ,match 
-2abd 6fe08003 fetch 1 ,mem_le_req_rcv 
-2abe 1fe0fe01 increase 1 ,pdata 
-2abf 67e08003 store 1 ,mem_le_req_rcv 
-2ac0 6fe0804c fetch 1 ,mem_le_rxbuf_adv_header 
-2ac1 1fe17e0f and pdata ,0x0f ,pdata 
-2ac2 c001ab12 beq scan_req ,le_send_scan_response 
-2ac3 c002ab25 beq connect_req ,le_parse_connect_req 
-
-le_adv_not_match:
-2ac4 473cc02f bpatchx patch2f_1 ,mem_patch2f 
-2ac5 6fe0867f fetch 1 ,mem_le_adv_channel_map_temp 
-2ac6 6848c397 fetcht 1 ,mem_le_adv_channel_map 
-2ac7 98467c00 isub temp ,null 
-2ac8 2422aab2 nbranch le_adv_loop ,zero 
-2ac9 6fe0c3cf fetch 1 ,mem_device_option 
-2aca 1fe67c0e sub pdata ,dvc_op_car ,null 
-2acb 2022bad9 branch car_le_stop_random_delay_check ,zero 
-2acc 180a7e00 random pdata 
-2acd d84001ff arg 0x1ff ,temp 
-2ace 98417e00 iand temp ,pdata 
-2acf 1fe0fefa add pdata ,250 ,pdata 
-2ad0 20407c93 call delay 
-2ad1 d8e00000 arg le_adv_interval_timer ,queue 
-2ad2 6fe1438d fetch 2 ,mem_le_adv_interval 
-2ad3 20207ce3 branch timer_init 
-
-le_send_adv_protect_txbuf:
-2ad4 d8a0068f arg mem_le_tx_buf_temp ,contw 
-2ad5 d8c0416b arg mem_le_txheader ,contr 
-2ad6 20207c8e branch memcpy48 
-
-le_send_adv_recover_txbuf:
-2ad7 d8c0068f arg mem_le_tx_buf_temp ,contr 
-2ad8 d8a0416b arg mem_le_txheader ,contw 
-2ad9 20207c8e branch memcpy48 
-
-le_init_adv:
-2ada 473d402f bpatchx patch2f_2 ,mem_patch2f 
-2adb 7854fc00 disable master 
-
-le_adv_access:
-2adc 588e89be setarg 0x8e89be 
-2add 1fed7e00 lshift8 pdata ,pdata 
-2ade 1fe1fed6 or_into 0xd6 ,pdata 
-2adf 98001200 iforce access 
-2ae0 58555555 setarg 0x555555 
-2ae1 67e18190 store 3 ,mem_le_crcinit 
-2ae2 20600000 rtn 
-
-le_send_adv_ind:
-2ae3 473dc02f bpatchx patch2f_3 ,mem_patch2f 
-2ae4 6fe0c38f fetch 1 ,mem_le_adv_type 
-2ae5 6848c390 fetcht 1 ,mem_le_adv_own_addr_type 
-2ae6 18520400 lshift4 temp ,temp 
-2ae7 184b8400 lshift2 temp ,temp 
-2ae8 98408400 iadd temp ,temp 
-2ae9 6048c16b storet 1 ,mem_le_txheader 
-2aea c000aaf4 beq adv_direct_ind ,le_send_adv_direct_ind 
-2aeb 6848c34c fetcht 1 ,mem_le_adv_data_len 
-2aec 1840fe06 add temp ,6 ,pdata 
-2aed 67e0c16c store 1 ,mem_le_txlen 
-2aee 6fe342dd fetch 6 ,mem_le_lap 
-2aef 67e3416d store 6 ,mem_le_txpayload 
-2af0 18427200 copy temp ,loopcnt 
-2af1 d8c0434d arg mem_le_adv_data ,contr 
-2af2 20407cce call memcpy_fast 
-2af3 20202afa branch le_send_adv_transmit 
-
-le_send_adv_direct_ind:
-2af4 5800000c setarg 12 
-2af5 67e0c16c store 1 ,mem_le_txlen 
-2af6 6fe342dd fetch 6 ,mem_le_lap 
-2af7 67e3416d store 6 ,mem_le_txpayload 
-2af8 6fe34116 fetch 6 ,mem_hci_plap 
-2af9 e7e30005 istore 6 ,contw 
-
-le_send_adv_transmit:
-2afa 473e402f bpatchx patch2f_4 ,mem_patch2f 
-2afb 6fe08000 fetch 1 ,mem_le_adv_transmit 
-2afc 1fe0fe01 increase 1 ,pdata 
-2afd 67e08000 store 1 ,mem_le_adv_transmit 
-2afe db600708 arg 1800 ,stop_watch 
-2aff 7856fc00 disable match 
-2b00 20202707 branch le_transmit_receive_sifs_without_change_mode 
-
-le_send_scan_request:
-2b01 473ec02f bpatchx patch2f_5 ,mem_patch2f 
-2b02 6fe0c398 fetch 1 ,mem_le_scan_type 
-2b03 c1808000 rtnne le_scan_type_active 
-2b04 6fe08000 fetch 1 ,mem_le_adv_transmit 
-2b05 1fe0fe01 increase 1 ,pdata 
-2b06 67e08000 store 1 ,mem_le_adv_transmit 
-2b07 d8400c03 arg 0x0c03 ,temp 
-2b08 6fe0c399 fetch 1 ,mem_le_scan_own_addr_type 
-2b09 7d3a0406 nsetflag blank ,le_sender_addr_bit ,temp 
-2b0a 1a227e00 copy rega ,pdata 
-2b0b 7d3a0407 nsetflag blank ,le_receiver_addr_bit ,temp 
-2b0c 6049416b storet 2 ,mem_le_txheader 
-2b0d 6fe342dd fetch 6 ,mem_le_lap 
-2b0e e7e30005 istore 6 ,contw 
-2b0f 6fe30178 fetch 6 ,mem_le_plap 
-2b10 e7e30005 istore 6 ,contw 
-2b11 20202707 branch le_transmit_receive_sifs_without_change_mode 
-
-le_send_scan_response:
-2b12 473f402f bpatchx patch2f_6 ,mem_patch2f 
-2b13 6fe30054 fetch 6 ,mem_le_rxbuf_adv_scan_req_adv_address 
-2b14 684b42dd fetcht 6 ,mem_le_lap 
-2b15 98467c00 isub temp ,null 
-2b16 24628000 nrtn zero 
-2b17 d8400004 arg scan_rsp ,temp 
-2b18 6fe0c390 fetch 1 ,mem_le_adv_own_addr_type 
-2b19 7d3a0406 nsetflag blank ,le_sender_addr_bit ,temp 
-2b1a 6048c16b storet 1 ,mem_le_txheader 
-2b1b 6848c36c fetcht 1 ,mem_le_scan_data_len 
-2b1c 1840fe06 add temp ,6 ,pdata 
-2b1d 67e0c16c store 1 ,mem_le_txlen 
-2b1e 6fe342dd fetch 6 ,mem_le_lap 
-2b1f 67e3416d store 6 ,mem_le_txpayload 
-2b20 d8c0436d arg mem_le_scan_data ,contr 
-2b21 18427200 copy temp ,loopcnt 
-2b22 20407cce call memcpy_fast 
-2b23 2040271c call le_transmit_norx 
-2b24 20202ac4 branch le_adv_not_match 
-
-le_parse_connect_req:
-2b25 6fe30054 fetch 6 ,mem_le_rxbuf_adv_connect_ind_adv_address 
-2b26 684b42dd fetcht 6 ,mem_le_lap 
-2b27 98467c00 isub temp ,null 
-2b28 24628000 nrtn zero 
-2b29 20402846 call le_scan_check_sender_addr_type 
-2b2a 6220c2cd storer rega ,1 ,mem_le_conn_peer_addr_type 
-2b2b 6fe3004e fetch 6 ,mem_le_rxbuf_adv_connect_ind_init_address 
-2b2c 67e30178 store 6 ,mem_le_plap 
-2b2d 6fe4005a fetch 8 ,mem_le_rxbuf_adv_connect_ind_access_address 
-2b2e 67e4018c store 8 ,mem_le_access 
-2b2f 68490062 fetcht 2 ,mem_le_rxbuf_adv_connect_ind_win_offset 
-2b30 473fc02f bpatchx patch2f_7 ,mem_patch2f 
-2b31 184b8400 lshift2 temp ,temp 
-2b32 6fe10064 fetch 2 ,mem_le_rxbuf_adv_connect_ind_interval 
-2b33 1febfe00 lshift2 pdata ,pdata 
-2b34 67e1016a store 2 ,mem_le_tsniff 
-2b35 67e2016c store 4 ,mem_le_anchor 
-2b36 98467e00 isub temp ,pdata 
-2b37 1fe0d1fe add pdata ,-2 ,clke_bt 
-2b38 6fe48066 fetch 9 ,mem_le_rxbuf_adv_connect_ind_latency 
-2b39 67e48194 store 9 ,mem_le_slave_latency 
-2b3a 6fe0806f fetch 1 ,mem_le_rxbuf_adv_connect_ind_hop_and_sca 
-2b3b 1fe1041f and pdata ,0x1f ,temp 
-2b3c 60488181 storet 1 ,mem_le_hop 
-2b3d 1ff18400 rshift4 pdata ,temp 
-2b3e 18430400 rshift temp ,temp 
-2b3f 604881b8 storet 1 ,mem_le_peer_sca 
-2b40 da200168 arg mem_le_state ,rega 
-2b41 20402917 call le_receive_window_size 
-2b42 da200168 arg mem_le_state ,rega 
-2b43 204025f9 call le_calc_channel_map 
-2b44 204024fc call le_init_slave 
-2b45 20402056 call context_new 
-2b46 24628000 nrtn zero 
-2b47 47404030 bpatchx patch30_0 ,mem_patch30 
-2b48 204020f7 call calc_clke_offset 
-2b49 20402e85 call le_l2cap_reset_signaling_identifier 
-2b4a 70064d14 jam bt_evt_le_connected ,mem_fifo_temp 
-2b4b 20407819 call ui_ipc_send_event 
-2b4c 20202041 branch context_save 
-
-le_next_adv_channel:
-2b4d 4740c030 bpatchx patch30_1 ,mem_patch30 
-2b4e 6fe08007 fetch 1 ,mem_le_ch_mapped 
-2b4f c012ab5c beq 37 ,le_next_adv_channel_curr_channel_37 
-2b50 c0132b65 beq 38 ,le_next_adv_channel_curr_channel_38 
-2b51 c013ab52 beq 39 ,le_next_adv_channel_curr_channel_39 
-
-le_next_adv_channel_curr_channel_39:
-2b52 6848c397 fetcht 1 ,mem_le_adv_channel_map 
-2b53 284ffe00 isolate1 bit_adv_channel_map_37 ,temp 
-2b54 2020ab61 branch set_le_next_adv_channel_37 ,true 
-2b55 284ffe01 isolate1 bit_adv_channel_map_38 ,temp 
-2b56 2020ab6a branch set_le_next_adv_channel_38 ,true 
-
-set_le_next_adv_channel_39:
-2b57 70000727 jam 39 ,mem_le_ch_mapped 
-2b58 6fe0867f fetch 1 ,mem_le_adv_channel_map_temp 
-2b59 79207e02 set1 bit_adv_channel_map_39 ,pdata 
-
-set_le_adv_channel_map_temp:
-2b5a 67e0867f store 1 ,mem_le_adv_channel_map_temp 
-2b5b 20600000 rtn 
-
-le_next_adv_channel_curr_channel_37:
-2b5c 6848c397 fetcht 1 ,mem_le_adv_channel_map 
-2b5d 284ffe01 isolate1 bit_adv_channel_map_38 ,temp 
-2b5e 2020ab6a branch set_le_next_adv_channel_38 ,true 
-2b5f 284ffe02 isolate1 bit_adv_channel_map_39 ,temp 
-2b60 2020ab57 branch set_le_next_adv_channel_39 ,true 
-
-set_le_next_adv_channel_37:
-2b61 70000725 jam 37 ,mem_le_ch_mapped 
-2b62 6fe0867f fetch 1 ,mem_le_adv_channel_map_temp 
-2b63 79207e00 set1 bit_adv_channel_map_37 ,pdata 
-2b64 20202b5a branch set_le_adv_channel_map_temp 
-
-le_next_adv_channel_curr_channel_38:
-2b65 6848c397 fetcht 1 ,mem_le_adv_channel_map 
-2b66 284ffe02 isolate1 bit_adv_channel_map_39 ,temp 
-2b67 2020ab57 branch set_le_next_adv_channel_39 ,true 
-2b68 284ffe00 isolate1 bit_adv_channel_map_37 ,temp 
-2b69 2020ab61 branch set_le_next_adv_channel_37 ,true 
-
-set_le_next_adv_channel_38:
-2b6a 70000726 jam 38 ,mem_le_ch_mapped 
-2b6b 6fe0867f fetch 1 ,mem_le_adv_channel_map_temp 
-2b6c 79207e01 set1 bit_adv_channel_map_38 ,pdata 
-2b6d 20202b5a branch set_le_adv_channel_map_temp 
-
-le_parse_att:
-2b6e 18c22200 copy contr ,rega 
-2b6f 6fe0c3cf fetch 1 ,mem_device_option 
-2b70 c0036558 beq dvc_op_shutter_dy ,shutter_dy_le_parse_att 
-2b71 c007c90b beq dvc_op_keyboard ,keyboard_le_parse_att 
-2b72 c0045469 beq dvc_op_mouse ,mouse_le_parse_att 
-2b73 1a220c00 copy rega ,contr 
-2b74 efe18006 ifetch 3 ,contr 
-2b75 67e1c39b store 3 ,mem_le_att_opcode 
-
-le_parse_att2:
-2b76 c0012b8b beq attop_exchange_mtu_request ,le_parse_att_exchange_mtu_request 
-2b77 c001ab90 beq attop_exchange_mtu_response ,le_parse_att_exchange_mtu_response 
-2b78 c0022b93 beq attop_find_information_request ,le_parse_att_find_information_request 
-2b79 c0032bd5 beq attop_find_by_type_value_request ,le_parse_att_find_by_type_value_request 
-2b7a c0042c22 beq attop_read_by_type_request ,le_parse_att_read_by_type_request 
-2b7b c0052cf7 beq attop_read_request ,le_parse_att_read_request 
-2b7c c0062d2a beq attop_read_blob_request ,le_parse_att_read_blob_request 
-2b7d c0082d41 beq attop_read_by_group_type_request ,le_parse_att_read_by_group_type_request 
-2b7e c0092d86 beq attop_write_request ,le_parse_att_write_request 
-2b7f c00b2dac beq attop_prepare_write_request ,le_parse_att_prepare_write_request 
-2b80 c00c2dbf beq attop_execute_write_request ,le_parse_att_execute_write_request 
-2b81 c00f2dc4 beq attop_handle_value_confirmation ,le_parse_handle_value_confirmation 
-2b82 c0292dc8 beq attop_write_command ,le_parse_att_write_command 
-2b83 20600000 rtn 
-
-le_send_att_exchange_mtu_requset:
-2b84 18002203 force 3 ,rega 
-2b85 20402dee call le_fifo_malloc_tx_l2cap_gatt 
-2b86 58000002 setarg attop_exchange_mtu_request 
-
-le_send_att_exchange_mtu_common:
-2b87 e7e08005 istore 1 ,contw 
-2b88 6fe142e3 fetch 2 ,mem_le_local_mtu 
-2b89 e7e10005 istore 2 ,contw 
-2b8a 20600000 rtn 
-
-le_parse_att_exchange_mtu_request:
-2b8b 20402b90 call le_parse_att_exchange_mtu_response 
-
-le_send_att_exchange_mtu_response:
-2b8c 18002203 force 3 ,rega 
-2b8d 20402dee call le_fifo_malloc_tx_l2cap_gatt 
-2b8e 58000003 setarg attop_exchange_mtu_response 
-2b8f 20202b87 branch le_send_att_exchange_mtu_common 
-
-le_parse_att_exchange_mtu_response:
-2b90 1fecfe00 rshift8 pdata ,pdata 
-2b91 67e142e5 store 2 ,mem_le_remote_mtu 
-2b92 20600000 rtn 
-
-le_parse_att_find_information_request:
-2b93 20402e1f call le_get_search_handle_start_end_common 
-2b94 20407dbc call enable_user 
-2b95 20202ba1 branch le_send_att_find_information_response 
-
-le_att_handle_inrange:
-2b96 efe10006 ifetch 2 ,contr 
-2b97 1fe17eff and_into 0xff ,pdata 
-2b98 207a0000 rtn blank 
-2b99 9a467c00 isub regb ,null 
-2b9a 20628000 rtn zero 
-2b9b 24610000 nrtn positive 
-2b9c 9a667c00 isub regc ,null 
-2b9d 20628000 rtn zero 
-2b9e 20217dcc branch enable_blank ,positive 
-2b9f 18007c01 force 1 ,null 
-2ba0 20600000 rtn 
-
-le_send_att_find_information_response:
-2ba1 d9600003 arg 3 ,timeup 
-2ba2 20402ca5 call le_init_attlist_search 
-
-le_send_att_find_information_res_loop:
-2ba3 20402b96 call le_att_handle_inrange 
-2ba4 203a2bd3 branch le_send_att_find_information_res_end ,blank 
-2ba5 24212bd1 nbranch le_send_att_find_information_res_next ,positive 
-2ba6 18c08dfe increase -2 ,contr 
-2ba7 20407c6f call store_contr 
-2ba8 20407c66 call get_contw 
-2ba9 24342bc1 nbranch le_send_att_find_information_res_store_info2 ,user 
-2baa 20407c53 call push_stack_rega_b_c 
-2bab 6162065e storer timeup ,4 ,mem_timeup 
-2bac 1800221e force 30 ,rega 
-2bad 20402dee call le_fifo_malloc_tx_l2cap_gatt 
-2bae 6962065e fetchr timeup ,4 ,mem_timeup 
-2baf 20407c62 call pop_stack_rega_b_c 
-2bb0 20407dbe call disable_user 
-2bb1 58000005 setarg attop_find_information_response 
-2bb2 e7e08005 istore 1 ,contw 
-2bb3 20407c69 call get_contr 
-2bb4 efe10006 ifetch 2 ,contr 
-2bb5 ea208006 ifetchr rega ,1 ,contr 
-2bb6 1a267c10 sub rega ,16 ,null 
-2bb7 2022abbd branch le_send_att_find_information_res_uuid128 ,zero 
-2bb8 1a267c02 sub rega ,2 ,null 
-2bb9 2422ade1 nbranch le_send_att_error_response_notfound ,zero 
-
-le_send_att_find_information_res_uuid16:
-2bba 58000001 setarg uuid_size_16bit 
-2bbb e7e08005 istore 1 ,contw 
-2bbc 20202bc6 branch le_send_att_find_information_res_store_info 
-
-le_send_att_find_information_res_uuid128:
-2bbd 58000002 setarg uuid_size_128bit 
-2bbe e7e08005 istore 1 ,contw 
-2bbf d9600001 arg 1 ,timeup 
-2bc0 20202bc6 branch le_send_att_find_information_res_store_info 
-
-le_send_att_find_information_res_store_info2:
-2bc1 20407c69 call get_contr 
-2bc2 efe10006 ifetch 2 ,contr 
-2bc3 efe08006 ifetch 1 ,contr 
-2bc4 9a267c00 isub rega ,null 
-2bc5 2422abd3 nbranch le_send_att_find_information_res_end ,zero 
-
-le_send_att_find_information_res_store_info:
-2bc6 20407c69 call get_contr 
-2bc7 efe10006 ifetch 2 ,contr 
-2bc8 1fe17eff and_into 0xff ,pdata 
-2bc9 e7e10005 istore 2 ,contw 
-2bca ef208006 ifetchr loopcnt ,1 ,contr 
-2bcb 20407cdc call memcpy 
-2bcc 20407c6c call store_contw 
-2bcd 196097ff increase -1 ,timeup 
-2bce 2022abd3 branch le_send_att_find_information_res_end ,zero 
-
-le_send_att_find_information_res_cont:
-2bcf 20402cbb call le_att_contr_add_len 
-2bd0 20202ba3 branch le_send_att_find_information_res_loop 
-
-le_send_att_find_information_res_next:
-2bd1 20402cbb call le_att_contr_add_len 
-2bd2 20202bcf branch le_send_att_find_information_res_cont 
-
-le_send_att_find_information_res_end:
-2bd3 20342de1 branch le_send_att_error_response_notfound ,user 
-2bd4 20202e12 branch le_send_auto_len_by_mem 
-
-le_parse_att_find_by_type_value_request:
-2bd5 20402e1f call le_get_search_handle_start_end_common 
-2bd6 efe10006 ifetch 2 ,contr 
-2bd7 67e143a2 store 2 ,mem_le_search_uuid 
-2bd8 20407c6f call store_contr 
-2bd9 d8a00693 arg mem_le_search_att_type_length ,contw 
-2bda 6fe14337 fetch 2 ,mem_le_l2cap_size 
-2bdb 1fe0fff9 increase -7 ,pdata 
-2bdc 20402e2d call le_get_search_common2 
-2bdd 20202be8 branch le_send_att_find_by_type_value_response 
-
-le_start_end_handle_check_1:
-2bde 78547c00 disable user 
-2bdf 6849068f fetcht 2 ,mem_le_search_handle_start 
-2be0 6fe10691 fetch 2 ,mem_le_search_handle_end 
-2be1 98467c00 isub temp ,null 
-2be2 24212be5 nbranch le_start_end_handle_check_1_fail ,positive 
-2be3 18427e00 deposit temp 
-2be4 c1800000 rtnne 0 
-
-le_start_end_handle_check_1_fail:
-2be5 78347c00 enable user 
-2be6 7001b901 jam att_err_invalid_handle ,mem_le_err_code 
-2be7 20202de3 branch le_send_att_error_response 
-
-le_send_att_find_by_type_value_response:
-2be8 20402bde call le_start_end_handle_check_1 
-2be9 20740000 rtn user 
-2bea 684943a2 fetcht 2 ,mem_le_search_uuid 
-2beb 58002800 setarg uuid_gatt_primary_service 
-2bec 98467c00 isub temp ,null 
-2bed 2022abef branch le_send_att_find_by_type_value_res_primary ,zero 
-2bee 20202de1 branch le_send_att_error_response_notfound 
-
-le_send_att_find_by_type_value_res_primary:
-2bef 70439e00 jam le_find_by_type_val_res_not_found ,mem_le_search_res 
-2bf0 6849068f fetcht 2 ,mem_le_search_handle_start 
-2bf1 60490656 storet 2 ,mem_temp 
-2bf2 20402ce2 call le_att_get_handle_info 
-2bf3 243a2de1 nbranch le_send_att_error_response_notfound ,blank 
-
-le_send_att_find_primary_search_loop:
-2bf4 68490656 fetcht 2 ,mem_temp 
-2bf5 20402ce2 call le_att_get_handle_info 
-2bf6 243a2c08 nbranch le_send_att_error_response_notfound2 ,blank 
-2bf7 18c22200 copy contr ,rega 
-2bf8 6fe086a4 fetch 1 ,mem_le_curr_att_len 
-2bf9 1fe27200 copy pdata ,loopcnt 
-2bfa 68488693 fetcht 1 ,mem_le_search_att_type_length 
-2bfb 98467c00 isub temp ,null 
-2bfc 2422ac04 nbranch le_send_att_find_primary_search_loop1 ,zero 
-2bfd da400694 arg mem_le_search_att_type ,regb 
-2bfe 20407d66 call string_compare 
-2bff 2022ac0b branch le_send_att_find_primary_search_end_start_handle_found ,zero 
-2c00 6fe106ac fetch 2 ,mem_le_cur_uuid 
-2c01 684943a2 fetcht 2 ,mem_le_search_uuid 
-2c02 98467c00 isub temp ,null 
-2c03 2022ac13 branch le_send_att_find_primary_search_end_ending_handle_found ,zero 
-
-le_send_att_find_primary_search_loop1:
-2c04 6fe10656 fetch 2 ,mem_temp 
-2c05 1fe0fe01 increase 1 ,pdata 
-2c06 67e10656 store 2 ,mem_temp 
-2c07 20202bf4 branch le_send_att_find_primary_search_loop 
-
-le_send_att_error_response_notfound2:
-2c08 6fe0c39e fetch 1 ,mem_le_search_res 
-2c09 c000ac13 beq le_find_by_type_val_res_found_starting_handle ,le_send_att_find_primary_search_end_ending_handle_found 
-2c0a 20202de1 branch le_send_att_error_response_notfound 
-
-le_send_att_find_primary_search_end_start_handle_found:
-2c0b 6fe106ac fetch 2 ,mem_le_cur_uuid 
-2c0c 684943a2 fetcht 2 ,mem_le_search_uuid 
-2c0d 98467c00 isub temp ,null 
-2c0e 2422ac04 nbranch le_send_att_find_primary_search_loop1 ,zero 
-2c0f 70439e01 jam le_find_by_type_val_res_found_starting_handle ,mem_le_search_res 
-2c10 68490656 fetcht 2 ,mem_temp 
-2c11 604906a7 storet 2 ,mem_le_cur_handle_start 
-2c12 20202c04 branch le_send_att_find_primary_search_loop1 
-
-le_send_att_find_primary_search_end_ending_handle_found:
-2c13 6fe0c39e fetch 1 ,mem_le_search_res 
-2c14 c0002c04 beq le_find_by_type_val_res_not_found ,le_send_att_find_primary_search_loop1 
-2c15 70439e02 jam le_find_by_type_val_res_found_ending_handle ,mem_le_search_res 
-2c16 68490656 fetcht 2 ,mem_temp 
-2c17 184085ff increase -1 ,temp 
-2c18 604906a9 storet 2 ,mem_le_cur_handle_end 
-
-le_send_att_find_primary_search_end:
-2c19 da200005 arg 5 ,rega 
-2c1a 20402dee call le_fifo_malloc_tx_l2cap_gatt 
-2c1b 58000007 setarg attop_find_by_type_value_response 
-2c1c e7e08005 istore 1 ,contw 
-2c1d 6fe106a7 fetch 2 ,mem_le_cur_handle_start 
-2c1e e7e10005 istore 2 ,contw 
-2c1f 6fe106a9 fetch 2 ,mem_le_cur_handle_end 
-2c20 e7e10005 istore 2 ,contw 
-2c21 20600000 rtn 
-
-le_parse_att_read_by_type_request:
-2c22 20402e1f call le_get_search_handle_start_end_common 
-2c23 20402e28 call le_get_search_att_type 
-2c24 20202c25 branch le_send_att_read_by_type_response 
-
-le_send_att_read_by_type_response:
-2c25 6849068f fetcht 2 ,mem_le_search_handle_start 
-2c26 60490656 storet 2 ,mem_temp 
-2c27 20402ca5 call le_init_attlist_search 
-2c28 20402cb0 call le_att_get_handle_ptr2 
-2c29 18c08dfe increase -2 ,contr 
-2c2a 18c27e00 copy contr ,pdata 
-2c2b 67e106a5 store 2 ,mem_le_cur_attlist_start_ptr 
-2c2c 68490694 fetcht 2 ,mem_le_search_att_type 
-2c2d 58002a00 setarg uuid_chrctr_device_name 
-2c2e 98467c00 isub temp ,null 
-2c2f 2022ac90 branch le_send_att_read_by_type_res_device_name ,zero 
-2c30 58002803 setarg uuid_gatt_characteristic 
-2c31 98467c00 isub temp ,null 
-2c32 2422ac7a nbranch le_send_att_read_by_type_res_not_characteristic ,zero 
-2c33 d9600002 arg 2 ,timeup 
-
-le_send_att_read_by_type_response_loop:
-2c34 20402df5 call le_att_check_handle_end 
-2c35 24212c57 nbranch le_send_att_read_by_type_response_end ,positive 
-2c36 68490656 fetcht 2 ,mem_temp 
-2c37 20402ce0 call le_att_get_handle_info_from_ptr 
-2c38 243a2c57 nbranch le_send_att_read_by_type_response_end ,blank 
-2c39 20402df9 call le_att_same_type 
-2c3a 2422ac55 nbranch le_send_att_read_by_type_response_next_handle ,zero 
-2c3b 24342c59 nbranch le_send_att_read_by_type_res_found_next ,user 
-2c3c 78547c00 disable user 
-2c3d 20402e24 call le_get_search_max_mtu_data 
-2c3e 1fe22200 copy pdata ,rega 
-2c3f 20402dee call le_fifo_malloc_tx_l2cap_gatt 
-2c40 58000009 setarg attop_read_by_type_response 
-2c41 e7e08005 istore 1 ,contw 
-2c42 18a26000 copy contw ,alarm 
-2c43 18a08a01 increase 1 ,contw 
-2c44 20402c67 call le_send_att_read_by_type_write_properties 
-2c45 20402df1 call le_att_next_handle 
-2c46 20402ce0 call le_att_get_handle_info_from_ptr 
-2c47 20402c6e call le_send_att_read_by_type_write_uuid 
-2c48 6fe086ab fetch 1 ,mem_le_cur_uuid_length 
-2c49 1fe0a205 add pdata ,5 ,rega 
-2c4a e2208030 istorer rega ,1 ,alarm 
-2c4b 1a267c07 sub rega ,7 ,null 
-2c4c 2442fdc0 ncall enable_user2 ,zero 
-2c4d 2042fdc2 call disable_user2 ,zero 
-2c4e 20402e24 call le_get_search_max_mtu_data 
-2c4f 1fe0fffe increase -2 ,pdata 
-2c50 9a26fc00 idiv rega 
-2c51 20407d64 call wait_div_end 
-2c52 18079600 quotient timeup 
-2c53 196097ff increase -1 ,timeup 
-2c54 2022ac57 branch le_send_att_read_by_type_response_end ,zero 
-
-le_send_att_read_by_type_response_next_handle:
-2c55 20402df1 call le_att_next_handle 
-2c56 20202c34 branch le_send_att_read_by_type_response_loop 
-
-le_send_att_read_by_type_response_end:
-2c57 20342de1 branch le_send_att_error_response_notfound ,user 
-2c58 20202e12 branch le_send_auto_len_by_mem 
-
-le_send_att_read_by_type_res_found_next:
-2c59 20402e02 call le_store_att_record 
-2c5a 20402df1 call le_att_next_handle 
-2c5b 20402ce0 call le_att_get_handle_info_from_ptr 
-2c5c 20402d74 call le_send_att_read_by_type_res_check_pair_length_type 
-2c5d 243a2c57 nbranch le_send_att_read_by_type_response_end ,blank 
-2c5e 20407c66 call get_contw 
-2c5f 6fe10656 fetch 2 ,mem_temp 
-2c60 1fe0ffff increase -1 ,pdata 
-2c61 e7e10005 istore 2 ,contw 
-2c62 20402e0e call le_write_att_record_common 
-2c63 20402c6e call le_send_att_read_by_type_write_uuid 
-2c64 196097ff increase -1 ,timeup 
-2c65 2022ac57 branch le_send_att_read_by_type_response_end ,zero 
-2c66 20202c55 branch le_send_att_read_by_type_response_next_handle 
-
-le_send_att_read_by_type_write_properties:
-2c67 6fe10656 fetch 2 ,mem_temp 
-2c68 e7e10005 istore 2 ,contw 
-2c69 6fe086a4 fetch 1 ,mem_le_curr_att_len 
-2c6a 1fe27200 copy pdata ,loopcnt 
-2c6b 20407c69 call get_contr 
-2c6c 20407cce call memcpy_fast 
-2c6d 20207c6c branch store_contw 
-
-le_send_att_read_by_type_write_uuid:
-2c6e 20407c66 call get_contw 
-2c6f 6fe10656 fetch 2 ,mem_temp 
-2c70 e7e10005 istore 2 ,contw 
-2c71 20407c6c call store_contw 
-2c72 6fe086ab fetch 1 ,mem_le_cur_uuid_length 
-2c73 1fe27200 copy pdata ,loopcnt 
-2c74 20407c66 call get_contw 
-2c75 20407c69 call get_contr 
-2c76 9f260c00 isub loopcnt ,contr 
-2c77 18c08dff increase -1 ,contr 
-2c78 20407cce call memcpy_fast 
-2c79 20207c6c branch store_contw 
-
-le_send_att_read_by_type_res_not_characteristic:
-2c7a 47414030 bpatchx patch30_2 ,mem_patch30 
-2c7b 20402cbe call le_att_get_uuid_ptr 
-2c7c 203a2de1 branch le_send_att_error_response_notfound ,blank 
-2c7d 18c22600 copy contr ,regc 
-2c7e 20402e24 call le_get_search_max_mtu_data 
-2c7f 1a620c00 copy regc ,contr 
-2c80 e8408006 ifetcht 1 ,contr 
-2c81 18408404 increase 4 ,temp 
-2c82 20407db2 call not_greater_than 
-2c83 1fe22600 copy pdata ,regc 
-2c84 1fe22200 copy pdata ,rega 
-2c85 20407c6f call store_contr 
-2c86 20402dee call le_fifo_malloc_tx_l2cap_gatt 
-2c87 58000009 setarg attop_read_by_type_response 
-2c88 e7e08005 istore 1 ,contw 
-2c89 1a60fffe add regc ,-2 ,pdata 
-2c8a 1fe0f3fe add pdata ,-2 ,loopcnt 
-2c8b e7e08005 istore 1 ,contw 
-2c8c 6fe106bc fetch 2 ,mem_le_cur_handle 
-2c8d e7e10005 istore 2 ,contw 
-2c8e 20407c69 call get_contr 
-2c8f 20207cce branch memcpy_fast 
-
-le_send_att_read_by_type_res_device_name:
-2c90 20402cbe call le_att_get_uuid_ptr 
-2c91 203a2de1 branch le_send_att_error_response_notfound ,blank 
-2c92 18c08dfb increase -5 ,contr 
-2c93 efe10006 ifetch 2 ,contr 
-2c94 67e10656 store 2 ,mem_temp 
-2c95 20402e24 call le_get_search_max_mtu_data 
-2c96 6848c26d fetcht 1 ,mem_le_name_len 
-2c97 18408404 increase 4 ,temp 
-2c98 20407db2 call not_greater_than 
-2c99 1fe22600 copy pdata ,regc 
-2c9a 1fe22200 copy pdata ,rega 
-2c9b 20402dee call le_fifo_malloc_tx_l2cap_gatt 
-2c9c 58000009 setarg attop_read_by_type_response 
-2c9d e7e08005 istore 1 ,contw 
-2c9e 1a60fffe add regc ,-2 ,pdata 
-2c9f 1fe0f3fe add pdata ,-2 ,loopcnt 
-2ca0 e7e08005 istore 1 ,contw 
-2ca1 6fe10656 fetch 2 ,mem_temp 
-2ca2 e7e10005 istore 2 ,contw 
-2ca3 d8c0426e arg mem_le_name ,contr 
-2ca4 20207cce branch memcpy_fast 
-
-le_init_attlist_search:
-2ca5 4741c030 bpatchx patch30_3 ,mem_patch30 
-2ca6 6fe1068f fetch 2 ,mem_le_search_handle_start 
-2ca7 98002400 iforce regb 
-2ca8 6fe10691 fetch 2 ,mem_le_search_handle_end 
-2ca9 98002600 iforce regc 
-2caa 6fe142f9 fetch 2 ,mem_ui_le_uuid_table 
-2cab 98000c00 iforce contr 
-2cac 20207dbc branch enable_user 
-
-le_att_get_handle_ptr:
-2cad 20402cb0 call le_att_get_handle_ptr2 
-2cae 2022acbb branch le_att_get_handle_ptr_found ,zero 
-2caf 20600000 rtn 
-
-le_att_get_handle_ptr2:
-2cb0 47424030 bpatchx patch30_4 ,mem_patch30 
-2cb1 6fe142f9 fetch 2 ,mem_ui_le_uuid_table 
-2cb2 98000c00 iforce contr 
-
-le_att_get_handle_loop1:
-2cb3 efe10006 ifetch 2 ,contr 
-2cb4 1fe17eff and_into 0xff ,pdata 
-2cb5 207a0000 rtn blank 
-2cb6 98467c00 isub temp ,null 
-2cb7 20628000 rtn zero 
-2cb8 20402cbb call le_att_contr_add_len 
-2cb9 20402cbb call le_att_contr_add_len 
-2cba 20202cb3 branch le_att_get_handle_loop1 
-
-le_att_get_handle_ptr_found:
-
-le_att_contr_add_len:
-2cbb efe08006 ifetch 1 ,contr 
-2cbc 98c08c00 iadd contr ,contr 
-2cbd 20600000 rtn 
-
-le_att_get_uuid_ptr:
-2cbe 4742c030 bpatchx patch30_5 ,mem_patch30 
-2cbf 6fe142f9 fetch 2 ,mem_ui_le_uuid_table 
-2cc0 98000c00 iforce contr 
-
-le_att_get_uuid_loop:
-2cc1 efe10006 ifetch 2 ,contr 
-2cc2 1fe17eff and_into 0xff ,pdata 
-2cc3 207a0000 rtn blank 
-2cc4 67e106bc store 2 ,mem_le_cur_handle 
-2cc5 efe08006 ifetch 1 ,contr 
-2cc6 18c20a00 copy contr ,contw 
-2cc7 98c08c00 iadd contr ,contr 
-2cc8 68488693 fetcht 1 ,mem_le_search_att_type_length 
-2cc9 98467c00 isub temp ,null 
-2cca 2422acd1 nbranch le_att_get_uuid_ptr_next ,zero 
-2ccb 1fe27200 copy pdata ,loopcnt 
-2ccc 18a22400 copy contw ,regb 
-2ccd da200694 arg mem_le_search_att_type ,rega 
-2cce 20407d66 call string_compare 
-2ccf 20628000 rtn zero 
-2cd0 6fe08693 fetch 1 ,mem_le_search_att_type_length 
-
-le_att_get_uuid_ptr_next:
-2cd1 98a08c00 iadd contw ,contr 
-2cd2 20402cbb call le_att_contr_add_len 
-2cd3 20202cc1 branch le_att_get_uuid_loop 
-
-le_att_get_last_handle:
-2cd4 d8400001 arg 0x01 ,temp 
-2cd5 6fe142f9 fetch 2 ,mem_ui_le_uuid_table 
-2cd6 98000c00 iforce contr 
-2cd7 18c20a00 copy contr ,contw 
-
-le_att_get_last_handle_loop:
-2cd8 efe10006 ifetch 2 ,contr 
-2cd9 1fe17eff and_into 0xff ,pdata 
-2cda 207a0000 rtn blank 
-2cdb 1fe08401 add pdata ,1 ,temp 
-2cdc 20402cbb call le_att_contr_add_len 
-2cdd 20402cbb call le_att_contr_add_len 
-2cde 18c20a00 copy contr ,contw 
-2cdf 20202cd8 branch le_att_get_last_handle_loop 
-
-le_att_get_handle_info_from_ptr:
-2ce0 6fe106a5 fetch 2 ,mem_le_cur_attlist_start_ptr 
-2ce1 20202ce4 branch le_att_get_handle_info_fast 
-
-le_att_get_handle_info:
-2ce2 47434030 bpatchx patch30_6 ,mem_patch30 
-2ce3 6fe142f9 fetch 2 ,mem_ui_le_uuid_table 
-
-le_att_get_handle_info_fast:
-2ce4 98000c00 iforce contr 
-
-le_att_get_handle_loop:
-2ce5 efe10006 ifetch 2 ,contr 
-2ce6 1fe17eff and_into 0xff ,pdata 
-2ce7 203a2ced branch le_att_unfind_handle ,blank 
-2ce8 98467c00 isub temp ,null 
-2ce9 2022acee branch le_att_finded_handle ,zero 
-2cea 20402cbb call le_att_contr_add_len 
-2ceb 20402cbb call le_att_contr_add_len 
-2cec 20202ce5 branch le_att_get_handle_loop 
-
-le_att_unfind_handle:
-2ced 20207dca branch disable_blank 
-
-le_att_finded_handle:
-2cee efe08006 ifetch 1 ,contr 
-2cef 67e086ab store 1 ,mem_le_cur_uuid_length 
-2cf0 1fe27200 copy pdata ,loopcnt 
-2cf1 d8a006ac arg mem_le_cur_uuid ,contw 
-2cf2 20407cce call memcpy_fast 
-2cf3 efe08006 ifetch 1 ,contr 
-2cf4 67e086a4 store 1 ,mem_le_curr_att_len 
-2cf5 20407c6f call store_contr 
-2cf6 20207dcc branch enable_blank 
-
-le_parse_att_read_request:
-2cf7 20402da5 call le_check_encrypt_state 
-2cf8 6849439c fetcht 2 ,mem_le_att_handle 
-2cf9 6fe0c323 fetch 1 ,mem_le_configuration 
-2cfa c281ad20 bbit1 bit_ble_read_auth ,le_send_att_read_response_check_auth 
-
-le_send_att_read_response:
-2cfb 20402cb0 call le_att_get_handle_ptr2 
-2cfc 2422ade1 nbranch le_send_att_error_response_notfound ,zero 
-2cfd 20542d26 call le_send_att_read_response_check_handle ,user 
-2cfe 20740000 rtn user 
-2cff 20402cbb call le_att_get_handle_ptr_found 
-2d00 18c08dfe increase -2 ,contr 
-2d01 efe10006 ifetch 2 ,contr 
-2d02 d8402a00 arg uuid_chrctr_device_name ,temp 
-2d03 98467c00 isub temp ,null 
-2d04 2022ad14 branch le_send_device_name ,zero 
-
-le_send_att_read_response_next:
-2d05 18c22600 copy contr ,regc 
-2d06 20402e24 call le_get_search_max_mtu_data 
-2d07 1a620c00 copy regc ,contr 
-2d08 e8408006 ifetcht 1 ,contr 
-2d09 18408401 increase 1 ,temp 
-2d0a 20407db2 call not_greater_than 
-
-le_send_att_read_response_less:
-2d0b 1fe22600 copy pdata ,regc 
-2d0c 1fe22200 copy pdata ,rega 
-2d0d 20407c6f call store_contr 
-2d0e 20402dee call le_fifo_malloc_tx_l2cap_gatt 
-2d0f 5800000b setarg attop_read_response 
-2d10 e7e08005 istore 1 ,contw 
-2d11 1a60f3ff add regc ,-1 ,loopcnt 
-2d12 20407c69 call get_contr 
-2d13 20207cdc branch memcpy 
-
-le_send_device_name:
-2d14 20402e24 call le_get_search_max_mtu_data 
-2d15 6848c26d fetcht 1 ,mem_le_name_len 
-2d16 18408401 increase 1 ,temp 
-2d17 20407db2 call not_greater_than 
-2d18 1fe22600 copy pdata ,regc 
-2d19 1fe22200 copy pdata ,rega 
-2d1a 20402dee call le_fifo_malloc_tx_l2cap_gatt 
-2d1b 5800000b setarg attop_read_response 
-2d1c e7e08005 istore 1 ,contw 
-2d1d 1a60f3ff add regc ,-1 ,loopcnt 
-2d1e d8c0426e arg mem_le_name ,contr 
-2d1f 20207cdc branch memcpy 
-
-le_send_att_read_response_check_auth:
-2d20 6fe14334 fetch 2 ,mem_le_pairing_handle 
-2d21 98467c00 isub temp ,null 
-2d22 2422acfb nbranch le_send_att_read_response ,zero 
-2d23 24342cfb nbranch le_send_att_read_response ,user 
-
-le_send_att_read_response_error_insufficient_auth:
-2d24 7001b905 jam att_err_insufficient_authentication ,mem_le_err_code 
-2d25 20202de3 branch le_send_att_error_response 
-
-le_send_att_read_response_check_handle:
-2d26 18c08dfe increase -2 ,contr 
-2d27 efe10006 ifetch 2 ,contr 
-2d28 c2872d24 bbit1 bit_of_att_handle_read_authenticated ,le_send_att_read_response_error_insufficient_auth 
-2d29 20207dbe branch disable_user 
-
-le_parse_att_read_blob_request:
-2d2a efe10006 ifetch 2 ,contr 
-2d2b 67e10693 store 2 ,mem_le_att_offset 
-2d2c 98002200 iforce rega 
-2d2d 6849439c fetcht 2 ,mem_le_att_handle 
-
-le_send_att_read_blob_response:
-2d2e 20402cad call le_att_get_handle_ptr 
-2d2f 203a2de1 branch le_send_att_error_response_notfound ,blank 
-2d30 efe08006 ifetch 1 ,contr 
-2d31 9a267200 isub rega ,loopcnt 
-2d32 24212de1 nbranch le_send_att_error_response_notfound ,positive 
-2d33 20407c6f call store_contr 
-2d34 20402e24 call le_get_search_max_mtu_data 
-2d35 1f208401 add loopcnt ,1 ,temp 
-2d36 20407db2 call not_greater_than 
-
-le_send_att_read_blob_response_less:
-2d37 1fe22200 copy pdata ,rega 
-2d38 1fe22600 copy pdata ,regc 
-2d39 20402dee call le_fifo_malloc_tx_l2cap_gatt 
-2d3a 5800000d setarg attop_read_blob_response 
-2d3b e7e08005 istore 1 ,contw 
-2d3c 1a60f3ff add regc ,-1 ,loopcnt 
-2d3d 68490693 fetcht 2 ,mem_le_att_offset 
-2d3e 20407c69 call get_contr 
-2d3f 98408c00 iadd temp ,contr 
-2d40 20207cce branch memcpy_fast 
-
-le_parse_att_read_by_group_type_request:
-2d41 20402e1f call le_get_search_handle_start_end_common 
-2d42 20402e28 call le_get_search_att_type 
-2d43 20202d44 branch le_send_att_read_by_group_type_response 
-
-le_send_att_read_by_group_type_response:
-2d44 d9600002 arg 2 ,timeup 
-2d45 6849068f fetcht 2 ,mem_le_search_handle_start 
-2d46 60490656 storet 2 ,mem_temp 
-2d47 20402cb0 call le_att_get_handle_ptr2 
-2d48 18c08dfe increase -2 ,contr 
-2d49 18c27e00 copy contr ,pdata 
-2d4a 67e106a5 store 2 ,mem_le_cur_attlist_start_ptr 
-
-le_send_att_read_by_group_type_response_loop:
-2d4b 20402df5 call le_att_check_handle_end 
-2d4c 24212d7c nbranch le_send_att_read_by_group_type_end0 ,positive 
-2d4d 68490656 fetcht 2 ,mem_temp 
-2d4e 20402ce0 call le_att_get_handle_info_from_ptr 
-2d4f 243a2d7f nbranch le_send_att_read_by_group_type_end1 ,blank 
-2d50 20402df9 call le_att_same_type 
-2d51 2422ad72 nbranch le_send_att_read_by_group_type_next_handle ,zero 
-2d52 19627e00 copy timeup ,pdata 
-2d53 c0002d7f beq 0 ,le_send_att_read_by_group_type_end1 
-2d54 24342d68 nbranch le_send_att_read_by_group_type_store_write_record ,user 
-2d55 78547c00 disable user 
-2d56 20402e24 call le_get_search_max_mtu_data 
-2d57 1fe22200 copy pdata ,rega 
-2d58 20402dee call le_fifo_malloc_tx_l2cap_gatt 
-2d59 58000011 setarg attop_read_by_group_type_response 
-2d5a e7e08005 istore 1 ,contw 
-2d5b 6fe086a4 fetch 1 ,mem_le_curr_att_len 
-2d5c 1fe0a204 add pdata ,4 ,rega 
-2d5d e2208005 istorer rega ,1 ,contw 
-2d5e 20407c6c call store_contw 
-2d5f 1a267c06 sub rega ,6 ,null 
-2d60 2442fdc0 ncall enable_user2 ,zero 
-2d61 2042fdc2 call disable_user2 ,zero 
-2d62 20402e24 call le_get_search_max_mtu_data 
-2d63 1fe0fffe increase -2 ,pdata 
-2d64 9a26fc00 idiv rega 
-2d65 20407d64 call wait_div_end 
-2d66 18079600 quotient timeup 
-2d67 20202d6e branch le_send_att_read_by_group_type_store_record 
-
-le_send_att_read_by_group_type_store_write_record:
-2d68 20402d76 call le_send_att_read_by_group_type_check_pair_length_type 
-2d69 243a2d7f nbranch le_send_att_read_by_group_type_end1 ,blank 
-2d6a 6fe10656 fetch 2 ,mem_temp 
-2d6b 1fe0ffff increase -1 ,pdata 
-2d6c 67e106a9 store 2 ,mem_le_cur_handle_end 
-2d6d 20402e08 call le_write_att_record 
-
-le_send_att_read_by_group_type_store_record:
-2d6e 6fe10656 fetch 2 ,mem_temp 
-2d6f 67e106a7 store 2 ,mem_le_cur_handle_start 
-2d70 20402e02 call le_store_att_record 
-2d71 196097ff increase -1 ,timeup 
-
-le_send_att_read_by_group_type_next_handle:
-2d72 20402df1 call le_att_next_handle 
-2d73 20202d4b branch le_send_att_read_by_group_type_response_loop 
-
-le_send_att_read_by_type_res_check_pair_length_type:
-2d74 6fe086ab fetch 1 ,mem_le_cur_uuid_length 
-2d75 20202d77 branch le_send_att_read_by_group_type_check_pair_length_type + 1 
-
-le_send_att_read_by_group_type_check_pair_length_type:
-2d76 6fe086a4 fetch 1 ,mem_le_curr_att_len 
-2d77 20362d7a branch le_send_att_read_by_group_type_check_pair_length_type_16byte ,user2 
-2d78 1fe0fffe increase -2 ,pdata 
-2d79 20600000 rtn 
-
-le_send_att_read_by_group_type_check_pair_length_type_16byte:
-2d7a 1fe0fff0 increase -16 ,pdata 
-2d7b 20600000 rtn 
-
-le_send_att_read_by_group_type_end0:
-2d7c 6fe10656 fetch 2 ,mem_temp 
-2d7d 67e106a9 store 2 ,mem_le_cur_handle_end 
-2d7e 20202d83 branch le_send_att_read_by_group_type_end_common 
-
-le_send_att_read_by_group_type_end1:
-2d7f 6fe10656 fetch 2 ,mem_temp 
-2d80 1fe0ffff increase -1 ,pdata 
-2d81 67e106a9 store 2 ,mem_le_cur_handle_end 
-2d82 20202d83 branch le_send_att_read_by_group_type_end_common 
-
-le_send_att_read_by_group_type_end_common:
-2d83 20342de1 branch le_send_att_error_response_notfound ,user 
-2d84 20402e08 call le_write_att_record 
-2d85 20202e12 branch le_send_auto_len_by_mem 
-
-le_parse_att_write_request:
-2d86 18c22200 copy contr ,rega 
-2d87 6fe14337 fetch 2 ,mem_le_l2cap_size 
-2d88 1fe0a5fd add pdata ,-3 ,regb 
-2d89 20402908 call le_writeatt_cb 
-
-le_send_att_write_response_check_auth:
-2d8a 4743c030 bpatchx patch30_7 ,mem_patch30 
-2d8b 20402da5 call le_check_encrypt_state 
-2d8c 6849439c fetcht 2 ,mem_le_att_handle 
-2d8d 20402cb0 call le_att_get_handle_ptr2 
-2d8e 2422ada3 nbranch le_send_att_write_response_error_invalid_handle ,zero 
-2d8f 20542d9f call le_send_att_write_response_check_handle ,user 
-2d90 20740000 rtn user 
-2d91 6fe0c323 fetch 1 ,mem_le_configuration 
-2d92 c3022d9a bbit0 bit_ble_write_auth ,le_send_att_write_response 
-2d93 6849439c fetcht 2 ,mem_le_att_handle 
-2d94 6fe14334 fetch 2 ,mem_le_pairing_handle 
-2d95 98467c00 isub temp ,null 
-2d96 2422ad9a nbranch le_send_att_write_response ,zero 
-2d97 20402da5 call le_check_encrypt_state 
-2d98 24342d9a nbranch le_send_att_write_response ,user 
-2d99 20202d24 branch le_send_att_read_response_error_insufficient_auth 
-
-le_send_att_write_response:
-2d9a 18002201 force 1 ,rega 
-2d9b 20402dee call le_fifo_malloc_tx_l2cap_gatt 
-2d9c 58000013 setarg attop_write_response 
-2d9d e7e08005 istore 1 ,contw 
-2d9e 20600000 rtn 
-
-le_send_att_write_response_check_handle:
-2d9f 18c08dfe increase -2 ,contr 
-2da0 efe10006 ifetch 2 ,contr 
-2da1 c287ad24 bbit1 bit_of_att_handle_write_authenticated ,le_send_att_read_response_error_insufficient_auth 
-2da2 20207dbe branch disable_user 
-
-le_send_att_write_response_error_invalid_handle:
-2da3 7001b901 jam att_err_invalid_handle ,mem_le_err_code 
-2da4 20202de3 branch le_send_att_error_response 
-
-le_check_encrypt_state:
-2da5 47444031 bpatchx patch31_0 ,mem_patch31 
-2da6 20407dbe call disable_user 
-2da7 6fe0c300 fetch 1 ,mem_le_pairing_mode 
-2da8 c1000000 rtneq le_pairing_mode_none 
-2da9 6fe0c040 fetch 1 ,mem_context 
-2daa c3820000 rtnbit1 lestate_encryption 
-2dab 20207dbc branch enable_user 
-
-le_parse_att_prepare_write_request:
-2dac 18c0a202 add contr ,2 ,rega 
-2dad 6fe14337 fetch 2 ,mem_le_l2cap_size 
-2dae 1fe0a5fb add pdata ,-5 ,regb 
-2daf 20402908 call le_writeatt_cb 
-2db0 20202db1 branch le_send_att_prepare_write_response 
-
-le_send_att_prepare_write_response:
-2db1 6fe14337 fetch 2 ,mem_le_l2cap_size 
-2db2 1fe22200 copy pdata ,rega 
-2db3 20402dee call le_fifo_malloc_tx_l2cap_gatt 
-2db4 58000017 setarg attop_prepare_write_response 
-2db5 e7e08005 istore 1 ,contw 
-2db6 6fe1439c fetch 2 ,mem_le_att_handle 
-2db7 e7e10005 istore 2 ,contw 
-2db8 6fe14337 fetch 2 ,mem_le_l2cap_size 
-2db9 1fe0f3fb add pdata ,-5 ,loopcnt 
-2dba 6fe1433b fetch 2 ,mem_le_payload_ptr 
-2dbb 1fe08c07 add pdata ,7 ,contr 
-2dbc efe10006 ifetch 2 ,contr 
-2dbd e7e10005 istore 2 ,contw 
-2dbe 20207cce branch memcpy_fast 
-
-le_parse_att_execute_write_request:
-
-le_send_att_execute_write_response:
-2dbf 18002201 force 1 ,rega 
-2dc0 20402dee call le_fifo_malloc_tx_l2cap_gatt 
-2dc1 58000019 setarg attop_execute_write_response 
-2dc2 e7e08005 istore 1 ,contw 
-2dc3 20600000 rtn 
-
-le_parse_handle_value_confirmation:
-2dc4 6fe0c39a fetch 1 ,mem_le_l2cap_att_states 
-2dc5 793ffe00 set0 ble_l2cap_recv_confirmation_packet ,pdata 
-2dc6 67e0c39a store 1 ,mem_le_l2cap_att_states 
-2dc7 20600000 rtn 
-
-le_parse_att_write_command:
-2dc8 18c22200 copy contr ,rega 
-2dc9 6fe14337 fetch 2 ,mem_le_l2cap_size 
-2dca 1fe0a5fd add pdata ,-3 ,regb 
-2dcb 20202908 branch le_writeatt_cb 
-
-le_att_malloc_tx_notify:
-2dcc 18422600 copy temp ,regc 
-2dcd 1a20a203 increase 3 ,rega 
-2dce 20402dee call le_fifo_malloc_tx_l2cap_gatt 
-2dcf 1a20a3fd increase -3 ,rega 
-2dd0 5800001b setarg attop_handle_value_notification 
-2dd1 e7e08005 istore 1 ,contw 
-2dd2 1a620400 copy regc ,temp 
-2dd3 e0410005 istoret 2 ,contw 
-2dd4 20600000 rtn 
-
-le_att_malloc_tx_indication:
-2dd5 6fe0c39a fetch 1 ,mem_le_l2cap_att_states 
-2dd6 79207e00 set1 ble_l2cap_send_indication_packet ,pdata 
-2dd7 67e0c39a store 1 ,mem_le_l2cap_att_states 
-2dd8 18422600 copy temp ,regc 
-2dd9 1a20a203 increase 3 ,rega 
-2dda 20402dee call le_fifo_malloc_tx_l2cap_gatt 
-2ddb 1a20a3fd increase -3 ,rega 
-2ddc 5800001d setarg attop_handle_value_indication 
-2ddd e7e08005 istore 1 ,contw 
-2dde 1a620400 copy regc ,temp 
-2ddf e0410005 istoret 2 ,contw 
-2de0 20600000 rtn 
-
-le_send_att_error_response_notfound:
-2de1 4744c031 bpatchx patch31_1 ,mem_patch31 
-2de2 7001b90a jam att_err_attribute_not_found ,mem_le_err_code 
-
-le_send_att_error_response:
-2de3 18002205 force 5 ,rega 
-2de4 20402dee call le_fifo_malloc_tx_l2cap_gatt 
-2de5 58000001 setarg attop_error_response 
-2de6 e7e08005 istore 1 ,contw 
-2de7 6fe0c39b fetch 1 ,mem_le_att_opcode 
-2de8 e7e08005 istore 1 ,contw 
-2de9 6fe1439c fetch 2 ,mem_le_att_handle 
-2dea e7e10005 istore 2 ,contw 
-2deb 6fe081b9 fetch 1 ,mem_le_err_code 
-2dec e7e08005 istore 1 ,contw 
-2ded 20600000 rtn 
-
-le_fifo_malloc_tx_l2cap_gatt:
-2dee 47454031 bpatchx patch31_2 ,mem_patch31 
-2def 18002404 force le_l2cap_cid_att ,regb 
-2df0 202029d9 branch le_fifo_malloc_tx_l2cap 
-
-le_att_next_handle:
-2df1 68490656 fetcht 2 ,mem_temp 
-2df2 18408401 increase 1 ,temp 
-2df3 60490656 storet 2 ,mem_temp 
-2df4 20600000 rtn 
-
-le_att_check_handle_end:
-2df5 68490656 fetcht 2 ,mem_temp 
-2df6 6fe10691 fetch 2 ,mem_le_search_handle_end 
-2df7 98467c00 isub temp ,null 
-2df8 20600000 rtn 
-
-le_att_same_type:
-2df9 4745c031 bpatchx patch31_3 ,mem_patch31 
-2dfa 68488693 fetcht 1 ,mem_le_search_att_type_length 
-2dfb da200694 arg mem_le_search_att_type ,rega 
-
-le_att_check_same_common:
-2dfc 6fe086ab fetch 1 ,mem_le_cur_uuid_length 
-2dfd 1fe27200 copy pdata ,loopcnt 
-2dfe 98467c00 isub temp ,null 
-2dff 24628000 nrtn zero 
-2e00 da4006ac arg mem_le_cur_uuid ,regb 
-2e01 20207d66 branch string_compare 
-
-le_store_att_record:
-2e02 47464031 bpatchx patch31_4 ,mem_patch31 
-2e03 6fe086a4 fetch 1 ,mem_le_curr_att_len 
-2e04 67e0867f store 1 ,mem_temp_block0 
-2e05 1fe27200 copy pdata ,loopcnt 
-2e06 20407c69 call get_contr 
-2e07 20207cce branch memcpy_fast 
-
-le_write_att_record:
-2e08 4746c031 bpatchx patch31_5 ,mem_patch31 
-2e09 20407c66 call get_contw 
-2e0a 6fe106a7 fetch 2 ,mem_le_cur_handle_start 
-2e0b e7e10005 istore 2 ,contw 
-2e0c 6fe106a9 fetch 2 ,mem_le_cur_handle_end 
-2e0d e7e10005 istore 2 ,contw 
-
-le_write_att_record_common:
-2e0e 6fe0867f fetch 1 ,mem_temp_block0 
-2e0f 1fe27200 copy pdata ,loopcnt 
-2e10 20407cce call memcpy_fast 
-2e11 20207c6c branch store_contw 
-
-le_send_auto_len_by_mem:
-2e12 47474031 bpatchx patch31_6 ,mem_patch31 
-2e13 20407c66 call get_contw 
-2e14 204029ff call le_fifo_get_last_att_ptr 
-2e15 18a27e00 copy contw ,pdata 
-2e16 98c62200 isub contr ,rega 
-2e17 20402a02 call le_fifo_get_last_l2cap_ptr 
-2e18 1a227e00 copy rega ,pdata 
-2e19 e7e10006 istore 2 ,contr 
-2e1a 1a20a204 increase 4 ,rega 
-2e1b 204029f4 call le_fifo_get_last_tx_ptr 
-2e1c 1a227e00 copy rega ,pdata 
-2e1d e7e08006 istore 1 ,contr 
-2e1e 20600000 rtn 
-
-le_get_search_handle_start_end_common:
-2e1f 1fecfe00 rshift8 pdata ,pdata 
-2e20 67e1068f store 2 ,mem_le_search_handle_start 
-2e21 efe10006 ifetch 2 ,contr 
-2e22 67e10691 store 2 ,mem_le_search_handle_end 
-2e23 20600000 rtn 
-
-le_get_search_max_mtu_data:
-2e24 4747c031 bpatchx patch31_7 ,mem_patch31 
-2e25 6fe142e5 fetch 2 ,mem_le_remote_mtu 
-2e26 684942e3 fetcht 2 ,mem_le_local_mtu 
-2e27 20207db2 branch not_greater_than 
-
-le_get_search_att_type:
-2e28 47484032 bpatchx patch32_0 ,mem_patch32 
-2e29 20407c6f call store_contr 
-2e2a d8a00693 arg mem_le_search_att_type_length ,contw 
-
-le_get_search_common:
-2e2b 6fe14337 fetch 2 ,mem_le_l2cap_size 
-2e2c 1fe0fffb increase -5 ,pdata 
-
-le_get_search_common2:
-2e2d e7e08005 istore 1 ,contw 
-2e2e 1fe27200 copy pdata ,loopcnt 
-2e2f 20407c69 call get_contr 
-2e30 20207cce branch memcpy_fast 
-
-le_parse_writing_attribute_start:
-2e31 6fe10050 fetch 2 ,mem_le_rxbuf_data_att_cid 
-2e32 c1820000 rtnne le_l2cap_cid_att 
-2e33 6fe0c39a fetch 1 ,mem_le_l2cap_att_states 
-2e34 79207e01 set1 ble_l2cap_deal_with_continue_packet ,pdata 
-2e35 67e0c39a store 1 ,mem_le_l2cap_att_states 
-2e36 6fe18052 fetch 3 ,mem_le_rxbuf_data_att_opcode 
-2e37 67e1c39b store 3 ,mem_le_att_opcode 
-2e38 7920000f set1 mark_old_packet ,mark 
-2e39 c0092e4c beq attop_write_request ,le_parse_attribute_write_request 
-2e3a c0292e51 beq attop_write_command ,le_parse_attribute_write_command 
-2e3b c00c2dbf beq attop_execute_write_request ,le_parse_att_execute_write_request 
-2e3c c0012b8b beq attop_exchange_mtu_request ,le_parse_att_exchange_mtu_request 
-2e3d c00f2dc4 beq attop_handle_value_confirmation ,le_parse_handle_value_confirmation 
-2e3e 793f800f set0 mark_old_packet ,mark 
-
-le_clear_l2cap_att_states_deal_with_contiune_packet:
-2e3f 6fe0c39a fetch 1 ,mem_le_l2cap_att_states 
-2e40 793ffe01 set0 ble_l2cap_deal_with_continue_packet ,pdata 
-2e41 67e0c39a store 1 ,mem_le_l2cap_att_states 
-2e42 20600000 rtn 
-
-le_parse_writing_attribute_continue:
-2e43 6fe0c39a fetch 1 ,mem_le_l2cap_att_states 
-2e44 c4008000 rtnbit0 ble_l2cap_deal_with_continue_packet 
-2e45 7920000f set1 mark_old_packet ,mark 
-2e46 20402e5c call le_parse_l2cap_continue_common 
-2e47 20402e62 call le_parse_attribute_check_complete_packet 
-2e48 20542e3f call le_clear_l2cap_att_states_deal_with_contiune_packet ,user 
-2e49 6fe0c39b fetch 1 ,mem_le_att_opcode 
-2e4a c0092d8a beq attop_write_request ,le_send_att_write_response_check_auth 
-2e4b 20600000 rtn 
-
-le_parse_attribute_write_request:
-2e4c 20402e51 call le_parse_attribute_write_command 
-2e4d 20202e4e branch le_send_attribute_write_response_check_auth 
-
-le_send_attribute_write_response_check_auth:
-2e4e 20402e62 call le_parse_attribute_check_complete_packet 
-2e4f 24740000 nrtn user 
-2e50 20202d8a branch le_send_att_write_response_check_auth 
-
-le_parse_attribute_write_command:
-2e51 4748c032 bpatchx patch32_1 ,mem_patch32 
-2e52 20402e55 call le_parse_attribute_check_complete_packet_init 
-2e53 da200055 arg mem_le_rxbuf_data_att_write_payload ,rega 
-2e54 20202908 branch le_writeatt_cb 
-
-le_parse_attribute_check_complete_packet_init:
-2e55 6fe0804d fetch 1 ,mem_le_rxbuf_data_att_write_length 
-2e56 1fe0a5f9 add pdata ,-7 ,regb 
-2e57 1fe0fffc increase -4 ,pdata 
-2e58 67e14339 store 2 ,mem_le_packet_len_recved 
-2e59 6849004e fetcht 2 ,mem_le_rxbuf_data_att_write_l2cap_length 
-2e5a 60494337 storet 2 ,mem_le_l2cap_size 
-2e5b 20600000 rtn 
-
-le_parse_l2cap_continue_common:
-2e5c 6a40804d fetchr regb ,1 ,mem_le_rxbuf_data_continue_length 
-2e5d 6fe14339 fetch 2 ,mem_le_packet_len_recved 
-2e5e 9a408400 iadd regb ,temp 
-2e5f 60494339 storet 2 ,mem_le_packet_len_recved 
-2e60 da20004e arg mem_le_rxbuf_data_continue_payload ,rega 
-2e61 20202908 branch le_writeatt_cb 
-
-le_parse_attribute_check_complete_packet:
-2e62 20407dbe call disable_user 
-2e63 6fe14339 fetch 2 ,mem_le_packet_len_recved 
-2e64 68494337 fetcht 2 ,mem_le_l2cap_size 
-2e65 98467c00 isub temp ,null 
-2e66 24628000 nrtn zero 
-2e67 20207dbc branch enable_user 
-
-le_parse_signaling:
-2e68 efe08006 ifetch 1 ,contr 
-2e69 e8408006 ifetcht 1 ,contr 
-2e6a e8410006 ifetcht 2 ,contr 
-2e6b c009ae6d beq l2cap_connection_parameter_update_response ,le_l2cap_parse_conn_parameter_update_rsp 
-2e6c 20600000 rtn 
-
-le_l2cap_parse_conn_parameter_update_rsp:
-2e6d efe10006 ifetch 2 ,contr 
-2e6e 67e14340 store 2 ,mem_le_l2cap_signaling_conn_param_update_rsp_result 
-2e6f 70064d40 jam bt_evt_le_parse_conn_papa_update_rsp ,mem_fifo_temp 
-2e70 20207819 branch ui_ipc_send_event 
-
-le_l2cap_tx_update_req:
-2e71 da20000c arg 0x0c ,rega 
-2e72 da600012 arg l2cap_connection_parameter_update_request ,regc 
-2e73 20402e79 call le_fifo_malloc_tx_l2cap_signaling 
-2e74 58000008 setarg 0x08 
-2e75 e7e10005 istore 2 ,contw 
-2e76 6fe442d5 fetch 8 ,mem_le_interval_min 
-2e77 e7e40005 istore 8 ,contw 
-2e78 20600000 rtn 
-
-le_fifo_malloc_tx_l2cap_signaling:
-2e79 20402e81 call le_l2cap_update_signaling_identifier 
-2e7a da400005 arg le_l2cap_cid_signal ,regb 
-2e7b 204029d9 call le_fifo_malloc_tx_l2cap 
-2e7c 1a627e00 copy regc ,pdata 
-2e7d e7e08005 istore 1 ,contw 
-2e7e 6fe0c33f fetch 1 ,mem_le_signaling_identifier 
-2e7f e7e08005 istore 1 ,contw 
-2e80 20600000 rtn 
-
-le_l2cap_update_signaling_identifier:
-2e81 6fe0c33f fetch 1 ,mem_le_signaling_identifier 
-2e82 1fe0fe01 pincrease 1 
-2e83 67e0c33f store 1 ,mem_le_signaling_identifier 
-2e84 c1800000 rtnne 0 
-
-le_l2cap_reset_signaling_identifier:
-2e85 70433f01 jam 1 ,mem_le_signaling_identifier 
-2e86 20600000 rtn 
-
-le_pairing_mode_init:
-2e87 6fe0c300 fetch 1 ,mem_le_pairing_mode 
-2e88 c0002e96 beq le_pairing_mode_none ,le_set_no_pairing 
-2e89 c000ae99 beq le_pairing_mode_lagacy_justwork ,le_set_pairing_mode_lagacy_just_work 
-2e8a c0012e9b beq le_pairing_mode_lagacy_passkey ,le_set_pairing_mode_lagacy_passkey 
-2e8b c040ae8f beq le_pairing_mode_secure_connect_justwork ,le_set_pairing_mode_secure_justwork 
-2e8c c0412e91 beq le_pairing_mode_secure_connect_numeric ,le_set_pairing_mode_secure_numeric 
-2e8d c041ae94 beq le_pairing_mode_secure_connect_passkey ,le_set_pairing_mode_secure_passkey 
-2e8e 20600000 rtn 
-
-le_set_pairing_mode_secure_justwork:
-2e8f 7042c90d jam flag_le_bonding_mitm_secure ,mem_le_pres_auth 
-2e90 20202e97 branch le_set_noinputnooutput 
-
-le_set_pairing_mode_secure_numeric:
-2e91 7042c90d jam flag_le_bonding_mitm_secure ,mem_le_pres_auth 
-2e92 7042c701 jam flag_iocap_displayyesno ,mem_le_pres_iocap 
-2e93 20600000 rtn 
-
-le_set_pairing_mode_secure_passkey:
-2e94 7042c90d jam flag_le_bonding_mitm_secure ,mem_le_pres_auth 
-2e95 20202e9c branch le_set_displayonly 
-
-le_set_no_pairing:
-2e96 7042c900 jam flag_le_no_bonding_no_mitm ,mem_le_pres_auth 
-
-le_set_noinputnooutput:
-2e97 7042c703 jam flag_iocap_noinputnooutput ,mem_le_pres_iocap 
-2e98 20600000 rtn 
-
-le_set_pairing_mode_lagacy_just_work:
-2e99 7042c905 jam flag_le_bonding_mitm ,mem_le_pres_auth 
-2e9a 20202e97 branch le_set_noinputnooutput 
-
-le_set_pairing_mode_lagacy_passkey:
-2e9b 7042c905 jam flag_le_bonding_mitm ,mem_le_pres_auth 
-
-le_set_displayonly:
-2e9c 7042c700 jam flag_iocap_displayonly ,mem_le_pres_iocap 
-2e9d 20600000 rtn 
-
-le_secure_connection_enable:
-2e9e 6fe0c483 fetch 1 ,mem_secure_connections_enable 
-2e9f 79207e00 set1 secure_connections_le_bit ,pdata 
-2ea0 67e0c483 store 1 ,mem_secure_connections_enable 
-2ea1 20600000 rtn 
-
-le_secure_connection_disable:
-2ea2 6fe0c483 fetch 1 ,mem_secure_connections_enable 
-2ea3 793ffe00 set0 secure_connections_le_bit ,pdata 
-2ea4 67e0c483 store 1 ,mem_secure_connections_enable 
-2ea5 20600000 rtn 
-
-le_parse_smp:
-2ea6 efe08006 ifetch 1 ,contr 
-2ea7 c000aeba beq smp_pairing_request ,le_parse_smp_pairing_request 
-2ea8 c001aee1 beq smp_pairing_confirm ,le_parse_smp_pairing_confirm 
-2ea9 c0022f02 beq smp_pairing_random ,le_parse_smp_pairing_random 
-2eaa c002af0f beq smp_pairing_failed ,le_parse_smp_pairing_failed 
-2eab c003af78 beq smp_master_identification ,le_parse_smp_master_identification 
-2eac c0042f64 beq smp_identity_information ,le_parse_smp_identity_information 
-2ead c004af74 beq smp_identity_address_information ,le_parse_smp_identity_address_information 
-2eae c0052f78 beq smp_signing_information ,le_parse_smp_signing_information 
-2eaf c005af78 beq smp_security_request ,le_parse_smp_security_request 
-2eb0 c0062f79 beq smp_pairing_public_key ,le_parse_smp_public_key 
-2eb1 c006af7e beq smp_pairing_dhkey_check ,le_parse_smp_dhkey_check 
-2eb2 20600000 rtn 
-
-le_send_smp_security_request:
-2eb3 18002202 force 2 ,rega 
-2eb4 20403025 call le_fifo_malloc_tx_l2cap_smp 
-2eb5 5800000b setarg smp_security_request 
-2eb6 e7e08005 istore 1 ,contw 
-2eb7 6fe0c2c9 fetch 1 ,mem_le_pres_auth 
-2eb8 e7e08005 istore 1 ,contw 
-2eb9 20600000 rtn 
-
-le_parse_smp_pairing_request:
-2eba 67e0c2bf store 1 ,mem_le_preq 
-2ebb efe30006 ifetch 6 ,contr 
-2ebc e7e30005 istore 6 ,contw 
-2ebd 6fe0c300 fetch 1 ,mem_le_pairing_mode 
-2ebe c0002f15 beq le_pairing_mode_none ,le_smp_pairing_fail_reason_not_support_pairing 
-2ebf 20402edc call le_send_smp_pairing_response 
-2ec0 6fe0c481 fetch 1 ,mem_sc_only_mode 
-2ec1 203a2ec6 branch le_parse_smp_pairing_request2 ,blank 
-2ec2 6fe0c2c2 fetch 1 ,mem_le_preq_auth 
-2ec3 c301b794 bbit0 le_auth_secure_connection_pairing_bit ,app_ble_disconnect 
-2ec4 6fe0c300 fetch 1 ,mem_le_pairing_mode 
-2ec5 c303b794 bbit0 le_pairing_mode_secure_connect_bit ,app_ble_disconnect 
-
-le_parse_smp_pairing_request2:
-2ec6 7042fe03 jam flag_le_pairing_rcv_pairing_req ,mem_le_pairing_state 
-2ec7 6fe0c2c0 fetch 1 ,mem_le_preq_iocap 
-2ec8 c0002ece beq flag_iocap_displayonly ,le_set_tk_0 
-2ec9 c000aece beq flag_iocap_displayyesno ,le_set_tk_0 
-2eca c001aece beq flag_iocap_noinputnooutput ,le_set_tk_0 
-2ecb 6fe0c300 fetch 1 ,mem_le_pairing_mode 
-2ecc c0012ed1 beq le_pairing_mode_lagacy_passkey ,le_parse_smp_pairing_req_passkey 
-2ecd c1418000 rtneq le_pairing_mode_secure_connect_passkey 
-
-le_set_tk_0:
-2ece dfe00000 arg 0 ,pdata 
-2ecf 67e24301 store 4 ,mem_le_tk 
-2ed0 20600000 rtn 
-
-le_parse_smp_pairing_req_passkey:
-2ed1 6fe0c323 fetch 1 ,mem_le_configuration 
-2ed2 c2802eda bbit1 bit_ble_passkey_fixed_key ,le_parse_smp_pairing_req_fixed_passkey 
-
-le_genernate_tk:
-2ed3 da204301 arg mem_le_tk ,rega 
-2ed4 1a220a00 copy rega ,contw 
-2ed5 df200003 arg 3 ,loopcnt 
-2ed6 20407dee call generate_random_loop 
-2ed7 6fe14303 fetch 2 ,mem_le_tk + 2 
-2ed8 1fe17e07 and_into 0x7 ,pdata 
-2ed9 67e14303 store 2 ,mem_le_tk + 2 
-
-le_parse_smp_pairing_req_fixed_passkey:
-2eda 70064d34 jam bt_evt_le_tk_generate ,mem_fifo_temp 
-2edb 20207819 branch ui_ipc_send_event 
-
-le_send_smp_pairing_response:
-2edc 18002207 force 7 ,rega 
-2edd 20403025 call le_fifo_malloc_tx_l2cap_smp 
-2ede 6fe3c2c6 fetch 7 ,mem_le_pres 
-2edf e7e38005 istore 7 ,contw 
-2ee0 20600000 rtn 
-
-le_parse_smp_pairing_confirm:
-2ee1 7042fe05 jam flag_le_pairing_receive_pairing_confirm ,mem_le_pairing_state 
-2ee2 d8a0429d arg mem_le_rconfirm ,contw 
-2ee3 20407c91 call memcpy16 
-2ee4 6fe0c300 fetch 1 ,mem_le_pairing_mode 
-2ee5 c0022ee9 beq le_pairing_mode_lagacy_passkey_res_input ,le_parse_smp_pairing_confirm_passkey_res_input 
-2ee6 c041aeeb beq le_pairing_mode_secure_connect_passkey ,le_parse_smp_pairing_confirm_secure_passkey 
-2ee7 c0422eee beq le_pairing_mode_secure_connect_passkey_res_input ,le_parse_smp_pairing_confirm_sc_passkey_res_input 
-2ee8 20202ef1 branch le_send_smp_pairing_confirm 
-
-le_parse_smp_pairing_confirm_passkey_res_input:
-2ee9 70064d43 jam bt_evt_le_get_passkey ,mem_fifo_temp 
-2eea 20207819 branch ui_ipc_send_event 
-
-le_parse_smp_pairing_confirm_secure_passkey:
-2eeb 7042fb02 jam le_sp_flag_commit_256 ,mem_le_secure_connect_flag 
-2eec 7042fc08 jam le_sc_stat_passkey_wait_confirm ,mem_le_secure_connect_state 
-2eed 20600000 rtn 
-
-le_parse_smp_pairing_confirm_sc_passkey_res_input:
-2eee 6fe24301 fetch 4 ,mem_le_tk 
-2eef 203a2ee9 branch le_parse_smp_pairing_confirm_passkey_res_input ,blank 
-2ef0 20202eeb branch le_parse_smp_pairing_confirm_secure_passkey 
-
-le_send_smp_pairing_confirm:
-2ef1 7042fe06 jam flag_le_pairing_send_pairing_confirm ,mem_le_pairing_state 
-2ef2 6fe0c300 fetch 1 ,mem_le_pairing_mode 
-2ef3 c283aefa bbit1 le_pairing_mode_secure_connect_bit ,le_send_smp_pairing_confirm_sc 
-2ef4 20407244 call generate_confirm 
-2ef5 18002211 force 17 ,rega 
-2ef6 20403025 call le_fifo_malloc_tx_l2cap_smp 
-2ef7 58000003 setarg smp_pairing_confirm 
-2ef8 e7e08005 istore 1 ,contw 
-2ef9 20207363 branch store_aes_result 
-
-le_send_smp_pairing_confirm_sc:
-2efa d8a042ad arg mem_le_srand ,contw 
-2efb 20407ded call generate_random 
-2efc 204071a4 call function_f4_cb 
-2efd 18002211 force 17 ,rega 
-2efe 20403025 call le_fifo_malloc_tx_l2cap_smp 
-2eff 58000003 setarg smp_pairing_confirm 
-2f00 e7e08005 istore 1 ,contw 
-2f01 202071e0 branch load_inverse_result 
-
-le_parse_smp_pairing_random:
-2f02 18c22200 copy contr ,rega 
-2f03 6fe0c300 fetch 1 ,mem_le_pairing_mode 
-2f04 c283af17 bbit1 le_pairing_mode_secure_connect_bit ,le_parse_smp_pairing_random_sc 
-2f05 1a220c00 copy rega ,contr 
-2f06 2040723c call authenticate_rconfirm 
-2f07 2022af2c branch le_parse_smp_pairing_random_success ,zero 
-
-le_send_pairing_confirm_value_failed:
-2f08 7001ba04 jam pairing_failed_confirm_value_failed ,mem_le_ll_pairing_fail_reason 
-
-le_send_pairing_failed:
-2f09 18002202 force 2 ,rega 
-2f0a 20403025 call le_fifo_malloc_tx_l2cap_smp 
-2f0b 58000005 setarg smp_pairing_failed 
-2f0c e7e08005 istore 1 ,contw 
-2f0d 6fe081ba fetch 1 ,mem_le_ll_pairing_fail_reason 
-2f0e e7e08005 istore 1 ,contw 
-
-le_parse_smp_pairing_failed:
-2f0f 47494032 bpatchx patch32_2 ,mem_patch32 
-2f10 18000e07 force smp_pairing_timer ,queue 
-2f11 20407ce2 call timer_stop 
-2f12 7042fe00 jam flag_le_pairing_null ,mem_le_pairing_state 
-2f13 70064d30 jam bt_evt_le_pairing_fail ,mem_fifo_temp 
-2f14 20207819 branch ui_ipc_send_event 
-
-le_smp_pairing_fail_reason_not_support_pairing:
-2f15 7001ba05 jam pairing_failed_pairing_not_supported ,mem_le_ll_pairing_fail_reason 
-2f16 20202f09 branch le_send_pairing_failed 
-
-le_parse_smp_pairing_random_sc:
-2f17 d8a00158 arg mem_le_mrand ,contw 
-2f18 1a220c00 copy rega ,contr 
-2f19 20407c91 call memcpy16 
-2f1a 6fe0c300 fetch 1 ,mem_le_pairing_mode 
-2f1b c041af23 beq le_pairing_mode_secure_connect_passkey ,le_parse_smp_pairing_random_sc_passkey 
-2f1c c0422f23 beq le_pairing_mode_secure_connect_passkey_res_input ,le_parse_smp_pairing_random_sc_passkey 
-2f1d 2040712e call function_g2 
-2f1e 20402f31 call le_send_smp_pairing_random 
-2f1f 6fe0c300 fetch 1 ,mem_le_pairing_mode 
-2f20 c1c10000 rtnne le_pairing_mode_secure_connect_numeric 
-2f21 70064d3b jam bt_evt_le_gkey_generate ,mem_fifo_temp 
-2f22 20207819 branch ui_ipc_send_event 
-
-le_parse_smp_pairing_random_sc_passkey:
-2f23 20407199 call function_f4_ca 
-2f24 d8a006af arg mem_aes_cmac_temp ,contw 
-2f25 204071e0 call load_inverse_result 
-2f26 da2006af arg mem_aes_cmac_temp ,rega 
-2f27 da40429d arg mem_le_rconfirm ,regb 
-2f28 df200010 arg 16 ,loopcnt 
-2f29 20407d66 call string_compare 
-2f2a 2422af08 nbranch le_send_pairing_confirm_value_failed ,zero 
-2f2b 20202f31 branch le_send_smp_pairing_random 
-
-le_parse_smp_pairing_random_success:
-2f2c 20407238 call generate_stk 
-2f2d 70064d31 jam bt_evt_le_pairing_success ,mem_fifo_temp 
-2f2e 20407819 call ui_ipc_send_event 
-2f2f 70429c01 jam 1 ,mem_ltk_exists 
-2f30 7042fe09 jam flag_le_pairing_after_auth ,mem_le_pairing_state 
-
-le_send_smp_pairing_random:
-2f31 18002211 force 17 ,rega 
-2f32 20403025 call le_fifo_malloc_tx_l2cap_smp 
-2f33 58000004 setarg smp_pairing_random 
-2f34 e7e08005 istore 1 ,contw 
-2f35 d8c042ad arg mem_le_srand ,contr 
-2f36 20207c91 branch memcpy16 
-
-le_send_smp_encryption_information:
-2f37 18002211 force 17 ,rega 
-2f38 20403025 call le_fifo_malloc_tx_l2cap_smp 
-2f39 58000006 setarg smp_encryption_information 
-2f3a e7e08005 istore 1 ,contw 
-2f3b 6fe0c323 fetch 1 ,mem_le_configuration 
-2f3c c280af3f bbit1 bit_ble_pairing_fixed_ltk ,le_send_fixed_ltk 
-2f3d d8c0428c arg mem_le_ltk ,contr 
-2f3e 20207c91 branch memcpy16 
-
-le_send_fixed_ltk:
-2f3f d8c04324 arg mem_le_fixed_ltk ,contr 
-2f40 20207c91 branch memcpy16 
-
-le_send_smp_master_identification:
-2f41 d8a04305 arg mem_le_ediv ,contw 
-2f42 1800720a force 10 ,loopcnt 
-2f43 20407dee call generate_random_loop 
-2f44 1800220b force 11 ,rega 
-2f45 20403025 call le_fifo_malloc_tx_l2cap_smp 
-2f46 58000007 setarg smp_master_identification 
-2f47 e7e08005 istore 1 ,contw 
-2f48 6fe14305 fetch 2 ,mem_le_ediv 
-2f49 e7e10005 istore 2 ,contw 
-2f4a 6fe44307 fetch 8 ,mem_le_rand 
-2f4b e7e40005 istore 8 ,contw 
-2f4c 20600000 rtn 
-
-le_send_smp_identity_information:
-2f4d 18002211 force 17 ,rega 
-2f4e 20403025 call le_fifo_malloc_tx_l2cap_smp 
-2f4f 58000008 setarg smp_identity_information 
-2f50 e7e08005 istore 1 ,contw 
-2f51 58000000 setarg 0 
-2f52 e7e40005 istore 8 ,contw 
-2f53 e7e40005 istore 8 ,contw 
-2f54 20600000 rtn 
-
-le_send_smp_identity_address_information:
-2f55 18002208 force 8 ,rega 
-2f56 20403025 call le_fifo_malloc_tx_l2cap_smp 
-2f57 58000009 setarg smp_identity_address_information 
-2f58 e7e08005 istore 1 ,contw 
-2f59 6fe0c2d4 fetch 1 ,mem_le_conn_own_addr_type 
-2f5a e7e08005 istore 1 ,contw 
-2f5b 6fe342dd fetch 6 ,mem_le_lap 
-2f5c e7e30005 istore 6 ,contw 
-2f5d 20600000 rtn 
-
-le_send_pairing_fail_unspecified_reason:
-2f5e 7001ba08 jam pairing_failed_unspecified_reason ,mem_le_ll_pairing_fail_reason 
-2f5f 20202f09 branch le_send_pairing_failed 
-
-le_check_init_key_distribution:
-2f60 6fe0c2cb fetch 1 ,mem_le_pres_init_key_distribution 
-2f61 6848c2cb fetcht 1 ,mem_le_pres_init_key_distribution 
-2f62 98417e00 iand temp ,pdata 
-2f63 20600000 rtn 
-
-le_parse_smp_identity_information:
-2f64 d8a0430f arg mem_le_irk ,contw 
-2f65 20407c91 call memcpy16 
-2f66 20402f60 call le_check_init_key_distribution 
-2f67 2fec0001 isolate0 le_initator_irk_bit ,pdata 
-2f68 2020af5e branch le_send_pairing_fail_unspecified_reason ,true 
-2f69 6fe0c3cf fetch 1 ,mem_device_option 
-2f6a c1850000 rtnne dvc_op_module 
-2f6b 20402f6e call le_check_master_addr_type 
-2f6c 24740000 nrtn user 
-2f6d 2020379e branch app_ble_store_reconn_info 
-
-le_check_master_addr_type:
-2f6e 20407dbe call disable_user 
-2f6f 6fe0c2cd fetch 1 ,mem_le_conn_peer_addr_type 
-2f70 c1000000 rtneq master_public_addr 
-2f71 6fe0c2c4 fetch 1 ,mem_le_preq_init_key_distribution 
-2f72 c4008000 rtnbit0 le_initator_irk_bit 
-2f73 20207dbc branch enable_user 
-
-le_parse_smp_identity_address_information:
-2f74 20402f60 call le_check_init_key_distribution 
-2f75 2fec0001 isolate0 le_initator_irk_bit ,pdata 
-2f76 2020af5e branch le_send_pairing_fail_unspecified_reason ,true 
-2f77 20600000 rtn 
-
-le_parse_smp_master_identification:
-
-le_parse_smp_signing_information:
-
-le_parse_smp_security_request:
-2f78 20600000 rtn 
-
-le_parse_smp_public_key:
-2f79 d8a005dc arg mem_le_pubkey_remote_x_256 ,contw 
-2f7a 20407c83 call memcpy64 
-2f7b 7042fb02 jam le_sp_flag_commit_256 ,mem_le_secure_connect_flag 
-2f7c 7042fc01 jam le_sc_stat_receive_public_key ,mem_le_secure_connect_state 
-2f7d 20600000 rtn 
-
-le_parse_smp_dhkey_check:
-2f7e d8a0063c arg mem_sp_confirm_remote ,contw 
-2f7f 20407c91 call memcpy16 
-2f80 7042fc06 jam le_sc_stat_receive_dhkey ,mem_le_secure_connect_state 
-2f81 7042fb02 jam le_sp_flag_commit_256 ,mem_le_secure_connect_flag 
-2f82 20600000 rtn 
-
-le_send_smp_pairing_public_key:
-2f83 18002241 force 65 ,rega 
-2f84 20403025 call le_fifo_malloc_tx_l2cap_smp 
-2f85 5800000c setarg smp_pairing_public_key 
-2f86 e7e08005 istore 1 ,contw 
-2f87 d8c044a6 arg mem_sc_pubkey_local_x_256 ,contr 
-2f88 20207c83 branch memcpy64 
-
-le_send_smp_pairing_dhkey_check:
-2f89 20407145 call function_f6_eb 
-2f8a 18002211 force 17 ,rega 
-2f8b 20403025 call le_fifo_malloc_tx_l2cap_smp 
-2f8c 5800000d setarg smp_pairing_dhkey_check 
-2f8d e7e08005 istore 1 ,contw 
-2f8e 202071e0 branch load_inverse_result 
-
-le_check_paring_time:
-2f8f 6fe0c2fe fetch 1 ,mem_le_pairing_state 
-2f90 c17f8000 rtneq flag_le_pairing_end 
-2f91 d8400003 arg flag_le_pairing_rcv_pairing_req ,temp 
-2f92 98467c00 isub temp ,null 
-2f93 24610000 nrtn positive 
-2f94 d8e00007 arg smp_pairing_timer ,queue 
-2f95 20407cf1 call timer_check 
-2f96 247a0000 nrtn blank 
-2f97 20202f5e branch le_send_pairing_fail_unspecified_reason 
-
-le_pairing_sm:
-2f98 4749c032 bpatchx patch32_3 ,mem_patch32 
-2f99 20402a06 call le_fifo_check_nearly_full 
-2f9a 247a0000 nrtn blank 
-2f9b 6fe0c2fe fetch 1 ,mem_le_pairing_state 
-2f9c c0002fa5 beq flag_le_pairing_null ,le_pairing_sm_null 
-2f9d c000afab beq flag_le_pairing_start ,le_pairing_sm_start 
-2f9e c0012fa5 beq flag_le_pairing_send_recurity_req ,le_pairing_sm_send_sec_req 
-2f9f c001afad beq flag_le_pairing_rcv_pairing_req ,le_pairing_sm_rcv_pairing_req 
-2fa0 c004afb1 beq flag_le_pairing_after_auth ,le_pairing_sm_after_auth 
-2fa1 c005afc1 beq flag_le_paring_send_enc_information ,le_pairng_sm_send_enc_information 
-2fa2 c0062fc3 beq flag_le_paring_send_master_identification ,le_pairng_sm_send_master_indentification 
-2fa3 c006afca beq flag_le_paring_send_indentity_information ,le_pairng_sm_send_indentity_information 
-2fa4 20600000 rtn 
-
-le_pairing_sm_null:
-
-le_pairing_sm_send_sec_req:
-2fa5 6fe0c2ff fetch 1 ,mem_le_enc_state 
-2fa6 c1820000 rtnne flag_le_send_start_enc_rsp 
-2fa7 7042ffff jam flag_le_enc_end ,mem_le_enc_state 
-2fa8 7042feff jam flag_le_pairing_end ,mem_le_pairing_state 
-2fa9 70064d3f jam bt_evt_le_reconnect_complete ,mem_fifo_temp 
-2faa 20207819 branch ui_ipc_send_event 
-
-le_pairing_sm_start:
-2fab 7042fe02 jam flag_le_pairing_send_recurity_req ,mem_le_pairing_state 
-2fac 20202eb3 branch le_send_smp_security_request 
-
-le_pairing_sm_rcv_pairing_req:
-2fad 7042fe04 jam flag_le_pairing_wait_stk_generation ,mem_le_pairing_state 
-2fae 58017700 setarg timer_smp_pairing_timeout 
-2faf d8e00007 arg smp_pairing_timer ,queue 
-2fb0 20207ce3 branch timer_init 
-
-le_pairing_sm_after_auth:
-2fb1 6fe0c2ff fetch 1 ,mem_le_enc_state 
-2fb2 c0022fb4 beq flag_le_send_start_enc_rsp ,le_pairing_sm_after_auth_start_enc 
-2fb3 20600000 rtn 
-
-le_pairing_sm_after_auth_start_enc:
-2fb4 6fe0c300 fetch 1 ,mem_le_pairing_mode 
-2fb5 c283afbf bbit1 le_pairing_mode_secure_connect_bit ,le_pairing_sm_after_auth_start_enc_sc 
-2fb6 7042fe0b jam flag_le_paring_send_enc_information ,mem_le_pairing_state 
-2fb7 20402f37 call le_send_smp_encryption_information 
-
-le_pairing_sm_after_auth_start_enc_common:
-2fb8 70064d29 jam bt_evt_le_enc_info ,mem_fifo_temp 
-2fb9 20407819 call ui_ipc_send_event 
-2fba 6fe0c3cf fetch 1 ,mem_device_option 
-2fbb c1850000 rtnne dvc_op_module 
-2fbc 20402f6e call le_check_master_addr_type 
-2fbd 20740000 rtn user 
-2fbe 2020379e branch app_ble_store_reconn_info 
-
-le_pairing_sm_after_auth_start_enc_sc:
-2fbf 7042fe0c jam flag_le_paring_send_master_identification ,mem_le_pairing_state 
-2fc0 20202fb8 branch le_pairing_sm_after_auth_start_enc_common 
-
-le_pairng_sm_send_enc_information:
-2fc1 7042fe0c jam flag_le_paring_send_master_identification ,mem_le_pairing_state 
-2fc2 20202f41 branch le_send_smp_master_identification 
-
-le_pairng_sm_send_master_indentification:
-2fc3 6fe0c2c5 fetch 1 ,mem_le_preq_resp_key_distribution 
-2fc4 6848c2cc fetcht 1 ,mem_le_pres_resp_key_distribution 
-2fc5 98417e00 iand temp ,pdata 
-2fc6 2fec0001 isolate0 le_initator_irk_bit ,pdata 
-2fc7 2020afcc branch le_parse_start_enc_rsp_after_auth_end ,true 
-2fc8 7042fe0d jam flag_le_paring_send_indentity_information ,mem_le_pairing_state 
-2fc9 20202f4d branch le_send_smp_identity_information 
-
-le_pairng_sm_send_indentity_information:
-2fca 20402f55 call le_send_smp_identity_address_information 
-2fcb 20202fcc branch le_parse_start_enc_rsp_after_auth_end 
-
-le_parse_start_enc_rsp_after_auth_end:
-2fcc 474a4032 bpatchx patch32_4 ,mem_patch32 
-2fcd 18000e07 force smp_pairing_timer ,queue 
-2fce 20407ce2 call timer_stop 
-2fcf 7042ffff jam flag_le_enc_end ,mem_le_enc_state 
-2fd0 7042feff jam flag_le_pairing_end ,mem_le_pairing_state 
-2fd1 70064d3e jam bt_evt_le_pairing_complete ,mem_fifo_temp 
-2fd2 20207819 branch ui_ipc_send_event 
-
-le_secure_connect_sm:
-2fd3 474ac032 bpatchx patch32_5 ,mem_patch32 
-2fd4 6fe0c300 fetch 1 ,mem_le_pairing_mode 
-2fd5 c4038000 rtnbit0 le_pairing_mode_secure_connect_bit 
-2fd6 6fe0c2fb fetch 1 ,mem_le_secure_connect_flag 
-2fd7 c1810000 rtnne le_sp_flag_commit_256 
-2fd8 7042fb00 jam sp_flag_standby ,mem_le_secure_connect_flag 
-2fd9 6fe0c2fc fetch 1 ,mem_le_secure_connect_state 
-2fda c000b01b beq le_sc_stat_receive_public_key ,le_sc_sm_receive_public_key 
-2fdb c0013022 beq le_sc_stat_wait_send_public_key ,le_sc_sm_wait_send_public_key 
-2fdc c001b013 beq le_sc_stat_send_public_key ,le_sc_sm_send_public_key 
-2fdd c0032ff8 beq le_sc_stat_receive_dhkey ,le_sc_sm_receive_dhkey 
-2fde c003afef beq le_sc_stat_wait_confirm_gkey ,le_sc_sm_wait_confirm_gkey 
-2fdf c0042fe5 beq le_sc_stat_passkey_wait_confirm ,le_sc_sm_passkey_wait_confirm 
-2fe0 20600000 rtn 
-
-le_sc_state_clear:
-2fe1 7042fb00 jam sp_flag_standby ,mem_le_secure_connect_flag 
-2fe2 7042fc00 jam le_sc_stat_null ,mem_le_secure_connect_state 
-2fe3 7042fd00 jam flag_le_sc_confrim_null ,mem_le_sc_confirm_gkey_flag 
-2fe4 20600000 rtn 
-
-le_sc_sm_passkey_wait_confirm:
-2fe5 6fe0c4e6 fetch 1 ,mem_authentication_passkey_times 
-2fe6 1fe20e00 copy pdata ,queue 
-2fe7 1fe0fe01 increase 1 ,pdata 
-2fe8 67e0c4e6 store 1 ,mem_authentication_passkey_times 
-2fe9 6fe24301 fetch 4 ,mem_le_tk 
-2fea afefffff qisolate1 pdata 
-2feb 58000080 setarg 0x80 
-2fec 7920fe00 setflag true ,0 ,pdata 
-2fed 67e0c4e7 store 1 ,mem_passkey_1bit 
-2fee 20203017 branch le_sc_sm_ready_send_pairing_confirm 
-
-le_sc_sm_wait_confirm_gkey:
-2fef 6fe0c2fd fetch 1 ,mem_le_sc_confirm_gkey_flag 
-2ff0 7042fd00 jam flag_le_sc_confrim_null ,mem_le_sc_confirm_gkey_flag 
-2ff1 c000aff4 beq flag_le_sc_confrim_gkey_ok ,le_sc_confirm_gkey_ok 
-2ff2 7042fb02 jam le_sp_flag_commit_256 ,mem_le_secure_connect_flag 
-2ff3 20600000 rtn 
-
-le_sc_confirm_gkey_ok:
-2ff4 70064d31 jam bt_evt_le_pairing_success ,mem_fifo_temp 
-2ff5 20407819 call ui_ipc_send_event 
-2ff6 7042fe09 jam flag_le_pairing_after_auth ,mem_le_pairing_state 
-2ff7 20202f89 branch le_send_smp_pairing_dhkey_check 
-
-le_sc_sm_receive_dhkey:
-2ff8 6fe085d7 fetch 1 ,mem_sp_dhkey_invalid 
-2ff9 c001affc beq sp_key_valid_256 ,le_dhkey_ready 
-2ffa 7042fb02 jam le_sp_flag_commit_256 ,mem_le_secure_connect_flag 
-2ffb 20600000 rtn 
-
-le_dhkey_ready:
-2ffc 2040716c call function_f5 
-2ffd 6fe0c300 fetch 1 ,mem_le_pairing_mode 
-2ffe c041b001 beq le_pairing_mode_secure_connect_passkey ,le_dhkey_ready_common 
-2fff c0423001 beq le_pairing_mode_secure_connect_passkey_res_input ,le_dhkey_ready_common 
-3000 20402ece call le_set_tk_0 
-
-le_dhkey_ready_common:
-3001 20407159 call function_f6_ea 
-3002 da2006af arg mem_aes_cmac_temp ,rega 
-3003 da40063c arg mem_sp_confirm_remote ,regb 
-3004 df200010 arg 16 ,loopcnt 
-3005 20407d66 call string_compare 
-3006 2022b009 branch le_dhkey_check_ok ,zero 
-
-le_dhkey_check_fail:
-3007 7001ba0b jam pairing_failed_dhkey_check_failed ,mem_le_ll_pairing_fail_reason 
-3008 20202f09 branch le_send_pairing_failed 
-
-le_dhkey_check_ok:
-3009 20407449 call sp_calc_check_publickey_256 
-300a 2422b007 nbranch le_dhkey_check_fail ,zero 
-300b 70429c01 jam 1 ,mem_ltk_exists 
-300c 6fe0c300 fetch 1 ,mem_le_pairing_mode 
-300d c040aff4 beq le_pairing_mode_secure_connect_justwork ,le_sc_confirm_gkey_ok 
-300e c041aff4 beq le_pairing_mode_secure_connect_passkey ,le_sc_confirm_gkey_ok 
-300f c0422ff4 beq le_pairing_mode_secure_connect_passkey_res_input ,le_sc_confirm_gkey_ok 
-3010 7042fb02 jam le_sp_flag_commit_256 ,mem_le_secure_connect_flag 
-3011 7042fc07 jam le_sc_stat_wait_confirm_gkey ,mem_le_secure_connect_state 
-3012 20600000 rtn 
-
-le_sc_sm_send_public_key:
-3013 6fe0c300 fetch 1 ,mem_le_pairing_mode 
-3014 c041b018 beq le_pairing_mode_secure_connect_passkey ,le_sc_sm_send_public_key_passkey 
-3015 c0423018 beq le_pairing_mode_secure_connect_passkey_res_input ,le_sc_sm_send_public_key_passkey 
-3016 7044e700 jam 0 ,mem_passkey_1bit 
-
-le_sc_sm_ready_send_pairing_confirm:
-3017 20202ef1 branch le_send_smp_pairing_confirm 
-
-le_sc_sm_send_public_key_passkey:
-3018 7044e600 jam 0 ,mem_authentication_passkey_times 
-3019 c1420000 rtneq le_pairing_mode_secure_connect_passkey_res_input 
-301a 20202ed1 branch le_parse_smp_pairing_req_passkey 
-
-le_sc_sm_receive_public_key:
-301b 7042fb02 jam le_sp_flag_commit_256 ,mem_le_secure_connect_flag 
-301c 6fe0c485 fetch 1 ,mem_sc_local_key_invalid 
-301d c001b01f beq sp_key_valid_256 ,le_public_key_ready 
-301e 20600000 rtn 
-
-le_public_key_ready:
-301f 7042fc02 jam le_sc_stat_wait_send_public_key ,mem_le_secure_connect_state 
-3020 7005d700 jam sp_key_invalid ,mem_sp_dhkey_invalid 
-3021 2020752a branch sp_dhkey_calc_256 
-
-le_sc_sm_wait_send_public_key:
-3022 7042fb02 jam le_sp_flag_commit_256 ,mem_le_secure_connect_flag 
-3023 7042fc03 jam le_sc_stat_send_public_key ,mem_le_secure_connect_state 
-3024 20202f83 branch le_send_smp_pairing_public_key 
-
-le_fifo_malloc_tx_l2cap_smp:
-3025 474b4032 bpatchx patch32_6 ,mem_patch32 
-3026 18002406 force le_l2cap_cid_smp ,regb 
-3027 202029d9 branch le_fifo_malloc_tx_l2cap 
-
-le_parse_ll:
-3028 6fe0804e fetch 1 ,mem_le_rxbuf_data_ll_opcode 
-3029 c000303f beq ll_connection_update_ind ,le_parse_connection_update_ind 
-302a c000b047 beq ll_channel_map_ind ,le_parse_channel_map_ind 
-302b c001304f beq ll_terminate_ind ,le_parse_terminate_ind 
-302c c001b053 beq ll_enc_req ,le_parse_enc_req 
-302d c0023071 beq ll_enc_rsp ,le_parse_enc_rsp 
-302e c002b076 beq ll_start_enc_req ,le_parse_start_enc_req 
-302f c003307a beq ll_start_enc_rsp ,le_parse_start_enc_rsp 
-3030 c003b07f beq ll_unknown_rsp ,le_parse_unknown_rsp 
-3031 c0043080 beq ll_feature_req ,le_parse_feature_req 
-3032 c004b081 beq ll_feature_rsp ,le_parse_feature_rsp 
-3033 c0053082 beq ll_pause_enc_req ,le_parse_pause_enc_req 
-3034 c005b086 beq ll_pause_enc_rsp ,le_parse_pause_enc_rsp 
-3035 c0063087 beq ll_version_ind ,le_parse_version_ind 
-3036 c006b089 beq ll_reject_ind ,le_parse_reject_ind 
-3037 c009308a beq ll_ping_req ,le_parse_ping_req 
-3038 c009b08b beq ll_ping_rsp ,le_parse_ping_rsp 
-3039 c00a308c beq ll_length_req ,le_parse_length_req 
-303a c00ab08e beq ll_length_rsp ,le_parse_length_rsp 
-303b c00b3099 beq ll_phy_req ,le_parse_phy_req 
-303c c00c309a beq ll_phy_update_ind ,le_parse_phy_update_ind 
-
-p_le_send_unknown_rsp:
-303d 6a60804e fetchr regc ,1 ,mem_le_rxbuf_data_ll_opcode 
-303e 202030bd branch le_send_unknown_rsp 
-
-le_parse_connection_update_ind:
-303f efe48006 ifetch 9 ,contr 
-3040 67e4819f store 9 ,mem_le_new_param 
-3041 efe10006 ifetch 2 ,contr 
-3042 67e10188 store 2 ,mem_le_instant 
-3043 6fe08168 fetch 1 ,mem_le_state 
-3044 79207e05 set1 lestate_update_param ,pdata 
-3045 67e08168 store 1 ,mem_le_state 
-3046 20600000 rtn 
-
-le_parse_channel_map_ind:
-3047 efe28006 ifetch 5 ,contr 
-3048 67e2819f store 5 ,mem_le_new_map 
-3049 efe10006 ifetch 2 ,contr 
-304a 67e10188 store 2 ,mem_le_instant 
-
-le_update_map_enable:
-304b 6fe08168 fetch 1 ,mem_le_state 
-304c 79207e06 set1 lestate_update_map ,pdata 
-304d 67e08168 store 1 ,mem_le_state 
-304e 20600000 rtn 
-
-le_parse_terminate_ind:
-304f 58000014 setarg 20 
-3050 67e10196 store 2 ,mem_le_superto 
-3051 67e142f7 store 2 ,mem_le_init_superto 
-3052 20600000 rtn 
-
-le_parse_enc_req:
-3053 efe40006 ifetch 8 ,contr 
-3054 67e44307 store 8 ,mem_le_rand 
-3055 efe10006 ifetch 2 ,contr 
-3056 67e14305 store 2 ,mem_le_ediv 
-3057 efe40006 ifetch 8 ,contr 
-3058 67e442e7 store 8 ,mem_le_skdm 
-3059 efe20006 ifetch 4 ,contr 
-305a 67e24475 store 4 ,mem_ccm_ivm 
-305b 204030aa call le_send_enc_rsp 
-305c 474bc032 bpatchx patch32_7 ,mem_patch32 
-305d 6fe0c2fe fetch 1 ,mem_le_pairing_state 
-305e c004b065 beq flag_le_pairing_after_auth ,le_parse_enc_req_after_auth 
-305f 6fe0c323 fetch 1 ,mem_le_configuration 
-3060 c280b068 bbit1 bit_ble_pairing_fixed_ltk ,le_parse_enc_req_fixed_ltk 
-3061 6fe0c403 fetch 1 ,mem_nv_data_number 
-3062 245a6e88 ncall load_device_list_mode_4 ,blank 
-3063 6fe0c29c fetch 1 ,mem_ltk_exists 
-3064 c000306d beq 0 ,le_ltk_lost 
-
-le_parse_enc_req_after_auth:
-3065 7042ff01 jam flag_le_rcv_enc_start ,mem_le_enc_state 
-3066 204030b8 call le_send_start_enc_req 
-3067 2020724a branch generate_sk 
-
-le_parse_enc_req_fixed_ltk:
-3068 70429c01 jam 1 ,mem_ltk_exists 
-3069 d8c04324 arg mem_le_fixed_ltk ,contr 
-306a d8a0428c arg mem_le_ltk ,contw 
-306b 20407c91 call memcpy16 
-306c 20203065 branch le_parse_enc_req_after_auth 
-
-le_ltk_lost:
-306d 7042ff00 jam flag_le_enc_null ,mem_le_enc_state 
-306e 7042fe00 jam flag_le_enc_null ,mem_le_pairing_state 
-306f 70064d41 jam bt_evt_le_ltk_lost ,mem_fifo_temp 
-3070 20207819 branch ui_ipc_send_event 
-
-le_parse_enc_rsp:
-3071 efe40006 ifetch 8 ,contr 
-3072 67e442ef store 8 ,mem_le_skds 
-3073 efe20006 ifetch 4 ,contr 
-3074 67e24479 store 4 ,mem_ccm_ivs 
-3075 2020724a branch generate_sk 
-
-le_parse_start_enc_req:
-3076 6fe08168 fetch 1 ,mem_le_state 
-3077 79207e04 set1 lestate_encryption ,pdata 
-3078 67e08168 store 1 ,mem_le_state 
-3079 20600000 rtn 
-
-le_parse_start_enc_rsp:
-307a 20748000 rtn master 
-307b 70064d32 jam bt_evt_le_start_enc ,mem_fifo_temp 
-307c 20407819 call ui_ipc_send_event 
-307d 7042ff04 jam flag_le_send_start_enc_rsp ,mem_le_enc_state 
-307e 202030bb branch le_send_start_enc_rsp 
-
-le_parse_unknown_rsp:
-307f 20600000 rtn 
-
-le_parse_feature_req:
-3080 202030c2 branch le_send_feature_rsp 
-
-le_parse_feature_rsp:
-3081 20600000 rtn 
-
-le_parse_pause_enc_req:
-3082 7042ff02 jam flag_le_enc_pause ,mem_le_enc_state 
-3083 204030c9 call le_send_pause_enc_rsp 
-3084 70064d33 jam bt_evt_le_pause_enc ,mem_fifo_temp 
-3085 20207819 branch ui_ipc_send_event 
-
-le_parse_pause_enc_rsp:
-3086 20600000 rtn 
-
-le_parse_version_ind:
-3087 20748000 rtn master 
-3088 202030cb branch le_send_version_ind 
-
-le_parse_reject_ind:
-3089 20600000 rtn 
-
-le_parse_ping_req:
-308a 202030d7 branch le_send_ping_rsp 
-
-le_parse_ping_rsp:
-308b 20600000 rtn 
-
-le_parse_length_req:
-308c 2040308e call le_parse_length_rsp 
-308d 202030db branch le_send_data_length_res 
-
-le_parse_length_rsp:
-308e efe40006 ifetch 8 ,contr 
-308f 67e443bc store 8 ,mem_remote_rx_max_octets 
-3090 6fe143bc fetch 2 ,mem_remote_rx_max_octets 
-3091 684943c8 fetcht 2 ,mem_local_tx_max_octets 
-3092 20407db2 call not_greater_than 
-3093 67e143bc store 2 ,mem_remote_rx_max_octets 
-3094 6fe143c0 fetch 2 ,mem_remote_tx_max_octets 
-3095 684943c4 fetcht 2 ,mem_local_rx_max_octets 
-3096 20407db2 call not_greater_than 
-3097 67e143c0 store 2 ,mem_remote_tx_max_octets 
-3098 20600000 rtn 
-
-le_parse_phy_req:
-3099 202030e1 branch le_send_phy_rsp 
-
-le_parse_phy_update_ind:
-309a efe10006 ifetch 2 ,contr 
-309b 67e1019f store 2 ,mem_le_new_m2s_phy 
-309c efe10006 ifetch 2 ,contr 
-309d 67e10188 store 2 ,mem_le_instant 
-309e 207a0000 rtn blank 
-309f 6fe08168 fetch 1 ,mem_le_state 
-30a0 79207e07 set1 lestate_update_phy ,pdata 
-30a1 67e08168 store 1 ,mem_le_state 
-30a2 20600000 rtn 
-
-le_send_terminate_ind_user_terminated:
-30a3 da600013 arg error_remote_user_terminated_connection ,regc 
-
-le_send_terminate_ind:
-30a4 da200002 arg 2 ,rega 
-30a5 da400002 arg ll_terminate_ind ,regb 
-30a6 204029d3 call le_fifo_malloc_tx_ll 
-30a7 1a627e00 copy regc ,pdata 
-30a8 e7e08005 istore 1 ,contw 
-30a9 20600000 rtn 
-
-le_send_enc_rsp:
-30aa d8a042ef arg mem_le_skds ,contw 
-30ab 18007208 force 8 ,loopcnt 
-30ac 20407dee call generate_random_loop 
-30ad d8a04479 arg mem_ccm_ivs ,contw 
-30ae 18007204 force 4 ,loopcnt 
-30af 20407dee call generate_random_loop 
-30b0 da20000d arg 13 ,rega 
-30b1 da400004 arg ll_enc_rsp ,regb 
-30b2 204029d3 call le_fifo_malloc_tx_ll 
-30b3 6fe442ef fetch 8 ,mem_le_skds 
-30b4 e7e40005 istore 8 ,contw 
-30b5 6fe24479 fetch 4 ,mem_ccm_ivs 
-30b6 e7e20005 istore 4 ,contw 
-30b7 20600000 rtn 
-
-le_send_start_enc_req:
-30b8 7042ff05 jam flag_le_send_start_enc_req ,mem_le_enc_state 
-30b9 da400005 arg ll_start_enc_req ,regb 
-30ba 202030eb branch le_send_ll_one_lenth 
-
-le_send_start_enc_rsp:
-30bb da400006 arg ll_start_enc_rsp ,regb 
-30bc 202030eb branch le_send_ll_one_lenth 
-
-le_send_unknown_rsp:
-30bd da200002 arg 2 ,rega 
-30be da400007 arg ll_unknown_rsp ,regb 
-30bf 204029d3 call le_fifo_malloc_tx_ll 
-30c0 e2608005 istorer regc ,1 ,contw 
-30c1 20600000 rtn 
-
-le_send_feature_rsp:
-30c2 da200009 arg 9 ,rega 
-30c3 da400009 arg ll_feature_rsp ,regb 
-30c4 204029d3 call le_fifo_malloc_tx_ll 
-30c5 6fe443b2 fetch 8 ,mem_le_local_feature 
-30c6 1fe1fe01 or pdata ,fun_ll_feature_le_encryption ,pdata 
-30c7 e7e40005 istore 8 ,contw 
-30c8 20600000 rtn 
-
-le_send_pause_enc_rsp:
-30c9 da40000b arg ll_pause_enc_rsp ,regb 
-30ca 202030eb branch le_send_ll_one_lenth 
-
-le_send_version_ind:
-30cb da200006 arg 6 ,rega 
-30cc da40000c arg ll_version_ind ,regb 
-30cd 204029d3 call le_fifo_malloc_tx_ll 
-30ce 6fe2c160 fetch 5 ,mem_version 
-30cf e7e28005 istore 5 ,contw 
-30d0 20600000 rtn 
-
-le_send_reject_ind:
-30d1 da200002 arg 2 ,rega 
-30d2 da40000d arg ll_reject_ind ,regb 
-30d3 204029d3 call le_fifo_malloc_tx_ll 
-30d4 58000006 setarg le_err_pin_or_key_missing 
-30d5 e7e08005 istore 1 ,contw 
-30d6 20600000 rtn 
-
-le_send_ping_rsp:
-30d7 da400013 arg ll_ping_rsp ,regb 
-30d8 202030eb branch le_send_ll_one_lenth 
-
-le_send_data_length_req:
-30d9 da400014 arg ll_length_req ,regb 
-30da 202030dc branch le_send_data_length 
-
-le_send_data_length_res:
-30db da400015 arg ll_length_rsp ,regb 
-
-le_send_data_length:
-30dc da200009 arg 9 ,rega 
-30dd 204029d3 call le_fifo_malloc_tx_ll 
-30de 6fe443c4 fetch 8 ,mem_local_rx_max_octets 
-30df e7e40005 istore 8 ,contw 
-30e0 20600000 rtn 
-
-le_send_phy_rsp:
-30e1 da200003 arg 3 ,rega 
-30e2 da400017 arg ll_phy_rsp ,regb 
-30e3 204029d3 call le_fifo_malloc_tx_ll 
-30e4 6fe0c3ba fetch 1 ,mem_le_tx_phys 
-30e5 1fe17e07 and pdata ,0x07 ,pdata 
-30e6 e7e08005 istore 1 ,contw 
-30e7 6fe0c3bb fetch 1 ,mem_le_rx_phys 
-30e8 1fe17e07 and pdata ,0x07 ,pdata 
-30e9 e7e08005 istore 1 ,contw 
-30ea 20600000 rtn 
-
-le_send_ll_one_lenth:
-30eb da200001 arg 1 ,rega 
-30ec 202029d3 branch le_fifo_malloc_tx_ll 
-
-g24_dispatch:
-30ed 474c4033 bpatchx patch33_0 ,mem_patch33 
-30ee c513b37c bmark1 mark_24g_rxmode ,g24_receive_dispatch 
-30ef c6930000 rtnmark0 mark_24g 
-30f0 202035db branch g24_transmit_dispatch 
-
-g24_prep:
-30f1 474cc033 bpatchx patch33_1 ,mem_patch33 
-30f2 7844fc00 disable enable_crc 
-30f3 7843fc00 disable enable_white 
-30f4 58555555 setarg 0x555555 
-30f5 98001e00 iforce crc24_init 
-30f6 6fe0c5a4 fetch 1 ,mem_24g_ch 
-30f7 2020259d branch le_prep_next 
-
-g24_receive_packet:
-30f8 474d4033 bpatchx patch33_2 ,mem_patch33 
-30f9 6fe0c5ce fetch 1 ,mem_24g_rx_phy 
-30fa 20402579 call le_enable_phy_by_pdata 
-30fb 6fe245a6 fetch 4 ,mem_24g_addr 
-30fc 98001200 iforce access 
-30fd 20402164 call set_sync_on 
-30fe 6848c5a4 fetcht 1 ,mem_24g_ch 
-30ff 204025a2 call le_rf_rx_enable 
-
-g24_receive_rxon:
-3100 204030f1 call g24_prep 
-3101 c597b105 bmark0 mark_ble_lr ,g24_receive_nolr 
-3102 783cfc00 pulse dewhiten_code_calc 
-3103 2000001e nop 30 
-3104 204030f1 call g24_prep 
-
-g24_receive_nolr:
-3105 7857fc00 disable user3 
-3106 7826fc00 enable decode_fec0 
-3107 7830fc00 enable is_rx 
-3108 78507c00 disable is_tx 
-3109 78287c00 enable swfine 
-310a 6fe145a2 fetch 2 ,mem_24g_rx_window 
-310b 98003600 iforce stop_watch 
-310c 37c18400 correlate null ,timeout 
-310d 242c315f nbranch g24_sync_timeout ,sync 
-310e 204066e7 call rf_debug_rx_sync_line 
-310f c517b114 bmark1 mark_ble_lr ,g24_receive_skip_fec1 
-3110 6fe0c5e1 fetch 1 ,mem_24g_disable_fec1 
-3111 243a3114 nbranch g24_receive_skip_fec1 ,blank 
-3112 7846fc00 disable decode_fec0 
-3113 7825fc00 enable decode_fec1 
-
-g24_receive_skip_fec1:
-3114 7823fc00 enable enable_white 
-3115 7824fc00 enable enable_crc 
-3116 2040315c call g24_receive_byte 
-3117 67e0c5c4 store 1 ,mem_24g_get_syncword_crc8 
-3118 6848c5c3 fetcht 1 ,mem_24g_syncword_crc8 
-3119 98467c00 isub temp ,null 
-311a 2422b167 nbranch g24_hec_error ,zero 
-
-g24_receive_payload:
-311b 474dc033 bpatchx patch33_3 ,mem_patch33 
-311c 7858fc00 disable user7 
-311d 280ffe2f isolate1 mark_ble_lr ,mark 
-311e 2040b14e call g24_lr_receive_pdu_len ,true 
-311f 2038b169 branch g24_lr_len_error ,user7 
-3120 2040315c call g24_receive_byte 
-3121 67e0c50e store 1 ,mem_24g_rxbuf 
-3122 c513b127 bmark1 mark_24g_rxmode ,g24_receive_skip 
-3123 6fe0c50e fetch 1 ,mem_24g_rxbuf 
-3124 6848c5a0 fetcht 1 ,mem_24g_data_type 
-3125 a8400e00 icompare bits_data ,temp 
-3126 2420b16b nbranch g24_type_error ,true 
-
-g24_receive_skip:
-3127 2040315c call g24_receive_byte 
-3128 280ffe2f isolate1 mark_ble_lr ,mark 
-3129 2040b157 call g24_lr_receive_payload_len ,true 
-312a e7e08005 istore 1 ,contw 
-312b 1fe97e00 rshift3 pdata ,pdata 
-312c 1fe67c1f sub pdata ,0x1f ,null 
-312d 2421316d nbranch g24_len_over_error ,positive 
-312e 1fe27200 copy pdata ,loopcnt 
-312f 2022b133 branch g24rx_nopayload ,zero 
-
-g24rx_loop:
-3130 2040315c call g24_receive_byte 
-3131 e7e08005 istore 1 ,contw 
-3132 c2003130 loop g24rx_loop 
-
-g24rx_nopayload:
-3133 c513b138 bmark1 mark_24g_rxmode ,g24_receive_skip_rssi 
-3134 18a22200 copy contw ,rega 
-3135 2040315c call g24_receive_byte 
-3136 67e0c5ea store 1 ,mem_rssi_hex_received 
-3137 1a220a00 copy rega ,contw 
-
-g24_receive_skip_rssi:
-3138 09800018 parse demod ,bucket ,24 
-3139 1fef7e00 rshift32 pdata ,pdata 
-313a 1ff17e00 rshift16 pdata ,pdata 
-313b e7e18005 istore 3 ,contw 
-313c 6fe0c5e1 fetch 1 ,mem_24g_disable_fec1 
-313d 243a314c nbranch g24_receive_skip_disable_fec1 ,blank 
-313e 7845fc00 disable decode_fec1 
-
-g24_receive_skip_next:
-313f 280ffe27 isolate1 mark_24g_rxmode ,mark 
-3140 2040b5a0 call save_rssi_dec ,true 
-3141 2023316f branch g24_crc_error ,crc_failed 
-3142 204066e6 call rf_debug_rx_crc_line 
-3143 474e4033 bpatchx patch33_4 ,mem_patch33 
-3144 7837fc00 enable user3 
-3145 2040268f call le_match_set_txfreq 
-3146 c6138000 rtnmark1 mark_24g_rxmode 
-3147 6fe0c5ea fetch 1 ,mem_rssi_hex_received 
-3148 6848c641 fetcht 1 ,mem_rssi_hex_received_max_value 
-3149 98467c00 isub temp ,null 
-314a 20417db4 call copy_temp2pdata ,positive 
-314b 202035a3 branch rssi_signal 
-
-g24_receive_skip_disable_fec1:
-314c 7846fc00 disable decode_fec0 
-314d 2020313f branch g24_receive_skip_next 
-
-g24_lr_receive_pdu_len:
-314e 2040315c call g24_receive_byte 
-314f 1fe67c01 sub pdata ,1 ,null 
-3150 20217dc4 branch enable_user7 ,positive 
-3151 1fe0fffe increase -2 ,pdata 
-3152 c513b155 bmark1 mark_24g_rxmode ,g24_lr_receive_pdu_norssi 
-3153 203a7dc4 branch enable_user7 ,blank 
-3154 1fe0ffff increase -1 ,pdata 
-
-g24_lr_receive_pdu_norssi:
-3155 67e08656 store 1 ,mem_temp 
-3156 20600000 rtn 
-
-g24_lr_receive_payload_len:
-3157 1fe17e07 and_into 0x07 ,pdata 
-3158 68488656 fetcht 1 ,mem_temp 
-3159 18498400 lshift3 temp ,temp 
-315a 9841fe00 ior temp ,pdata 
-315b 20600000 rtn 
-
-g24_receive_byte:
-315c 09800008 parse demod ,bucket ,8 
-315d 19897e00 rshift3 pwindow ,pdata 
-315e 20600000 rtn 
-
-g24_sync_timeout:
-315f 7045e201 jam err_sync_to ,mem_24g_off_type 
-3160 280ffe27 isolate1 mark_24g_rxmode ,mark 
-3161 2040b5bb call rssi_noise ,true 
-
-g24_end_of_packet:
-3162 474ec033 bpatchx patch33_5 ,mem_patch33 
-3163 20402591 call le_disable 
-3164 784dfc00 disable encode_fec1 
-3165 7845fc00 disable decode_fec1 
-3166 202020cf branch end_of_packet 
-
-g24_hec_error:
-3167 7045e202 jam err_hec ,mem_24g_off_type 
-3168 20203162 branch g24_end_of_packet 
-
-g24_lr_len_error:
-3169 7045e203 jam err_lr_len ,mem_24g_off_type 
-316a 20203162 branch g24_end_of_packet 
-
-g24_type_error:
-316b 7045e204 jam err_type ,mem_24g_off_type 
-316c 20203162 branch g24_end_of_packet 
-
-g24_len_over_error:
-316d 7045e205 jam err_len_over ,mem_24g_off_type 
-316e 20203162 branch g24_end_of_packet 
-
-g24_crc_error:
-316f 7045e206 jam err_crc ,mem_24g_off_type 
-3170 20203162 branch g24_end_of_packet 
-
-g24_set_freq_tx:
-3171 20402164 call set_sync_on 
-3172 6848c5a4 fetcht 1 ,mem_24g_ch 
-3173 202021ff branch set_freq_tx 
-
-g24_transmit:
-3174 474f4033 bpatchx patch33_6 ,mem_patch33 
-3175 6fe0c5cf fetch 1 ,mem_24g_tx_phy 
-3176 20402579 call le_enable_phy_by_pdata 
-3177 6fe245a6 fetch 4 ,mem_24g_addr 
-3178 98001200 iforce access 
-3179 204030f1 call g24_prep 
-317a 20403171 call g24_set_freq_tx 
-317b 79202a00 set1 txgfsk ,radio_ctrl 
-317c 782efc00 enable encode_fec0 
-317d 78307c00 enable is_tx 
-317e 7850fc00 disable is_rx 
-317f 204066ed call rf_debug_tx_on_line 
-3180 785d7c00 disable lr_s2en 
-3181 c517b1a6 bmark1 mark_ble_lr ,g24_transmit_lr 
-3182 c516b1b8 bmark1 mark_ble_2m ,g24_transmit_2m 
-3183 19317e00 rshift16 access ,pdata 
-3184 1fecfe00 rshift8 pdata ,pdata 
-3185 1ff1fe00 rshift4 pdata ,pdata 
-3186 08008628 inject mod ,40 
-
-g24_transmit_packet:
-3187 474fc033 bpatchx patch33_7 ,mem_patch33 
-3188 c517b18d bmark1 mark_ble_lr ,g24_transmit_nolr 
-3189 6fe0c5e1 fetch 1 ,mem_24g_disable_fec1 
-318a 243a318d nbranch g24_transmit_nolr ,blank 
-318b 784efc00 disable encode_fec0 
-318c 782dfc00 enable encode_fec1 
-
-g24_transmit_nolr:
-318d 7823fc00 enable enable_white 
-318e 7824fc00 enable enable_crc 
-318f 6fe0c5a1 fetch 1 ,mem_24g_txlen 
-3190 98007200 iforce loopcnt 
-3191 d8c04550 arg mem_24g_txpayload ,contr 
-
-g24tr_loop:
-3192 efe08006 ifetch 1 ,contr 
-3193 08008608 inject mod ,8 
-3194 c2003192 loop g24tr_loop 
-3195 78247c00 enable enable_parity 
-3196 08008618 inject mod ,24 
-3197 78447c00 disable enable_parity 
-3198 c597b19c bmark0 mark_ble_lr ,g24_transmit_skip 
-3199 7843fc00 disable enable_white 
-319a 58000000 setarg 0 
-319b 08008603 inject mod ,3 
-
-g24_transmit_skip:
-319c 37d38200 until null ,tx_clear 
-319d 20000064 nop 100 
-319e 785d7c00 disable lr_s2en 
-319f 784efc00 disable encode_fec0 
-31a0 6fe0c5e1 fetch 1 ,mem_24g_disable_fec1 
-31a1 243a31a3 nbranch g24_transmit_skip_disable_fec1 ,blank 
-31a2 784dfc00 disable encode_fec1 
-
-g24_transmit_skip_disable_fec1:
-31a3 785c7c00 disable encode_fec3 
-31a4 20402164 call set_sync_on 
-31a5 202066eb branch rf_debug_tx_off_line 
-
-g24_transmit_lr:
-31a6 df20000a arg 10 ,loopcnt 
-
-g24_transmit_lr_preamble_loop:
-31a7 5800003c setarg 0x3c 
-31a8 08008608 inject mod ,8 
-31a9 c20031a7 loop g24_transmit_lr_preamble_loop 
-31aa 784efc00 disable encode_fec0 
-31ab 783c7c00 enable encode_fec3 
-31ac 19317e00 rshift16 access ,pdata 
-31ad 1ff17e00 rshift16 pdata ,pdata 
-31ae 1ff1fe00 rshift4 pdata ,pdata 
-31af 08008620 inject mod ,32 
-31b0 c51731b5 bmark1 mark_ble_lr_s8 ,g24_transmit_lr_s8 
-
-g24_transmit_lr_s2:
-31b1 58000001 setarg 1 
-31b2 08008605 inject mod ,5 
-31b3 783d7c00 enable lr_s2en 
-31b4 20203187 branch g24_transmit_packet 
-
-g24_transmit_lr_s8:
-31b5 58000000 setarg 0 
-31b6 08008605 inject mod ,5 
-31b7 20203187 branch g24_transmit_packet 
-
-g24_transmit_2m:
-31b8 6fe0c148 fetch 1 ,mem_system_clk 
-31b9 1fe37200 rshift pdata ,loopcnt 
-
-g24_transmit_2m_dealy:
-31ba 20000002 nop 2 
-31bb c20031ba loop g24_transmit_2m_dealy 
-31bc 19317e00 rshift16 access ,pdata 
-31bd 1fecfe00 rshift8 pdata ,pdata 
-31be 1ff18400 rshift4 pdata ,temp 
-31bf 18427e00 copy temp ,pdata 
-31c0 08008608 inject mod ,8 
-31c1 18427e00 copy temp ,pdata 
-31c2 08008628 inject mod ,40 
-31c3 20203187 branch g24_transmit_packet 
-
-g24_transmit_prep:
-31c4 47504034 bpatchx patch34_0 ,mem_patch34 
-31c5 6fe0c5cf fetch 1 ,mem_24g_tx_phy 
-31c6 c28131e5 bbit1 bit_le_coded_phy ,g24_lr_transmit_prep 
-31c7 6fe0c59f fetch 1 ,mem_24g_datalen 
-31c8 1fe0fe03 increase 3 ,pdata 
-31c9 67e0c5a1 store 1 ,mem_24g_txlen 
-31ca 6fe0c5c3 fetch 1 ,mem_24g_syncword_crc8 
-31cb 67e0c550 store 1 ,mem_24g_txpayload 
-31cc 6fe0c5a0 fetch 1 ,mem_24g_data_type 
-31cd e7e08005 istore 1 ,contw 
-31ce 6fe0c59f fetch 1 ,mem_24g_datalen 
-
-g24_transmit_prep_pdu:
-31cf 1fe9fe00 lshift3 pdata ,pdata 
-31d0 6848c595 fetcht 1 ,mem_24g_pid 
-31d1 18410403 and temp ,0x03 ,temp 
-31d2 18438400 lshift temp ,temp 
-31d3 9841fe00 ior temp ,pdata 
-31d4 6848c596 fetcht 1 ,mem_24g_no_ack 
-31d5 9840fe00 iadd temp ,pdata 
-31d6 e7e08005 istore 1 ,contw 
-31d7 6fe0c59f fetch 1 ,mem_24g_datalen 
-31d8 98007200 iforce loopcnt 
-31d9 d8c04530 arg mem_24g_txbuf ,contr 
-31da 20407cdc call memcpy 
-
-g24_transmit_prep_next:
-31db 4750c034 bpatchx patch34_1 ,mem_patch34 
-31dc c6938000 rtnmark0 mark_24g_rxmode 
-31dd 6fe08035 fetch 1 ,mem_rssi_hex 
-31de e7e08005 istore 1 ,contw 
-31df 6fe0c5cf fetch 1 ,mem_24g_tx_phy 
-31e0 c3810000 rtnbit1 bit_le_coded_phy 
-31e1 6fe0c5a1 fetch 1 ,mem_24g_txlen 
-31e2 1fe0fe01 increase 1 ,pdata 
-31e3 67e0c5a1 store 1 ,mem_24g_txlen 
-31e4 20600000 rtn 
-
-g24_lr_transmit_prep:
-31e5 6fe0c59f fetch 1 ,mem_24g_datalen 
-31e6 1fe0fe04 increase 4 ,pdata 
-31e7 c593b1e9 bmark0 mark_24g_rxmode ,g24_lr_transmit_prep_skip 
-31e8 1fe0fe01 increase 1 ,pdata 
-
-g24_lr_transmit_prep_skip:
-31e9 67e0c5a1 store 1 ,mem_24g_txlen 
-31ea 6fe0c5c3 fetch 1 ,mem_24g_syncword_crc8 
-31eb 67e0c550 store 1 ,mem_24g_txpayload 
-31ec 6fe0c5a1 fetch 1 ,mem_24g_txlen 
-31ed 1fe0fffe increase -2 ,pdata 
-31ee e7e08005 istore 1 ,contw 
-31ef 6fe0c5a0 fetch 1 ,mem_24g_data_type 
-31f0 e7e08005 istore 1 ,contw 
-31f1 58000000 setarg 0 
-31f2 202031cf branch g24_transmit_prep_pdu 
-
-g24_read_len_pid_crc:
-31f3 47514034 bpatchx patch34_2 ,mem_patch34 
-31f4 6fe0c50f fetch 1 ,mem_24g_rxbuf + 1 
-31f5 1fe97e00 rshift3 pdata ,pdata 
-31f6 67e0c594 store 1 ,mem_24g_rxdata_length 
-31f7 1fe0fe01 increase 1 ,pdata 
-31f8 d8c0450f arg mem_24g_rxbuf + 1 ,contr 
-31f9 98c08c00 iadd contr ,contr 
-31fa efe18006 ifetch 3 ,contr 
-31fb 67e1c597 store 3 ,mem_24g_sta_crc 
-31fc 6fe0c50f fetch 1 ,mem_24g_rxbuf + 1 
-31fd 1fe37e00 rshift pdata ,pdata 
-31fe 1fe17e03 and pdata ,0x03 ,pdata 
-31ff 67e0c59d store 1 ,mem_24g_sta_pid 
-3200 20600000 rtn 
-
-g24_ch:
-3201 4751c034 bpatchx patch34_3 ,mem_patch34 
-3202 6848c5a5 fetcht 1 ,mem_24g_current_ch_number 
-3203 20403206 call g24_ch_map_size 
-3204 6048c5a5 storet 1 ,mem_24g_current_ch_number 
-3205 20600000 rtn 
-
-g24_ch_map_size:
-3206 47524034 bpatchx patch34_4 ,mem_patch34 
-3207 2040320b call g24_ch_calc 
-3208 18408401 increase 1 ,temp 
-3209 18410403 and_into 3 ,temp 
-320a 20600000 rtn 
-
-g24_ch_calc:
-320b 4752c034 bpatchx patch34_5 ,mem_patch34 
-320c 6fe0c5a6 fetch 1 ,mem_24g_addr 
-320d 1fe17e03 and_into 0x03 ,pdata 
-320e 1fefa204 mul32 pdata ,4 ,rega 
-320f 580045aa setarg mem_24g_ch_map1 
-3210 9a20fe00 iadd rega ,pdata 
-3211 98408c00 iadd temp ,contr 
-3212 efe08006 ifetch 1 ,contr 
-3213 67e0c5a4 store 1 ,mem_24g_ch 
-3214 20600000 rtn 
-
-g24_update_addr_and_synccrc8:
-3215 67e245a6 store 4 ,mem_24g_addr 
-3216 47534034 bpatchx patch34_6 ,mem_patch34 
-
-g24_syncword_crc8:
-3217 da200000 arg 0 ,rega 
-3218 df200004 arg 4 ,loopcnt 
-3219 d8c045a6 arg mem_24g_addr ,contr 
-
-g24_syncword_crc8_loop:
-321a efe08006 ifetch 1 ,contr 
-321b 9a20a200 iadd rega ,rega 
-321c c200321a loop g24_syncword_crc8_loop 
-321d 1a227e00 copy rega ,pdata 
-321e 67e145c1 store 2 ,mem_24g_syncword 
-321f 6fe0c5c1 fetch 1 ,mem_24g_syncword 
-3220 6848c5c2 fetcht 1 ,mem_24g_syncword + 1 
-3221 9840fe00 iadd temp ,pdata 
-3222 67e0c5c3 store 1 ,mem_24g_syncword_crc8 
-3223 20600000 rtn 
-
-g24_timer_check:
-3224 4753c034 bpatchx patch34_7 ,mem_patch34 
-3225 20407dbe call disable_user 
-3226 684a45ba fetcht 4 ,mem_24g_tx_btclk 
-3227 1c427e00 copy clkn_bt ,pdata 
-3228 98467c00 isub temp ,null 
-3229 24413234 ncall g24_timer_timeout ,positive 
-322a 1fe22400 copy pdata ,regb 
-322b 6fe245ba fetch 4 ,mem_24g_tx_btclk 
-322c 6848c5be fetcht 1 ,mem_24g_interval 
-322d 98408400 iadd temp ,temp 
-322e 1a427e00 copy regb ,pdata 
-322f 98467c00 isub temp ,null 
-3230 24610000 nrtn positive 
-3231 793ffe1c set0 28 ,pdata 
-3232 67e245ba store 4 ,mem_24g_tx_btclk 
-3233 20207dbc branch enable_user 
-
-g24_timer_timeout:
-3234 20628000 rtn zero 
-3235 79207e1c set1 28 ,pdata 
-3236 20600000 rtn 
-
-g24_timer_init:
-3237 58000000 setarg 0 
-3238 67e245ba store 4 ,mem_24g_tx_btclk 
-3239 20600000 rtn 
-
-g24_chmap_param_init:
-323a 47544035 bpatchx patch35_0 ,mem_patch35 
-323b 38001300 setsect 0 ,0x1300 
-323c 3805908b setsect 1 ,0x1908b 
-323d 380b6150 setsect 2 ,0x36150 
-323e 380c3d20 setsect 3 ,0x3d20 
-323f 67e4c5aa store 9 ,mem_24g_ch_map1 
-3240 38003a1a setsect 0 ,0x3a1a 
-3241 3804c453 setsect 1 ,0xc453 
-3242 3808d312 setsect 2 ,0xd312 
-3243 380c0001 setsect 3 ,0x1 
-3244 e7e38005 istore 7 ,contw 
-3245 6fe0c5d0 fetch 1 ,mem_24g_ch_map_update 
-3246 207a0000 rtn blank 
-3247 d8c045d1 arg mem_24g_ch_update_map1 ,contr 
-3248 d8a045aa arg mem_24g_ch_map1 ,contw 
-3249 20207c91 branch memcpy16 
-
-g24_chamap_param_update:
-324a 4754c035 bpatchx patch35_1 ,mem_patch35 
-324b 584e001e setarg 0x4e001e 
-324c 67e1c5d2 store 3 ,mem_24g_ch_update_map1 + 1 
-324d 58032303 setarg 0x032303 
-324e e7e18005 istore 3 ,contw 
-324f 58250642 setarg 0x250642 
-3250 e7e18005 istore 3 ,contw 
-3251 58094c06 setarg 0x094c06 
-3252 e7e18005 istore 3 ,contw 
-3253 583c0927 setarg 0x3c0927 
-3254 e7e18005 istore 3 ,contw 
-3255 7045d001 jam 1 ,mem_24g_ch_map_update 
-3256 20600000 rtn 
-
-g24_rx_window_init:
-3257 47554035 bpatchx patch35_2 ,mem_patch35 
-3258 d8406978 arg 0x6978 ,temp 
-3259 c513b25e bmark1 mark_24g_rxmode ,g24_rx_window_store 
-325a d84012c0 arg 0x12c0 ,temp 
-325b 6fe0c5ce fetch 1 ,mem_24g_rx_phy 
-325c c301325e bbit0 2 ,g24_rx_window_store 
-325d d8402ee0 arg 0x2ee0 ,temp 
-
-g24_rx_window_store:
-325e 604945a2 storet 2 ,mem_24g_rx_window 
-325f 20600000 rtn 
-
-g24_enable_1m:
-3260 7045ce01 jam 0x01 ,mem_24g_rx_phy 
-3261 7045cf01 jam 0x01 ,mem_24g_tx_phy 
-3262 20600000 rtn 
-
-g24_enable_2m:
-3263 7045ce02 jam 0x02 ,mem_24g_rx_phy 
-3264 7045cf02 jam 0x02 ,mem_24g_tx_phy 
-3265 20600000 rtn 
-
-g24_pair_param_init:
-3266 4755c035 bpatchx patch35_3 ,mem_patch35 
-3267 7045e74e jam 0x4e ,mem_24g_pair_ch 
-3268 58101520 setarg 0x101520 
-3269 67e1c5e3 store 3 ,mem_24g_pair_addr 
-326a 58000005 setarg 0x05 
-326b 20207dce branch istore_1_contw_rtn 
-
-g24_pair_timeout_timer:
-326c da6045ef arg mem_24g_pair_timeout ,regc 
-326d da403653 arg g24_stop_24g_mode ,regb 
-326e 2020375c branch timer_single_step_2b 
-
-g24_pair_start:
-326f 79200026 set1 mark_24g ,mark 
-3270 6fe0c613 fetch 1 ,mem_24g_conn_sm 
-3271 793ffe02 set0 state_24g_reconn ,pdata 
-3272 79207e01 set1 state_24g_pair ,pdata 
-3273 67e0c613 store 1 ,mem_24g_conn_sm 
-3274 58000000 setarg 0 
-3275 67e145f5 store 2 ,mem_24g_reconn_timeout 
-3276 6fe145ed fetch 2 ,mem_24g_pair_timeout_init 
-3277 67e145ef store 2 ,mem_24g_pair_timeout 
-3278 7045ec00 jam 0 ,mem_24g_pair_no_ack 
-3279 204032b4 call g24_pair_sm_reinit 
-
-g24_pair_init_param:
-327a 70459500 jam 0 ,mem_24g_pid 
-327b 6fe0c5e7 fetch 1 ,mem_24g_pair_ch 
-327c 67e0c5a4 store 1 ,mem_24g_ch 
-327d 6fe0c5e8 fetch 1 ,mem_24g_pair_tx_power 
-327e 67e0c141 store 1 ,mem_tx_power 
-327f 6fe245e3 fetch 4 ,mem_24g_pair_addr 
-3280 20203215 branch g24_update_addr_and_synccrc8 
-
-g24_pair_dispatch:
-3281 47564035 bpatchx patch35_4 ,mem_patch35 
-3282 7045f900 jam default_24g_device ,mem_24g_reconn_type 
-3283 6fe145f1 fetch 2 ,mem_24g_pair_count 
-3284 1fe0fe01 increase 1 ,pdata 
-3285 67e145f1 store 2 ,mem_24g_pair_count 
-3286 6fe0c5f1 fetch 1 ,mem_24g_pair_count 
-3287 1fe17eff and pdata ,0xff ,pdata 
-3288 247a0000 nrtn blank 
-3289 6fe0c5eb fetch 1 ,mem_24g_pair_sm 
-328a c07fb2d6 beq state_24g_pairing_success ,g24_pair_exit 
-328b c000b290 beq state_24g_pairing_1 ,g24_pair_sm_1 
-328c c0013292 beq state_24g_pairing_2 ,g24_pair_sm_2 
-328d c001b298 beq state_24g_pairing_3 ,g24_pair_sm_3 
-328e c002329e beq state_24g_pairing_4 ,g24_pair_sm_4 
-328f 20600000 rtn 
-
-g24_pair_sm_1:
-3290 704530ff jam datatype_attemp ,mem_24g_txbuf 
-3291 2020329f branch g24_pair_sm_prep 
-
-g24_pair_sm_2:
-3292 6fe0c5c5 fetch 1 ,mem_24g_pair_switch 
-3293 203a3296 branch g24_pair_sm_2_skip ,blank 
-3294 6fe2461b fetch 4 ,mem_24g_device_addr 
-3295 20403215 call g24_update_addr_and_synccrc8 
-
-g24_pair_sm_2_skip:
-3296 704530aa jam datatype_bind ,mem_24g_txbuf 
-3297 2020329f branch g24_pair_sm_prep 
-
-g24_pair_sm_3:
-3298 70453055 jam datatype_config ,mem_24g_txbuf 
-3299 6fe0c5c5 fetch 1 ,mem_24g_pair_switch 
-329a 203a329f branch g24_pair_sm_prep ,blank 
-329b 6fe245ff fetch 4 ,mem_24g_receiver_addr 
-329c 67e24532 store 4 ,mem_24g_txbuf + 2 
-329d 202032a1 branch g24_pair_sm_common 
-
-g24_pair_sm_4:
-329e 70453022 jam datatype_ok ,mem_24g_txbuf 
-
-g24_pair_sm_prep:
-329f 6fe2461b fetch 4 ,mem_24g_device_addr 
-32a0 67e24532 store 4 ,mem_24g_txbuf + 2 
-
-g24_pair_sm_common:
-32a1 6fe0c5a0 fetch 1 ,mem_24g_data_type 
-32a2 1fe17e07 and_into bits_data ,pdata 
-32a3 67e0c531 store 1 ,mem_24g_txbuf + 1 
-32a4 70453600 jam 0 ,mem_24g_txbuf + 6 
-32a5 70459f07 jam 7 ,mem_24g_datalen 
-32a6 204031c4 call g24_transmit_prep 
-32a7 2040362a call g24_transmit_receive_ack 
-32a8 246c0000 nrtn sync 
-32a9 24778000 nrtn user3 
-32aa 20403553 call g24_txbuf_clear 
-32ab 20403647 call g24_ackpayload_parse 
-
-g24_pair_sm_common_next:
-32ac 4756c035 bpatchx patch35_5 ,mem_patch35 
-32ad 6fe0c5eb fetch 1 ,mem_24g_pair_sm 
-32ae c17f8000 rtneq state_24g_pairing_success 
-32af c000b2b9 beq state_24g_pairing_1 ,g24_pair_sm_1_waiting_ack 
-32b0 c00132bb beq state_24g_pairing_2 ,g24_pair_sm_2_waiting_ack 
-32b1 c001b2c1 beq state_24g_pairing_3 ,g24_pair_sm_3_waiting_ack 
-32b2 c00232c9 beq state_24g_pairing_4 ,g24_pair_sm_4_waiting_ack 
-32b3 20600000 rtn 
-
-g24_pair_sm_reinit:
-32b4 7045eb02 jam state_24g_pairing_2 ,mem_24g_pair_sm 
-32b5 6fe0c5c5 fetch 1 ,mem_24g_pair_switch 
-32b6 207a0000 rtn blank 
-32b7 7045eb01 jam state_24g_pairing_1 ,mem_24g_pair_sm 
-32b8 20600000 rtn 
-
-g24_pair_sm_1_waiting_ack:
-32b9 7045eb02 jam state_24g_pairing_2 ,mem_24g_pair_sm 
-32ba 20203625 branch g24_transmit_abandon 
-
-g24_pair_sm_2_waiting_ack:
-32bb 6fe0c5c5 fetch 1 ,mem_24g_pair_switch 
-32bc 203a32bf branch g24_pair_sm_2_waiting_ack_skip ,blank 
-32bd 6fe24576 fetch 4 ,mem_24g_rxpayload + 2 
-32be 67e245ff store 4 ,mem_24g_receiver_addr 
-
-g24_pair_sm_2_waiting_ack_skip:
-32bf 7045eb03 jam state_24g_pairing_3 ,mem_24g_pair_sm 
-32c0 20203625 branch g24_transmit_abandon 
-
-g24_pair_sm_3_waiting_ack:
-32c1 6fe0c5c5 fetch 1 ,mem_24g_pair_switch 
-32c2 203a32c7 branch g24_pair_sm_3_waiting_ack_skip ,blank 
-32c3 6fe24576 fetch 4 ,mem_24g_rxpayload + 2 
-32c4 684a461b fetcht 4 ,mem_24g_device_addr 
-32c5 98467c00 isub temp ,null 
-32c6 24628000 nrtn zero 
-
-g24_pair_sm_3_waiting_ack_skip:
-32c7 7045eb04 jam state_24g_pairing_4 ,mem_24g_pair_sm 
-32c8 20203625 branch g24_transmit_abandon 
-
-g24_pair_sm_4_waiting_ack:
-32c9 6fe0c5c5 fetch 1 ,mem_24g_pair_switch 
-32ca 203a32cf branch g24_pair_sm_4_waiting_ack_skip ,blank 
-32cb 6fe24576 fetch 4 ,mem_24g_rxpayload + 2 
-32cc 684a45ff fetcht 4 ,mem_24g_receiver_addr 
-32cd 98467c00 isub temp ,null 
-32ce 24628000 nrtn zero 
-
-g24_pair_sm_4_waiting_ack_skip:
-32cf 7045ebff jam state_24g_pairing_success ,mem_24g_pair_sm 
-32d0 70064d39 jam bt_evt_24g_pairing_complete ,mem_fifo_temp 
-32d1 20407819 call ui_ipc_send_event 
-32d2 58000000 setarg 0 
-32d3 67e145ef store 2 ,mem_24g_pair_timeout 
-32d4 6fe24576 fetch 4 ,mem_24g_rxpayload + 2 
-32d5 20403215 call g24_update_addr_and_synccrc8 
-
-g24_pair_exit:
-32d6 6fe0c613 fetch 1 ,mem_24g_conn_sm 
-32d7 793ffe01 set0 state_24g_pair ,pdata 
-32d8 67e0c613 store 1 ,mem_24g_conn_sm 
-32d9 20203625 branch g24_transmit_abandon 
-
-g24_bind_mode_enable:
-32da 70462d01 jam dongle_bind ,mem_24g_work_mode 
-32db 70462c00 jam clear_init ,mem_24g_mode_init 
-32dc 20600000 rtn 
-
-g24_bind_init:
-32dd 6fe0c62c fetch 1 ,mem_24g_mode_init 
-32de c3808000 rtnbit1 dongle_bind 
-32df 79207e01 set1 dongle_bind ,pdata 
-32e0 67e0c62c store 1 ,mem_24g_mode_init 
-32e1 58000000 setarg 0 
-32e2 67e1c5ea store 3 ,mem_24g_device1_bind_step 
-32e3 67e0c5f5 store 1 ,mem_24g_device1_bind_disable 
-32e4 67e0c5f6 store 1 ,mem_24g_device2_bind_disable 
-32e5 67e24643 store 4 ,mem_24g_transmitter_addr 
-32e6 70462801 jam 1 ,mem_24g_ackpayload_enable 
-32e7 2020327a branch g24_pair_init_param 
-
-g24_bind_ackpayload_prep:
-32e8 70459f08 jam 0x08 ,mem_24g_datalen 
-32e9 d8c045ed arg mem_24g_bind_payload ,contr 
-32ea d8a04530 arg mem_24g_txbuf ,contw 
-32eb 20207c8b branch memcpy8 
-
-g24_bind_data_process:
-32ec 47574035 bpatchx patch35_6 ,mem_patch35 
-32ed 20403397 call g24_rx_interrupt_clear 
-32ee 204030f8 call g24_receive_packet 
-32ef 2437b397 nbranch g24_rx_interrupt_clear ,user3 
-32f0 204032fb call g24_bind_data_parse 
-32f1 204033ca call g24_transmit_ack 
-32f2 20403372 call g24_bind_device_status_check 
-32f3 20403e80 call dongle_kb_bind_soft_reset 
-32f4 6fe0c5c5 fetch 1 ,mem_24g_pair_switch 
-32f5 207a0000 rtn blank 
-32f6 6fe24643 fetch 4 ,mem_24g_transmitter_addr 
-32f7 207a0000 rtn blank 
-32f8 20203215 branch g24_update_addr_and_synccrc8 
-
-g24_bind_data_error:
-32f9 20403397 call g24_rx_interrupt_clear 
-32fa 20203162 branch g24_end_of_packet 
-
-g24_bind_data_parse:
-32fb 70463905 jam bind_mode_continue ,mem_24g_bind_mode_continue 
-32fc d8c0450e arg mem_24g_rxbuf ,contr 
-32fd d8a045ff arg mem_24g_rxdata_temp ,contw 
-32fe 20407c8b call memcpy8 
-32ff 4757c035 bpatchx patch35_7 ,mem_patch35 
-3300 6fe0c601 fetch 1 ,mem_24g_rxdata_temp + 2 
-3301 c0553306 beq datatype_bind ,g24_bind_first_step 
-3302 c02ab317 beq datatype_config ,g24_bind_second_step 
-3303 c0113338 beq datatype_ok ,g24_bind_third_step 
-3304 c07fb573 beq datatype_attemp ,g24_data_attemp 
-3305 20600000 rtn 
-
-g24_bind_first_step:
-3306 6fe0c602 fetch 1 ,mem_24g_rxdata_temp + 3 
-3307 c000b30a beq datatype_device1 ,g24_bind_first_step_device1 
-3308 c0013312 beq datatype_device2 ,g24_bind_first_step_device2 
-3309 20600000 rtn 
-
-g24_bind_first_step_device1:
-330a 6fe0c5f5 fetch 1 ,mem_24g_device1_bind_disable 
-330b 247a0000 nrtn blank 
-330c 7045ea01 jam 1 ,mem_24g_device1_bind_step 
-
-g24_bind_dvc1_payload_cfg:
-330d 7045ed01 jam datatype_device1 ,mem_24g_bind_payload 
-
-g24_bind_payload_cfg:
-330e 7045ee80 jam 0x80 ,mem_24g_bind_payload + 1 
-330f 6fe34508 fetch 6 ,mem_24g_lap 
-3310 67e345ef store 6 ,mem_24g_bind_payload + 2 
-3311 20600000 rtn 
-
-g24_bind_first_step_device2:
-3312 6fe0c5f6 fetch 1 ,mem_24g_device2_bind_disable 
-3313 247a0000 nrtn blank 
-3314 7045eb01 jam 1 ,mem_24g_device2_bind_step 
-
-g24_bind_dvc2_payload_cfg:
-3315 7045ed02 jam datatype_device2 ,mem_24g_bind_payload 
-3316 2020330e branch g24_bind_payload_cfg 
-
-g24_bind_second_step:
-3317 6fe0c5c5 fetch 1 ,mem_24g_pair_switch 
-3318 203a331d branch g24_bind_second_step_skip ,blank 
-3319 6fe24603 fetch 4 ,mem_24g_rxdata_temp + 4 
-331a 684a4508 fetcht 4 ,mem_24g_lap 
-331b 98467c00 isub temp ,null 
-331c 24628000 nrtn zero 
-
-g24_bind_second_step_skip:
-331d 6fe0c602 fetch 1 ,mem_24g_rxdata_temp + 3 
-331e c000b321 beq datatype_device1 ,g24_bind_second_step_device1 
-331f c001332e beq datatype_device2 ,g24_bind_second_step_device2 
-3320 20600000 rtn 
-
-g24_bind_second_step_device1:
-3321 6fe0c5f5 fetch 1 ,mem_24g_device1_bind_disable 
-3322 247a0000 nrtn blank 
-3323 6fe0c5ea fetch 1 ,mem_24g_device1_bind_step 
-3324 c000b326 beq 1 ,g24_bind_dvc1_step_set2 
-3325 20600000 rtn 
-
-g24_bind_dvc1_step_set2:
-3326 7045ea02 jam 2 ,mem_24g_device1_bind_step 
-3327 6fe0c5c5 fetch 1 ,mem_24g_pair_switch 
-3328 203a330d branch g24_bind_dvc1_payload_cfg ,blank 
-
-g24_bind_dvc1_payload_cfg_transmitter_addr:
-3329 7045ed01 jam datatype_device1 ,mem_24g_bind_payload 
-
-g24_bind_payload_cfg_transmitter_addr:
-332a 7045ee80 jam 0x80 ,mem_24g_bind_payload + 1 
-332b 6fe24643 fetch 4 ,mem_24g_transmitter_addr 
-332c 67e245ef store 4 ,mem_24g_bind_payload + 2 
-332d 20207dbc branch enable_user 
-
-g24_bind_second_step_device2:
-332e 6fe0c5f6 fetch 1 ,mem_24g_device2_bind_disable 
-332f 247a0000 nrtn blank 
-3330 6fe0c5eb fetch 1 ,mem_24g_device2_bind_step 
-3331 c000b333 beq 1 ,g24_bind_dvc2_step_set2 
-3332 20600000 rtn 
-
-g24_bind_dvc2_step_set2:
-3333 7045eb02 jam 2 ,mem_24g_device2_bind_step 
-3334 6fe0c5c5 fetch 1 ,mem_24g_pair_switch 
-3335 203a3315 branch g24_bind_dvc2_payload_cfg ,blank 
-3336 7045ed02 jam datatype_device2 ,mem_24g_bind_payload 
-3337 2020332a branch g24_bind_payload_cfg_transmitter_addr 
-
-g24_bind_third_step:
-3338 6fe0c5c5 fetch 1 ,mem_24g_pair_switch 
-3339 203a333e branch g24_bind_third_step_skip ,blank 
-333a 6fe24603 fetch 4 ,mem_24g_rxdata_temp + 4 
-333b 684a4643 fetcht 4 ,mem_24g_transmitter_addr 
-333c 98467c00 isub temp ,null 
-333d 24628000 nrtn zero 
-
-g24_bind_third_step_skip:
-333e 6fe0c602 fetch 1 ,mem_24g_rxdata_temp + 3 
-333f c000b342 beq datatype_device1 ,g24_bind_third_step_device1 
-3340 c001334f beq datatype_device2 ,g24_bind_third_step_device2 
-3341 20600000 rtn 
-
-g24_bind_third_step_device1:
-3342 6fe0c5f5 fetch 1 ,mem_24g_device1_bind_disable 
-3343 247a0000 nrtn blank 
-3344 6fe0c5ea fetch 1 ,mem_24g_device1_bind_step 
-3345 c0013347 beq 2 ,g24_bind_dvc1_step_success 
-3346 20600000 rtn 
-
-g24_bind_dvc1_step_success:
-3347 7045f501 jam 1 ,mem_24g_device1_bind_disable 
-3348 2040330d call g24_bind_dvc1_payload_cfg 
-3349 6fe0c5ec fetch 1 ,mem_24g_bind_device_status 
-334a 1fe1fe01 or_into 0x01 ,pdata 
-334b 67e0c5ec store 1 ,mem_24g_bind_device_status 
-
-g24_bind_exit:
-334c 58000000 setarg 0 
-334d 67e145ea store 2 ,mem_24g_device1_bind_step 
-334e 20600000 rtn 
-
-g24_bind_third_step_device2:
-334f 6fe0c5f6 fetch 1 ,mem_24g_device2_bind_disable 
-3350 247a0000 nrtn blank 
-3351 6fe0c5eb fetch 1 ,mem_24g_device2_bind_step 
-3352 c0803354 bne 0 ,g24_bind_dvc2_step_success 
-3353 20600000 rtn 
-
-g24_bind_dvc2_step_success:
-3354 7045f601 jam 1 ,mem_24g_device2_bind_disable 
-3355 20403315 call g24_bind_dvc2_payload_cfg 
-3356 6fe0c5ec fetch 1 ,mem_24g_bind_device_status 
-3357 1fe1fe02 or_into 0x02 ,pdata 
-3358 67e0c5ec store 1 ,mem_24g_bind_device_status 
-3359 2040334c call g24_bind_exit 
-335a 20203e7a branch dongle_g24_store_dvc2_bind_flag 
-
-g24_binding_device_check:
-335b 6fe0c511 fetch 1 ,mem_24g_rxbuf + 3 
-335c c000b35f beq datatype_device1 ,g24_binding_dvc1_status 
-335d c0013363 beq datatype_device2 ,g24_binding_dvc2_status 
-335e 20600000 rtn 
-
-g24_binding_dvc1_status:
-335f 6fe0c642 fetch 1 ,mem_24g_bind_device_living 
-3360 c4000000 rtnbit0 0 
-
-disable_user3:
-3361 7857fc00 disable user3 
-3362 20600000 rtn 
-
-g24_binding_dvc2_status:
-3363 6fe0c642 fetch 1 ,mem_24g_bind_device_living 
-3364 c4008000 rtnbit0 1 
-3365 20203361 branch disable_user3 
-
-g24_binding_dvc1_living:
-3366 6fe0c627 fetch 1 ,mem_24g_pair_mode 
-3367 247a0000 nrtn blank 
-3368 6fe0c642 fetch 1 ,mem_24g_bind_device_living 
-3369 1fe1fe01 or_into 0x01 ,pdata 
-336a 67e0c642 store 1 ,mem_24g_bind_device_living 
-336b 20600000 rtn 
-
-g24_binding_dvc2_living:
-336c 6fe0c627 fetch 1 ,mem_24g_pair_mode 
-336d 247a0000 nrtn blank 
-336e 6fe0c642 fetch 1 ,mem_24g_bind_device_living 
-336f 1fe1fe02 or_into 0x02 ,pdata 
-3370 67e0c642 store 1 ,mem_24g_bind_device_living 
-3371 20600000 rtn 
-
-g24_bind_device_status_check:
-3372 6fe0c5ec fetch 1 ,mem_24g_bind_device_status 
-3373 207a0000 rtn blank 
-
-g24_bind_device_status:
-3374 6fe0c602 fetch 1 ,mem_24g_rxdata_temp + 3 
-3375 c000b366 beq datatype_device1 ,g24_binding_dvc1_living 
-3376 c001336c beq datatype_device2 ,g24_binding_dvc2_living 
-3377 20600000 rtn 
-
-g24_receive_init:
-3378 79200027 set1 mark_24g_rxmode ,mark 
-3379 6fe0c141 fetch 1 ,mem_tx_power 
-337a 67e0c63a store 1 ,mem_tx_power_temp 
-337b 202035ae branch rssi_receiver_buff_init 
-
-g24_receive_dispatch:
-337c 6fe145f7 fetch 2 ,mem_cb_24g_receive_process 
-337d 20207d7b branch callback_func 
-
-g24_ackpayload_prep:
-337e 47584036 bpatchx patch36_0 ,mem_patch36 
-337f 70459f00 jam 0 ,mem_24g_datalen 
-3380 6fe0c628 fetch 1 ,mem_24g_ackpayload_enable 
-3381 207a0000 rtn blank 
-3382 6fe145f9 fetch 2 ,mem_cb_24g_ackpayload 
-3383 20207d7b branch callback_func 
-
-g24_receive_packet_start:
-3384 204033c7 call g24_receive_transmit_ack 
-3385 2437b397 nbranch g24_rx_interrupt_clear ,user3 
-
-g24_receive_packet_parse:
-3386 204033b9 call g24_receive_packet_parse_pid_crc 
-3387 24343397 nbranch g24_rx_interrupt_clear ,user 
-3388 6fe0c594 fetch 1 ,mem_24g_rxdata_length 
-3389 203a3397 branch g24_rx_interrupt_clear ,blank 
-338a 1fe0fe02 increase 2 ,pdata 
-338b 98007200 iforce loopcnt 
-338c d8c0450e arg mem_24g_rxbuf ,contr 
-338d d8a045ff arg mem_24g_rxdata_temp ,contw 
-338e 20407cdc call memcpy 
-338f 70462a00 jam 0 ,mem_24g_mode_switch 
-3390 6fe0c627 fetch 1 ,mem_24g_pair_mode 
-3391 205a33d4 call g24_enable_nodata_timer ,blank 
-3392 4758c036 bpatchx patch36_1 ,mem_patch36 
-3393 6fe0c601 fetch 1 ,mem_24g_rxdata_temp + 2 
-3394 c000b39d beq datatype_device1 ,g24_data_device1 
-3395 c00133ac beq datatype_device2 ,g24_data_device2 
-3396 c07fb39b beq datatype_attemp ,g24_data_receive_attemp 
-
-g24_rx_interrupt_clear:
-3397 47594036 bpatchx patch36_2 ,mem_patch36 
-3398 d8a0450e arg mem_24g_rxbuf ,contw 
-3399 df200042 arg 66 ,loopcnt 
-339a 20207ca3 branch clear_mem 
-
-g24_data_receive_attemp:
-339b 20403374 call g24_bind_device_status 
-339c 20203573 branch g24_data_attemp 
-
-g24_data_device1:
-339d 20403366 call g24_binding_dvc1_living 
-339e 20403504 call g24_ch_timer_reinit 
-339f 6fe0c621 fetch 1 ,mem_24g_abort_packet 
-33a0 6848c5ff fetcht 1 ,mem_24g_rxdata_temp 
-33a1 284ffe03 isolate1 bit_abort ,temp 
-33a2 7920fe00 setflag true ,0 ,pdata 
-33a3 67e0c621 store 1 ,mem_24g_abort_packet 
-33a4 c000b3b2 beq 1 ,g24_data_attemp_device1_abort 
-33a5 6fe0c629 fetch 1 ,mem_24g_hop_packet 
-33a6 6848c5ff fetcht 1 ,mem_24g_rxdata_temp 
-33a7 284ffe04 isolate1 bit_hop ,temp 
-33a8 7920fe00 setflag true ,0 ,pdata 
-33a9 67e0c629 store 1 ,mem_24g_hop_packet 
-33aa 6fe145fb fetch 2 ,mem_cb_24g_data_device1 
-33ab 20207d7b branch callback_func 
-
-g24_data_device2:
-33ac 2040336c call g24_binding_dvc2_living 
-33ad 6848c5ff fetcht 1 ,mem_24g_rxdata_temp 
-33ae 284ffe03 isolate1 bit_abort ,temp 
-33af 2020b3b7 branch g24_data_attemp_device2_abort ,true 
-33b0 6fe145fd fetch 2 ,mem_cb_24g_data_device2 
-33b1 20207d7b branch callback_func 
-
-g24_data_attemp_device1_abort:
-33b2 6fe0c5f5 fetch 1 ,mem_24g_device1_bind_disable 
-33b3 247a0000 nrtn blank 
-33b4 7045f501 jam 1 ,mem_24g_device1_bind_disable 
-33b5 6fe24609 fetch 4 ,mem_24g_rxdata_temp + 10 
-33b6 2020357b branch g24_store_device1_addr 
-
-g24_data_attemp_device2_abort:
-33b7 6fe24609 fetch 4 ,mem_24g_rxdata_temp + 10 
-33b8 20203581 branch g24_store_device2_addr 
-
-g24_receive_packet_parse_pid_crc:
-33b9 20407dbe call disable_user 
-33ba 6fe0c59d fetch 1 ,mem_24g_sta_pid 
-33bb 6848c59e fetcht 1 ,mem_24g_last_pid 
-33bc 98467c00 isub temp ,null 
-33bd 2442fdbc ncall enable_user ,zero 
-33be 6fe0c59d fetch 1 ,mem_24g_sta_pid 
-33bf 67e0c59e store 1 ,mem_24g_last_pid 
-33c0 6fe1c597 fetch 3 ,mem_24g_sta_crc 
-33c1 6849c59a fetcht 3 ,mem_24g_last_crc 
-33c2 98467c00 isub temp ,null 
-33c3 2442fdbc ncall enable_user ,zero 
-33c4 6fe1c597 fetch 3 ,mem_24g_sta_crc 
-33c5 67e1c59a store 3 ,mem_24g_last_crc 
-33c6 20600000 rtn 
-
-g24_receive_transmit_ack:
-33c7 20403397 call g24_rx_interrupt_clear 
-33c8 204030f8 call g24_receive_packet 
-33c9 24778000 nrtn user3 
-
-g24_transmit_ack:
-33ca 6fe0c50e fetch 1 ,mem_24g_rxbuf 
-33cb 67e0c5a0 store 1 ,mem_24g_data_type 
-33cc 204031f3 call g24_read_len_pid_crc 
-33cd 6fe0c50f fetch 1 ,mem_24g_rxbuf + 1 
-33ce 2feffe00 isolate1 bit_ack_24g ,pdata 
-33cf 2020b3d3 branch g24tx_no_ack ,true 
-
-g24tx_with_ack:
-33d0 2040337e call g24_ackpayload_prep 
-33d1 204031c4 call g24_transmit_prep 
-33d2 20403174 call g24_transmit 
-
-g24tx_no_ack:
-33d3 20203162 branch g24_end_of_packet 
-
-g24_enable_nodata_timer:
-33d4 70462b01 jam 1 ,mem_24g_nodata_timer_enable 
-
-g24_enable_nodata_timer_init:
-33d5 58000280 setarg timer_nodata_delay 
-33d6 d8e00008 arg g24_timer_nodata ,queue 
-33d7 20207ce3 branch timer_init 
-
-g24_mode_switch_init:
-33d8 4759c036 bpatchx patch36_3 ,mem_patch36 
-33d9 70462a01 jam 1 ,mem_24g_mode_switch 
-33da 70462e00 jam 0 ,mem_24g_time_slice 
-33db 7045beff jam 0xff ,mem_24g_interval 
-33dc 20203237 branch g24_timer_init 
-
-g24_mode_switch_bind_work:
-33dd 475a4036 bpatchx patch36_4 ,mem_patch36 
-33de 6fe0c62a fetch 1 ,mem_24g_mode_switch 
-33df 207a0000 rtn blank 
-33e0 20403224 call g24_timer_check 
-33e1 24740000 nrtn user 
-33e2 204033ea call g24_bind_mode_continue 
-33e3 6fe0c62e fetch 1 ,mem_24g_time_slice 
-33e4 1fe0fe01 increase 1 ,pdata 
-33e5 1fe17e01 and_into 1 ,pdata 
-33e6 67e0c62e store 1 ,mem_24g_time_slice 
-33e7 c00033ef beq 0 ,g24_work_mode_switch 
-33e8 c000b3f2 beq 1 ,g24_bind_mode_switch 
-33e9 20600000 rtn 
-
-g24_bind_mode_continue:
-33ea 6fe0c639 fetch 1 ,mem_24g_bind_mode_continue 
-33eb 207a0000 rtn blank 
-33ec 1fe0ffff increase -1 ,pdata 
-33ed 67e0c639 store 1 ,mem_24g_bind_mode_continue 
-33ee 20600000 rtn 
-
-g24_work_mode_switch:
-33ef 6fe0c639 fetch 1 ,mem_24g_bind_mode_continue 
-33f0 247a0000 nrtn blank 
-33f1 20203436 branch g24_switch_work_mode 
-
-g24_bind_mode_switch:
-33f2 6fe0c639 fetch 1 ,mem_24g_bind_mode_continue 
-33f3 247a0000 nrtn blank 
-33f4 202032da branch g24_bind_mode_enable 
-
-g24_mode_b_s_switch_init:
-33f5 6fe0c641 fetch 1 ,mem_24g_b_s_mode_switch_disable 
-33f6 247a0000 nrtn blank 
-33f7 6fe0c63f fetch 1 ,mem_24g_mode_b_s_switch_exit 
-33f8 205a3425 call g24_mode_b_s_switch_start ,blank 
-33f9 6fe0c63c fetch 1 ,mem_24g_mode_b_s_switch_init 
-33fa c3800000 rtnbit1 0 
-33fb 79207e00 set1 0 ,pdata 
-33fc 67e0c63c store 1 ,mem_24g_mode_b_s_switch_init 
-33fd 70463b01 jam 1 ,mem_24g_mode_b_s_switch 
-33fe 70464000 jam 0 ,mem_24g_b_s_time_slice 
-33ff 58000000 setarg 0 
-3400 67e1463d store 2 ,mem_24g_mode_b_s_switch_cnt 
-3401 7045be60 jam 0x60 ,mem_24g_interval 
-3402 20203237 branch g24_timer_init 
-
-g24_mode_switch_bind_search:
-3403 475ac036 bpatchx patch36_5 ,mem_patch36 
-3404 6fe0c62d fetch 1 ,mem_24g_work_mode 
-3405 c1000000 rtneq dongle_work 
-3406 6fe0c641 fetch 1 ,mem_24g_b_s_mode_switch_disable 
-3407 247a0000 nrtn blank 
-3408 6fe0c63f fetch 1 ,mem_24g_mode_b_s_switch_exit 
-3409 247a0000 nrtn blank 
-340a 6fe0c63b fetch 1 ,mem_24g_mode_b_s_switch 
-340b 207a0000 rtn blank 
-340c 6fe0c642 fetch 1 ,mem_24g_bind_device_living 
-340d 2fe00603 compare 3 ,pdata ,3 
-340e 2020b421 branch g24_mode_b_s_switch_exit ,true 
-340f 20403224 call g24_timer_check 
-3410 24740000 nrtn user 
-3411 6fe1463d fetch 2 ,mem_24g_mode_b_s_switch_cnt 
-3412 1fe0fe01 increase 1 ,pdata 
-3413 67e1463d store 2 ,mem_24g_mode_b_s_switch_cnt 
-3414 d84007d0 arg 0x7d0 ,temp 
-3415 98467c00 isub temp ,null 
-3416 20213421 branch g24_mode_b_s_switch_exit ,positive 
-3417 6fe0c640 fetch 1 ,mem_24g_b_s_time_slice 
-3418 1fe0fe01 increase 1 ,pdata 
-3419 1fe17e01 and_into 1 ,pdata 
-341a 67e0c640 store 1 ,mem_24g_b_s_time_slice 
-341b c00034ea beq 0 ,g24_search_mode_enable 
-341c c000b2da beq 1 ,g24_bind_mode_enable 
-341d 20600000 rtn 
-
-g24_mode_switch_search:
-341e 6fe0c639 fetch 1 ,mem_24g_bind_mode_continue 
-341f 243a32da nbranch g24_bind_mode_enable ,blank 
-3420 202034ea branch g24_search_mode_enable 
-
-g24_mode_b_s_switch_exit:
-3421 70463f01 jam 1 ,mem_24g_mode_b_s_switch_exit 
-3422 202034ea branch g24_search_mode_enable 
-
-g24_mode_b_s_switch_stop:
-3423 70463b00 jam 0 ,mem_24g_mode_b_s_switch 
-3424 20600000 rtn 
-
-g24_mode_b_s_switch_start:
-3425 70463b01 jam 1 ,mem_24g_mode_b_s_switch 
-3426 20600000 rtn 
-
-g24_work_init:
-3427 475b4036 bpatchx patch36_6 ,mem_patch36 
-3428 6fe0c62c fetch 1 ,mem_24g_mode_init 
-3429 c3800000 rtnbit1 dongle_work 
-342a 79207e00 set1 dongle_work ,pdata 
-342b 67e0c62c store 1 ,mem_24g_mode_init 
-342c 6fe0c63a fetch 1 ,mem_tx_power_temp 
-342d 67e0c141 store 1 ,mem_tx_power 
-342e 70462800 jam 0 ,mem_24g_ackpayload_enable 
-342f 7008eb00 jam 0 ,mem_usb_tx_enable 
-3430 70462101 jam 1 ,mem_24g_abort_packet 
-3431 70459500 jam 0 ,mem_24g_pid 
-3432 6fe24508 fetch 4 ,mem_24g_lap 
-3433 20403215 call g24_update_addr_and_synccrc8 
-3434 20403201 call g24_ch 
-3435 20203397 branch g24_rx_interrupt_clear 
-
-g24_switch_work_mode:
-3436 70462800 jam 0 ,mem_24g_ackpayload_enable 
-
-g24_work_mode_enable:
-3437 70462d00 jam dongle_work ,mem_24g_work_mode 
-3438 70462c00 jam clear_init ,mem_24g_mode_init 
-3439 20600000 rtn 
-
-g24_work_mode_start:
-343a 6fe0c62d fetch 1 ,mem_24g_work_mode 
-343b c1800000 rtnne dongle_work 
-343c 20403427 call g24_work_init 
-343d 204034ee call g24_ch_process 
-343e 20203384 branch g24_receive_packet_start 
-
-g24_bind_mode_auto:
-343f 475bc036 bpatchx patch36_7 ,mem_patch36 
-3440 6fe0c62d fetch 1 ,mem_24g_work_mode 
-3441 c1808000 rtnne dongle_bind 
-3442 204032dd call g24_bind_init 
-3443 204032ec call g24_bind_data_process 
-3444 6fe0c627 fetch 1 ,mem_24g_pair_mode 
-3445 247a0000 nrtn blank 
-3446 6fe0c5ec fetch 1 ,mem_24g_bind_device_status 
-3447 207a0000 rtn blank 
-3448 70462a00 jam 0 ,mem_24g_mode_switch 
-3449 20403436 call g24_switch_work_mode 
-344a 204033d4 call g24_enable_nodata_timer 
-344b 20203237 branch g24_timer_init 
-
-g24_search_mode_init:
-344c 6fe0c62c fetch 1 ,mem_24g_mode_init 
-344d c3838000 rtnbit1 dongle_search 
-344e 79207e07 set1 dongle_search ,pdata 
-344f 67e0c62c store 1 ,mem_24g_mode_init 
-3450 6fe0c63a fetch 1 ,mem_tx_power_temp 
-3451 67e0c141 store 1 ,mem_tx_power 
-3452 70462e00 jam 0 ,mem_24g_time_slice 
-3453 70462801 jam 1 ,mem_24g_ackpayload_enable 
-3454 58000000 setarg 0 
-3455 67e1c654 store 3 ,mem_rssi_noise_self_index 
-3456 67e3c631 store 7 ,mem_24g_self_config_ch_once 
-3457 204034dc call g24_receiver_addr_check 
-3458 24628000 nrtn zero 
-3459 6fe0c5a5 fetch 1 ,mem_24g_current_ch_number 
-345a 67e0c630 store 1 ,mem_24g_self_ch_number 
-345b 6fe0c5a4 fetch 1 ,mem_24g_ch 
-345c 67e0c62f store 1 ,mem_24g_self_last_ch 
-345d 20600000 rtn 
-
-g24_search_mode_auto:
-345e 475c4037 bpatchx patch37_0 ,mem_patch37 
-345f 6fe0c62d fetch 1 ,mem_24g_work_mode 
-3460 c1838000 rtnne dongle_search 
-3461 2040344c call g24_search_mode_init 
-3462 20403484 call g24_auto_addr_ch_search 
-3463 204033c7 call g24_receive_transmit_ack 
-3464 2437b397 nbranch g24_rx_interrupt_clear ,user3 
-3465 204034dc call g24_receiver_addr_check 
-3466 2042b386 call g24_receive_packet_parse ,zero 
-3467 6fe0c621 fetch 1 ,mem_24g_abort_packet 
-3468 205a3423 call g24_mode_b_s_switch_stop ,blank 
-3469 70462d00 jam dongle_work ,mem_24g_work_mode 
-346a 6fe0c62c fetch 1 ,mem_24g_mode_init 
-346b 79207e00 set1 dongle_work ,pdata 
-346c 67e0c62c store 1 ,mem_24g_mode_init 
-346d 6fe0c628 fetch 1 ,mem_24g_ackpayload_enable 
-346e 1fe67c02 sub pdata ,2 ,null 
-346f 2442b4da ncall g24_ackpayload_disable ,zero 
-3470 20403397 call g24_rx_interrupt_clear 
-3471 204033d4 call g24_enable_nodata_timer 
-3472 204034dc call g24_receiver_addr_check 
-3473 2022b47d branch g24_self_ch_num_reinit ,zero 
-3474 6fe245a6 fetch 4 ,mem_24g_addr 
-3475 684a464b fetcht 4 ,mem_24g_device2_addr 
-3476 98467c00 isub temp ,null 
-3477 2022b480 branch g24_device2_ch_num_reinit ,zero 
-3478 6fe245a6 fetch 4 ,mem_24g_addr 
-3479 684a4647 fetcht 4 ,mem_24g_device1_addr 
-347a 98467c00 isub temp ,null 
-347b 2022b482 branch g24_device1_ch_num_reinit ,zero 
-347c 20600000 rtn 
-
-g24_self_ch_num_reinit:
-347d 6fe0c630 fetch 1 ,mem_24g_self_ch_number 
-
-g24_current_ch_num_reinit:
-347e 67e0c5a5 store 1 ,mem_24g_current_ch_number 
-347f 20600000 rtn 
-
-g24_device2_ch_num_reinit:
-3480 6fe0c636 fetch 1 ,mem_24g_device2_ch_number 
-3481 2020347e branch g24_current_ch_num_reinit 
-
-g24_device1_ch_num_reinit:
-3482 6fe0c633 fetch 1 ,mem_24g_device1_ch_number 
-3483 2020347e branch g24_current_ch_num_reinit 
-
-g24_auto_addr_ch_search:
-3484 475cc037 bpatchx patch37_1 ,mem_patch37 
-3485 6fe0c62e fetch 1 ,mem_24g_time_slice 
-3486 1fe0fe01 increase 1 ,pdata 
-3487 1fe17e03 and_into 3 ,pdata 
-3488 67e0c62e store 1 ,mem_24g_time_slice 
-3489 c00034a8 beq 0 ,g24_auto_bind_config_device2 
-348a c000b4c2 beq 1 ,g24_auto_bind_config_self 
-348b c001348e beq 2 ,g24_auto_bind_config_device1 
-348c c001b4c2 beq 3 ,g24_auto_bind_config_self 
-348d 20600000 rtn 
-
-g24_auto_bind_config_device1:
-348e 2040330d call g24_bind_dvc1_payload_cfg 
-348f 6fe24647 fetch 4 ,mem_24g_device1_addr 
-3490 203a3484 branch g24_auto_addr_ch_search ,blank 
-3491 20403215 call g24_update_addr_and_synccrc8 
-3492 6fe0c634 fetch 1 ,mem_24g_device1_config_ch_once 
-3493 205a34a3 call g24_device1_config_ch_once ,blank 
-3494 6fe0c632 fetch 1 ,mem_24g_device1_last_ch 
-3495 67e0c5a4 store 1 ,mem_24g_ch 
-3496 6848c655 fetcht 1 ,mem_rssi_noise_device1_index 
-3497 6a21465b fetchr rega ,2 ,mem_rssi_noise_device1_buffer_ptr 
-3498 20403583 call rssi_store 
-3499 6048c655 storet 1 ,mem_rssi_noise_device1_index 
-349a 2040358c call rssi_average 
-349b 6048c652 storet 1 ,mem_rssi_noise_device1_avg 
-349c 18467c50 sub temp ,rssi_thresh_noise ,null 
-349d 24610000 nrtn positive 
-349e 6848c633 fetcht 1 ,mem_24g_device1_ch_number 
-349f 20403206 call g24_ch_map_size 
-34a0 6048c633 storet 1 ,mem_24g_device1_ch_number 
-34a1 67e0c632 store 1 ,mem_24g_device1_last_ch 
-34a2 20600000 rtn 
-
-g24_device1_config_ch_once:
-34a3 70463401 jam 1 ,mem_24g_device1_config_ch_once 
-34a4 d8400000 arg 0 ,temp 
-34a5 2040320b call g24_ch_calc 
-34a6 67e0c632 store 1 ,mem_24g_device1_last_ch 
-34a7 20600000 rtn 
-
-g24_auto_bind_config_device2:
-34a8 20403315 call g24_bind_dvc2_payload_cfg 
-34a9 6fe2464b fetch 4 ,mem_24g_device2_addr 
-34aa 203a3484 branch g24_auto_addr_ch_search ,blank 
-34ab 20403215 call g24_update_addr_and_synccrc8 
-34ac 6fe0c637 fetch 1 ,mem_24g_device2_config_ch_once 
-34ad 205a34bd call g24_device2_config_ch_once ,blank 
-34ae 6fe0c635 fetch 1 ,mem_24g_device2_last_ch 
-34af 67e0c5a4 store 1 ,mem_24g_ch 
-34b0 6848c656 fetcht 1 ,mem_rssi_noise_device2_index 
-34b1 6a21465d fetchr rega ,2 ,mem_rssi_noise_device2_buffer_ptr 
-34b2 20403583 call rssi_store 
-34b3 6048c656 storet 1 ,mem_rssi_noise_device2_index 
-34b4 2040358c call rssi_average 
-34b5 6048c653 storet 1 ,mem_rssi_noise_device2_avg 
-34b6 18467c50 sub temp ,rssi_thresh_noise ,null 
-34b7 24610000 nrtn positive 
-34b8 6848c636 fetcht 1 ,mem_24g_device2_ch_number 
-34b9 20403206 call g24_ch_map_size 
-34ba 6048c636 storet 1 ,mem_24g_device2_ch_number 
-34bb 67e0c635 store 1 ,mem_24g_device2_last_ch 
-34bc 20600000 rtn 
-
-g24_device2_config_ch_once:
-34bd 70463701 jam 1 ,mem_24g_device2_config_ch_once 
-34be d8400000 arg 0 ,temp 
-34bf 2040320b call g24_ch_calc 
-34c0 67e0c635 store 1 ,mem_24g_device2_last_ch 
-34c1 20600000 rtn 
-
-g24_auto_bind_config_self:
-34c2 2040330d call g24_bind_dvc1_payload_cfg 
-34c3 6fe24508 fetch 4 ,mem_24g_lap 
-34c4 20403215 call g24_update_addr_and_synccrc8 
-34c5 6fe0c631 fetch 1 ,mem_24g_self_config_ch_once 
-34c6 205a34d6 call g24_self_config_ch_once ,blank 
-34c7 6fe0c62f fetch 1 ,mem_24g_self_last_ch 
-34c8 67e0c5a4 store 1 ,mem_24g_ch 
-34c9 6848c654 fetcht 1 ,mem_rssi_noise_self_index 
-34ca 6a214659 fetchr rega ,2 ,mem_rssi_noise_self_buffer_ptr 
-34cb 20403583 call rssi_store 
-34cc 6048c654 storet 1 ,mem_rssi_noise_self_index 
-34cd 2040358c call rssi_average 
-34ce 6048c651 storet 1 ,mem_rssi_noise_self_avg 
-34cf 18467c50 sub temp ,rssi_thresh_noise ,null 
-34d0 24610000 nrtn positive 
-34d1 6848c630 fetcht 1 ,mem_24g_self_ch_number 
-34d2 20403206 call g24_ch_map_size 
-34d3 6048c630 storet 1 ,mem_24g_self_ch_number 
-34d4 67e0c62f store 1 ,mem_24g_self_last_ch 
-34d5 20600000 rtn 
-
-g24_self_config_ch_once:
-34d6 70463101 jam 1 ,mem_24g_self_config_ch_once 
-34d7 6fe0c62f fetch 1 ,mem_24g_self_last_ch 
-34d8 67e0c5a4 store 1 ,mem_24g_ch 
-34d9 20600000 rtn 
-
-g24_ackpayload_disable:
-34da 70462800 jam 0 ,mem_24g_ackpayload_enable 
-34db 20600000 rtn 
-
-g24_receiver_addr_check:
-34dc 6fe245a6 fetch 4 ,mem_24g_addr 
-34dd 684a4508 fetcht 4 ,mem_24g_lap 
-34de 98467c00 isub temp ,null 
-34df 20600000 rtn 
-
-g24_nodata_process:
-34e0 6fe0c628 fetch 1 ,mem_24g_ackpayload_enable 
-34e1 c1010000 rtneq 2 
-34e2 6fe0c62b fetch 1 ,mem_24g_nodata_timer_enable 
-34e3 207a0000 rtn blank 
-34e4 d8e00008 arg g24_timer_nodata ,queue 
-34e5 20407cf1 call timer_check 
-34e6 247a0000 nrtn blank 
-34e7 70462b00 jam 0 ,mem_24g_nodata_timer_enable 
-34e8 70463900 jam 0 ,mem_24g_bind_mode_continue 
-34e9 204033f5 call g24_mode_b_s_switch_init 
-
-g24_search_mode_enable:
-34ea 475d4037 bpatchx patch37_2 ,mem_patch37 
-34eb 70462d07 jam dongle_search ,mem_24g_work_mode 
-34ec 70462c00 jam clear_init ,mem_24g_mode_init 
-34ed 20203397 branch g24_rx_interrupt_clear 
-
-g24_ch_process:
-34ee 475dc037 bpatchx patch37_3 ,mem_patch37 
-34ef 6fe0c621 fetch 1 ,mem_24g_abort_packet 
-34f0 c000b5c2 beq 1 ,rssi_noise_monitor 
-34f1 6fe0c629 fetch 1 ,mem_24g_hop_packet 
-34f2 c000b502 beq 1 ,g24_ch_receive_hop_pac 
-34f3 684a4622 fetcht 4 ,mem_24g_hop_btclk 
-34f4 1c427e00 copy clkn_bt ,pdata 
-34f5 98467c00 isub temp ,null 
-34f6 24413234 ncall g24_timer_timeout ,positive 
-34f7 1fe22400 copy pdata ,regb 
-34f8 6fe24622 fetch 4 ,mem_24g_hop_btclk 
-34f9 6848c626 fetcht 1 ,mem_24g_hop_interval 
-34fa 98408400 iadd temp ,temp 
-34fb 1a427e00 copy regb ,pdata 
-34fc 98467c00 isub temp ,null 
-34fd 24610000 nrtn positive 
-34fe 793ffe1c set0 28 ,pdata 
-34ff 67e24622 store 4 ,mem_24g_hop_btclk 
-3500 70462101 jam 1 ,mem_24g_abort_packet 
-3501 20203201 branch g24_ch 
-
-g24_ch_receive_hop_pac:
-3502 70462900 jam 0 ,mem_24g_hop_packet 
-3503 20203201 branch g24_ch 
-
-g24_ch_timer_reinit:
-3504 1c427e00 copy clkn_bt ,pdata 
-3505 67e24622 store 4 ,mem_24g_hop_btclk 
-3506 20600000 rtn 
-
-g24_reconn_timeout_timer:
-3507 da6045f5 arg mem_24g_reconn_timeout ,regc 
-3508 da403653 arg g24_stop_24g_mode ,regb 
-3509 2020375c branch timer_single_step_2b 
-
-g24_reconn_start:
-350a 475e4037 bpatchx patch37_4 ,mem_patch37 
-350b 79200026 set1 mark_24g ,mark 
-350c 6fe0c613 fetch 1 ,mem_24g_conn_sm 
-350d 793ffe01 set0 state_24g_pair ,pdata 
-350e 79207e02 set1 state_24g_reconn ,pdata 
-350f 67e0c613 store 1 ,mem_24g_conn_sm 
-3510 6fe0c5fa fetch 1 ,mem_24g_fast_conn_enable 
-3511 203a351f branch g24_reconn_receiver_addr ,blank 
-3512 6fe0c5f9 fetch 1 ,mem_24g_reconn_type 
-3513 c000b517 beq fast_conn_and_receiver ,g24_reconn_fast_conn 
-3514 c0013517 beq fast_conn_and_3_0_addr ,g24_reconn_fast_conn 
-3515 c001b526 beq receiver_and_3_0_addr ,g24_reconn_device_3_0_addr 
-3516 c0023526 beq pair_and_3_0_addr ,g24_reconn_device_3_0_addr 
-
-g24_reconn_fast_conn:
-3517 6fe0c5e8 fetch 1 ,mem_24g_pair_tx_power 
-3518 67e0c141 store 1 ,mem_tx_power 
-3519 6848c603 fetcht 1 ,mem_24g_fast_conn_temp_ch 
-351a 6048c5a5 storet 1 ,mem_24g_current_ch_number 
-351b 6fe245fb fetch 4 ,mem_24g_fast_conn_addr 
-351c 20403530 call g24_ch_syncword_crc8_init 
-351d 6048c603 storet 1 ,mem_24g_fast_conn_temp_ch 
-351e 20600000 rtn 
-
-g24_reconn_receiver_addr:
-351f 70414103 jam tx_power_3db ,mem_tx_power 
-3520 6848c604 fetcht 1 ,mem_24g_receiver_temp_ch 
-3521 6048c5a5 storet 1 ,mem_24g_current_ch_number 
-3522 6fe245ff fetch 4 ,mem_24g_receiver_addr 
-3523 20403530 call g24_ch_syncword_crc8_init 
-3524 6048c604 storet 1 ,mem_24g_receiver_temp_ch 
-3525 20600000 rtn 
-
-g24_reconn_device_3_0_addr:
-3526 70414103 jam tx_power_3db ,mem_tx_power 
-3527 6848c605 fetcht 1 ,mem_24g_device_temp_ch 
-3528 6048c5a5 storet 1 ,mem_24g_current_ch_number 
-3529 6fe2461b fetch 4 ,mem_24g_device_addr 
-352a 20403530 call g24_ch_syncword_crc8_init 
-352b 6048c605 storet 1 ,mem_24g_device_temp_ch 
-352c 20600000 rtn 
-
-g24_store_receiver_addr:
-352d 6fe24576 fetch 4 ,mem_24g_rxpayload + 2 
-352e 207a0000 rtn blank 
-352f 67e245ff store 4 ,mem_24g_receiver_addr 
-
-g24_ch_syncword_crc8_init:
-3530 20403215 call g24_update_addr_and_synccrc8 
-3531 20203201 branch g24_ch 
-
-g24_reconn_dispatch:
-3532 475ec037 bpatchx patch37_5 ,mem_patch37 
-3533 6fe145f7 fetch 2 ,mem_24g_reconn_count 
-3534 d84001f8 arg 0x01f8 ,temp 
-3535 98417e00 iand temp ,pdata 
-3536 203a353b branch g24_reconn_dispatch_next ,blank 
-3537 6fe145f7 fetch 2 ,mem_24g_reconn_count 
-3538 1fe0fe01 increase 1 ,pdata 
-3539 67e145f7 store 2 ,mem_24g_reconn_count 
-353a 20600000 rtn 
-
-g24_reconn_dispatch_next:
-353b 20403557 call g24_reconn_data_prep 
-353c 2040362a call g24_transmit_receive_ack 
-353d 242c355e nbranch g24_reconn_device_fail ,sync 
-353e 2437b55e nbranch g24_reconn_device_fail ,user3 
-353f 20403647 call g24_ackpayload_parse 
-3540 6fe0c3cf fetch 1 ,mem_device_option 
-3541 c0044d5d beq dvc_op_mouse ,mouse_g24_reconn_dispatch_set 
-3542 6fe245e3 fetch 4 ,mem_24g_pair_addr 
-3543 684a45a6 fetcht 4 ,mem_24g_addr 
-3544 98467c00 isub temp ,null 
-3545 2022b26f branch g24_pair_start ,zero 
-
-g24_reconn_dispatch_success:
-3546 6fe2461b fetch 4 ,mem_24g_device_addr 
-3547 684a45a6 fetcht 4 ,mem_24g_addr 
-3548 98467c00 isub temp ,null 
-3549 2042b52d call g24_store_receiver_addr ,zero 
-354a 6fe0c613 fetch 1 ,mem_24g_conn_sm 
-354b 793ffe02 set0 state_24g_reconn ,pdata 
-354c 67e0c613 store 1 ,mem_24g_conn_sm 
-354d 58000000 setarg 0 
-354e 67e145ef store 2 ,mem_24g_pair_timeout 
-354f 67e145f7 store 2 ,mem_24g_reconn_count 
-3550 67e145f5 store 2 ,mem_24g_reconn_timeout 
-3551 70064d3c jam bt_evt_24g_attempt_success ,mem_fifo_temp 
-3552 20407819 call ui_ipc_send_event 
-
-g24_txbuf_clear:
-3553 475f4037 bpatchx patch37_6 ,mem_patch37 
-3554 df200020 arg 32 ,loopcnt 
-3555 d8a04530 arg mem_24g_txbuf ,contw 
-3556 20207ca5 branch memset0 
-
-g24_reconn_data_prep:
-3557 704530ff jam datatype_attemp ,mem_24g_txbuf 
-3558 6fe0c5a0 fetch 1 ,mem_24g_data_type 
-3559 67e0c531 store 1 ,mem_24g_txbuf + 1 
-355a 6fe2461b fetch 4 ,mem_24g_device_addr 
-355b 67e24532 store 4 ,mem_24g_txbuf + 2 
-355c 70459f06 jam 6 ,mem_24g_datalen 
-355d 202031c4 branch g24_transmit_prep 
-
-g24_reconn_device_fail:
-355e 475fc037 bpatchx patch37_7 ,mem_patch37 
-355f 6fe0c5fa fetch 1 ,mem_24g_fast_conn_enable 
-3560 203a3201 branch g24_ch ,blank 
-3561 6fe145f7 fetch 2 ,mem_24g_reconn_count 
-3562 1fe0fe01 increase 1 ,pdata 
-3563 67e145f7 store 2 ,mem_24g_reconn_count 
-3564 2feffe09 isolate1 9 ,pdata 
-3565 6fe0c5f9 fetch 1 ,mem_24g_reconn_type 
-3566 c000b56b beq fast_conn_and_receiver ,g24_reconn_fast_conn_and_receiver 
-3567 c001356d beq fast_conn_and_3_0_addr ,g24_reconn_fast_conn_and_3_0 
-3568 c001b56f beq receiver_and_3_0_addr ,g24_reconn_receiver_and_3_0 
-3569 c0023571 beq pair_and_3_0_addr ,g24_reconn_pair_and_3_0 
-356a 2020351f branch g24_reconn_receiver_addr 
-
-g24_reconn_fast_conn_and_receiver:
-356b 2020b51f branch g24_reconn_receiver_addr ,true 
-356c 20203517 branch g24_reconn_fast_conn 
-
-g24_reconn_fast_conn_and_3_0:
-356d 2020b526 branch g24_reconn_device_3_0_addr ,true 
-356e 20203517 branch g24_reconn_fast_conn 
-
-g24_reconn_receiver_and_3_0:
-356f 2020b526 branch g24_reconn_device_3_0_addr ,true 
-3570 2020351f branch g24_reconn_receiver_addr 
-
-g24_reconn_pair_and_3_0:
-3571 2020b526 branch g24_reconn_device_3_0_addr ,true 
-3572 2020327a branch g24_pair_init_param 
-
-g24_data_attemp:
-3573 6fe0c602 fetch 1 ,mem_24g_rxdata_temp + 3 
-3574 c000b577 beq datatype_device1 ,g24_data_attemp_device1 
-3575 c001357d beq datatype_device2 ,g24_data_attemp_device2 
-3576 20600000 rtn 
-
-g24_data_attemp_device1:
-3577 6fe0c5f5 fetch 1 ,mem_24g_device1_bind_disable 
-3578 247a0000 nrtn blank 
-3579 6fe24603 fetch 4 ,mem_24g_rxdata_temp + 4 
-357a 67e24643 store 4 ,mem_24g_transmitter_addr 
-
-g24_store_device1_addr:
-357b 67e24647 store 4 ,mem_24g_device1_addr 
-357c 20600000 rtn 
-
-g24_data_attemp_device2:
-357d 6fe0c5f6 fetch 1 ,mem_24g_device2_bind_disable 
-357e 247a0000 nrtn blank 
-357f 6fe24603 fetch 4 ,mem_24g_rxdata_temp + 4 
-3580 67e24643 store 4 ,mem_24g_transmitter_addr 
-
-g24_store_device2_addr:
-3581 67e2464b store 4 ,mem_24g_device2_addr 
-3582 20600000 rtn 
-
-rssi_store:
-3583 47604038 bpatchx patch38_0 ,mem_patch38 
-3584 1a227e00 copy rega ,pdata 
-3585 98408a00 iadd temp ,contw 
-3586 6fe08009 fetch 1 ,mem_rssi 
-3587 e7e08005 istore 1 ,contw 
-3588 18408401 increase 1 ,temp 
-3589 6fe0c5e9 fetch 1 ,mem_rssi_buff_index 
-358a 98410400 iand temp ,temp 
-358b 20600000 rtn 
-
-rssi_average:
-358c 4760c038 bpatchx patch38_1 ,mem_patch38 
-358d 6fe0c5e9 fetch 1 ,mem_rssi_buff_index 
-358e 1fe0fe01 increase 1 ,pdata 
-358f 67e10679 store 2 ,mem_loopcnt 
-3590 1fe27200 copy pdata ,loopcnt 
-3591 1a220c00 copy rega ,contr 
-3592 dfe00000 arg 0 ,pdata 
-
-rssi_average_loop:
-3593 e8408006 ifetcht 1 ,contr 
-3594 9840fe00 iadd temp ,pdata 
-3595 c2003593 loop rssi_average_loop 
-3596 68490679 fetcht 2 ,mem_loopcnt 
-3597 9846fc00 idiv temp 
-3598 20407d64 call wait_div_end 
-3599 18078400 quotient temp 
-359a c6138000 rtnmark1 mark_24g_rxmode 
-359b 18427e00 copy temp ,pdata 
-359c c6930000 rtnmark0 mark_24g 
-359d 204022ec call bcd 
-359e 1fe20400 copy pdata ,temp 
-359f 20600000 rtn 
-
-save_rssi_dec:
-35a0 202022cd branch save_rssi 
-
-rssi_transmitter_buff_init:
-35a1 6fe14607 fetch 2 ,mem_rssi_signal_buf_ptr 
-35a2 202035b5 branch rssi_buff_clear 
-
-rssi_signal:
-35a3 1fe22200 copy pdata ,rega 
-35a4 6848c606 fetcht 1 ,mem_rssi_signal_index 
-35a5 6fe14607 fetch 2 ,mem_rssi_signal_buf_ptr 
-35a6 98408a00 iadd temp ,contw 
-35a7 1a227e00 copy rega ,pdata 
-35a8 e7e08005 istore 1 ,contw 
-35a9 18408401 increase 1 ,temp 
-35aa 6fe0c5e9 fetch 1 ,mem_rssi_buff_index 
-35ab 98410400 iand temp ,temp 
-35ac 6048c606 storet 1 ,mem_rssi_signal_index 
-35ad 20600000 rtn 
-
-rssi_receiver_buff_init:
-35ae 6fe14657 fetch 2 ,mem_rssi_noise_buffer_ptr 
-35af 204035b5 call rssi_buff_clear 
-35b0 6fe14659 fetch 2 ,mem_rssi_noise_self_buffer_ptr 
-35b1 204035b5 call rssi_buff_clear 
-35b2 6fe1465b fetch 2 ,mem_rssi_noise_device1_buffer_ptr 
-35b3 204035b5 call rssi_buff_clear 
-35b4 6fe1465d fetch 2 ,mem_rssi_noise_device2_buffer_ptr 
-
-rssi_buff_clear:
-35b5 207a0000 rtn blank 
-35b6 1fe20a00 copy pdata ,contw 
-35b7 6fe0c5e9 fetch 1 ,mem_rssi_buff_index 
-35b8 1fe0fe01 increase 1 ,pdata 
-35b9 1fe27200 copy pdata ,loopcnt 
-35ba 20207ca3 branch clear_mem 
-
-rssi_noise:
-35bb 204035a0 call save_rssi_dec 
-35bc 207a0000 rtn blank 
-35bd 6848c650 fetcht 1 ,mem_rssi_noise_index 
-35be 6a214657 fetchr rega ,2 ,mem_rssi_noise_buffer_ptr 
-35bf 20403583 call rssi_store 
-35c0 6048c650 storet 1 ,mem_rssi_noise_index 
-35c1 20600000 rtn 
-
-rssi_noise_monitor:
-35c2 6a214657 fetchr rega ,2 ,mem_rssi_noise_buffer_ptr 
-35c3 2040358c call rssi_average 
-35c4 6048c64f storet 1 ,mem_rssi_noise_avg 
-35c5 18467c50 sub temp ,rssi_thresh_noise ,null 
-35c6 24610000 nrtn positive 
-35c7 20203201 branch g24_ch 
-
-g24_transmit_init:
-35c8 6fe24508 fetch 4 ,mem_24g_lap 
-35c9 67e2461b store 4 ,mem_24g_device_addr 
-35ca 202035a1 branch rssi_transmitter_buff_init 
-
-g24_interval_param_4ms:
-35cb 58002fb2 setarg g24_4ms_interval_param 
-35cc 67e1c61f store 3 ,mem_24g_short_sleep_set 
-35cd 58100c0c setarg 0x100c0c 
-35ce 67e1c5be store 3 ,mem_24g_interval 
-35cf 5800bb80 setarg 0x00bb80 
-35d0 67e1c622 store 3 ,mem_24g_long_sleep_set 
-35d1 70463805 jam 5 ,mem_24g_fast_hop_count 
-35d2 20600000 rtn 
-
-g24_interval_param_8ms:
-35d3 5800f80c setarg g24_8ms_interval_param 
-35d4 67e1c61f store 3 ,mem_24g_short_sleep_set 
-35d5 581c1919 setarg 0x1c1919 
-35d6 67e1c5be store 3 ,mem_24g_interval 
-35d7 58017700 setarg 0x017700 
-35d8 67e1c622 store 3 ,mem_24g_long_sleep_set 
-35d9 7046380b jam 11 ,mem_24g_fast_hop_count 
-35da 20600000 rtn 
-
-g24_transmit_dispatch:
-35db 6fe0c613 fetch 1 ,mem_24g_conn_sm 
-35dc c280b281 bbit1 state_24g_pair ,g24_pair_dispatch 
-35dd c2813532 bbit1 state_24g_reconn ,g24_reconn_dispatch 
-35de 6fe0c62f fetch 1 ,mem_24g_transmit_by_interrupt 
-35df c000b6a0 beq g24_tx_timer_int_enable ,g24_transmit_by_interrupt 
-
-g24_transmit_no_interrupt:
-35e0 47614038 bpatchx patch38_2 ,mem_patch38 
-35e1 204035fd call g24_txdata_prep 
-35e2 2434367e nbranch g24_nodata_transmit ,user 
-
-g24_transmit_start:
-35e3 4761c038 bpatchx patch38_3 ,mem_patch38 
-35e4 20403612 call g24_transmit_process 
-35e5 204036c8 call power_ctrl_start 
-35e6 6fe0c3cf fetch 1 ,mem_device_option 
-35e7 c0045923 beq dvc_op_mouse ,mouse_24g_transmit_start 
-
-g24_transmit_start_next:
-35e8 6fe44622 fetch 8 ,mem_24g_long_sleep_set 
-35e9 67e445c6 store 8 ,mem_24g_enter_hibernate 
-35ea 6fe14634 fetch 2 ,mem_24g_long_sleep_param_update_timer_init 
-35eb 67e14636 store 2 ,mem_24g_long_sleep_param_update_timer 
-35ec 6fe1460f fetch 2 ,mem_cb_24g_transmit_short_sleep 
-35ed 20207d7b branch callback_func 
-
-g24_short_sleep:
-35ee 47624038 bpatchx patch38_4 ,mem_patch38 
-35ef 20403694 call g24_lpm_wait 
-35f0 24740000 nrtn user 
-35f1 2040369e call g24_setgpio_lpm_before 
-35f2 20407de6 call clear_wake 
-35f3 6fe1c61f fetch 3 ,mem_24g_short_sleep_set 
-35f4 202035fa branch g24_long_seep2 
-
-g24_long_sleep:
-35f5 4762c038 bpatchx patch38_5 ,mem_patch38 
-35f6 20403694 call g24_lpm_wait 
-35f7 24740000 nrtn user 
-35f8 2040369e call g24_setgpio_lpm_before 
-35f9 6fe445c6 fetch 8 ,mem_24g_enter_hibernate 
-
-g24_long_seep2:
-35fa 20407d27 call clk2lpo 
-35fb 604a40a9 storet 4 ,mem_sleep_counter 
-35fc 20202406 branch lpm_sleep 
-
-g24_txdata_prep:
-35fd 20403600 call g24_package_data 
-35fe 24740000 nrtn user 
-35ff 202031c4 branch g24_transmit_prep 
-
-g24_package_data:
-3600 6fe14609 fetch 2 ,mem_cb_24g_transmit_data 
-3601 20407d7b call callback_func 
-3602 20343606 branch g24_accumulate_data ,user 
-3603 6fe3c531 fetch 7 ,mem_24g_txbuf + 1 
-3604 207a0000 rtn blank 
-3605 20207dbc branch enable_user 
-
-g24_accumulate_data:
-3606 70461900 jam 0 ,mem_24g_abort_pac 
-3607 1a20fe01 add rega ,1 ,pdata 
-3608 67e0c59f store 1 ,mem_24g_datalen 
-3609 2040360e call g24_transmit_rf_ctrl_clear 
-360a 67e0c530 store 1 ,mem_24g_txbuf 
-360b 1a420c00 copy regb ,contr 
-360c 1a227200 copy rega ,loopcnt 
-360d 20207cdc branch memcpy 
-
-g24_transmit_rf_ctrl_clear:
-360e 6fe0c5a0 fetch 1 ,mem_24g_data_type 
-360f 1fe17e07 and_into bits_data ,pdata 
-3610 67e0c5a0 store 1 ,mem_24g_data_type 
-3611 20600000 rtn 
-
-g24_transmit_process:
-3612 58000000 setarg 0 
-3613 67e0c618 store 1 ,mem_24g_retry 
-3614 67e14639 store 2 ,mem_24g_retransmit 
-
-g24_transmit_loop:
-3615 47634038 bpatchx patch38_6 ,mem_patch38 
-3616 2040362a call g24_transmit_receive_ack 
-3617 6fe0c596 fetch 1 ,mem_24g_no_ack 
-3618 c000b61f beq no_ack_24g ,g24_transmit_no_ack 
-3619 242c3638 nbranch g24_retransmit ,sync 
-361a 2437b638 nbranch g24_retransmit ,user3 
-361b 20403647 call g24_ackpayload_parse 
-361c 6fe0c3cf fetch 1 ,mem_device_option 
-361d 1fe67c08 sub pdata ,dvc_op_mouse ,null 
-361e 2042db33 call mouse_24g_transmit_callback ,zero 
-
-g24_transmit_no_ack:
-361f 204036fc call power_ctrl_pac_succ_incrs 
-
-g24_transmit_next_packet:
-3620 20403553 call g24_txbuf_clear 
-3621 6fe0c595 fetch 1 ,mem_24g_pid 
-3622 1fe0fe01 increase 1 ,pdata 
-3623 67e0c595 store 1 ,mem_24g_pid 
-3624 2040366d call g24_hop_enable_packet 
-
-g24_transmit_abandon:
-3625 4763c038 bpatchx patch38_7 ,mem_patch38 
-3626 58000000 setarg 0 
-3627 67e0c614 store 1 ,mem_24g_ensure 
-3628 67e14615 store 2 ,mem_24g_txfail_cnt 
-3629 20600000 rtn 
-
-g24_transmit_receive_ack:
-362a 47644039 bpatchx patch39_0 ,mem_patch39 
-362b 7857fc00 disable user3 
-362c 20403174 call g24_transmit 
-362d 6fe0c596 fetch 1 ,mem_24g_no_ack 
-362e c000b162 beq no_ack_24g ,g24_end_of_packet 
-362f 18002a00 force 0 ,radio_ctrl 
-3630 6fe245a6 fetch 4 ,mem_24g_addr 
-3631 98001200 iforce access 
-3632 68488008 fetcht 1 ,mem_last_freq 
-3633 20402173 call set_freq_rx 
-3634 204021aa call rf_rx_enable 
-3635 20403100 call g24_receive_rxon 
-3636 2057b162 call g24_end_of_packet ,user3 
-3637 20600000 rtn 
-
-g24_retransmit:
-3638 4764c039 bpatchx patch39_1 ,mem_patch39 
-3639 6fe0c3cf fetch 1 ,mem_device_option 
-363a c00459df beq dvc_op_mouse ,mouse_g24_retransmit 
-
-g24_retransmit0:
-363b 6fe0c619 fetch 1 ,mem_24g_abort_pac 
-363c 247a0000 nrtn blank 
-363d 6fe14615 fetch 2 ,mem_24g_txfail_cnt 
-363e 1fe0fe01 increase 1 ,pdata 
-363f 67e14615 store 2 ,mem_24g_txfail_cnt 
-3640 6fe0c616 fetch 1 ,mem_24g_txfail_cnt + 1 
-3641 c282364f bbit1 4 ,g24_tx_attempt_fail 
-3642 20403655 call g24_transmit_hop_process 
-3643 6fe14639 fetch 2 ,mem_24g_retransmit 
-3644 1fe0fe01 increase 1 ,pdata 
-3645 67e14639 store 2 ,mem_24g_retransmit 
-3646 20203615 branch g24_transmit_loop 
-
-g24_ackpayload_parse:
-3647 47654039 bpatchx patch39_2 ,mem_patch39 
-3648 204031f3 call g24_read_len_pid_crc 
-3649 6fe0c594 fetch 1 ,mem_24g_rxdata_length 
-364a 207a0000 rtn blank 
-364b 98007200 iforce loopcnt 
-364c d8c04510 arg mem_24g_rxbuf + 2 ,contr 
-364d d8a04574 arg mem_24g_rxpayload ,contw 
-364e 20207cdc branch memcpy 
-
-g24_tx_attempt_fail:
-364f 4765c039 bpatchx patch39_3 ,mem_patch39 
-3650 58000000 setarg 0 
-3651 67e14615 store 2 ,mem_24g_txfail_cnt 
-3652 70461701 jam 1 ,mem_24g_attempt_fail_flag 
-
-g24_stop_24g_mode:
-3653 70064d3a jam bt_evt_24g_attempt_fail ,mem_fifo_temp 
-3654 20207819 branch ui_ipc_send_event 
-
-g24_transmit_hop_process:
-3655 47664039 bpatchx patch39_4 ,mem_patch39 
-3656 6fe0c3cf fetch 1 ,mem_device_option 
-3657 c0044d70 beq dvc_op_mouse ,mouse_g24_transmit_hop_process 
-
-g24_transmit_hop_process_next:
-3658 6848c618 fetcht 1 ,mem_24g_retry 
-3659 6fe0c638 fetch 1 ,mem_24g_fast_hop_count 
-365a 98467c00 isub temp ,null 
-365b 24213675 nbranch g24_tx_fast_hop ,positive 
-365c 18408401 increase 1 ,temp 
-365d 6048c618 storet 1 ,mem_24g_retry 
-365e 6fe0c638 fetch 1 ,mem_24g_fast_hop_count 
-365f c002b664 beq 5 ,g24_transmit_hop_process_4ms 
-3660 6fe0c618 fetch 1 ,mem_24g_retry 
-3661 c003366f beq 6 ,g24_hop_ch_disable 
-3662 c006366f beq 12 ,g24_hop_ch_disable 
-3663 20600000 rtn 
-
-g24_transmit_hop_process_4ms:
-3664 6fe0c618 fetch 1 ,mem_24g_retry 
-3665 c001b66f beq 3 ,g24_hop_ch_disable 
-3666 c003366f beq 6 ,g24_hop_ch_disable 
-3667 20600000 rtn 
-
-g24_hop_ch_enable:
-
-g24_txpayload_type_update:
-3668 c517b66b bmark1 mark_ble_lr ,g24_lr_type_update 
-3669 67e0c551 store 1 ,mem_24g_txpayload + offset_data_type 
-366a 20600000 rtn 
-
-g24_lr_type_update:
-366b 67e0c552 store 1 ,mem_24g_txpayload + offset_lr_data_type 
-366c 20600000 rtn 
-
-g24_hop_enable_packet:
-366d 6fe0c5a0 fetch 1 ,mem_24g_data_type 
-366e c4020000 rtnbit0 bit_hop 
-
-g24_hop_ch_disable:
-366f 6fe0c5a0 fetch 1 ,mem_24g_data_type 
-3670 793ffe04 set0 bit_hop ,pdata 
-3671 67e0c5a0 store 1 ,mem_24g_data_type 
-3672 20403668 call g24_txpayload_type_update 
-3673 20403700 call power_ctrl_pac_succ_decrs 
-3674 20203201 branch g24_ch 
-
-g24_tx_fast_hop:
-3675 6fe245a6 fetch 4 ,mem_24g_addr 
-3676 684a45fb fetcht 4 ,mem_24g_fast_conn_addr 
-3677 98467c00 isub temp ,null 
-3678 2022b201 branch g24_ch ,zero 
-3679 204036ee call power_ctrl_txpower_incrs 
-367a 20403700 call power_ctrl_pac_succ_decrs 
-367b 20203201 branch g24_ch 
-
-g24_search_receiver:
-367c 6fe1460b fetch 2 ,mem_cb_24g_search_receiver 
-367d 20207d7b branch callback_func 
-
-g24_nodata_transmit:
-367e 6fe0c619 fetch 1 ,mem_24g_abort_pac 
-367f 205a3685 call g24_send_abort_packet ,blank 
-3680 6fe0c62f fetch 1 ,mem_24g_transmit_by_interrupt 
-3681 c1008000 rtneq g24_tx_timer_int_enable 
-3682 2040367c call g24_search_receiver 
-3683 6fe14611 fetch 2 ,mem_cb_24g_transmit_long_sleep 
-3684 20207d7b branch callback_func 
-
-g24_send_abort_packet:
-3685 4766c039 bpatchx patch39_5 ,mem_patch39 
-3686 70461901 jam 1 ,mem_24g_abort_pac 
-3687 7045a001 jam type_ms ,mem_24g_data_type 
-3688 2040360e call g24_transmit_rf_ctrl_clear 
-3689 67e0c530 store 1 ,mem_24g_txbuf 
-368a 58000000 setarg 0 
-368b 67e3c531 store 7 ,mem_24g_txbuf + 1 
-368c 6fe2461b fetch 4 ,mem_24g_device_addr 
-368d 67e24538 store 4 ,mem_24g_txbuf + 8 
-368e 70459f0c jam 12 ,mem_24g_datalen 
-368f 6fe0c5a0 fetch 1 ,mem_24g_data_type 
-3690 79207e03 set1 bit_abort ,pdata 
-3691 67e0c5a0 store 1 ,mem_24g_data_type 
-3692 204031c4 call g24_transmit_prep 
-3693 202035e3 branch g24_transmit_start 
-
-g24_lpm_wait:
-3694 47674039 bpatchx patch39_6 ,mem_patch39 
-3695 78347c00 enable user 
-3696 204023f0 call lpo_calibration 
-3697 6fe1c0bd fetch 3 ,mem_clks_per_lpo 
-3698 203a7dbe branch disable_user ,blank 
-3699 6fe0c094 fetch 1 ,mem_lpm_mode 
-369a 203a7dbe branch disable_user ,blank 
-369b 6fe0c62f fetch 1 ,mem_24g_transmit_by_interrupt 
-369c c000fdbe beq g24_tx_timer_int_enable ,disable_user 
-369d 20600000 rtn 
-
-g24_setgpio_lpm_before:
-369e 6fe1460d fetch 2 ,mem_cb_24g_lpm_before 
-369f 20207d7b branch callback_func 
-
-g24_transmit_by_interrupt:
-36a0 20403224 call g24_timer_check 
-36a1 24740000 nrtn user 
-36a2 204036b5 call g24_interval_calibrate 
-36a3 6fe14630 fetch 2 ,mem_24g_transmit_by_interrupt_exit_count 
-36a4 1fe0fe01 increase 1 ,pdata 
-36a5 67e14630 store 2 ,mem_24g_transmit_by_interrupt_exit_count 
-36a6 68494632 fetcht 2 ,mem_24g_transmit_by_interrupt_exit_count_init 
-36a7 98467c00 isub temp ,null 
-36a8 2042b6aa call g24_transmit_by_interrupt_exit ,zero 
-36a9 202035e0 branch g24_transmit_no_interrupt 
-
-g24_transmit_by_interrupt_exit:
-36aa 70462f00 jam g24_tx_timer_int_disable ,mem_24g_transmit_by_interrupt 
-36ab 58000000 setarg 0 
-36ac 67e14630 store 2 ,mem_24g_transmit_by_interrupt_exit_count 
-36ad 58000064 setarg 100 
-36ae 67e14632 store 2 ,mem_24g_transmit_by_interrupt_exit_count_init 
-
-g24_interval_min:
-36af 70462e00 jam 0 ,mem_24g_pac_index 
-36b0 6fe0c5bf fetch 1 ,mem_24g_interval_min 
-
-g24_interval_store:
-36b1 67e0c5be store 1 ,mem_24g_interval 
-36b2 20600000 rtn 
-
-g24_interval_max:
-36b3 6fe0c5c0 fetch 1 ,mem_24g_interval_max 
-36b4 202036b1 branch g24_interval_store 
-
-g24_interval_calibrate:
-36b5 6fe0c62e fetch 1 ,mem_24g_pac_index 
-36b6 1fe0fe01 increase 1 ,pdata 
-36b7 67e0c62e store 1 ,mem_24g_pac_index 
-36b8 c00236b3 beq 4 ,g24_interval_max 
-36b9 c002b6af beq 5 ,g24_interval_min 
-36ba 20600000 rtn 
-
-g24_transmit_by_interrupt_enable:
-36bb 70462f01 jam g24_tx_timer_int_enable ,mem_24g_transmit_by_interrupt 
-36bc 58000000 setarg 0 
-36bd 67e14630 store 2 ,mem_24g_transmit_by_interrupt_exit_count 
-36be 20600000 rtn 
-
-g24_factory_check:
-36bf df200002 arg 2 ,loopcnt 
-36c0 d8c045a6 arg mem_24g_addr ,contr 
-
-pdata_0xff_check:
-36c1 20407dbc call enable_user 
-36c2 5800ffff setarg 0xffff 
-
-pdata_0xff_check_loop:
-36c3 e8410006 ifetcht 2 ,contr 
-36c4 98467c00 isub temp ,null 
-36c5 2442fdbe ncall disable_user ,zero 
-36c6 c20036c3 loop pdata_0xff_check_loop 
-36c7 20600000 rtn 
-
-power_ctrl_start:
-36c8 4767c039 bpatchx patch39_7 ,mem_patch39 
-36c9 6fe0c44e fetch 1 ,mem_power_ctrl_disable 
-36ca 247a0000 nrtn blank 
-36cb 6fe14500 fetch 2 ,mem_ui_state_map 
-36cc c3858000 rtnbit1 ui_state_ble_adv 
-36cd 6a214607 fetchr rega ,2 ,mem_rssi_signal_buf_ptr 
-36ce 2040358c call rssi_average 
-36cf 6048c63b storet 1 ,mem_rssi_avg_received 
-36d0 6fe0c640 fetch 1 ,mem_rssi_dis_max_24g 
-36d1 c51336d3 bmark1 mark_24g ,power_ctrl_start_next 
-36d2 6fe0c643 fetch 1 ,mem_rssi_dis_max_ble 
-
-power_ctrl_start_next:
-36d3 98467c00 isub temp ,null 
-36d4 242136ed nbranch power_ctrl_txpower_incrs_force ,positive 
-36d5 6fe0c63d fetch 1 ,mem_power_ctrl_pac_succ_cnt 
-36d6 1fe67c02 sub pdata ,2 ,null 
-36d7 242136db nbranch power_ctrl_txpower_decrs_check ,positive 
-36d8 6fe0c63d fetch 1 ,mem_power_ctrl_pac_succ_cnt 
-36d9 c00036ee beq 0 ,power_ctrl_txpower_incrs 
-36da 20600000 rtn 
-
-power_ctrl_txpower_decrs_check:
-36db 6fe0c63d fetch 1 ,mem_power_ctrl_pac_succ_cnt 
-36dc 6848c63e fetcht 1 ,mem_power_ctrl_pac_succ_cnt_init 
-36dd 98467c00 isub temp ,null 
-36de 24628000 nrtn zero 
-36df 70463d00 jam 0 ,mem_power_ctrl_pac_succ_cnt 
-
-power_ctrl_txpower_decrs:
-36e0 6848c63b fetcht 1 ,mem_rssi_avg_received 
-36e1 6fe0c63f fetch 1 ,mem_rssi_dis_min_24g 
-36e2 c51336e4 bmark1 mark_24g ,power_ctrl_txpower_decrs_next 
-36e3 6fe0c642 fetch 1 ,mem_rssi_dis_min_ble 
-
-power_ctrl_txpower_decrs_next:
-36e4 98467c00 isub temp ,null 
-36e5 24610000 nrtn positive 
-36e6 6fe0c63c fetch 1 ,mem_power_ctrl_level 
-36e7 c00036fa beq 0 ,power_ctrl_decrs_level0 
-36e8 1fe0ffff increase -1 ,pdata 
-36e9 67e0c63c store 1 ,mem_power_ctrl_level 
-36ea c00136f6 beq 2 ,power_ctrl_decrs_level2 
-36eb c000b6f8 beq 1 ,power_ctrl_decrs_level1 
-36ec 202036fa branch power_ctrl_decrs_level0 
-
-power_ctrl_txpower_incrs_force:
-36ed 70463d00 jam 0 ,mem_power_ctrl_pac_succ_cnt 
-
-power_ctrl_txpower_incrs:
-36ee 6fe0c63c fetch 1 ,mem_power_ctrl_level 
-36ef c001b6f4 beq 3 ,power_ctrl_incrs_level3 
-36f0 1fe0fe01 increase 1 ,pdata 
-36f1 67e0c63c store 1 ,mem_power_ctrl_level 
-36f2 c000b6f8 beq 1 ,power_ctrl_incrs_level1 
-36f3 c00136f6 beq 2 ,power_ctrl_incrs_level2 
-
-power_ctrl_incrs_level3:
-36f4 70414105 jam tx_power_5db ,mem_tx_power 
-36f5 20600000 rtn 
-
-power_ctrl_decrs_level2:
-
-power_ctrl_incrs_level2:
-36f6 70414103 jam tx_power_3db ,mem_tx_power 
-36f7 20600000 rtn 
-
-power_ctrl_decrs_level1:
-
-power_ctrl_incrs_level1:
-36f8 70414100 jam tx_power_0db ,mem_tx_power 
-36f9 20600000 rtn 
-
-power_ctrl_decrs_level0:
-36fa 70414185 jam tx_power_f5db ,mem_tx_power 
-36fb 20600000 rtn 
-
-power_ctrl_pac_succ_incrs:
-36fc 6fe0c63d fetch 1 ,mem_power_ctrl_pac_succ_cnt 
-36fd 1fe0fe01 increase 1 ,pdata 
-36fe 67e0c63d store 1 ,mem_power_ctrl_pac_succ_cnt 
-36ff 20600000 rtn 
-
-power_ctrl_pac_succ_decrs:
-3700 6fe0c63d fetch 1 ,mem_power_ctrl_pac_succ_cnt 
-3701 1fe67c02 sub pdata ,2 ,null 
-3702 24413708 ncall power_ctrl_pac_succ_cnt_reinit ,positive 
-3703 6fe0c63d fetch 1 ,mem_power_ctrl_pac_succ_cnt 
-3704 c1000000 rtneq 0 
-3705 1fe0ffff increase -1 ,pdata 
-3706 67e0c63d store 1 ,mem_power_ctrl_pac_succ_cnt 
-3707 20600000 rtn 
-
-power_ctrl_pac_succ_cnt_reinit:
-3708 70463d03 jam 3 ,mem_power_ctrl_pac_succ_cnt 
-3709 20600000 rtn 
-
-app_init:
-370a 44e7c019 bpatch patch19_7 ,mem_patch19 
-370b 6fe0c3cf fetch 1 ,mem_device_option 
-370c 203a370a branch app_init ,blank 
-370d c0023cd1 beq dvc_op_dongle ,dongle_init 
-370e c004e0c8 beq dvc_op_shutter ,shutter_init 
-370f c0054a31 beq dvc_op_module ,module_init 
-3710 c00737c1 beq dvc_op_car ,car_init 
-3711 c0036286 beq dvc_op_shutter_dy ,shutter_dy_init 
-3712 c006badf beq dvc_op_remote_car ,remote_car_init 
-3713 c007beae beq dvc_op_keyboard ,keyboard_init 
-3714 c00666f2 beq dvc_op_hci_boot ,hci_init 
-3715 c0044d11 beq dvc_op_mouse ,mouse_init 
-3716 20600000 rtn 
-
-app_param_init:
-3717 20758000 rtn wake 
-3718 20406f7c call adc_init_data 
-3719 6fe0c3cf fetch 1 ,mem_device_option 
-371a c004e1f3 beq dvc_op_shutter ,shutter_default_init 
-371b c00361f3 beq dvc_op_shutter_dy ,shutter_default_init 
-371c c0023cdc beq dvc_op_dongle ,dongle_default_init 
-371d c0044d82 beq dvc_op_mouse ,mouse_default_init 
-371e c007bea1 beq dvc_op_keyboard ,keyboard_default_init 
-371f c006baee beq dvc_op_remote_car ,remote_car_default_init 
-3720 c00737d3 beq dvc_op_car ,car_default_init 
-3721 20600000 rtn 
-
-app_process_idle:
-3722 20407762 call ui_dispatch 
-3723 20407831 call check_51cmd 
-3724 20403729 call app_process_bb_event 
-3725 6fe143e4 fetch 2 ,mem_cb_idle_process 
-3726 20207d7b branch callback_func 
-
-app_process_ble:
-3727 6fe143e2 fetch 2 ,mem_cb_le_process 
-3728 20207d7b branch callback_func 
-
-app_process_bb_event:
-3729 44e8401a bpatch patch1a_0 ,mem_patch1a 
-372a da2044ea arg mem_ipc_fifo_bt2c51 ,rega 
-372b 20407d99 call fifo_out 
-372c 207a0000 rtn blank 
-372d 1fe22600 copy pdata ,regc 
-372e 20403732 call app_event_normal_process 
-372f 20203736 branch app_process_bb_event_priority 
-
-app_discard_event:
-3730 da600000 arg 0 ,regc 
-3731 20600000 rtn 
-
-app_event_normal_process:
-3732 c0083745 beq bt_evt_button_long_pressed ,app_evt_button_long_pressed 
-3733 c00a373c beq bt_evt_le_connected ,app_le_event_bb_connected 
-3734 c00ab740 beq bt_evt_le_disconnected ,app_le_event_bb_disconn 
-3735 20600000 rtn 
-
-app_process_bb_event_priority:
-3736 6fe143e6 fetch 2 ,mem_cb_bb_event_process 
-3737 20207d7b branch callback_func 
-
-app_check_wake_lock:
-3738 6fe143dc fetch 2 ,mem_cb_check_wakelock 
-3739 20207d7b branch callback_func 
-
-app_will_enter_lpm:
-373a 6fe143e0 fetch 2 ,mem_cb_before_lpm 
-373b 20207d7b branch callback_func 
-
-app_le_event_bb_connected:
-373c 6fe14500 fetch 2 ,mem_ui_state_map 
-373d 79207e09 set1 ui_state_ble_connected ,pdata 
-373e 67e14500 store 2 ,mem_ui_state_map 
-373f 20600000 rtn 
-
-app_le_event_bb_disconn:
-3740 70439a00 jam 0 ,mem_le_l2cap_att_states 
-3741 6fe14500 fetch 2 ,mem_ui_state_map 
-3742 793ffe09 set0 ui_state_ble_connected ,pdata 
-3743 67e14500 store 2 ,mem_ui_state_map 
-3744 202037a2 branch app_lpm_mult_disable 
-
-app_evt_button_long_pressed:
-3745 6fe143fa fetch app_disc_rsn_size ,mem_app_disconn_reason_flag 
-3746 79207e00 set1 app_disc_by_button ,pdata 
-3747 67e143fa store app_disc_rsn_size ,mem_app_disconn_reason_flag 
-3748 20600000 rtn 
-
-app_evt_timer:
-3749 67e081fb store 1 ,mem_app_evt_timer_count 
-
-app_evt_100ms_loop:
-374a 44e8c01a bpatch patch1a_1 ,mem_patch1a 
-374b 6fe081fb fetch 1 ,mem_app_evt_timer_count 
-374c 207a0000 rtn blank 
-374d 1fe0ffff increase -1 ,pdata 
-374e 67e081fb store 1 ,mem_app_evt_timer_count 
-374f 2040776e call ui_button_polling 
-3750 20403783 call app_lpm_wake_auto_lock_timer 
-3751 20406be1 call flash_write_spi_sm_timer 
-3752 6fe143ec fetch 2 ,mem_cb_event_timer 
-3753 20407d7b call callback_func 
-3754 2020374a branch app_evt_100ms_loop 
-
-timer_single_step:
-3755 efe08013 ifetch 1 ,regc 
-3756 207a0000 rtn blank 
-3757 1fe0ffff pincrease -1 
-3758 e7e08013 istore 1 ,regc 
-3759 247a0000 nrtn blank 
-375a 1a427e00 copy regb ,pdata 
-375b 20207d7b branch callback_func 
-
-timer_single_step_2b:
-375c efe10013 ifetch 2 ,regc 
-375d 207a0000 rtn blank 
-375e 1fe0ffff pincrease -1 
-375f e7e10013 istore 2 ,regc 
-3760 247a0000 nrtn blank 
-3761 1a427e00 copy regb ,pdata 
-3762 20207d7b branch callback_func 
-
-app_power_timer:
-3763 68494447 fetcht 2 ,mem_power_param_ptr 
-3764 1840a601 add temp ,power_timer_offset ,regc 
-3765 da403767 arg app_power_timer_timeout ,regb 
-3766 20203755 branch timer_single_step 
-
-app_power_timer_timeout:
-3767 204037b8 call app_got_power_state_common 
-3768 c000b76a beq power_starting ,app_enter_power_stanby_state 
-
-app_enter_power_off_state:
-3769 2020379c branch app_enter_hibernate 
-
-app_enter_power_stanby_state:
-376a 58000002 setarg power_standby 
-376b e7e08013 istore 1 ,regc 
-376c 1840a408 add temp ,power_standby_cb_offset ,regb 
-
-app_power_cb_common:
-376d efe10012 ifetch 2 ,regb 
-376e 20207d7b branch callback_func 
-
-app_bb_hibernate:
-376f 20403771 call app_disconn_reason_clear 
-3770 2020379c branch app_enter_hibernate 
-
-app_disconn_reason_clear:
-3771 58000000 setarg 0 
-3772 67e143f8 store app_disc_rsn_size ,mem_app_disconn_reason 
-3773 20600000 rtn 
-
-app_disconn_reason_flag_clear:
-3774 58000000 setarg 0 
-3775 67e143fa store app_disc_rsn_size ,mem_app_disconn_reason_flag 
-3776 20600000 rtn 
-
-app_disconn_reason_collect_ble:
-3777 6fe143fa fetch app_disc_rsn_size ,mem_app_disconn_reason_flag 
-3778 79207e07 set1 app_disc_ble ,pdata 
-3779 67e143f8 store app_disc_rsn_size ,mem_app_disconn_reason 
-377a 58000000 setarg 0 
-377b 67e143fa store app_disc_rsn_size ,mem_app_disconn_reason_flag 
-377c 20600000 rtn 
-
-app_get_lpm_wake_lock:
-377d d8e00009 arg wake_lock_app ,queue 
-377e 202024be branch lpm_get_wake_lock 
-
-app_put_lpm_wake_lock:
-377f d8e00009 arg wake_lock_app ,queue 
-3780 202024c2 branch lpm_put_wake_lock 
-
-app_lpm_wake_auto_lock:
-3781 7043f605 jam lpm_wake_up_delay_timer ,mem_wake_up_delay_timer 
-3782 2020377d branch app_get_lpm_wake_lock 
-
-app_lpm_wake_auto_lock_timer:
-3783 da6043f6 arg mem_wake_up_delay_timer ,regc 
-3784 da40377f arg app_put_lpm_wake_lock ,regb 
-3785 20203755 branch timer_single_step 
-
-app_ble_start_direct_adv:
-3786 70064d0f jam bt_cmd_start_direct_adv ,mem_fifo_temp 
-3787 20207824 branch ui_ipc_send_cmd 
-
-app_ble_stop_direct_adv:
-3788 70064d10 jam bt_cmd_stop_direct_adv ,mem_fifo_temp 
-3789 20207824 branch ui_ipc_send_cmd 
-
-app_ble_stop_adv:
-378a 70064d0e jam bt_cmd_stop_adv ,mem_fifo_temp 
-378b 20207824 branch ui_ipc_send_cmd 
-
-app_ble_start_adv:
-378c 70064d0d jam bt_cmd_start_adv ,mem_fifo_temp 
-378d 20207824 branch ui_ipc_send_cmd 
-
-app_ble_start_scan:
-378e 70064d17 jam bt_cmd_le_start_scan ,mem_fifo_temp 
-378f 20207824 branch ui_ipc_send_cmd 
-
-app_ble_stop_scan:
-3790 70064d18 jam bt_cmd_le_stop_scan ,mem_fifo_temp 
-3791 20207824 branch ui_ipc_send_cmd 
-
-app_ble_start_conn:
-3792 70064d16 jam bt_cmd_le_start_conn ,mem_fifo_temp 
-3793 20207824 branch ui_ipc_send_cmd 
-
-app_ble_disconnect:
-3794 70064d11 jam bt_cmd_le_disconnect ,mem_fifo_temp 
-3795 20207824 branch ui_ipc_send_cmd 
-
-app_led_start_blink:
-3796 70064d15 jam bt_cmd_led_blink ,mem_fifo_temp 
-3797 20207824 branch ui_ipc_send_cmd 
-
-app_led_on:
-3798 70064d14 jam bt_cmd_led_on ,mem_fifo_temp 
-3799 20207824 branch ui_ipc_send_cmd 
-
-app_led_stop_blink:
-
-app_led_off:
-379a 70064d13 jam bt_cmd_led_off ,mem_fifo_temp 
-379b 20207824 branch ui_ipc_send_cmd 
-
-app_enter_hibernate:
-379c 70064d19 jam bt_cmd_enter_hibernate ,mem_fifo_temp 
-379d 20207824 branch ui_ipc_send_cmd 
-
-app_ble_store_reconn_info:
-379e 70064d1f jam bt_cmd_store_reconn_info_le ,mem_fifo_temp 
-379f 20207824 branch ui_ipc_send_cmd 
-
-app_lpm_mult_enable:
-37a0 7920000d set1 mark_lpm_mult_enable ,mark 
-37a1 20600000 rtn 
-
-app_lpm_mult_disable:
-37a2 793f800d set0 mark_lpm_mult_enable ,mark 
-37a3 20600000 rtn 
-
-app_button_long_pressed:
-37a4 204037b8 call app_got_power_state_common 
-37a5 c00137ae beq power_standby ,app_power_shutting_down 
-
-app_power_starting:
-37a6 58000001 setarg power_starting 
-37a7 e7e08013 istore 1 ,regc 
-37a8 1840a203 add temp ,power_starting_timeout_offset ,rega 
-37a9 1840a406 add temp ,power_starting_cb_offset ,regb 
-
-app_power_common:
-37aa e8408011 ifetcht 1 ,rega 
-37ab 1a60a601 increase 1 ,regc 
-37ac e0408013 istoret 1 ,regc 
-37ad 2020376d branch app_power_cb_common 
-
-app_power_shutting_down:
-37ae 58000000 setarg power_off 
-37af e7e08013 istore 1 ,regc 
-37b0 6fe14500 fetch 2 ,mem_ui_state_map 
-37b1 c304b7b4 bbit0 ui_state_ble_connected ,app_power_off_end 
-37b2 204030a3 call le_send_terminate_ind_user_terminated 
-37b3 20403794 call app_ble_disconnect 
-
-app_power_off_end:
-37b4 68494447 fetcht 2 ,mem_power_param_ptr 
-37b5 1840a202 add temp ,power_off_timeout_offset ,rega 
-37b6 1840a404 add temp ,power_off_cb_offset ,regb 
-37b7 202037aa branch app_power_common 
-
-app_got_power_state_common:
-37b8 68494447 fetcht 2 ,mem_power_param_ptr 
-37b9 1840a600 add temp ,power_state_offset ,regc 
-37ba efe08013 ifetch 1 ,regc 
-37bb 20600000 rtn 
-
-app_event_button_up:
-37bc 204037b8 call app_got_power_state_common 
-37bd c08037bf bne power_off ,app_power_release 
-37be 2020379c branch app_enter_hibernate 
-
-app_power_release:
-37bf 1840a40a add temp ,ui_butten_up_cb_offset ,regb 
-37c0 2020376d branch app_power_cb_common 
-
-car_init:
-37c1 20407384 call enable_authrom 
-37c2 20758000 rtn wake 
-37c3 5800398b setarg car_idle_process 
-37c4 67e143e4 store 2 ,mem_cb_idle_process 
-37c5 58003a9c setarg car_cb_event_timer 
-37c6 67e143ec store 2 ,mem_cb_event_timer 
-37c7 580039be setarg car_cb_24g_ackpayload 
-37c8 67e145f9 store 2 ,mem_cb_24g_ackpayload 
-37c9 58003933 setarg car_ble_receive_data 
-37ca 67e143e8 store 2 ,mem_cb_att_write 
-37cb 58003924 setarg car_process_bb_event 
-37cc 67e143e6 store 2 ,mem_cb_bb_event_process 
-37cd 44974005 bpatch patch05_6 ,mem_patch05 
-37ce 204038f3 call car_init_environment 
-37cf 20403904 call car_add_mac_to_local_name 
-37d0 20402931 call le_modified_name 
-37d1 2040391d call car_le_param_init 
-37d2 2020789d branch queue_init 
-
-car_default_init:
-37d3 7041410a jam 0x0a ,mem_tx_power 
-37d4 7045cf84 jam 0x84 ,mem_24g_tx_phy 
-37d5 7045ce84 jam 0x84 ,mem_24g_rx_phy 
-37d6 58ffffff setarg 0xffffff 
-37d7 67e1c680 store 3 ,mem_car_full_control_remote_lap 
-37d8 704683ff jam 0xff ,mem_car_full_control_remote_lap + 3 
-37d9 58000000 setarg 0 
-37da 67e1c2dd store 3 ,mem_le_lap 
-37db 58220101 setarg 0x220101 
-37dc 67e1c2e0 store 3 ,mem_le_lap + 3 
-37dd 58ffffff setarg 0xffffff 
-37de 67e1c68c store 3 ,mem_car_motor_gpio_map 
-37df 70468fff jam 0xff ,mem_car_motor_gpio_map + 3 
-37e0 70469b01 jam 0x01 ,mem_factory_control_flag 
-37e1 58241404 setarg 0x241404 
-37e2 67e1c5aa store 3 ,mem_24g_ch_map1 
-37e3 7045ad34 jam 0x34 ,mem_24g_ch_map1 + 3 
-37e4 70469010 jam 0x10 ,mem_car_pwm_gpio 
-37e5 70469a01 jam 0x01 ,mem_stop_4w1_flag 
-37e6 70439707 jam 0x07 ,mem_le_adv_channel_map 
-37e7 70438c01 jam 0x01 ,mem_le_adv_enable 
-37e8 580000f0 setarg 0xf0 
-37e9 67e1438d store 2 ,mem_le_adv_interval 
-37ea 58000801 setarg 0x801 
-37eb 67e143b2 store 2 ,mem_le_local_feature 
-37ec 7043ba84 jam 0x84 ,mem_le_tx_phys 
-37ed 7043bb84 jam 0x84 ,mem_le_rx_phys 
-37ee 58504708 setarg 0x504708 
-37ef 67e1c26d store 3 ,mem_le_name_len 
-37f0 58435734 setarg 0x435734 
-37f1 67e1c270 store 3 ,mem_le_name_len + 3 
-37f2 585f5241 setarg 0x5f5241 
-37f3 67e1c273 store 3 ,mem_le_name_len + 6 
-37f4 70434c1f jam 0x1f ,mem_le_adv_data_len 
-37f5 58050102 setarg 0x50102 
-37f6 67e1c34d store 3 ,mem_le_adv_data 
-37f7 58000008 setarg 0x08 
-37f8 67e142d5 store 2 ,mem_le_interval_min 
-37f9 58000010 setarg 0x10 
-37fa 67e142d7 store 2 ,mem_le_interval_max 
-37fb 58000000 setarg 0 
-37fc 67e142d9 store 2 ,mem_le_latency 
-37fd 5800012c setarg 0x12c 
-37fe 67e142db store 2 ,mem_le_timeout 
-37ff 5800469d setarg mem_car_le_queue_each_size 
-3800 67e14404 store 2 ,mem_queue_ptr 
-3801 58000414 setarg 0x414 
-3802 67e2c69d store 5 ,mem_car_le_queue_each_size 
-3803 580046fd setarg mem_car_ble_att_list 
-3804 67e142f9 store 2 ,mem_ui_le_uuid_table 
-3805 38020001 setsect 0 ,0x20001 
-3806 38060000 setsect 1 ,0x20000 
-3807 38081022 setsect 2 ,0x1022 
-3808 380c0060 setsect 3 ,0x60 
-3809 67e4c6fd store 9 ,mem_car_ble_att_list 
-380a 38020002 setsect 0 ,0x20002 
-380b 380600c0 setsect 1 ,0x200c0 
-380c 380a0012 setsect 2 ,0x20012 
-380d 380c000c setsect 3 ,0xc 
-380e 67e4c705 store 9 ,mem_car_ble_att_list + 8 
-380f 38020502 setsect 0 ,0x20502 
-3810 3804004a setsect 1 ,0x4a 
-3811 38080040 setsect 2 ,0x40 
-3812 380c0808 setsect 3 ,0x808 
-3813 67e4c70e store 9 ,mem_car_ble_att_list + 17 
-3814 38010229 setsect 0 ,0x10229 
-3815 38054000 setsect 1 ,0x14000 
-3816 38082000 setsect 2 ,0x2000 
-3817 380ca000 setsect 3 ,0xa000 
-3818 67e4c717 store 9 ,mem_car_ble_att_list + 26 
-3819 38000002 setsect 0 ,0x02 
-381a 38040186 setsect 1 ,0x186 
-381b 38083020 setsect 2 ,0x3020 
-381c 380c04a0 setsect 3 ,0x4a0 
-381d 67e4c720 store 9 ,mem_car_ble_att_list + 35 
-381e 3800074e setsect 0 ,0x74e 
-381f 38040080 setsect 1 ,0x80 
-3820 380932a0 setsect 2 ,0x132a0 
-3821 380dcd04 setsect 3 ,0x1cd04 
-3822 67e4c729 store 9 ,mem_car_ble_att_list + 44 
-3823 38002074 setsect 0 ,0x2074 
-3824 38041153 setsect 1 ,0x1153 
-3825 380af4d2 setsect 2 ,0x2f4d2 
-3826 380dcdd5 setsect 3 ,0x1cdd5 
-3827 67e4c732 store 9 ,mem_car_ble_att_list + 53 
-3828 38002065 setsect 0 ,0x2065 
-3829 38040808 setsect 1 ,0x808 
-382a 380a0202 setsect 2 ,0x20202 
-382b 380c2080 setsect 3 ,0x2080 
-382c 67e4c73b store 9 ,mem_car_ble_att_list + 62 
-382d 38030200 setsect 0 ,0x30200 
-382e 38044a00 setsect 1 ,0x4a00 
-382f 380894e0 setsect 2 ,0x94e0 
-3830 380c0800 setsect 3 ,0x800 
-3831 67e4c744 store 9 ,mem_car_ble_att_list + 71 
-3832 38022a01 setsect 0 ,0x22a01 
-3833 38040000 setsect 1 ,0x0 
-3834 380800a0 setsect 2 ,0xa0 
-3835 380c0c08 setsect 3 ,0xc08 
-3836 67e4c74d store 9 ,mem_car_ble_att_list + 80 
-3837 38020128 setsect 0 ,0x20128 
-3838 380402c0 setsect 1 ,0x2c0 
-3839 38084020 setsect 2 ,0x4020 
-383a 380c20a8 setsect 3 ,0x20a8 
-383b 67e4c756 store 9 ,mem_car_ble_att_list + 89 
-383c 38000010 setsect 0 ,0x10 
-383d 38054008 setsect 1 ,0x14008 
-383e 380ac000 setsect 2 ,0x2c000 
-383f 380c3004 setsect 3 ,0x3004 
-3840 67e4c75f store 9 ,mem_car_ble_att_list + 98 
-3841 38000200 setsect 0 ,0x200 
-3842 38048a00 setsect 1 ,0x8a00 
-3843 380bff00 setsect 2 ,0x3ff00 
-3844 380c0037 setsect 3 ,0x37 
-3845 67e4c768 store 9 ,mem_car_ble_att_list + 107 
-3846 38000302 setsect 0 ,0x302 
-3847 3804804a setsect 1 ,0x804a 
-3848 380800e1 setsect 2 ,0xe1 
-3849 380fc408 setsect 3 ,0x3c408 
-384a 67e4c771 store 9 ,mem_car_ble_att_list + 116 
-384b 380004ff setsect 0 ,0x4ff 
-384c 38040000 setsect 1 ,0x0 
-384d 3808f000 setsect 2 ,0xf000 
-384e 380c0800 setsect 3 ,0x800 
-384f 67e4c77a store 9 ,mem_car_ble_att_list + 125 
-3850 38022902 setsect 0 ,0x22902 
-3851 38040000 setsect 1 ,0x0 
-3852 38080100 setsect 2 ,0x100 
-3853 380c0c08 setsect 3 ,0xc08 
-3854 67e4c783 store 9 ,mem_car_ble_att_list + 134 
-3855 38000128 setsect 0 ,0x128 
-3856 38040442 setsect 1 ,0x442 
-3857 380b2020 setsect 2 ,0x32020 
-3858 380c07ff setsect 3 ,0x7ff 
-3859 67e4c78c store 9 ,mem_car_ble_att_list + 143 
-385a 58000000 setarg 0 
-385b 67e1c795 store 3 ,mem_car_ble_att_list + 152 
-385c 7041480c jam 0x0c ,mem_system_clk 
-385d 58643f35 setarg 0x643f35 
-385e 67e1c0c3 store 3 ,mem_lpm_xtalcnt 
-385f 583b2f8f setarg 0x3b2f8f 
-3860 67e1c0c6 store 3 ,mem_lpm_isogate 
-3861 7040a720 jam 0x20 ,mem_lpm_hibernate_switch 
-3862 7040c900 jam 0x00 ,mem_lpm_ldo_sel 
-3863 7040ca08 jam 0x08 ,mem_lpm_sysctl 
-3864 7040cbb4 jam 0xb4 ,mem_lpm_hv_sel 
-3865 70409918 jam 0x18 ,mem_fcomp_div 
-3866 70411c3e jam 0x3e ,mem_xtal_c_sel 
-3867 58050e08 setarg 0x50e08 
-3868 67e1c160 store 3 ,mem_version 
-3869 58000003 setarg 0x3 
-386a 67e14163 store 2 ,mem_version + 3 
-386b 70416a20 jam 0x20 ,mem_le_tx2m_delay 
-386c 704143ff jam 0xff ,mem_gain_fix 
-386d 58000c00 setarg 0xc00 
-386e 67e1409a store 2 ,mem_rx_window_sniff 
-386f 58000004 setarg 0x4 
-3870 67e1c144 store 3 ,mem_gain_table 
-3871 70414708 jam 0x08 ,mem_gain_second_agc_en 
-3872 70444fa0 jam 0xa0 ,mem_ring_ibias_trim 
-3873 580002bc setarg 0x2bc 
-3874 67e14452 store 2 ,mem_ring_ibias_vtune_high 
-3875 58000190 setarg 0x190 
-3876 67e14450 store 2 ,mem_ring_ibias_vtune_low 
-3877 70445403 jam 0x03 ,mem_ring_ibias_calc_adc_gpio 
-3878 70445509 jam 0x09 ,mem_ring_ibias_calc_adc_channel 
-3879 704149ff jam 0xff ,mem_rf_init_data 
-387a 58004149 setarg mem_rf_init_data 
-387b 67e1409c store 2 ,mem_rf_init_ptr 
-387c 20406b28 call enable_otp_read 
-387d da20488d arg mem_otp_sys_cfg_temp ,rega 
-387e da401f00 arg otp_sys_param_cfg ,regb 
-387f df20003c arg 60 ,loopcnt 
-3880 20406b62 call otp_read_data 
-3881 20406b25 call disable_otp 
-3882 6fe0c88d fetch 1 ,mem_otp_sys_cfg_temp 
-3883 245a38b9 ncall car_system_clk ,blank 
-3884 6fe1c88e fetch 3 ,mem_otp_sys_cfg_temp + 1 
-3885 245a38bb ncall car_lpm_xtalcnt ,blank 
-3886 6fe1c891 fetch 3 ,mem_otp_sys_cfg_temp + 4 
-3887 245a38bd ncall car_lpm_isogate ,blank 
-3888 6fe0c894 fetch 1 ,mem_otp_sys_cfg_temp + 7 
-3889 245a38bf ncall car_lpm_hibernate_switch ,blank 
-388a 6fe0c895 fetch 1 ,mem_otp_sys_cfg_temp + 8 
-388b 245a38c1 ncall car_lpm_ldo_sel ,blank 
-388c 6fe0c896 fetch 1 ,mem_otp_sys_cfg_temp + 9 
-388d 245a38c3 ncall car_lpm_sysctl ,blank 
-388e 6fe0c897 fetch 1 ,mem_otp_sys_cfg_temp + 10 
-388f 245a38c5 ncall car_lpm_hv_sel ,blank 
-3890 6fe0c898 fetch 1 ,mem_otp_sys_cfg_temp + 11 
-3891 245a38c7 ncall car_fcomp_div ,blank 
-3892 6fe0c899 fetch 1 ,mem_otp_sys_cfg_temp + 12 
-3893 245a38c9 ncall car_xtal_c_sel ,blank 
-3894 6fe2c89a fetch 5 ,mem_otp_sys_cfg_temp + 13 
-3895 245a38cb ncall car_version ,blank 
-3896 6fe0c89f fetch 1 ,mem_otp_sys_cfg_temp + 18 
-3897 245a38cd ncall car_le_tx2m_delay ,blank 
-3898 6fe0c8a0 fetch 1 ,mem_otp_sys_cfg_temp + 19 
-3899 245a38cf ncall car_gain_fix ,blank 
-389a 6fe148a1 fetch 2 ,mem_otp_sys_cfg_temp + 20 
-389b 245a38d1 ncall car_rx_window_sniff ,blank 
-389c 6fe1c8a3 fetch 3 ,mem_otp_sys_cfg_temp + 22 
-389d 245a38d3 ncall car_gain_table ,blank 
-389e 6fe0c8a6 fetch 1 ,mem_otp_sys_cfg_temp + 25 
-389f 245a38d5 ncall car_gain_second_agc_en ,blank 
-38a0 6fe0c8a7 fetch 1 ,mem_otp_sys_cfg_temp + 26 
-38a1 245a38d7 ncall car_ring_ibias_trim ,blank 
-38a2 6fe148a8 fetch 2 ,mem_otp_sys_cfg_temp + 27 
-38a3 245a38d9 ncall car_ring_ibias_vtune_high ,blank 
-38a4 6fe148aa fetch 2 ,mem_otp_sys_cfg_temp + 29 
-38a5 245a38db ncall car_ring_ibias_vtune_low ,blank 
-38a6 6fe0c8ac fetch 1 ,mem_otp_sys_cfg_temp + 31 
-38a7 245a38dd ncall car_ring_ibias_calc_adc_gpio ,blank 
-38a8 6fe0c8ad fetch 1 ,mem_otp_sys_cfg_temp + 32 
-38a9 245a38df ncall car_ring_ibias_calc_adc_channel ,blank 
-38aa 6fe0c8b2 fetch 1 ,mem_otp_sys_cfg_temp + 37 
-38ab 245a38e1 ncall car_tx_power ,blank 
-38ac 6fe0c8b3 fetch 1 ,mem_otp_sys_cfg_temp + 38 
-38ad 245a38e3 ncall car_24g_tx_phy ,blank 
-38ae 6fe0c8b4 fetch 1 ,mem_otp_sys_cfg_temp + 39 
-38af 245a38e5 ncall car_24g_rx_phy ,blank 
-38b0 6fe248b5 fetch 4 ,mem_otp_sys_cfg_temp + 40 
-38b1 245a38e7 ncall car_motor_gpio_map ,blank 
-38b2 6fe0c8b9 fetch 1 ,mem_otp_sys_cfg_temp + 44 
-38b3 245a38ea ncall car_pwm_gpio ,blank 
-38b4 6fe248bb fetch 4 ,mem_otp_sys_cfg_temp + 46 
-38b5 245a38ef ncall car_24g_addr ,blank 
-38b6 6fe248bf fetch 4 ,mem_otp_sys_cfg_temp + 50 
-38b7 245a38f1 ncall car_24g_ch_map1 ,blank 
-38b8 20600000 rtn 
-
-car_system_clk:
-38b9 67e0c148 store 1 ,mem_system_clk 
-38ba 20600000 rtn 
-
-car_lpm_xtalcnt:
-38bb 67e1c0c3 store 3 ,mem_lpm_xtalcnt 
-38bc 20600000 rtn 
-
-car_lpm_isogate:
-38bd 67e1c0c6 store 3 ,mem_lpm_isogate 
-38be 20600000 rtn 
-
-car_lpm_hibernate_switch:
-38bf 67e0c0a7 store 1 ,mem_lpm_hibernate_switch 
-38c0 20600000 rtn 
-
-car_lpm_ldo_sel:
-38c1 67e0c0c9 store 1 ,mem_lpm_ldo_sel 
-38c2 20600000 rtn 
-
-car_lpm_sysctl:
-38c3 67e0c0ca store 1 ,mem_lpm_sysctl 
-38c4 20600000 rtn 
-
-car_lpm_hv_sel:
-38c5 67e0c0cb store 1 ,mem_lpm_hv_sel 
-38c6 20600000 rtn 
-
-car_fcomp_div:
-38c7 67e0c099 store 1 ,mem_fcomp_div 
-38c8 20600000 rtn 
-
-car_xtal_c_sel:
-38c9 67e0c11c store 1 ,mem_xtal_c_sel 
-38ca 20600000 rtn 
-
-car_version:
-38cb 67e2c160 store 5 ,mem_version 
-38cc 20600000 rtn 
-
-car_le_tx2m_delay:
-38cd 67e0c16a store 1 ,mem_le_tx2m_delay 
-38ce 20600000 rtn 
-
-car_gain_fix:
-38cf 67e0c143 store 1 ,mem_gain_fix 
-38d0 20600000 rtn 
-
-car_rx_window_sniff:
-38d1 67e1409a store 2 ,mem_rx_window_sniff 
-38d2 20600000 rtn 
-
-car_gain_table:
-38d3 67e1c144 store 3 ,mem_gain_table 
-38d4 20600000 rtn 
-
-car_gain_second_agc_en:
-38d5 67e0c147 store 1 ,mem_gain_second_agc_en 
-38d6 20600000 rtn 
-
-car_ring_ibias_trim:
-38d7 67e0c44f store 1 ,mem_ring_ibias_trim 
-38d8 20600000 rtn 
-
-car_ring_ibias_vtune_high:
-38d9 67e14452 store 2 ,mem_ring_ibias_vtune_high 
-38da 20600000 rtn 
-
-car_ring_ibias_vtune_low:
-38db 67e14450 store 2 ,mem_ring_ibias_vtune_low 
-38dc 20600000 rtn 
-
-car_ring_ibias_calc_adc_gpio:
-38dd 67e0c454 store 1 ,mem_ring_ibias_calc_adc_gpio 
-38de 20600000 rtn 
-
-car_ring_ibias_calc_adc_channel:
-38df 67e0c455 store 1 ,mem_ring_ibias_calc_adc_channel 
-38e0 20600000 rtn 
-
-car_tx_power:
-38e1 67e0c141 store 1 ,mem_tx_power 
-38e2 20600000 rtn 
-
-car_24g_tx_phy:
-38e3 67e0c5cf store 1 ,mem_24g_tx_phy 
-38e4 20600000 rtn 
-
-car_24g_rx_phy:
-38e5 67e0c5ce store 1 ,mem_24g_rx_phy 
-38e6 20600000 rtn 
-
-car_motor_gpio_map:
-38e7 67e2468c store 4 ,mem_car_motor_gpio_map 
-38e8 70469c01 jam 1 ,mem_car_gpio_control_mode 
-38e9 20600000 rtn 
-
-car_pwm_gpio:
-38ea 6fe0c69c fetch 1 ,mem_car_gpio_control_mode 
-38eb 247a0000 nrtn blank 
-38ec 6fe0c8b9 fetch 1 ,mem_otp_sys_cfg_temp + 44 
-38ed 67e0c690 store 1 ,mem_car_pwm_gpio 
-38ee 20600000 rtn 
-
-car_24g_addr:
-38ef 67e245a6 store 4 ,mem_24g_addr 
-38f0 20600000 rtn 
-
-car_24g_ch_map1:
-38f1 67e245aa store 4 ,mem_24g_ch_map1 
-38f2 20600000 rtn 
-
-car_init_environment:
-38f3 5800000f setarg 15 
-38f4 67e14684 store 2 ,mem_100ms_adv_control_timer 
-38f5 5800012c setarg 300 
-38f6 67e14686 store 2 ,mem_100ms_factory_test_control_timer 
-38f7 2040394f call car_whitening_24g_addr 
-38f8 20403963 call car_get_rxid 
-38f9 204038fb call car_rxid_check 
-38fa 20203981 branch car_pwm_control_init 
-
-car_rxid_check:
-38fb da2042dd arg mem_le_lap ,rega 
-38fc da404680 arg mem_car_full_control_remote_lap ,regb 
-38fd df200004 arg 4 ,loopcnt 
-38fe 20407d66 call string_compare 
-38ff 24628000 nrtn zero 
-3900 6fe0c2dd fetch 1 ,mem_le_lap 
-3901 1fe0ffff pincrease -1 
-3902 67e0c2dd store 1 ,mem_le_lap 
-3903 20600000 rtn 
-
-car_add_mac_to_local_name:
-3904 6fe0c26d fetch 1 ,mem_le_name_len 
-3905 d8a0426e arg mem_le_name_len + 1 ,contw 
-3906 98a0a400 iadd contw ,regb 
-3907 1fe0fe10 add pdata ,16 ,pdata 
-3908 67e0c26d store 1 ,mem_le_name_len 
-3909 df200006 arg 6 ,loopcnt 
-390a da2042e2 arg mem_le_lap + 5 ,rega 
-390b 1a420a00 copy regb ,contw 
-
-car_add_mac_to_local_name_loop:
-390c e8408011 ifetcht 1 ,rega 
-390d 18417ef0 and temp ,0xf0 ,pdata 
-390e 1ff1fe00 rshift4 pdata ,pdata 
-390f 20403917 call car_convert_hex_to_ascii 
-3910 e7e08005 istore 1 ,contw 
-3911 18417e0f and temp ,0x0f ,pdata 
-3912 20403917 call car_convert_hex_to_ascii 
-3913 e7e08005 istore 1 ,contw 
-3914 1a20a3ff increase -1 ,rega 
-3915 c200390c loop car_add_mac_to_local_name_loop 
-3916 20600000 rtn 
-
-car_convert_hex_to_ascii:
-3917 1fe67c09 sub pdata ,9 ,null 
-3918 2021391b branch car_convert_hex_to_ascii_0_9 ,positive 
-
-car_convert_hex_to_ascii_a_f:
-3919 1fe0fe37 add pdata ,0x37 ,pdata 
-391a 20600000 rtn 
-
-car_convert_hex_to_ascii_0_9:
-391b 1fe0fe30 add pdata ,0x30 ,pdata 
-391c 20600000 rtn 
-
-car_le_param_init:
-391d 7042e317 jam 0x17 ,mem_le_local_mtu 
-391e 5800001b setarg 0x1b 
-391f 67e14334 store 2 ,mem_le_pairing_handle 
-3920 204029a4 call le_set_config_fixed_ltk 
-3921 204029be call le_set_fixed_ltk 
-3922 204029ca call le_set_justwork 
-3923 202029ac branch le_set_config_read_authentication 
-
-car_process_bb_event:
-3924 1a627e00 deposit regc 
-3925 c00a3930 beq bt_evt_le_connected ,car_ble_connted 
-3926 c00ab928 beq bt_evt_le_disconnected ,car_ble_disconnted 
-3927 20600000 rtn 
-
-car_ble_disconnted:
-3928 70467f00 jam 0 ,mem_car_ble_connted_flag 
-3929 2040394b call car_gpio_control_stop 
-392a 70468900 jam 0x0 ,mem_period_count 
-392b 70469a01 jam 1 ,mem_stop_4w1_flag 
-392c 58000000 setarg 0 
-392d 67e1c6f2 store 3 ,mem_car_ble_write_data 
-392e 2040789d call queue_init 
-392f 2020378c branch app_ble_start_adv 
-
-car_ble_connted:
-3930 70467f01 jam 1 ,mem_car_ble_connted_flag 
-3931 20403adc call car_check_close_ice 
-3932 202037a0 branch app_lpm_mult_enable 
-
-car_ble_receive_data:
-3933 6fe1439c fetch 2 ,mem_le_att_handle 
-3934 c008b936 beq handle_of_write ,car_ble_receive_writeatt 
-3935 20600000 rtn 
-
-car_ble_receive_writeatt:
-3936 4497c005 bpatch patch05_7 ,mem_patch05 
-3937 1a427200 copy regb ,loopcnt 
-3938 1a220c00 copy rega ,contr 
-3939 d8a046f2 arg mem_car_ble_write_data ,contw 
-393a 20407cdc call memcpy 
-393b 6fe0c6f2 fetch 1 ,mem_car_ble_write_data 
-393c 207a0000 rtn blank 
-
-car_ble_receive_writeatt_parse:
-393d 2040394b call car_gpio_control_stop 
-393e 70468904 jam 0x4 ,mem_period_count 
-393f 6fe0c6f4 fetch 1 ,mem_car_ble_write_data + 2 
-3940 c1810000 rtnne 0x02 
-3941 6fe0c6fa fetch 1 ,mem_car_ble_write_data + 8 
-3942 c000ba60 beq 0x01 ,car_f + 3 
-3943 c0013a65 beq 0x02 ,car_b + 3 
-3944 c001ba6f beq 0x03 ,car_r + 3 
-3945 c0023a6a beq 0x04 ,car_l + 3 
-3946 c050ba74 beq 0xa1 ,car_fr 
-3947 c0513a71 beq 0xa2 ,car_fl 
-3948 c051ba7a beq 0xa3 ,car_br 
-3949 c0523a77 beq 0xa4 ,car_bl 
-394a 20600000 rtn 
-
-car_gpio_control_stop:
-394b 6fe0c69c fetch 1 ,mem_car_gpio_control_mode 
-394c 207a0000 rtn blank 
-394d 20403acd call car_fb_motor_stop 
-394e 20203ac1 branch car_lr_motor_stop 
-
-car_whitening_24g_addr:
-394f df200004 arg 4 ,loopcnt 
-3950 da6045a6 arg mem_24g_addr ,regc 
-3951 da4000ae arg 0xae ,regb 
-
-car_24g_whitening_loop:
-3952 20403956 call car_24g_whitening_byte 
-3953 1a60a601 increase 1 ,regc 
-3954 c2003952 loop car_24g_whitening_loop 
-3955 20600000 rtn 
-
-car_24g_whitening_byte:
-3956 da200001 arg 1 ,rega 
-
-car_24g_whitening_byte_loop:
-3957 1a43a400 lshift regb ,regb 
-3958 2a4ffe07 isolate1 7 ,regb 
-3959 2040b95e call car_24g_whitening_byte_xor ,true 
-395a 1a23a200 lshift rega ,rega 
-395b 1a227e00 deposit rega 
-395c c3840000 rtnbit1 8 
-395d 20203957 branch car_24g_whitening_byte_loop 
-
-car_24g_whitening_byte_xor:
-395e efe08013 ifetch 1 ,regc 
-395f 9a22fe00 ixor rega ,pdata 
-3960 e7e08013 istore 1 ,regc 
-3961 1a42a411 xor regb ,0x11 ,regb 
-3962 20600000 rtn 
-
-car_get_rxid:
-3963 20406b28 call enable_otp_read 
-3964 da204691 arg mem_otp_lot_xy_temp ,rega 
-3965 da401fda arg otp_mac_addr ,regb 
-3966 df200006 arg 6 ,loopcnt 
-3967 20406b62 call otp_read_data 
-3968 20406b25 call disable_otp 
-3969 6fe34691 fetch 6 ,mem_otp_lot_xy_temp 
-396a 207a0000 rtn blank 
-396b 6fe14691 fetch 2 ,mem_otp_lot_xy_temp 
-396c 67e142dd store 2 ,mem_le_lap 
-396d 6fe0c694 fetch 1 ,mem_otp_lot_xy_temp + 3 
-396e 67e0c2df store 1 ,mem_le_lap + 2 
-396f 6fe0c696 fetch 1 ,mem_otp_lot_xy_temp + 5 
-3970 67e0c2e0 store 1 ,mem_le_lap + 3 
-3971 6fe0c692 fetch 1 ,mem_otp_lot_xy_temp + 1 
-3972 1fe67c1a sub pdata ,26 ,null 
-3973 24610000 nrtn positive 
-3974 6fe0c693 fetch 1 ,mem_otp_lot_xy_temp + 2 
-3975 207a0000 rtn blank 
-3976 180a7e00 random pdata 
-3977 1fe17e07 and_into 0x07 ,pdata 
-3978 1fe3fe00 lshift pdata ,pdata 
-3979 1ff27e00 lshift4 pdata ,pdata 
-397a 6848c692 fetcht 1 ,mem_otp_lot_xy_temp + 1 
-397b 9840fe00 iadd temp ,pdata 
-397c 67e0c2de store 1 ,mem_le_lap + 1 
-397d da2042de arg mem_le_lap + 1 ,rega 
-397e da401fdb arg otp_mac_addr_piecenum ,regb 
-397f df200001 arg 1 ,loopcnt 
-3980 20206b33 branch otp_write 
-
-car_pwm_control_init:
-3981 6fe0c69c fetch 1 ,mem_car_gpio_control_mode 
-3982 247a0000 nrtn blank 
-3983 da200000 arg 0 ,rega 
-3984 204070b9 call pwm_init 
-3985 da204650 arg 18000 ,rega 
-3986 da401770 arg 6000 ,regb 
-3987 dfe00000 arg 0 ,pdata 
-3988 204070de call pwm_duty_cycle_set 
-3989 6fe0c690 fetch 1 ,mem_car_pwm_gpio 
-398a 20207100 branch pwm_enable 
-
-car_idle_process:
-398b 44984006 bpatch patch06_0 ,mem_patch06 
-398c dfe0000a arg 10 ,pdata 
-398d 2040710e call wdt_init_config 
-398e 204039a7 call car_pwm_io_control 
-398f 6fe0c67f fetch 1 ,mem_car_ble_connted_flag 
-3990 247a0000 nrtn blank 
-3991 6fe14660 fetch 2 ,mem_car_le_24g_ch_count 
-3992 1fe0fe01 increase 1 ,pdata 
-3993 67e14660 store 2 ,mem_car_le_24g_ch_count 
-3994 1ff1fe00 rshift4 pdata ,pdata 
-3995 204039fb call car_set_24g_ch 
-3996 204039ae call car_g24_sim_rx 
-3997 20403a0f call car_stop_run 
-3998 5800450e setarg mem_24g_rxbuf 
-3999 1fe0fe02 increase 2 ,pdata 
-399a 1fe20c00 copy pdata ,contr 
-399b df20000c arg len_of_24g_payload ,loopcnt 
-399c dfe00000 arg 0 ,pdata 
-399d 20407dd0 call cal_sum 
-399e 1fe17eff and pdata ,0xff ,pdata 
-399f 6848c51c fetcht 1 ,mem_24g_rxbuf + 14 
-39a0 98467c00 isub temp ,null 
-39a1 24628000 nrtn zero 
-39a2 6fe0c510 fetch 1 ,mem_24g_rxbuf + 2 
-39a3 4498c006 bpatch patch06_1 ,mem_patch06 
-39a4 c0553a88 beq g24_tx_pair_request ,car_recive_pair_request 
-39a5 c0663a21 beq g24_tx_remote_control ,car_set_motor 
-39a6 20600000 rtn 
-
-car_pwm_io_control:
-39a7 6fe0c69c fetch 1 ,mem_car_gpio_control_mode 
-39a8 247a0000 nrtn blank 
-39a9 204039c4 call car_soft_timer_process 
-39aa 204039e5 call car_pwm_change_500hz 
-39ab 204039f1 call car_period_change_timer 
-39ac 204039d7 call car_pwm_change_1khz 
-39ad 20600000 rtn 
-
-car_g24_sim_rx:
-39ae d8400004 arg 4 ,temp 
-39af d8e00005 arg 5 ,queue 
-39b0 204020dc call sniff_check_window 
-39b1 20740000 rtn user 
-39b2 79200027 set1 mark_24g_rxmode ,mark 
-39b3 58008ca0 setarg 0x8ca0 
-39b4 67e145a2 store 2 ,mem_24g_rx_window 
-39b5 70462801 jam 1 ,mem_24g_ackpayload_enable 
-39b6 6fe0c5ce fetch 1 ,mem_24g_rx_phy 
-39b7 20402579 call le_enable_phy_by_pdata 
-39b8 20403217 call g24_syncword_crc8 
-39b9 204033c7 call g24_receive_transmit_ack 
-39ba 204031f3 call g24_read_len_pid_crc 
-39bb 20403162 call g24_end_of_packet 
-39bc 24778000 nrtn user3 
-39bd 20600000 rtn 
-
-car_cb_24g_ackpayload:
-39be 70459f0b jam len_of_ack_payload ,mem_24g_datalen 
-39bf 6fe3c666 fetch 7 ,mem_car_24g_tx_payload_temp 
-39c0 67e3c530 store 7 ,mem_24g_txbuf 
-39c1 6fe2466d fetch 4 ,mem_car_24g_tx_payload_temp + 7 
-39c2 67e24537 store 4 ,mem_24g_txbuf + 7 
-39c3 20600000 rtn 
-
-car_soft_timer_process:
-39c4 da200008 arg 8 ,rega 
-
-car_soft_timer_process_check_timer:
-39c5 d8e0000c arg 12 ,queue 
-39c6 20407cf1 call timer_check 
-39c7 203a39cf branch car_soft_timer_timeout ,blank 
-39c8 9a267c00 isub rega ,null 
-39c9 2022b9cb branch car_soft_timer_process_wait_timeout ,zero 
-39ca 20610000 rtn positive 
-
-car_soft_timer_process_wait_timeout:
-39cb d8e0000c arg 12 ,queue 
-39cc 20407cf1 call timer_check 
-39cd 203a39cf branch car_soft_timer_timeout ,blank 
-39ce 202039cb branch car_soft_timer_process_wait_timeout 
-
-car_soft_timer_timeout:
-39cf 6fe0c688 fetch 1 ,mem_pwm_flag 
-39d0 c00139d5 beq 2 ,car_timer_500hz_enable 
-39d1 c001b9d3 beq 3 ,car_timer_1khz_enable 
-39d2 20600000 rtn 
-
-car_timer_1khz_enable:
-39d3 70468801 jam 1 ,mem_pwm_flag 
-39d4 20600000 rtn 
-
-car_timer_500hz_enable:
-39d5 70468800 jam 0 ,mem_pwm_flag 
-39d6 20600000 rtn 
-
-car_pwm_change_1khz:
-39d7 6fe0c689 fetch 1 ,mem_period_count 
-39d8 207a0000 rtn blank 
-39d9 6848c688 fetcht 1 ,mem_pwm_flag 
-39da 2841fe01 compare 1 ,temp ,0xff 
-39db 24608000 nrtn true 
-39dc 70468802 jam 2 ,mem_pwm_flag 
-39dd da201770 arg 6000 ,rega 
-39de da401770 arg 6000 ,regb 
-39df dfe00000 arg 0 ,pdata 
-39e0 204070de call pwm_duty_cycle_set 
-39e1 6fe0c68a fetch 1 ,mem_timer_count 
-39e2 d8e0000c arg 12 ,queue 
-39e3 20407ce3 call timer_init 
-39e4 20600000 rtn 
-
-car_pwm_change_500hz:
-39e5 6848c688 fetcht 1 ,mem_pwm_flag 
-39e6 2841fe00 compare 0 ,temp ,0xff 
-39e7 24608000 nrtn true 
-39e8 70468803 jam 3 ,mem_pwm_flag 
-39e9 da204650 arg 18000 ,rega 
-39ea da401770 arg 6000 ,regb 
-39eb dfe00000 arg 0 ,pdata 
-39ec 204070de call pwm_duty_cycle_set 
-39ed 5800000c setarg 12 
-39ee d8e0000c arg 12 ,queue 
-39ef 20407ce3 call timer_init 
-39f0 20600000 rtn 
-
-car_period_change_timer:
-39f1 6fe0c689 fetch 1 ,mem_period_count 
-39f2 d84003e8 arg 0x3e8 ,temp 
-39f3 984ffe00 imul32 temp ,pdata 
-39f4 d8400271 arg 0x271 ,temp 
-39f5 9846fc00 idiv temp 
-39f6 20407d64 call wait_div_end 
-39f7 1807fe00 quotient pdata 
-39f8 1fe0fe01 pincrease 1 
-39f9 67e0c68a store 1 ,mem_timer_count 
-39fa 20600000 rtn 
-
-car_set_24g_ch:
-39fb c0003a00 beq 0 ,car_set_ch0 
-39fc c000ba03 beq 1 ,car_set_ch1 
-39fd c0013a06 beq 2 ,car_set_ch2 
-39fe c001ba09 beq 3 ,car_set_ch3 
-39ff 20203a0c branch car_set_ch_reset 
-
-car_set_ch0:
-3a00 6fe0c5aa fetch 1 ,mem_24g_ch_map1 
-3a01 67e0c5a4 store 1 ,mem_24g_ch 
-3a02 20600000 rtn 
-
-car_set_ch1:
-3a03 6fe0c5ab fetch 1 ,mem_24g_ch_map1 + 1 
-3a04 67e0c5a4 store 1 ,mem_24g_ch 
-3a05 20600000 rtn 
-
-car_set_ch2:
-3a06 6fe0c5ac fetch 1 ,mem_24g_ch_map1 + 2 
-3a07 67e0c5a4 store 1 ,mem_24g_ch 
-3a08 20600000 rtn 
-
-car_set_ch3:
-3a09 6fe0c5ad fetch 1 ,mem_24g_ch_map1 + 3 
-3a0a 67e0c5a4 store 1 ,mem_24g_ch 
-3a0b 20600000 rtn 
-
-car_set_ch_reset:
-3a0c 58000000 setarg 0 
-3a0d 67e14660 store 2 ,mem_car_le_24g_ch_count 
-3a0e 20600000 rtn 
-
-car_stop_run:
-3a0f 6fe0c65f fetch 1 ,mem_car_le_24g_tx_pair_mode 
-3a10 207a0000 rtn blank 
-3a11 6fe0c67e fetch 1 ,mem_car_24g_loselink_count 
-3a12 d840000f arg 15 ,temp 
-3a13 98467c00 isub temp ,null 
-3a14 24610000 nrtn positive 
-3a15 70467e00 jam 0 ,mem_car_24g_loselink_count 
-3a16 58000000 setarg 0 
-3a17 67e1467b store 2 ,mem_car_24g_rx_payload_temp + 9 
-3a18 2040394b call car_gpio_control_stop 
-3a19 70468904 jam 0x4 ,mem_period_count 
-3a1a 70438c00 jam 0 ,mem_le_adv_enable 
-3a1b 70469901 jam 1 ,mem_adv_control_start_flag 
-3a1c 6fe0c69a fetch 1 ,mem_stop_4w1_flag 
-3a1d 207a0000 rtn blank 
-3a1e 70468900 jam 0x0 ,mem_period_count 
-3a1f 70438c01 jam 1 ,mem_le_adv_enable 
-3a20 20600000 rtn 
-
-car_set_motor:
-3a21 44994006 bpatch patch06_2 ,mem_patch06 
-3a22 6fe3c510 fetch 7 ,mem_24g_rxbuf + 2 
-3a23 67e3c672 store 7 ,mem_car_24g_rx_payload_temp 
-3a24 6fe2c517 fetch 5 ,mem_24g_rxbuf + 9 
-3a25 67e2c679 store 5 ,mem_car_24g_rx_payload_temp + 7 
-3a26 da204673 arg mem_car_24g_rx_payload_temp + 1 ,rega 
-3a27 6fe24662 fetch 4 ,mem_car_24g_addr_other 
-3a28 203a3a7d branch car_reconnect ,blank 
-3a29 da404662 arg mem_car_24g_addr_other ,regb 
-3a2a df200004 arg 4 ,loopcnt 
-3a2b 20407d66 call string_compare 
-3a2c 24628000 nrtn zero 
-3a2d da204677 arg mem_car_24g_rx_payload_temp + 5 ,rega 
-3a2e da404680 arg mem_car_full_control_remote_lap ,regb 
-3a2f df200004 arg 4 ,loopcnt 
-3a30 20407d66 call string_compare 
-3a31 2022ba3c branch car_run_factory_mode_select ,zero 
-3a32 da204677 arg mem_car_24g_rx_payload_temp + 5 ,rega 
-3a33 da4042dd arg mem_le_lap ,regb 
-3a34 df200004 arg 4 ,loopcnt 
-3a35 20407d66 call string_compare 
-3a36 2422ba38 nbranch car_set_unconnect ,zero 
-3a37 20203a40 branch car_run_mode_select 
-
-car_set_unconnect:
-3a38 70465f00 jam g24_unconnect ,mem_car_le_24g_tx_pair_mode 
-3a39 58000000 setarg 0 
-3a3a 67e24662 store 4 ,mem_car_24g_addr_other 
-3a3b 20600000 rtn 
-
-car_run_factory_mode_select:
-3a3c 6fe0c69b fetch 1 ,mem_factory_control_flag 
-3a3d c0003a38 beq 0 ,car_set_unconnect 
-3a3e c000ba40 beq 1 ,car_run_mode_select 
-3a3f 20600000 rtn 
-
-car_run_mode_select:
-3a40 70467e00 jam 0 ,mem_car_24g_loselink_count 
-3a41 6fe1467b fetch 2 ,mem_car_24g_rx_payload_temp + 9 
-3a42 203a3a18 branch car_stop_run + 9 ,blank 
-3a43 20403a47 call car_pwm_mode_adv_flag_init 
-3a44 20403a50 call car_factory_mode_time 
-3a45 20403a55 call car_motor_mode_1 
-3a46 20203a59 branch car_motor_mode_2 
-
-car_pwm_mode_adv_flag_init:
-3a47 6fe0c69c fetch 1 ,mem_car_gpio_control_mode 
-3a48 247a0000 nrtn blank 
-3a49 70438c01 jam 1 ,mem_le_adv_enable 
-3a4a 70439701 jam 1 ,mem_le_adv_channel_map 
-3a4b 70469a00 jam 0 ,mem_stop_4w1_flag 
-3a4c 70469900 jam 0 ,mem_adv_control_start_flag 
-3a4d 5800000f setarg 15 
-3a4e 67e14684 store 2 ,mem_100ms_adv_control_timer 
-3a4f 20600000 rtn 
-
-car_factory_mode_time:
-3a50 6fe0c69b fetch 1 ,mem_factory_control_flag 
-3a51 207a0000 rtn blank 
-3a52 5800012c setarg 300 
-3a53 67e14686 store 2 ,mem_100ms_factory_test_control_timer 
-3a54 20600000 rtn 
-
-car_motor_mode_1:
-3a55 6fe0c67c fetch 1 ,mem_car_24g_rx_payload_temp + 10 
-3a56 c000ba62 beq 1 ,car_b 
-3a57 c0013a5d beq 2 ,car_f 
-3a58 20600000 rtn 
-
-car_motor_mode_2:
-3a59 6fe0c67b fetch 1 ,mem_car_24g_rx_payload_temp + 9 
-3a5a c000ba67 beq 1 ,car_l 
-3a5b c0013a6c beq 2 ,car_r 
-3a5c 20600000 rtn 
-
-car_f:
-3a5d 6fe0c67b fetch 1 ,mem_car_24g_rx_payload_temp + 9 
-3a5e c000ba71 beq 1 ,car_fl 
-3a5f c0013a74 beq 2 ,car_fr 
-3a60 7046890a jam 0x0a ,mem_period_count 
-3a61 20203ac9 branch car_lr_motor_right 
-
-car_b:
-3a62 6fe0c67b fetch 1 ,mem_car_24g_rx_payload_temp + 9 
-3a63 c000ba77 beq 1 ,car_bl 
-3a64 c0013a7a beq 2 ,car_br 
-3a65 70468928 jam 0x28 ,mem_period_count 
-3a66 20203ac5 branch car_lr_motor_left 
-
-car_l:
-3a67 6fe0c67c fetch 1 ,mem_car_24g_rx_payload_temp + 10 
-3a68 c000ba77 beq 1 ,car_bl 
-3a69 c0013a71 beq 2 ,car_fl 
-3a6a 7046893a jam 0x3a ,mem_period_count 
-3a6b 20203ad5 branch car_fb_motor_back 
-
-car_r:
-3a6c 6fe0c67c fetch 1 ,mem_car_24g_rx_payload_temp + 10 
-3a6d c000ba7a beq 1 ,car_br 
-3a6e c0013a74 beq 2 ,car_fr 
-3a6f 70468940 jam 0x40 ,mem_period_count 
-3a70 20203ad1 branch car_fb_motor_front 
-
-car_fl:
-3a71 7046891c jam 0x1c ,mem_period_count 
-3a72 20403ac9 call car_lr_motor_right 
-3a73 20203ad5 branch car_fb_motor_back 
-
-car_fr:
-3a74 70468922 jam 0x22 ,mem_period_count 
-3a75 20403ac9 call car_lr_motor_right 
-3a76 20203ad1 branch car_fb_motor_front 
-
-car_bl:
-3a77 70468934 jam 0x34 ,mem_period_count 
-3a78 20403ac5 call car_lr_motor_left 
-3a79 20203ad5 branch car_fb_motor_back 
-
-car_br:
-3a7a 7046892e jam 0x2e ,mem_period_count 
-3a7b 20403ac5 call car_lr_motor_left 
-3a7c 20203ad1 branch car_fb_motor_front 
-
-car_reconnect:
-3a7d da204677 arg mem_car_24g_rx_payload_temp + 5 ,rega 
-3a7e da404680 arg mem_car_full_control_remote_lap ,regb 
-3a7f df200004 arg 4 ,loopcnt 
-3a80 20407d66 call string_compare 
-3a81 2022ba88 branch car_recive_pair_request ,zero 
-3a82 da204677 arg mem_car_24g_rx_payload_temp + 5 ,rega 
-3a83 da4042dd arg mem_le_lap ,regb 
-3a84 df200004 arg 4 ,loopcnt 
-3a85 20407d66 call string_compare 
-3a86 24628000 nrtn zero 
-3a87 20203a88 branch car_recive_pair_request 
-
-car_recive_pair_request:
-3a88 6fe3c510 fetch 7 ,mem_24g_rxbuf + 2 
-3a89 67e3c672 store 7 ,mem_car_24g_rx_payload_temp 
-3a8a 6fe0c65f fetch 1 ,mem_car_le_24g_tx_pair_mode 
-3a8b c0003a8e beq g24_unconnect ,car_send_pair_response 
-3a8c c000ba97 beq g24_connected ,car_send_pair_response_juge 
-3a8d 20600000 rtn 
-
-car_send_pair_response:
-3a8e 20403adc call car_check_close_ice 
-3a8f 70465f01 jam g24_connected ,mem_car_le_24g_tx_pair_mode 
-3a90 704666bb jam g24_rx_pair_respones ,mem_car_24g_tx_payload_temp 
-3a91 6fe24673 fetch 4 ,mem_car_24g_rx_payload_temp + 1 
-3a92 67e24662 store 4 ,mem_car_24g_addr_other 
-3a93 67e2466b store 4 ,mem_car_24g_tx_payload_temp + 5 
-3a94 6fe242dd fetch 4 ,mem_le_lap 
-3a95 67e24667 store 4 ,mem_car_24g_tx_payload_temp + 1 
-3a96 20600000 rtn 
-
-car_send_pair_response_juge:
-3a97 da204673 arg mem_car_24g_rx_payload_temp + 1 ,rega 
-3a98 da404662 arg mem_car_24g_addr_other ,regb 
-3a99 df200004 arg 4 ,loopcnt 
-3a9a 20407d66 call string_compare 
-3a9b 2022ba8e branch car_send_pair_response ,zero 
-
-car_cb_event_timer:
-3a9c 6fe0c67e fetch 1 ,mem_car_24g_loselink_count 
-3a9d 1fe0fe01 increase 1 ,pdata 
-3a9e 67e0c67e store 1 ,mem_car_24g_loselink_count 
-3a9f 20403aa1 call car_100ms_timer_adv_control 
-3aa0 20203aae branch car_100ms_timer_factory_test_control 
-
-car_100ms_timer_adv_control:
-3aa1 6fe0c69c fetch 1 ,mem_car_gpio_control_mode 
-3aa2 247a0000 nrtn blank 
-3aa3 6fe0c699 fetch 1 ,mem_adv_control_start_flag 
-3aa4 207a0000 rtn blank 
-3aa5 da604684 arg mem_100ms_adv_control_timer ,regc 
-3aa6 da403aa8 arg car_100ms_timer_adv_control_timeout ,regb 
-3aa7 2020375c branch timer_single_step_2b 
-
-car_100ms_timer_adv_control_timeout:
-3aa8 5800000f setarg 15 
-3aa9 67e14684 store 2 ,mem_100ms_adv_control_timer 
-3aaa 70439707 jam 7 ,mem_le_adv_channel_map 
-3aab 70469900 jam 0 ,mem_adv_control_start_flag 
-3aac 70469a01 jam 1 ,mem_stop_4w1_flag 
-3aad 20600000 rtn 
-
-car_100ms_timer_factory_test_control:
-3aae 6fe0c69b fetch 1 ,mem_factory_control_flag 
-3aaf 207a0000 rtn blank 
-3ab0 da604686 arg mem_100ms_factory_test_control_timer ,regc 
-3ab1 da403ab3 arg car_100ms_timer_factory_test_timeout ,regb 
-3ab2 2020375c branch timer_single_step_2b 
-
-car_100ms_timer_factory_test_timeout:
-3ab3 5800012c setarg 300 
-3ab4 67e14686 store 2 ,mem_100ms_factory_test_control_timer 
-3ab5 70469b00 jam 0 ,mem_factory_control_flag 
-3ab6 20600000 rtn 
-
-car_motor1_status_select:
-3ab7 efe08006 ifetch 1 ,contr 
-3ab8 c0003ac1 beq turn_front ,car_lr_motor_stop 
-3ab9 c000bac5 beq turn_left ,car_lr_motor_left 
-3aba c0013ac9 beq turn_right ,car_lr_motor_right 
-3abb 20600000 rtn 
-
-car_motor2_status_select:
-3abc efe08006 ifetch 1 ,contr 
-3abd c0003acd beq motor_stop ,car_fb_motor_stop 
-3abe c0013ad1 beq go_back ,car_fb_motor_front 
-3abf c000bad5 beq go_front ,car_fb_motor_back 
-3ac0 20600000 rtn 
-
-car_lr_motor_stop:
-3ac1 6848c68c fetcht 1 ,mem_car_motor_left_gpio 
-3ac2 20406eed call gpio_out_inactive 
-3ac3 6848c68d fetcht 1 ,mem_car_motor_right_gpio 
-3ac4 20206eed branch gpio_out_inactive 
-
-car_lr_motor_left:
-3ac5 6848c68c fetcht 1 ,mem_car_motor_left_gpio 
-3ac6 20406ef1 call gpio_out_active 
-3ac7 6848c68d fetcht 1 ,mem_car_motor_right_gpio 
-3ac8 20206eed branch gpio_out_inactive 
-
-car_lr_motor_right:
-3ac9 6848c68c fetcht 1 ,mem_car_motor_left_gpio 
-3aca 20406eed call gpio_out_inactive 
-3acb 6848c68d fetcht 1 ,mem_car_motor_right_gpio 
-3acc 20206ef1 branch gpio_out_active 
-
-car_fb_motor_stop:
-3acd 6848c68e fetcht 1 ,mem_car_motor_front_gpio 
-3ace 20406eed call gpio_out_inactive 
-3acf 6848c68f fetcht 1 ,mem_car_motor_back_gpio 
-3ad0 20206eed branch gpio_out_inactive 
-
-car_fb_motor_front:
-3ad1 6848c68e fetcht 1 ,mem_car_motor_front_gpio 
-3ad2 20406ef1 call gpio_out_active 
-3ad3 6848c68f fetcht 1 ,mem_car_motor_back_gpio 
-3ad4 20206eed branch gpio_out_inactive 
-
-car_fb_motor_back:
-3ad5 6848c68e fetcht 1 ,mem_car_motor_front_gpio 
-3ad6 20406eed call gpio_out_inactive 
-3ad7 6848c68f fetcht 1 ,mem_car_motor_back_gpio 
-3ad8 20206ef1 branch gpio_out_active 
-
-car_le_stop_random_delay_check:
-3ad9 6fe0c69a fetch 1 ,mem_stop_4w1_flag 
-3ada 203a2ad1 branch le_adv_not_match + 13 ,blank 
-3adb 20202acc branch le_adv_not_match + 8 
-
-car_check_close_ice:
-3adc 6fe0c69c fetch 1 ,mem_car_gpio_control_mode 
-3add 207a0000 rtn blank 
-3ade 202023a5 branch lpm_write_ice_disable 
-
-remote_car_init:
-3adf 20407384 call enable_authrom 
-3ae0 4499c006 bpatch patch06_3 ,mem_patch06 
-3ae1 6fe0c666 fetch 1 ,mem_remote_le_24g_tx_pair_mode 
-3ae2 205a23a9 call lpm_write_ice_enable ,blank 
-3ae3 20403b97 call remote_car_set__lpm_timer_set 
-3ae4 20758000 rtn wake 
-3ae5 2040711d call wdt_set_disable 
-3ae6 58003bec setarg remote_car_idle_process 
-3ae7 67e143e4 store 2 ,mem_cb_idle_process 
-3ae8 58003ca4 setarg remote_car_cb_event_timer 
-3ae9 67e143ec store 2 ,mem_cb_event_timer 
-3aea 20403ba5 call remote_car_get_txid 
-3aeb 20403bc3 call remote_car_txid_check 
-3aec 20403bcc call remote_car_whitening_24g_addr 
-3aed 20203be0 branch remote_car_lpm_gpio_config_flag_init 
-
-remote_car_default_init:
-3aee 7041410a jam 0x0a ,mem_tx_power 
-3aef 7045cf84 jam 0x84 ,mem_24g_tx_phy 
-3af0 7045ce84 jam 0x84 ,mem_24g_rx_phy 
-3af1 58ffffff setarg 0xffffff 
-3af2 67e1c655 store 3 ,mem_remote_full_control_remote_lap 
-3af3 704658ff jam 0xff ,mem_remote_full_control_remote_lap + 3 
-3af4 58000000 setarg 0 
-3af5 67e1c2dd store 3 ,mem_le_lap 
-3af6 58220101 setarg 0x220101 
-3af7 67e1c2e0 store 3 ,mem_le_lap + 3 
-3af8 58858c0c setarg 0x858c0c 
-3af9 67e1c659 store 3 ,mem_remote_car_key_conf0 
-3afa 70465c05 jam 0x05 ,mem_remote_car_key_conf0 + 3 
-3afb 7046490d jam 0x0d ,mem_24g_tx_led_map 
-3afc 70466112 jam 0x12 ,mem_key_public_gpio 
-3afd 58241404 setarg 0x241404 
-3afe 67e1c5aa store 3 ,mem_24g_ch_map1 
-3aff 7045ad34 jam 0x34 ,mem_24g_ch_map1 + 3 
-3b00 7041480c jam 0x0c ,mem_system_clk 
-3b01 58643f35 setarg 0x643f35 
-3b02 67e1c0c3 store 3 ,mem_lpm_xtalcnt 
-3b03 583b2f8f setarg 0x3b2f8f 
-3b04 67e1c0c6 store 3 ,mem_lpm_isogate 
-3b05 7040a720 jam 0x20 ,mem_lpm_hibernate_switch 
-3b06 7040c900 jam 0x00 ,mem_lpm_ldo_sel 
-3b07 7040ca08 jam 0x08 ,mem_lpm_sysctl 
-3b08 7040cbb4 jam 0xb4 ,mem_lpm_hv_sel 
-3b09 70409918 jam 0x18 ,mem_fcomp_div 
-3b0a 70411c3e jam 0x3e ,mem_xtal_c_sel 
-3b0b 58050e08 setarg 0x50e08 
-3b0c 67e1c160 store 3 ,mem_version 
-3b0d 58000003 setarg 0x3 
-3b0e 67e14163 store 2 ,mem_version + 3 
-3b0f 70416a20 jam 0x20 ,mem_le_tx2m_delay 
-3b10 704143ff jam 0xff ,mem_gain_fix 
-3b11 58000c00 setarg 0xc00 
-3b12 67e1409a store 2 ,mem_rx_window_sniff 
-3b13 58000004 setarg 0x4 
-3b14 67e1c144 store 3 ,mem_gain_table 
-3b15 70414708 jam 0x08 ,mem_gain_second_agc_en 
-3b16 70444fa0 jam 0xa0 ,mem_ring_ibias_trim 
-3b17 580002bc setarg 0x2bc 
-3b18 67e14452 store 2 ,mem_ring_ibias_vtune_high 
-3b19 58000190 setarg 0x190 
-3b1a 67e14450 store 2 ,mem_ring_ibias_vtune_low 
-3b1b 70445403 jam 0x03 ,mem_ring_ibias_calc_adc_gpio 
-3b1c 70445509 jam 0x09 ,mem_ring_ibias_calc_adc_channel 
-3b1d 704149ff jam 0xff ,mem_rf_init_data 
-3b1e 58004149 setarg mem_rf_init_data 
-3b1f 67e1409c store 2 ,mem_rf_init_ptr 
-3b20 20406b28 call enable_otp_read 
-3b21 da20488d arg mem_otp_sys_cfg_temp ,rega 
-3b22 da401f00 arg otp_sys_param_cfg ,regb 
-3b23 df20003c arg 60 ,loopcnt 
-3b24 20406b62 call otp_read_data 
-3b25 20406b25 call disable_otp 
-3b26 6fe0c88d fetch 1 ,mem_otp_sys_cfg_temp 
-3b27 245a3b5f ncall remote_car_system_clk ,blank 
-3b28 6fe1c88e fetch 3 ,mem_otp_sys_cfg_temp + 1 
-3b29 245a3b61 ncall remote_car_lpm_xtalcnt ,blank 
-3b2a 6fe1c891 fetch 3 ,mem_otp_sys_cfg_temp + 4 
-3b2b 245a3b63 ncall remote_car_lpm_isogate ,blank 
-3b2c 6fe0c894 fetch 1 ,mem_otp_sys_cfg_temp + 7 
-3b2d 245a3b65 ncall remote_car_lpm_hibernate_switch ,blank 
-3b2e 6fe0c895 fetch 1 ,mem_otp_sys_cfg_temp + 8 
-3b2f 245a3b67 ncall remote_car_lpm_ldo_sel ,blank 
-3b30 6fe0c896 fetch 1 ,mem_otp_sys_cfg_temp + 9 
-3b31 245a3b69 ncall remote_car_lpm_sysctl ,blank 
-3b32 6fe0c897 fetch 1 ,mem_otp_sys_cfg_temp + 10 
-3b33 245a3b6b ncall remote_car_lpm_hv_sel ,blank 
-3b34 6fe0c898 fetch 1 ,mem_otp_sys_cfg_temp + 11 
-3b35 245a3b6d ncall remote_car_fcomp_div ,blank 
-3b36 6fe0c899 fetch 1 ,mem_otp_sys_cfg_temp + 12 
-3b37 245a3b6f ncall remote_car_xtal_c_sel ,blank 
-3b38 6fe2c89a fetch 5 ,mem_otp_sys_cfg_temp + 13 
-3b39 245a3b71 ncall remote_car_version ,blank 
-3b3a 6fe0c89f fetch 1 ,mem_otp_sys_cfg_temp + 18 
-3b3b 245a3b73 ncall remote_car_le_tx2m_delay ,blank 
-3b3c 6fe0c8a0 fetch 1 ,mem_otp_sys_cfg_temp + 19 
-3b3d 245a3b75 ncall remote_car_gain_fix ,blank 
-3b3e 6fe148a1 fetch 2 ,mem_otp_sys_cfg_temp + 20 
-3b3f 245a3b77 ncall remote_car_rx_window_sniff ,blank 
-3b40 6fe1c8a3 fetch 3 ,mem_otp_sys_cfg_temp + 22 
-3b41 245a3b79 ncall remote_car_gain_table ,blank 
-3b42 6fe0c8a6 fetch 1 ,mem_otp_sys_cfg_temp + 25 
-3b43 245a3b7b ncall remote_car_gain_second_agc_en ,blank 
-3b44 6fe0c8a7 fetch 1 ,mem_otp_sys_cfg_temp + 26 
-3b45 245a3b7d ncall remote_car_ring_ibias_trim ,blank 
-3b46 6fe148a8 fetch 2 ,mem_otp_sys_cfg_temp + 27 
-3b47 245a3b7f ncall remote_car_ring_ibias_vtune_high ,blank 
-3b48 6fe148aa fetch 2 ,mem_otp_sys_cfg_temp + 29 
-3b49 245a3b81 ncall remote_car_ring_ibias_vtune_low ,blank 
-3b4a 6fe0c8ac fetch 1 ,mem_otp_sys_cfg_temp + 31 
-3b4b 245a3b83 ncall remote_car_ring_ibias_calc_adc_gpio ,blank 
-3b4c 6fe0c8ad fetch 1 ,mem_otp_sys_cfg_temp + 32 
-3b4d 245a3b85 ncall remote_car_ring_ibias_calc_adc_channel ,blank 
-3b4e 6fe0c8b2 fetch 1 ,mem_otp_sys_cfg_temp + 37 
-3b4f 245a3b87 ncall remote_car_tx_power ,blank 
-3b50 6fe0c8b3 fetch 1 ,mem_otp_sys_cfg_temp + 38 
-3b51 245a3b89 ncall remote_car_24g_tx_phy ,blank 
-3b52 6fe0c8b4 fetch 1 ,mem_otp_sys_cfg_temp + 39 
-3b53 245a3b8b ncall remote_car_24g_rx_phy ,blank 
-3b54 6fe248b5 fetch 4 ,mem_otp_sys_cfg_temp + 40 
-3b55 245a3b8d ncall remote_car_key_conf0 ,blank 
-3b56 6fe0c8b9 fetch 1 ,mem_otp_sys_cfg_temp + 44 
-3b57 245a3b8f ncall remote_car_key_public_gpio ,blank 
-3b58 6fe0c8ba fetch 1 ,mem_otp_sys_cfg_temp + 45 
-3b59 245a3b91 ncall remote_car_24g_tx_led_map ,blank 
-3b5a 6fe248bb fetch 4 ,mem_otp_sys_cfg_temp + 46 
-3b5b 245a3b93 ncall remote_car_24g_addr ,blank 
-3b5c 6fe248bf fetch 4 ,mem_otp_sys_cfg_temp + 50 
-3b5d 245a3b95 ncall remote_car_24g_ch_map1 ,blank 
-3b5e 20600000 rtn 
-
-remote_car_system_clk:
-3b5f 67e0c148 store 1 ,mem_system_clk 
-3b60 20600000 rtn 
-
-remote_car_lpm_xtalcnt:
-3b61 67e1c0c3 store 3 ,mem_lpm_xtalcnt 
-3b62 20600000 rtn 
-
-remote_car_lpm_isogate:
-3b63 67e1c0c6 store 3 ,mem_lpm_isogate 
-3b64 20600000 rtn 
-
-remote_car_lpm_hibernate_switch:
-3b65 67e0c0a7 store 1 ,mem_lpm_hibernate_switch 
-3b66 20600000 rtn 
-
-remote_car_lpm_ldo_sel:
-3b67 67e0c0c9 store 1 ,mem_lpm_ldo_sel 
-3b68 20600000 rtn 
-
-remote_car_lpm_sysctl:
-3b69 67e0c0ca store 1 ,mem_lpm_sysctl 
-3b6a 20600000 rtn 
-
-remote_car_lpm_hv_sel:
-3b6b 67e0c0cb store 1 ,mem_lpm_hv_sel 
-3b6c 20600000 rtn 
-
-remote_car_fcomp_div:
-3b6d 67e0c099 store 1 ,mem_fcomp_div 
-3b6e 20600000 rtn 
-
-remote_car_xtal_c_sel:
-3b6f 67e0c11c store 1 ,mem_xtal_c_sel 
-3b70 20600000 rtn 
-
-remote_car_version:
-3b71 67e2c160 store 5 ,mem_version 
-3b72 20600000 rtn 
-
-remote_car_le_tx2m_delay:
-3b73 67e0c16a store 1 ,mem_le_tx2m_delay 
-3b74 20600000 rtn 
-
-remote_car_gain_fix:
-3b75 67e0c143 store 1 ,mem_gain_fix 
-3b76 20600000 rtn 
-
-remote_car_rx_window_sniff:
-3b77 67e1409a store 2 ,mem_rx_window_sniff 
-3b78 20600000 rtn 
-
-remote_car_gain_table:
-3b79 67e1c144 store 3 ,mem_gain_table 
-3b7a 20600000 rtn 
-
-remote_car_gain_second_agc_en:
-3b7b 67e0c147 store 1 ,mem_gain_second_agc_en 
-3b7c 20600000 rtn 
-
-remote_car_ring_ibias_trim:
-3b7d 67e0c44f store 1 ,mem_ring_ibias_trim 
-3b7e 20600000 rtn 
-
-remote_car_ring_ibias_vtune_high:
-3b7f 67e14452 store 2 ,mem_ring_ibias_vtune_high 
-3b80 20600000 rtn 
-
-remote_car_ring_ibias_vtune_low:
-3b81 67e14450 store 2 ,mem_ring_ibias_vtune_low 
-3b82 20600000 rtn 
-
-remote_car_ring_ibias_calc_adc_gpio:
-3b83 67e0c454 store 1 ,mem_ring_ibias_calc_adc_gpio 
-3b84 20600000 rtn 
-
-remote_car_ring_ibias_calc_adc_channel:
-3b85 67e0c455 store 1 ,mem_ring_ibias_calc_adc_channel 
-3b86 20600000 rtn 
-
-remote_car_tx_power:
-3b87 67e0c141 store 1 ,mem_tx_power 
-3b88 20600000 rtn 
-
-remote_car_24g_tx_phy:
-3b89 67e0c5cf store 1 ,mem_24g_tx_phy 
-3b8a 20600000 rtn 
-
-remote_car_24g_rx_phy:
-3b8b 67e0c5ce store 1 ,mem_24g_rx_phy 
-3b8c 20600000 rtn 
-
-remote_car_key_conf0:
-3b8d 67e24659 store 4 ,mem_remote_car_key_conf0 
-3b8e 20600000 rtn 
-
-remote_car_key_public_gpio:
-3b8f 67e0c661 store 1 ,mem_key_public_gpio 
-3b90 20600000 rtn 
-
-remote_car_24g_tx_led_map:
-3b91 67e0c649 store 1 ,mem_24g_tx_led_map 
-3b92 20600000 rtn 
-
-remote_car_24g_addr:
-3b93 67e245a6 store 4 ,mem_24g_addr 
-3b94 20600000 rtn 
-
-remote_car_24g_ch_map1:
-3b95 67e245aa store 4 ,mem_24g_ch_map1 
-3b96 20600000 rtn 
-
-remote_car_set__lpm_timer_set:
-3b97 6fe0c666 fetch 1 ,mem_remote_le_24g_tx_pair_mode 
-3b98 c0003b9b beq g24_unconnect ,remote_car_set_uconnect_lpm_time 
-3b99 c000bba0 beq g24_connected ,remote_car_set_connected_lpm_time 
-3b9a 20600000 rtn 
-
-remote_car_set_uconnect_lpm_time:
-3b9b 58000000 setarg 0 
-3b9c 67e1464b store 2 ,mem_24g_lpm_timer_count 
-3b9d 5800012c setarg 300 
-3b9e 67e1464d store 2 ,mem_24g_lpm_enter_count 
-3b9f 20600000 rtn 
-
-remote_car_set_connected_lpm_time:
-3ba0 58000000 setarg 0 
-3ba1 67e1464b store 2 ,mem_24g_lpm_timer_count 
-3ba2 5800000f setarg 15 
-3ba3 67e1464d store 2 ,mem_24g_lpm_enter_count 
-3ba4 20600000 rtn 
-
-remote_car_get_txid:
-3ba5 20406b28 call enable_otp_read 
-3ba6 da20464f arg mem_remote_otp_lot_xy_temp ,rega 
-3ba7 da401fda arg otp_mac_addr ,regb 
-3ba8 df200006 arg 6 ,loopcnt 
-3ba9 20406b62 call otp_read_data 
-3baa 20406b25 call disable_otp 
-3bab 6fe3464f fetch 6 ,mem_remote_otp_lot_xy_temp 
-3bac 207a0000 rtn blank 
-3bad 6fe1464f fetch 2 ,mem_remote_otp_lot_xy_temp 
-3bae 67e142dd store 2 ,mem_le_lap 
-3baf 6fe0c652 fetch 1 ,mem_remote_otp_lot_xy_temp + 3 
-3bb0 67e0c2df store 1 ,mem_le_lap + 2 
-3bb1 6fe0c654 fetch 1 ,mem_remote_otp_lot_xy_temp + 5 
-3bb2 67e0c2e0 store 1 ,mem_le_lap + 3 
-3bb3 6fe0c650 fetch 1 ,mem_remote_otp_lot_xy_temp + 1 
-3bb4 1fe67c1a sub pdata ,26 ,null 
-3bb5 24610000 nrtn positive 
-3bb6 6fe0c651 fetch 1 ,mem_remote_otp_lot_xy_temp + 2 
-3bb7 207a0000 rtn blank 
-3bb8 180a7e00 random pdata 
-3bb9 1fe17e07 and_into 0x07 ,pdata 
-3bba 1fe3fe00 lshift pdata ,pdata 
-3bbb 1ff27e00 lshift4 pdata ,pdata 
-3bbc 6848c650 fetcht 1 ,mem_remote_otp_lot_xy_temp + 1 
-3bbd 9840fe00 iadd temp ,pdata 
-3bbe 67e0c2de store 1 ,mem_le_lap + 1 
-3bbf da2042de arg mem_le_lap + 1 ,rega 
-3bc0 da401fdb arg otp_mac_addr_piecenum ,regb 
-3bc1 df200001 arg 1 ,loopcnt 
-3bc2 20206b33 branch otp_write 
-
-remote_car_txid_check:
-3bc3 da2042dd arg mem_le_lap ,rega 
-3bc4 da404655 arg mem_remote_full_control_remote_lap ,regb 
-3bc5 df200004 arg 4 ,loopcnt 
-3bc6 20407d66 call string_compare 
-3bc7 24628000 nrtn zero 
-3bc8 6fe0c2dd fetch 1 ,mem_le_lap 
-3bc9 1fe0ffff pincrease -1 
-3bca 67e0c2dd store 1 ,mem_le_lap 
-3bcb 20600000 rtn 
-
-remote_car_whitening_24g_addr:
-3bcc df200004 arg 4 ,loopcnt 
-3bcd da6045a6 arg mem_24g_addr ,regc 
-3bce da4000ae arg 0xae ,regb 
-
-remote_car_24g_whitening_loop:
-3bcf 20403bd3 call remote_car_24g_whitening_byte 
-3bd0 1a60a601 increase 1 ,regc 
-3bd1 c2003bcf loop remote_car_24g_whitening_loop 
-3bd2 20600000 rtn 
-
-remote_car_24g_whitening_byte:
-3bd3 da200001 arg 1 ,rega 
-
-remote_car_24g_whitening_byte_loop:
-3bd4 1a43a400 lshift regb ,regb 
-3bd5 2a4ffe07 isolate1 7 ,regb 
-3bd6 2040bbdb call remote_car_24g_whitening_byte_xor ,true 
-3bd7 1a23a200 lshift rega ,rega 
-3bd8 1a227e00 deposit rega 
-3bd9 c3840000 rtnbit1 8 
-3bda 20203bd4 branch remote_car_24g_whitening_byte_loop 
-
-remote_car_24g_whitening_byte_xor:
-3bdb efe08013 ifetch 1 ,regc 
-3bdc 9a22fe00 ixor rega ,pdata 
-3bdd e7e08013 istore 1 ,regc 
-3bde 1a42a411 xor regb ,0x11 ,regb 
-3bdf 20600000 rtn 
-
-remote_car_lpm_gpio_config_flag_init:
-3be0 d8400000 arg 0 ,temp 
-3be1 d8c0465a arg mem_remote_car_key_conf0 + 1 ,contr 
-3be2 df200002 arg 2 ,loopcnt 
-
-remote_car_iocfg_pullup_loop:
-3be3 efe08006 ifetch 1 ,contr 
-3be4 793ffe07 set0 7 ,pdata 
-3be5 1fe20e00 copy pdata ,queue 
-3be6 58000000 setarg 0 
-3be7 f9207e00 qset1 pdata 
-3be8 98408400 iadd temp ,temp 
-3be9 c2003be3 loop remote_car_iocfg_pullup_loop 
-3bea 604a4644 storet 4 ,mem_remote_lpm_gpio_config_flag 
-3beb 20600000 rtn 
-
-remote_car_idle_process:
-3bec 449a4006 bpatch patch06_4 ,mem_patch06 
-3bed 6fe14663 fetch 2 ,mem_remote_le_24g_ch_count 
-3bee 1fe0fe01 increase 1 ,pdata 
-3bef 67e14663 store 2 ,mem_remote_le_24g_ch_count 
-3bf0 1feb7e00 rshift2 pdata ,pdata 
-3bf1 20403bf7 call remote_car_set_24g_ch 
-3bf2 20403c32 call remote_car_g24_recved_ack_parse 
-
-remote_car_24g_matching_process:
-3bf3 6fe0c666 fetch 1 ,mem_remote_le_24g_tx_pair_mode 
-3bf4 c0003c0b beq g24_unconnect ,remote_car_send_pair_request 
-3bf5 c000bc45 beq g24_connected ,remote_car_send_remote_control 
-3bf6 20600000 rtn 
-
-remote_car_set_24g_ch:
-3bf7 c0003bfc beq 0 ,remote_car_set_ch0 
-3bf8 c000bbff beq 1 ,remote_car_set_ch1 
-3bf9 c0013c02 beq 2 ,remote_car_set_ch2 
-3bfa c001bc05 beq 3 ,remote_car_set_ch3 
-3bfb 20203c08 branch remote_car_set_ch_reset 
-
-remote_car_set_ch0:
-3bfc 6fe0c5aa fetch 1 ,mem_24g_ch_map1 
-3bfd 67e0c5a4 store 1 ,mem_24g_ch 
-3bfe 20600000 rtn 
-
-remote_car_set_ch1:
-3bff 6fe0c5ab fetch 1 ,mem_24g_ch_map1 + 1 
-3c00 67e0c5a4 store 1 ,mem_24g_ch 
-3c01 20600000 rtn 
-
-remote_car_set_ch2:
-3c02 6fe0c5ac fetch 1 ,mem_24g_ch_map1 + 2 
-3c03 67e0c5a4 store 1 ,mem_24g_ch 
-3c04 20600000 rtn 
-
-remote_car_set_ch3:
-3c05 6fe0c5ad fetch 1 ,mem_24g_ch_map1 + 3 
-3c06 67e0c5a4 store 1 ,mem_24g_ch 
-3c07 20600000 rtn 
-
-remote_car_set_ch_reset:
-3c08 58000000 setarg 0 
-3c09 67e14663 store 2 ,mem_remote_le_24g_ch_count 
-3c0a 20600000 rtn 
-
-remote_car_send_pair_request:
-3c0b 70466baa jam g24_tx_pair_request ,mem_remote_24g_tx_payload_temp 
-3c0c 6fe242dd fetch 4 ,mem_le_lap 
-3c0d 67e2466c store 4 ,mem_remote_24g_tx_payload_temp + 1 
-3c0e 20203c0f branch remote_car_g24_sim_tx_with_datalen_set 
-
-remote_car_g24_sim_tx_with_datalen_set:
-3c0f 793f8027 set0 mark_24g_rxmode ,mark 
-3c10 58002ee0 setarg 0x2ee0 
-3c11 67e145a2 store 2 ,mem_24g_rx_window 
-3c12 6fe3c66b fetch 7 ,mem_remote_24g_tx_payload_temp 
-3c13 67e3c530 store 7 ,mem_24g_txbuf 
-3c14 6fe2c672 fetch 5 ,mem_remote_24g_tx_payload_temp + 7 
-3c15 67e2c537 store 5 ,mem_24g_txbuf + 7 
-3c16 df20000c arg len_of_24g_payload ,loopcnt 
-3c17 dfe00000 arg 0 ,pdata 
-3c18 d8c04530 arg mem_24g_txbuf ,contr 
-3c19 20407dd0 call cal_sum 
-3c1a e7e08005 istore 1 ,contw 
-3c1b 5800000c setarg len_of_24g_payload 
-3c1c 1fe0fe01 increase 1 ,pdata 
-3c1d 67e0c59f store 1 ,mem_24g_datalen 
-3c1e 20203c1f branch remote_car_g24_sim_tx 
-
-remote_car_g24_sim_tx:
-3c1f 6fe0c5cf fetch 1 ,mem_24g_tx_phy 
-3c20 20402579 call le_enable_phy_by_pdata 
-3c21 20403217 call g24_syncword_crc8 
-3c22 70003588 jam 0x88 ,mem_rssi_hex 
-3c23 204031c4 call g24_transmit_prep 
-3c24 2040362a call g24_transmit_receive_ack 
-3c25 20403162 call g24_end_of_packet 
-3c26 6fe0c596 fetch 1 ,mem_24g_no_ack 
-3c27 c000bc2b beq no_ack_24g ,remote_car_g24_transmit_no_ack 
-3c28 2437bc2b nbranch remote_car_g24_transmit_no_ack ,user3 
-3c29 242c3c2b nbranch remote_car_g24_transmit_no_ack ,sync 
-3c2a 20403c30 call remote_car_24g_recved_ack 
-
-remote_car_g24_transmit_no_ack:
-3c2b 180a7e00 random pdata 
-3c2c d84001ff arg 0x1ff ,temp 
-3c2d 98417e00 iand temp ,pdata 
-3c2e 1fe0fefa add pdata ,250 ,pdata 
-3c2f 20207c93 branch delay 
-
-remote_car_24g_recved_ack:
-3c30 70466001 jam 1 ,mem_remote_le_24g_recv_ack_flag 
-3c31 20600000 rtn 
-
-remote_car_g24_recved_ack_parse:
-3c32 6fe0c660 fetch 1 ,mem_remote_le_24g_recv_ack_flag 
-3c33 207a0000 rtn blank 
-3c34 70466000 jam 0 ,mem_remote_le_24g_recv_ack_flag 
-3c35 6fe0c510 fetch 1 ,mem_24g_rxbuf + 2 
-3c36 c05dbc38 beq g24_rx_pair_respones ,remote_car_g24_tx_connected 
-3c37 20600000 rtn 
-
-remote_car_g24_tx_connected:
-3c38 6fe0c666 fetch 1 ,mem_remote_le_24g_tx_pair_mode 
-3c39 247a0000 nrtn blank 
-3c3a da204515 arg mem_24g_rxbuf + 7 ,rega 
-3c3b da4042dd arg mem_le_lap ,regb 
-3c3c df200004 arg 4 ,loopcnt 
-3c3d 20407d66 call string_compare 
-3c3e 24628000 nrtn zero 
-3c3f 204023a5 call lpm_write_ice_disable 
-3c40 70466601 jam g24_connected ,mem_remote_le_24g_tx_pair_mode 
-3c41 6fe24511 fetch 4 ,mem_24g_rxbuf + 3 
-3c42 67e24667 store 4 ,mem_remote_24g_addr_other 
-3c43 67e24670 store 4 ,mem_remote_24g_tx_payload_temp + 5 
-3c44 20203ba0 branch remote_car_set_connected_lpm_time 
-
-remote_car_send_remote_control:
-3c45 449ac006 bpatch patch06_5 ,mem_patch06 
-3c46 6fe0c665 fetch 1 ,mem_le_24g_tx_send_flag 
-3c47 1fe0fe01 increase 1 ,pdata 
-3c48 67e0c665 store 1 ,mem_le_24g_tx_send_flag 
-3c49 70466b00 jam 0 ,mem_remote_24g_tx_payload_temp 
-3c4a 58000000 setarg 0 
-3c4b 67e1c674 store 3 ,mem_remote_24g_tx_payload_temp + 9 
-3c4c 70466bcc jam g24_tx_remote_control ,mem_remote_24g_tx_payload_temp 
-3c4d 20403c52 call remote_car_scan_key 
-3c4e 20403c83 call remote_car_set_tx_key_led 
-3c4f 6fe0c665 fetch 1 ,mem_le_24g_tx_send_flag 
-3c50 c0643c8a beq 200 ,remote_car_24g_tx_send_none 
-3c51 20203c0f branch remote_car_g24_sim_tx_with_datalen_set 
-
-remote_car_scan_key:
-3c52 6848c661 fetcht 1 ,mem_key_public_gpio 
-3c53 20406eed call gpio_out_inactive 
-3c54 20403c66 call remote_car_key_scan_fb 
-3c55 20403c58 call remote_car_key_scan_lr 
-3c56 6848c661 fetcht 1 ,mem_key_public_gpio 
-3c57 20206f0b branch gpio_set_high_impedance 
-
-remote_car_key_scan_lr:
-3c58 6848c65c fetcht 1 ,mem_remote_car_key_conf3 
-3c59 20406eed call gpio_out_inactive 
-3c5a 6848c65c fetcht 1 ,mem_remote_car_key_conf3 
-3c5b 20406ed7 call gpio_config_input 
-3c5c 20406ee0 call gpio_get_bit 
-3c5d 2020bc7d branch remote_car_set_keyr ,true 
-3c5e 6848c65c fetcht 1 ,mem_remote_car_key_conf3 
-3c5f 20406ef1 call gpio_out_active 
-3c60 200004b0 nop 1200 
-3c61 6848c65b fetcht 1 ,mem_remote_car_key_conf2 
-3c62 20406ed7 call gpio_config_input 
-3c63 20406ee0 call gpio_get_bit 
-3c64 2020bc7a branch remote_car_set_keyl ,true 
-3c65 20600000 rtn 
-
-remote_car_key_scan_fb:
-3c66 6848c659 fetcht 1 ,mem_remote_car_key_conf0 
-3c67 20406eed call gpio_out_inactive 
-3c68 6848c659 fetcht 1 ,mem_remote_car_key_conf0 
-3c69 20406ed7 call gpio_config_input 
-3c6a 20406ee0 call gpio_get_bit 
-3c6b 2020bc74 branch remote_car_set_keyf ,true 
-3c6c 6848c659 fetcht 1 ,mem_remote_car_key_conf0 
-3c6d 20406ef1 call gpio_out_active 
-3c6e 200004b0 nop 1200 
-3c6f 6848c65a fetcht 1 ,mem_remote_car_key_conf1 
-3c70 20406ed7 call gpio_config_input 
-3c71 20406ee0 call gpio_get_bit 
-3c72 2020bc77 branch remote_car_set_keyb ,true 
-3c73 20600000 rtn 
-
-remote_car_set_keyf:
-3c74 70467401 jam 1 ,mem_remote_24g_tx_payload_temp + 9 
-3c75 70466500 jam 0 ,mem_le_24g_tx_send_flag 
-3c76 20600000 rtn 
-
-remote_car_set_keyb:
-3c77 70467402 jam 2 ,mem_remote_24g_tx_payload_temp + 9 
-3c78 70466500 jam 0 ,mem_le_24g_tx_send_flag 
-3c79 20600000 rtn 
-
-remote_car_set_keyl:
-3c7a 70467501 jam 1 ,mem_remote_24g_tx_payload_temp + 10 
-3c7b 70466500 jam 0 ,mem_le_24g_tx_send_flag 
-3c7c 20600000 rtn 
-
-remote_car_set_keyr:
-3c7d 70467502 jam 2 ,mem_remote_24g_tx_payload_temp + 10 
-3c7e 70466500 jam 0 ,mem_le_24g_tx_send_flag 
-3c7f 20600000 rtn 
-
-remote_car_set_keym:
-3c80 70467601 jam 1 ,mem_remote_24g_tx_payload_temp + 11 
-3c81 70466500 jam 0 ,mem_le_24g_tx_send_flag 
-3c82 20600000 rtn 
-
-remote_car_set_tx_key_led:
-3c83 6fe1c674 fetch 3 ,mem_remote_24g_tx_payload_temp + 9 
-3c84 203a3c99 branch remote_car_24g_led_off + 1 ,blank 
-3c85 58000000 setarg 0 
-3c86 67e1464b store 2 ,mem_24g_lpm_timer_count 
-3c87 5800000f setarg 15 
-3c88 67e1464d store 2 ,mem_24g_lpm_enter_count 
-3c89 20203c96 branch remote_car_24g_led_on 
-
-remote_car_24g_tx_send_none:
-3c8a 6fe0c665 fetch 1 ,mem_le_24g_tx_send_flag 
-3c8b 1fe0ffff increase -1 ,pdata 
-3c8c 67e0c665 store 1 ,mem_le_24g_tx_send_flag 
-3c8d 20600000 rtn 
-
-remote_car_24g_set_led:
-3c8e 6fe0c666 fetch 1 ,mem_remote_le_24g_tx_pair_mode 
-3c8f c1008000 rtneq g24_connected 
-3c90 6fe0c64a fetch 1 ,mem_24g_led_count 
-3c91 1fe0fe01 increase 1 ,pdata 
-3c92 67e0c64a store 1 ,mem_24g_led_count 
-3c93 c0013c96 beq 2 ,remote_car_24g_led_on 
-3c94 c0023c98 beq 4 ,remote_car_24g_led_off 
-3c95 20600000 rtn 
-
-remote_car_24g_led_on:
-3c96 6848c649 fetcht 1 ,mem_24g_tx_led_map 
-3c97 20206eed branch gpio_out_inactive 
-
-remote_car_24g_led_off:
-3c98 70464a00 jam 0 ,mem_24g_led_count 
-3c99 6848c649 fetcht 1 ,mem_24g_tx_led_map 
-3c9a 20206ef1 branch gpio_out_active 
-
-remote_car_lpm_timeout_set:
-3c9b 6fe1464d fetch 2 ,mem_24g_lpm_enter_count 
-3c9c 207a0000 rtn blank 
-3c9d 6849464b fetcht 2 ,mem_24g_lpm_timer_count 
-3c9e 9842fe00 ixor temp ,pdata 
-3c9f 205a3ca6 call remote_car_enter_lpm ,blank 
-3ca0 6fe1464b fetch 2 ,mem_24g_lpm_timer_count 
-3ca1 1fe0fe01 increase 1 ,pdata 
-3ca2 67e1464b store 2 ,mem_24g_lpm_timer_count 
-3ca3 20600000 rtn 
-
-remote_car_cb_event_timer:
-3ca4 20403c8e call remote_car_24g_set_led 
-3ca5 20203c9b branch remote_car_lpm_timeout_set 
-
-remote_car_enter_lpm:
-3ca6 204023a5 call lpm_write_ice_disable 
-3ca7 20403cab call remote_car_enter_lpm_gpio_config 
-3ca8 20403cc2 call remote_car_wakeup_config 
-3ca9 d85fffff arg -1 ,temp 
-3caa 20202406 branch lpm_sleep 
-
-remote_car_enter_lpm_gpio_config:
-3cab df200018 arg 24 ,loopcnt 
-3cac 70464800 jam 0 ,mem_remote_lpm_gpio_config_io_temp 
-
-remote_car_enter_lpm_gpio_config_loopcnt:
-3cad 6848c648 fetcht 1 ,mem_remote_lpm_gpio_config_io_temp 
-3cae 18420e00 copy temp ,queue 
-3caf 6fe24644 fetch 4 ,mem_remote_lpm_gpio_config_flag 
-3cb0 afefffff qisolate1 pdata 
-3cb1 2020bcb3 branch remote_car_enter_lpm_gpio_config_pull_up ,true 
-3cb2 18418480 or temp ,0x80 ,temp 
-
-remote_car_enter_lpm_gpio_config_pull_up:
-3cb3 20406ed7 call gpio_config_input 
-3cb4 6fe0c648 fetch 1 ,mem_remote_lpm_gpio_config_io_temp 
-3cb5 1fe0fe01 pincrease 1 
-3cb6 67e0c648 store 1 ,mem_remote_lpm_gpio_config_io_temp 
-3cb7 c2003cad loop remote_car_enter_lpm_gpio_config_loopcnt 
-3cb8 20600000 rtn 
-
-remote_car_set_value:
-3cb9 58000030 setarg 0x30 
-
-remote_car_gpio_wakeup_cfg:
-3cba 18a20c00 copy contw ,contr 
-3cbb e8408006 ifetcht 1 ,contr 
-3cbc 9840fe00 iadd temp ,pdata 
-3cbd e7e08005 istore 1 ,contw 
-3cbe d8a00016 arg mem_gpio_wakeup_cfg ,contw 
-3cbf d8c0465b arg mem_remote_car_key_conf0 + 2 ,contr 
-3cc0 c2003cc7 loop remote_car_wakeup_config_loop 
-3cc1 20600000 rtn 
-
-remote_car_wakeup_config:
-3cc2 58000000 setarg 0 
-3cc3 67e60016 store 0x0c ,mem_gpio_wakeup_cfg 
-3cc4 d8a00016 arg mem_gpio_wakeup_cfg ,contw 
-3cc5 d8c0465a arg mem_remote_car_key_conf0 + 1 ,contr 
-3cc6 df200002 arg 2 ,loopcnt 
-
-remote_car_wakeup_config_loop:
-3cc7 efe08006 ifetch 1 ,contr 
-3cc8 793ffe07 set0 7 ,pdata 
-3cc9 1fe6fc02 div pdata ,2 
-3cca 20407d64 call wait_div_end 
-3ccb 1807fe00 quotient pdata 
-3ccc 98a08a00 iadd contw ,contw 
-3ccd 18077e00 remainder pdata 
-3cce 243a3cb9 nbranch remote_car_set_value ,blank 
-3ccf 58000003 setarg 0x03 
-3cd0 20203cba branch remote_car_gpio_wakeup_cfg 
-
-dongle_init:
-3cd1 58003d04 setarg dongle_dispatch 
-3cd2 67e145f7 store 2 ,mem_cb_24g_receive_process 
-3cd3 58003dfe setarg dongle_g24_mouse 
-3cd4 67e145fb store 2 ,mem_cb_24g_data_device1 
-3cd5 58003e0f setarg dongle_g24_kb 
-3cd6 67e145fd store 2 ,mem_cb_24g_data_device2 
-3cd7 58003dd0 setarg dongle_ackpayload_prep 
-3cd8 67e145f9 store 2 ,mem_cb_24g_ackpayload 
-3cd9 58003d13 setarg dongle_usb_config 
-3cda 67e10837 store 2 ,mem_cb_usb_config 
-3cdb 20207902 branch usb_init 
-
-dongle_default_init:
-3cdc 449b4006 bpatch patch06_6 ,mem_patch06 
-3cdd 20403d09 call dongle_read_kb_bind_status 
-3cde 20403cff call dongle_xtal_select 
-3cdf 6fe0c680 fetch 1 ,mem_dg_sys_config 
-3ce0 2feffe05 isolate1 dg_enable_eeprom ,pdata 
-3ce1 2020bce5 branch dongle_default_no_eeprom ,true 
-3ce2 6fe0c680 fetch 1 ,mem_dg_sys_config 
-3ce3 2feffe06 isolate1 dg_enable_new_chmap ,pdata 
-3ce4 2040b24a call g24_chamap_param_update ,true 
-
-dongle_default_no_eeprom:
-3ce5 6fe0c6ad fetch 1 ,mem_dg_24g_tx_power_default 
-3ce6 67e0c141 store 1 ,mem_tx_power 
-3ce7 7045e9ff jam 0xff ,mem_rssi_buff_index 
-3ce8 5800097d setarg mem_dg_rssi_noise_buffer 
-3ce9 67e14657 store 2 ,mem_rssi_noise_buffer_ptr 
-3cea 58000a7d setarg mem_dg_rssi_noise_dg_buffer 
-3ceb 67e14659 store 2 ,mem_rssi_noise_self_buffer_ptr 
-3cec 58000b7d setarg mem_dg_rssi_noise_ms_buffer 
-3ced 67e1465b store 2 ,mem_rssi_noise_device1_buffer_ptr 
-3cee 58000c7d setarg mem_dg_rssi_noise_kb_buffer 
-3cef 67e1465d store 2 ,mem_rssi_noise_device2_buffer_ptr 
-3cf0 7045e885 jam tx_power_f5db ,mem_24g_pair_tx_power 
-3cf1 7046ab00 jam 0 ,mem_dg_kb_bind_success 
-3cf2 70464200 jam 0 ,mem_24g_bind_device_living 
-3cf3 20403260 call g24_enable_1m 
-3cf4 6fe0c680 fetch 1 ,mem_dg_sys_config 
-3cf5 2feffe03 isolate1 dg_enable_24g_2m ,pdata 
-3cf6 2040b263 call g24_enable_2m ,true 
-3cf7 20403378 call g24_receive_init 
-3cf8 20403266 call g24_pair_param_init 
-3cf9 2040323a call g24_chmap_param_init 
-3cfa 6fe0c68a fetch 1 ,mem_dg_usb_tx_interval 
-3cfb 67e08839 store 1 ,mem_usb_tx_interval 
-3cfc 6fe4c681 fetch 9 ,mem_dg_usb_vid_pid 
-3cfd 67e4883a store 9 ,mem_usb_vid_pid 
-3cfe 20600000 rtn 
-
-dongle_xtal_select:
-3cff 70409918 jam xtal_24m ,mem_fcomp_div 
-3d00 6fe0c680 fetch 1 ,mem_dg_sys_config 
-3d01 c4038000 rtnbit0 dg_enable_xtal_24m 
-3d02 70409910 jam xtal_16m ,mem_fcomp_div 
-3d03 20600000 rtn 
-
-dongle_dispatch:
-3d04 6fe0c627 fetch 1 ,mem_24g_pair_mode 
-3d05 c0003dc0 beq 0x00 ,dongle_auto_bind 
-3d06 c000bd3d beq 0x01 ,dongle_pc_bind 
-3d07 c007bd39 beq 0x0f ,dongle_all_powerful 
-3d08 20600000 rtn 
-
-dongle_read_kb_bind_status:
-3d09 449bc006 bpatch patch06_7 ,mem_patch06 
-3d0a da401fdf arg dongle_kb_bind_efuse_offect ,regb 
-3d0b da20465f arg mem_dg_kb_bind_flag ,rega 
-3d0c df200001 arg 1 ,loopcnt 
-3d0d 20206b62 branch otp_read_data 
-
-dongle_write_kb_bind_status:
-3d0e 449c4007 bpatch patch07_0 ,mem_patch07 
-3d0f df200001 arg 1 ,loopcnt 
-3d10 da20465f arg mem_dg_kb_bind_flag ,rega 
-3d11 da401fdf arg dongle_kb_bind_efuse_offect ,regb 
-3d12 20206b33 branch otp_write 
-
-dongle_usb_config:
-3d13 6fe0c680 fetch 1 ,mem_dg_sys_config 
-3d14 c2823d17 bbit1 dg_enable_kb_icon ,dongle_usb_config_kb 
-3d15 6fe0c65f fetch 1 ,mem_dg_kb_bind_flag 
-3d16 c0ad3d1b bne dongle_kb_bind_success ,dongle_usb_config_param 
-
-dongle_usb_config_kb:
-3d17 70465f5a jam dongle_kb_bind_success ,mem_dg_kb_bind_flag 
-3d18 6ff21404 fetch 4 ,usb_devicedata_addr + 9 
-3d19 79207e1d set1 29 ,pdata 
-3d1a 67e20792 store 4 ,mem_devicedesc + 9 
-
-dongle_usb_config_param:
-3d1b 449cc007 bpatch patch07_1 ,mem_patch07 
-3d1c 20403d33 call dongle_usb_device_name 
-3d1d 20407956 call usb_tx_interval_config 
-3d1e 20403d20 call dongle_usb_vid_pid_config 
-3d1f 20203d29 branch dongle_usb_hid_icon_config 
-
-dongle_usb_vid_pid_config:
-3d20 6fe0883a fetch 1 ,mem_usb_vid_pid 
-3d21 207a0000 rtn blank 
-3d22 6fe0c65f fetch 1 ,mem_dg_kb_bind_flag 
-3d23 c02d3d27 beq dongle_kb_bind_success ,dongle_usb_vid_pid_for_suit 
-
-dongle_usb_vid_pid_for_mouse_only_auto_pair:
-3d24 6fe2083b fetch 4 ,mem_usb_vid_pid + 1 
-
-dongle_usb_vid_pid_store:
-3d25 67e20792 store 4 ,mem_devicedesc + 9 
-3d26 20600000 rtn 
-
-dongle_usb_vid_pid_for_suit:
-3d27 6fe2083f fetch 4 ,mem_usb_vid_pid + 5 
-3d28 20203d25 branch dongle_usb_vid_pid_store 
-
-dongle_usb_hid_icon_config:
-3d29 6fe0c65f fetch 1 ,mem_dg_kb_bind_flag 
-3d2a c02d3d2f beq dongle_kb_bind_success ,dongle_usb_kb_hidreportdesc 
-3d2b 580092aa setarg usb_kbdata_vendor_define_addr 
-3d2c 67e10785 store 2 ,mem_hidreportdesc_kb 
-3d2d 7007b61a jam 0x1a ,mem_confdesc + 26 
-3d2e 20600000 rtn 
-
-dongle_usb_kb_hidreportdesc:
-3d2f 580092c5 setarg usb_kbdata_addr 
-3d30 67e10785 store 2 ,mem_hidreportdesc_kb 
-3d31 7007b641 jam 0x41 ,mem_confdesc + 26 
-3d32 20600000 rtn 
-
-dongle_usb_device_name:
-3d33 6fe0c68b fetch 1 ,mem_dg_usb_device_name 
-3d34 207a0000 rtn blank 
-3d35 d8c0468b arg mem_dg_usb_device_name ,contr 
-3d36 d8a007fb arg mem_string2 ,contw 
-3d37 df200020 arg 32 ,loopcnt 
-3d38 20207cdc branch memcpy 
-
-dongle_all_powerful:
-3d39 20403436 call g24_switch_work_mode 
-
-dongle_all_powerful_loop:
-3d3a 20403dc8 call dongle_work_mode_auto 
-3d3b 20403d8e call dongle_usb_dispatch 
-3d3c 20203d3a branch dongle_all_powerful_loop 
-
-dongle_pc_bind:
-3d3d 20403436 call g24_switch_work_mode 
-
-dongle_pc_bind_loop:
-3d3e 20403dc8 call dongle_work_mode_auto 
-3d3f 2040343f call g24_bind_mode_auto 
-3d40 20403d8e call dongle_usb_dispatch 
-3d41 20203d3e branch dongle_pc_bind_loop 
-
-dongle_g24_blank_data_process:
-3d42 449d4007 bpatch patch07_2 ,mem_patch07 
-3d43 20403d48 call dongle_g24_ms_blank_data 
-3d44 20403d57 call dongle_g24_kb_blank_data 
-3d45 20403d67 call dongle_g24_kb_sys_ctrl_blank_data 
-3d46 20403d81 call dongle_g24_kb_bit_consumer_blank_data 
-3d47 20203d74 branch dongle_g24_kb_mul_blank_data 
-
-dongle_g24_ms_blank_data:
-3d48 6fe0c67f fetch 1 ,mem_dg_ms_blank_data_enable 
-3d49 207a0000 rtn blank 
-3d4a d8e0000d arg g24_timer_ms_blank ,queue 
-3d4b 20407cf1 call timer_check 
-3d4c 247a0000 nrtn blank 
-3d4d 70467f00 jam 0 ,mem_dg_ms_blank_data_enable 
-3d4e 58000001 setarg ms_report_id 
-3d4f 67e088f1 store 1 ,mem_usb_mouse_data 
-3d50 58000000 setarg 0 
-3d51 e7e38005 istore 7 ,contw 
-
-dongle_usb_tx_ms_data:
-3d52 7008ea20 jam usb_ep2_ms ,mem_usb_ep2_data 
-
-dongle_usb_tx_enable_ep2:
-3d53 6fe088eb fetch 1 ,mem_usb_tx_enable 
-3d54 79207e02 set1 2 ,pdata 
-3d55 67e088eb store 1 ,mem_usb_tx_enable 
-3d56 20600000 rtn 
-
-dongle_g24_kb_blank_data:
-3d57 6fe0c67c fetch 1 ,mem_dg_kb_blank_data_enable 
-3d58 207a0000 rtn blank 
-3d59 d8e0000e arg g24_timer_kb_blank ,queue 
-3d5a 20407cf1 call timer_check 
-3d5b 247a0000 nrtn blank 
-3d5c 70467c00 jam 0 ,mem_dg_kb_blank_data_enable 
-3d5d d8a00901 arg mem_usb_kb_data ,contw 
-3d5e 20407c9b call memset0_16 
-3d5f 6fe40901 fetch 8 ,mem_usb_kb_data 
-3d60 67e44668 store 8 ,mem_dg_kb_data_last_data 
-
-dongle_usb_tx_kb_data:
-3d61 70090100 jam kb_normal_report_id ,mem_usb_kb_data 
-
-dongle_usb_tx_enable_ep1:
-3d62 7008e910 jam usb_ep1_kb ,mem_usb_ep1_data 
-3d63 6fe088eb fetch 1 ,mem_usb_tx_enable 
-3d64 79207e01 set1 1 ,pdata 
-3d65 67e088eb store 1 ,mem_usb_tx_enable 
-3d66 20600000 rtn 
-
-dongle_g24_kb_sys_ctrl_blank_data:
-3d67 6fe0c67e fetch 1 ,mem_dg_kb_system_crtl_blank_data_enable 
-3d68 207a0000 rtn blank 
-3d69 d8e0000a arg g24_timer_kb_sys_crtl_blank ,queue 
-3d6a 20407cf1 call timer_check 
-3d6b 247a0000 nrtn blank 
-3d6c 70467e00 jam 0 ,mem_dg_kb_system_crtl_blank_data_enable 
-3d6d d8a00929 arg mem_usb_kb_system ,contw 
-3d6e 20407c9b call memset0_16 
-3d6f 70092902 jam kb_system_conctrl_report_id ,mem_usb_kb_system 
-3d70 6fe10929 fetch 2 ,mem_usb_kb_system 
-3d71 67e14676 store 2 ,mem_dg_kb_system_sta_data 
-
-dongle_usb_tx_sys_ctrl_data:
-3d72 7008ea22 jam usb_ep2_systemkey ,mem_usb_ep2_data 
-3d73 20203d53 branch dongle_usb_tx_enable_ep2 
-
-dongle_g24_kb_mul_blank_data:
-3d74 6fe0c67d fetch 1 ,mem_dg_kb_mul_blank_data_enable 
-3d75 207a0000 rtn blank 
-3d76 d8e0000c arg g24_timer_kb_mul_blank ,queue 
-3d77 20407cf1 call timer_check 
-3d78 247a0000 nrtn blank 
-3d79 70467d00 jam 0 ,mem_dg_kb_mul_blank_data_enable 
-3d7a d8a00921 arg mem_usb_kb_multikey ,contw 
-3d7b 20407c9b call memset0_16 
-3d7c 70092103 jam kb_multikey_report_id ,mem_usb_kb_multikey 
-3d7d 6fe18921 fetch 3 ,mem_usb_kb_multikey 
-3d7e 67e1c673 store 3 ,mem_dg_kb_multikey_last_data 
-
-dongle_usb_tx_multikey_data:
-3d7f 7008ea21 jam usb_ep2_multikey ,mem_usb_ep2_data 
-3d80 20203d53 branch dongle_usb_tx_enable_ep2 
-
-dongle_g24_kb_bit_consumer_blank_data:
-3d81 6fe0c6ae fetch 1 ,mem_dg_kb_bit_consumer_blank_data_enable 
-3d82 207a0000 rtn blank 
-3d83 d8e00006 arg g24_timer_kb_bit_consumer_blank ,queue 
-3d84 20407cf1 call timer_check 
-3d85 247a0000 nrtn blank 
-3d86 7046ae00 jam 0 ,mem_dg_kb_bit_consumer_blank_data_enable 
-3d87 d8a00921 arg mem_usb_kb_multikey ,contw 
-3d88 20407c9b call memset0_16 
-3d89 70092105 jam kb_bit_consumer_report_id ,mem_usb_kb_multikey 
-3d8a 6fe20921 fetch 4 ,mem_usb_kb_multikey 
-3d8b 67e246b3 store 4 ,mem_dg_kb_bit_consumer_last_data 
-
-dongle_usb_tx_bit_consumer_data:
-3d8c 7008ea23 jam usb_ep2_bit_consumer ,mem_usb_ep2_data 
-3d8d 20203d53 branch dongle_usb_tx_enable_ep2 
-
-dongle_usb_dispatch:
-3d8e 449dc007 bpatch patch07_3 ,mem_patch07 
-3d8f 6fe088df fetch 1 ,mem_usb_remote_wakeup 
-3d90 205a3dda call dongle_clear_pc_sleep_flag ,blank 
-3d91 204078f6 call usb_isr 
-3d92 6fe088d5 fetch 1 ,mem_usb0_get_set_report 
-3d93 207a0000 rtn blank 
-3d94 7008d500 jam 0 ,mem_usb0_get_set_report 
-3d95 6fe108d3 fetch 2 ,mem_usb_setup_bvalue_temp 
-3d96 d84002ba arg pc_set_report ,temp 
-3d97 98467c00 isub temp ,null 
-3d98 24628000 nrtn zero 
-3d99 6fe08853 fetch 1 ,mem_usb0_set_report_data 
-3d9a c1dd0000 rtnne pc_report_id 
-3d9b 6fe08854 fetch 1 ,mem_usb0_set_report_data + 1 
-3d9c c0503da3 beq command_mode ,dongle_dispose_cmd_mode 
-3d9d c050bda9 beq command_bind ,dongle_dispose_cmd_bind 
-3d9e c0533db5 beq command_current_project ,dongle_dispose_cmd_current_project 
-3d9f c053bdb7 beq command_current_mode ,dongle_dispose_cmd_current_mode 
-3da0 c054bdbd beq command_current_fw_version ,dongle_dispose_cmd_current_fw_version 
-
-dongle_usb0_data_ready_report_set0:
-3da1 7008d600 jam 0 ,mem_usb0_data_ready_report 
-3da2 20600000 rtn 
-
-dongle_dispose_cmd_mode:
-3da3 6fe08855 fetch 1 ,mem_usb0_set_report_data + 2 
-3da4 c040bda6 beq com_mode_bind ,dongle_enter_bind_mode 
-3da5 20203da1 branch dongle_usb0_data_ready_report_set0 
-
-dongle_enter_bind_mode:
-3da6 204032da call g24_bind_mode_enable 
-
-dongle_usb0_data_ready_report_set1:
-3da7 7008d601 jam 1 ,mem_usb0_data_ready_report 
-3da8 20600000 rtn 
-
-dongle_dispose_cmd_bind:
-3da9 6fe08855 fetch 1 ,mem_usb0_set_report_data + 2 
-3daa c000bdae beq com_bind_get ,dongle_dispose_cmd_get_bind 
-3dab c0423db1 beq com_bind_exit ,dongle_dispose_cmd_exit_bind 
-3dac c053bdb3 beq com_read_mode ,dongle_dispose_cmd_read_mode 
-3dad 20203da1 branch dongle_usb0_data_ready_report_set0 
-
-dongle_dispose_cmd_get_bind:
-3dae 6fe0c5ec fetch 1 ,mem_24g_bind_device_status 
-3daf 67e08894 store 1 ,mem_usb0_get_report_data + 1 
-3db0 20203da7 branch dongle_usb0_data_ready_report_set1 
-
-dongle_dispose_cmd_exit_bind:
-3db1 20403437 call g24_work_mode_enable 
-3db2 20203dae branch dongle_dispose_cmd_get_bind 
-
-dongle_dispose_cmd_read_mode:
-
-dongle_dispose_in_bind_mode:
-3db3 700894a1 jam command_bind ,mem_usb0_get_report_data + 1 
-3db4 20203da7 branch dongle_usb0_data_ready_report_set1 
-
-dongle_dispose_cmd_current_project:
-3db5 70089415 jam product_id ,mem_usb0_get_report_data + 1 
-3db6 20203da7 branch dongle_usb0_data_ready_report_set1 
-
-dongle_dispose_cmd_current_mode:
-3db7 6fe0c62d fetch 1 ,mem_24g_work_mode 
-3db8 c0003dbb beq dongle_work ,dongle_dispose_in_work_mode 
-3db9 c000bdb3 beq dongle_bind ,dongle_dispose_in_bind_mode 
-3dba 20600000 rtn 
-
-dongle_dispose_in_work_mode:
-3dbb 700894a0 jam command_mode ,mem_usb0_get_report_data + 1 
-3dbc 20203da7 branch dongle_usb0_data_ready_report_set1 
-
-dongle_dispose_cmd_current_fw_version:
-3dbd 6fe246b7 fetch 4 ,mem_dg_device_version 
-3dbe 67e20894 store 4 ,mem_usb0_get_report_data + 1 
-3dbf 20203da7 branch dongle_usb0_data_ready_report_set1 
-
-dongle_auto_bind:
-3dc0 204033d8 call g24_mode_switch_init 
-
-dongle_auto_bind_loop:
-3dc1 204033dd call g24_mode_switch_bind_work 
-3dc2 20403403 call g24_mode_switch_bind_search 
-3dc3 20403dc8 call dongle_work_mode_auto 
-3dc4 2040343f call g24_bind_mode_auto 
-3dc5 2040345e call g24_search_mode_auto 
-3dc6 20403d8e call dongle_usb_dispatch 
-3dc7 20203dc1 branch dongle_auto_bind_loop 
-
-dongle_work_mode_auto:
-3dc8 449e4007 bpatch patch07_4 ,mem_patch07 
-3dc9 6fe0c62d fetch 1 ,mem_24g_work_mode 
-3dca c1800000 rtnne dongle_work 
-3dcb 2040343a call g24_work_mode_start 
-3dcc 20403d42 call dongle_g24_blank_data_process 
-3dcd 6fe0c627 fetch 1 ,mem_24g_pair_mode 
-3dce 247a0000 nrtn blank 
-3dcf 202034e0 branch g24_nodata_process 
-
-dongle_ackpayload_prep:
-3dd0 6fe0c5a0 fetch 1 ,mem_24g_data_type 
-3dd1 c000bdd3 beq datatype_device1 ,dongle_ackpayload_prep_mouse 
-3dd2 c0013ddc beq datatype_device2 ,dongle_ackpayload_prep_keyboard 
-
-dongle_ackpayload_prep_mouse:
-3dd3 6fe0c6ac fetch 1 ,mem_dg_pc_sleep_flag 
-3dd4 c2803de2 bbit1 0 ,dongle_pc_sleep_ackpayload_prep_mouse 
-3dd5 20203dde branch dongle_ackpayload_prep_end 
-
-dongle_set_pc_sleep_flag:
-3dd6 6fe0c3cf fetch 1 ,mem_device_option 
-3dd7 c1820000 rtnne dvc_op_dongle 
-3dd8 7046ac03 jam 3 ,mem_dg_pc_sleep_flag 
-3dd9 20600000 rtn 
-
-dongle_clear_pc_sleep_flag:
-3dda 7046ac00 jam 0 ,mem_dg_pc_sleep_flag 
-3ddb 20600000 rtn 
-
-dongle_ackpayload_prep_keyboard:
-3ddc 6fe0c6ac fetch 1 ,mem_dg_pc_sleep_flag 
-3ddd c280bde6 bbit1 1 ,dongle_pc_sleep_ackpayload_prep_keyboard 
-
-dongle_ackpayload_prep_end:
-3dde 6fe0c628 fetch 1 ,mem_24g_ackpayload_enable 
-3ddf c000bded beq bind_ackpayload ,dongle_g24_bind_ackpayload_prep 
-3de0 c001bdf6 beq kb_led_ackpayload ,dongle_g24_kb_led_ackpayload_prep 
-3de1 20600000 rtn 
-
-dongle_pc_sleep_ackpayload_prep_mouse:
-3de2 6fe0c6ac fetch 1 ,mem_dg_pc_sleep_flag 
-3de3 793ffe00 set0 0 ,pdata 
-3de4 67e0c6ac store 1 ,mem_dg_pc_sleep_flag 
-3de5 20203de9 branch dongle_pc_sleep_ackpayload_prep 
-
-dongle_pc_sleep_ackpayload_prep_keyboard:
-3de6 6fe0c6ac fetch 1 ,mem_dg_pc_sleep_flag 
-3de7 793ffe01 set0 1 ,pdata 
-3de8 67e0c6ac store 1 ,mem_dg_pc_sleep_flag 
-
-dongle_pc_sleep_ackpayload_prep:
-3de9 70459f01 jam 0x01 ,mem_24g_datalen 
-3dea 580000ff setarg 0xff 
-3deb 67e0c530 store 1 ,mem_24g_txbuf 
-3dec 20600000 rtn 
-
-dongle_g24_bind_ackpayload_prep:
-3ded 449ec007 bpatch patch07_5 ,mem_patch07 
-3dee 70462801 jam 1 ,mem_24g_ackpayload_enable 
-3def 6fe0c62d fetch 1 ,mem_24g_work_mode 
-3df0 c1000000 rtneq dongle_work 
-3df1 6fe0c627 fetch 1 ,mem_24g_pair_mode 
-3df2 247a0000 nrtn blank 
-3df3 2040335b call g24_binding_device_check 
-3df4 24778000 nrtn user3 
-3df5 202032e8 branch g24_bind_ackpayload_prep 
-
-dongle_g24_kb_led_ackpayload_prep:
-3df6 6fe0c510 fetch 1 ,mem_24g_rxbuf + 2 
-3df7 c000b2e8 beq datatype_device1 ,g24_bind_ackpayload_prep 
-3df8 c07fb2e8 beq datatype_attemp ,g24_bind_ackpayload_prep 
-3df9 7008d700 jam 0 ,mem_usb_tx_win_enable 
-3dfa 70459f01 jam 0x01 ,mem_24g_datalen 
-3dfb 6fe0c638 fetch 1 ,mem_24g_led_status 
-3dfc 67e0c530 store 1 ,mem_24g_txbuf 
-3dfd 20600000 rtn 
-
-dongle_g24_mouse:
-3dfe 58000001 setarg ms_report_id 
-3dff 67e088f1 store 1 ,mem_usb_mouse_data 
-3e00 6fe3c602 fetch 7 ,mem_24g_rxdata_temp + 3 
-3e01 e7e38005 istore 7 ,contw 
-3e02 6fe0c602 fetch 1 ,mem_24g_rxdata_temp + 3 
-3e03 245a3e07 ncall dongle_g24_ms_enable_blank_data_forcibly ,blank 
-3e04 6fe0c602 fetch 1 ,mem_24g_rxdata_temp + 3 
-3e05 205a3e0b call dongle_g24_ms_disable_blank_data_forcibly ,blank 
-3e06 20203d52 branch dongle_usb_tx_ms_data 
-
-dongle_g24_ms_enable_blank_data_forcibly:
-3e07 70467f01 jam 1 ,mem_dg_ms_blank_data_enable 
-3e08 58000180 setarg timer_ms_blank_delay 
-3e09 d8e0000d arg g24_timer_ms_blank ,queue 
-3e0a 20207ce3 branch timer_init 
-
-dongle_g24_ms_disable_blank_data_forcibly:
-3e0b 70467f00 jam 0 ,mem_dg_ms_blank_data_enable 
-3e0c 58000000 setarg 0 
-3e0d d8e0000d arg g24_timer_ms_blank ,queue 
-3e0e 20207ce3 branch timer_init 
-
-dongle_g24_kb:
-3e0f 6fe0c602 fetch 1 ,mem_24g_rxdata_temp + 3 
-3e10 c0003e15 beq 0 ,dongle_g24_kb_type0 
-3e11 c0013e60 beq 2 ,dongle_g24_kb_type2 
-3e12 c001be30 beq 3 ,dongle_g24_kb_type3 
-3e13 c002be48 beq 5 ,dongle_g24_kb_type_bit_consumer 
-3e14 20203397 branch g24_rx_interrupt_clear 
-
-dongle_g24_kb_type0:
-3e15 6fe0c604 fetch 1 ,mem_24g_rxdata_temp + 5 
-3e16 67e0c628 store 1 ,mem_24g_ackpayload_enable 
-3e17 70460400 jam 0 ,mem_24g_rxdata_temp + 5 
-3e18 d8a00901 arg mem_usb_kb_data ,contw 
-3e19 d8c04603 arg mem_24g_rxdata_temp + 4 ,contr 
-3e1a df200008 arg 8 ,loopcnt 
-3e1b 20407cdc call memcpy 
-3e1c 6fe40901 fetch 8 ,mem_usb_kb_data 
-3e1d 245a3e28 ncall dongle_g24_kb_enable_blank_data_forcibly ,blank 
-3e1e 6fe40901 fetch 8 ,mem_usb_kb_data 
-3e1f 205a3e2c call dongle_g24_kb_disable_blank_data_forcibly ,blank 
-3e20 6fe40901 fetch 8 ,mem_usb_kb_data 
-3e21 67e44660 store 8 ,mem_dg_kb_data_sta_data 
-3e22 684c4668 fetcht 8 ,mem_dg_kb_data_last_data 
-3e23 98467c00 isub temp ,null 
-3e24 2442bd62 ncall dongle_usb_tx_enable_ep1 ,zero 
-3e25 6fe44660 fetch 8 ,mem_dg_kb_data_sta_data 
-3e26 67e44668 store 8 ,mem_dg_kb_data_last_data 
-3e27 20203397 branch g24_rx_interrupt_clear 
-
-dongle_g24_kb_enable_blank_data_forcibly:
-3e28 70467c01 jam 1 ,mem_dg_kb_blank_data_enable 
-3e29 58000180 setarg timer_kb_blank_delay 
-3e2a d8e0000e arg g24_timer_kb_blank ,queue 
-3e2b 20207ce3 branch timer_init 
-
-dongle_g24_kb_disable_blank_data_forcibly:
-3e2c 70467c00 jam 0 ,mem_dg_kb_blank_data_enable 
-3e2d 58000000 setarg 0 
-3e2e d8e0000e arg g24_timer_kb_blank ,queue 
-3e2f 20207ce3 branch timer_init 
-
-dongle_g24_kb_type3:
-3e30 d8a00921 arg mem_usb_kb_multikey ,contw 
-3e31 d8c04602 arg mem_24g_rxdata_temp + 3 ,contr 
-3e32 df200003 arg 3 ,loopcnt 
-3e33 20407cdc call memcpy 
-3e34 6fe10922 fetch 2 ,mem_usb_kb_multikey + 1 
-3e35 245a3e40 ncall dongle_g24_kb_mul_enable_blank_data_forcibly ,blank 
-3e36 6fe10922 fetch 2 ,mem_usb_kb_multikey + 1 
-3e37 205a3e44 call dongle_g24_kb_mul_disable_blank_data_forcibly ,blank 
-3e38 6fe18921 fetch 3 ,mem_usb_kb_multikey 
-3e39 67e1c670 store 3 ,mem_dg_kb_multikey_sta_data 
-3e3a 6849c673 fetcht 3 ,mem_dg_kb_multikey_last_data 
-3e3b 98467c00 isub temp ,null 
-3e3c 2442bd7f ncall dongle_usb_tx_multikey_data ,zero 
-3e3d 6fe1c670 fetch 3 ,mem_dg_kb_multikey_sta_data 
-3e3e 67e1c673 store 3 ,mem_dg_kb_multikey_last_data 
-3e3f 20203397 branch g24_rx_interrupt_clear 
-
-dongle_g24_kb_mul_enable_blank_data_forcibly:
-3e40 70467d01 jam 1 ,mem_dg_kb_mul_blank_data_enable 
-3e41 58000180 setarg timer_kb_mul_blank_delay 
-3e42 d8e0000c arg g24_timer_kb_mul_blank ,queue 
-3e43 20207ce3 branch timer_init 
-
-dongle_g24_kb_mul_disable_blank_data_forcibly:
-3e44 70467d00 jam 0 ,mem_dg_kb_mul_blank_data_enable 
-3e45 58000000 setarg 0 
-3e46 d8e0000c arg g24_timer_kb_mul_blank ,queue 
-3e47 20207ce3 branch timer_init 
-
-dongle_g24_kb_type_bit_consumer:
-3e48 d8a00921 arg mem_usb_kb_multikey ,contw 
-3e49 d8c04602 arg mem_24g_rxdata_temp + 3 ,contr 
-3e4a df200004 arg 4 ,loopcnt 
-3e4b 20407cdc call memcpy 
-3e4c 6fe18922 fetch 3 ,mem_usb_kb_multikey + 1 
-3e4d 245a3e58 ncall dongle_g24_kb_bit_consumer_enable_blank_data_forcibly ,blank 
-3e4e 6fe18922 fetch 3 ,mem_usb_kb_multikey + 1 
-3e4f 205a3e5c call dongle_g24_kb_bit_consumer_disable_blank_data_forcibly ,blank 
-3e50 6fe18922 fetch 3 ,mem_usb_kb_multikey + 1 
-3e51 67e1c6af store 3 ,mem_dg_kb_bit_consumer_sta_data 
-3e52 6849c6b3 fetcht 3 ,mem_dg_kb_bit_consumer_last_data 
-3e53 98467c00 isub temp ,null 
-3e54 2442bd8c ncall dongle_usb_tx_bit_consumer_data ,zero 
-3e55 6fe1c6af fetch 3 ,mem_dg_kb_bit_consumer_sta_data 
-3e56 67e1c6b3 store 3 ,mem_dg_kb_bit_consumer_last_data 
-3e57 20203397 branch g24_rx_interrupt_clear 
-
-dongle_g24_kb_bit_consumer_enable_blank_data_forcibly:
-3e58 7046ae01 jam 1 ,mem_dg_kb_bit_consumer_blank_data_enable 
-3e59 58000180 setarg timer_kb_mul_blank_delay 
-3e5a d8e00006 arg g24_timer_kb_bit_consumer_blank ,queue 
-3e5b 20207ce3 branch timer_init 
-
-dongle_g24_kb_bit_consumer_disable_blank_data_forcibly:
-3e5c 7046ae00 jam 0 ,mem_dg_kb_bit_consumer_blank_data_enable 
-3e5d 58000000 setarg 0 
-3e5e d8e00006 arg g24_timer_kb_bit_consumer_blank ,queue 
-3e5f 20207ce3 branch timer_init 
-
-dongle_g24_kb_type2:
-3e60 d8a00929 arg mem_usb_kb_system ,contw 
-3e61 d8c04602 arg mem_24g_rxdata_temp + 3 ,contr 
-3e62 df200002 arg 2 ,loopcnt 
-3e63 20407cdc call memcpy 
-3e64 6fe10929 fetch 2 ,mem_usb_kb_system 
-3e65 245a3e70 ncall dongle_g24_kb_sys_enable_blank_data_forcibly ,blank 
-3e66 6fe10929 fetch 2 ,mem_usb_kb_system 
-3e67 205a3e74 call dongle_g24_kb_sys_disable_blank_data_forcibly ,blank 
-3e68 6fe10929 fetch 2 ,mem_usb_kb_system 
-3e69 67e14676 store 2 ,mem_dg_kb_system_sta_data 
-3e6a 68494679 fetcht 2 ,mem_dg_kb_system_last_data 
-3e6b 98467c00 isub temp ,null 
-3e6c 2442be78 ncall dongle_usb_tx_sys_data ,zero 
-3e6d 6fe14676 fetch 2 ,mem_dg_kb_system_sta_data 
-3e6e 67e14679 store 2 ,mem_dg_kb_system_last_data 
-3e6f 20203397 branch g24_rx_interrupt_clear 
-
-dongle_g24_kb_sys_enable_blank_data_forcibly:
-3e70 70467e01 jam 1 ,mem_dg_kb_system_crtl_blank_data_enable 
-3e71 58000180 setarg timer_kb_sys_crtl_blank_delay 
-3e72 d8e0000a arg g24_timer_kb_sys_crtl_blank ,queue 
-3e73 20207ce3 branch timer_init 
-
-dongle_g24_kb_sys_disable_blank_data_forcibly:
-3e74 70467e00 jam 0 ,mem_dg_kb_system_crtl_blank_data_enable 
-3e75 58000000 setarg 0 
-3e76 d8e0000a arg g24_timer_kb_sys_crtl_blank ,queue 
-3e77 20207ce3 branch timer_init 
-
-dongle_usb_tx_sys_data:
-3e78 7008ea22 jam usb_ep2_systemkey ,mem_usb_ep2_data 
-3e79 20203d53 branch dongle_usb_tx_enable_ep2 
-
-dongle_g24_store_dvc2_bind_flag:
-3e7a 6fe0c3cf fetch 1 ,mem_device_option 
-3e7b c1820000 rtnne dvc_op_dongle 
-3e7c 6fe0c65f fetch 1 ,mem_dg_kb_bind_flag 
-3e7d c12d0000 rtneq dongle_kb_bind_success 
-
-dongle_prep_soft_reset:
-3e7e 7046ab01 jam 1 ,mem_dg_kb_bind_success 
-3e7f 20600000 rtn 
-
-dongle_kb_bind_soft_reset:
-3e80 6fe0c3cf fetch 1 ,mem_device_option 
-3e81 c1820000 rtnne dvc_op_dongle 
-3e82 6fe0c6ab fetch 1 ,mem_dg_kb_bind_success 
-3e83 207a0000 rtn blank 
-3e84 70065600 jam 0 ,mem_temp 
-
-dongle_wirte_efuse_bind_status:
-3e85 70465f5a jam dongle_kb_bind_success ,mem_dg_kb_bind_flag 
-3e86 20403d0e call dongle_write_kb_bind_status 
-3e87 20403d09 call dongle_read_kb_bind_status 
-3e88 6fe08656 fetch 1 ,mem_temp 
-3e89 1fe0fe01 increase 1 ,pdata 
-3e8a 67e08656 store 1 ,mem_temp 
-3e8b c07fec99 beq 0xff ,soft_reset_chip 
-3e8c 6fe0c65f fetch 1 ,mem_dg_kb_bind_flag 
-3e8d c0ad3e85 bne dongle_kb_bind_success ,dongle_wirte_efuse_bind_status 
-3e8e 20206c99 branch soft_reset_chip 
-
-keyboard_softreset_process:
-3e8f 20403e9a call keyboard_wakeup_from_power_check 
-3e90 24342002 nbranch soft_reset + 1 ,user 
-3e91 6fe0c88d fetch 1 ,mem_power_on_flag 
-3e92 203a2002 branch soft_reset + 1 ,blank 
-3e93 6fe0c90f fetch 1 ,mem_keyboard_pb_button_gpio 
-3e94 c17f8000 rtneq ui_button_gpio_disable 
-3e95 1fe20e00 copy pdata ,queue 
-3e96 6fe2067b fetch 4 ,mem_saved_gpio_in 
-3e97 afec0000 qisolate0 pdata 
-3e98 2040c69b call keyboard_pb_set ,true 
-3e99 20202003 branch soft_reset + 2 
-
-keyboard_wakeup_from_power_check:
-3e9a 78547c00 disable user 
-3e9b 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
-3e9c c3044e1b bbit0 keyboard_enable_wakeup_from_power ,mouse_wakeup_from_poweron 
-3e9d 6ff08132 fetch 1 ,core_lpm_isogate 
-3e9e c2824e1b bbit1 cold_wake ,mouse_wakeup_from_poweron 
-3e9f 78347c00 enable user 
-3ea0 20204e1b branch mouse_wakeup_from_poweron 
-
-keyboard_default_init:
-3ea1 204067ff call hid_device_default_parm_init 
-3ea2 20403ea5 call keyboard_xtal_init 
-3ea3 20403eaa call keyboard_24g_phy_select 
-3ea4 20203266 branch g24_pair_param_init 
-
-keyboard_xtal_init:
-3ea5 70409910 jam xtal_16m ,mem_fcomp_div 
-3ea6 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
-3ea7 c3848000 rtnbit1 keyboard_enable_16m 
-3ea8 70409918 jam xtal_24m ,mem_fcomp_div 
-3ea9 20600000 rtn 
-
-keyboard_24g_phy_select:
-3eaa 20403260 call g24_enable_1m 
-3eab 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
-3eac c40a0000 rtnbit0 keyboard_enable_24g_2m_phy 
-3ead 20203263 branch g24_enable_2m 
-
-keyboard_init:
-3eae 20407384 call enable_authrom 
-3eaf 20403ebd call keyboard_setting_config 
-3eb0 20403ef9 call keyboard_gpio_init 
-3eb1 204040eb call keyboard_low_vol_mult_set 
-3eb2 20406f4e call lpm_config_puchk_disable 
-3eb3 20758000 rtn wake 
-3eb4 2040404e call keyboard_cb_fuction 
-3eb5 6fe0c678 fetch 1 ,mem_device_flag 
-3eb6 c00249d7 beq mode_usb_device ,keyboard_usb_mode_start 
-
-keyboard_init_wireless:
-3eb7 6fe14500 fetch 2 ,mem_ui_state_map 
-3eb8 c28648c5 bbit1 ui_state_btn_down ,keyboard_start_discovery 
-3eb9 70489600 jam 0 ,mem_keyboard_switch_count_temp 
-3eba 204042e3 call keyboard_check_select_device_by_switch 
-3ebb 70489601 jam 1 ,mem_keyboard_switch_count_temp 
-3ebc 2020430e branch keyboard_start_work 
-
-keyboard_setting_config:
-3ebd 20758000 rtn wake 
-3ebe 204035c8 call g24_transmit_init 
-3ebf 2040323a call g24_chmap_param_init 
-3ec0 20403edb call keyboard_param_init 
-3ec1 20404161 call keyboard_device_led_all_off 
-3ec2 20404203 call keyboard_rgb_off 
-3ec3 204041b7 call keyboard_pwm_init 
-3ec4 20402a1f call le_set_fixed_ltk_justwork 
-3ec5 449f4007 bpatch patch07_6 ,mem_patch07 
-3ec6 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
-3ec7 c287bf31 bbit1 keyboard_enable_otp ,keyboard_load_otp_info 
-3ec8 c2873f96 bbit1 keyboard_enable_eeprom ,keyboard_load_eeprom_info 
-3ec9 c2863fd5 bbit1 keyboard_enable_flash ,keyboard_load_flash_info 
-3eca 20600000 rtn 
-
-keyboard_param_common_init:
-3ecb 58009000 setarg mouse_ble_att_list_addr 
-3ecc 67e142f9 store 2 ,mem_ui_le_uuid_table 
-3ecd 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
-3ece c291e80c bbit1 keyboard_enable_mouse ,hid_device_param_common_init 
-3ecf 580095b8 setarg keyboard_ble_hid_map_n_key_rollover_keyboard_addr 
-3ed0 67e148d6 store 2 ,mem_keyboard_le_hid_map 
-3ed1 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
-3ed2 c290680c bbit1 keyboard_enable_26_n_key_rollover ,hid_device_param_common_init 
-3ed3 c290e80c bbit1 keyboard_enable_full_n_key_rollover ,hid_device_param_common_init 
-3ed4 580094fc setarg keyboard_ble_hid_map_magic_keyboard_addr 
-3ed5 67e148d6 store 2 ,mem_keyboard_le_hid_map 
-3ed6 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
-3ed7 c291680c bbit1 keyboard_enable_magic_keyboard ,hid_device_param_common_init 
-3ed8 5800944a setarg keyboard_ble_hid_map_only_keyboard_addr 
-3ed9 67e148d6 store 2 ,mem_keyboard_le_hid_map 
-3eda 2020680c branch hid_device_param_common_init 
-
-keyboard_param_init:
-3edb 20403ef4 call keyboard_compare_addr_init 
-3edc 20403ecb call keyboard_param_common_init 
-3edd 20404093 call keyboard_adc_vol_init 
-3ede 6fe0cac1 fetch 1 ,mem_keyboard_device_poweron_timer_init 
-3edf 67e0cac2 store 1 ,mem_keyboard_device_poweron_timer 
-3ee0 7049a000 jam 0 ,mem_same_keyvalue_timerout_flag 
-3ee1 d8a0475f arg mem_le_adv_swift_pair ,contw 
-3ee2 df200014 arg 20 ,loopcnt 
-3ee3 20407ca3 call clear_mem 
-3ee4 6fe0c26d fetch 1 ,mem_le_name_len 
-3ee5 1fe67c0c sub pdata ,12 ,null 
-3ee6 24213ef2 nbranch keyboard_ble_name_set_no_swift_pair ,positive 
-3ee7 5806ff06 setarg 0x06ff06 
-3ee8 67e1c75f store 3 ,mem_le_adv_swift_pair 
-3ee9 58000300 setarg 0x000300 
-3eea e7e18005 istore 3 ,contw 
-3eeb 58000080 setarg 0x80 
-3eec e7e08005 istore 1 ,contw 
-
-keyboard_ble_store_le_name:
-3eed 6fe0c26d fetch 1 ,mem_le_name_len 
-3eee 1fe0fe01 increase 1 ,pdata 
-3eef 1fe27200 copy pdata ,loopcnt 
-3ef0 d8c0436d arg mem_le_scan_data ,contr 
-3ef1 20207cdc branch memcpy 
-
-keyboard_ble_name_set_no_swift_pair:
-3ef2 d8a0475f arg mem_le_adv_swift_pair ,contw 
-3ef3 20203eed branch keyboard_ble_store_le_name 
-
-keyboard_compare_addr_init:
-3ef4 d8400000 arg 0 ,temp 
-3ef5 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
-3ef6 c287e81d bbit1 keyboard_enable_otp ,hid_device_compare_addr_store 
-3ef7 d85fffff arg 0xffffff ,temp 
-3ef8 2020681d branch hid_device_compare_addr_store 
-
-keyboard_gpio_init:
-3ef9 20407de6 call clear_wake 
-3efa 6848c90f fetcht 1 ,mem_keyboard_pb_button_gpio 
-3efb 20404f0a call device_gpio_config_input_pu 
-3efc 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
-3efd 2feffe0a isolate1 keyboard_disable_ice ,pdata 
-3efe 2040a3a5 call lpm_write_ice_disable ,true 
-3eff 5800491f setarg mem_key_row_gpio 
-3f00 67e14948 store 2 ,mem_kb_row_ptr 
-3f01 58004927 setarg mem_key_col_gpio 
-3f02 67e1494a store 2 ,mem_kb_col_ptr 
-3f03 5800493c setarg mem_key_excol_gpio 
-3f04 67e1494c store 2 ,mem_kb_excol_ptr 
-3f05 20403f0f call keyboard_key_row_init 
-3f06 6fe1494a fetch 2 ,mem_kb_col_ptr 
-3f07 1fe22400 copy pdata ,regb 
-3f08 df200014 arg 20 ,loopcnt 
-
-keyboard_key_cow_init:
-3f09 e8408012 ifetcht 1 ,regb 
-3f0a 284ffe07 isolate1 7 ,temp 
-3f0b 2440ef0b ncall gpio_set_high_impedance ,true 
-3f0c 1a40a401 increase 1 ,regb 
-3f0d c2003f09 loop keyboard_key_cow_init 
-3f0e 20600000 rtn 
-
-keyboard_key_row_init:
-3f0f 6fe14948 fetch 2 ,mem_kb_row_ptr 
-3f10 1fe22400 copy pdata ,regb 
-3f11 df200008 arg 8 ,loopcnt 
-
-keyboard_key_row_init_loop:
-3f12 e8408012 ifetcht 1 ,regb 
-3f13 18467cff sub temp ,ui_button_gpio_disable ,null 
-3f14 2442bf18 ncall keyboard_gpio_set_low_pullup ,zero 
-3f15 1a40a401 increase 1 ,regb 
-3f16 c2003f12 loop keyboard_key_row_init_loop 
-3f17 202023e1 branch lpm_write_gpio_wakeup 
-
-keyboard_gpio_set_low_pullup:
-3f18 20406f0b call gpio_set_high_impedance 
-3f19 e8408012 ifetcht 1 ,regb 
-3f1a 20206ec0 branch gpio_set_low_pullup 
-
-keyboard_gpio_pu_idle:
-3f1b d8c08070 arg core_gpio_conf ,contr 
-3f1c df200010 arg gpio_number ,loopcnt 
-
-keyboard_gpio_pu_idle_loop:
-3f1d efe08006 ifetch 1 ,contr 
-3f1e 243a3f22 nbranch keyboard_gpio_pu_idle_configured ,blank 
-3f1f 58000040 setarg gpcfg_pullup 
-3f20 18c08bff add contr ,-1 ,contw 
-3f21 e7e08005 istore 1 ,contw 
-
-keyboard_gpio_pu_idle_configured:
-3f22 c2003f1d loop keyboard_gpio_pu_idle_loop 
-3f23 dfe080dc arg core_gpio_conf_hi + gpio_number_ext ,pdata 
-3f24 98c67c00 isub contr ,null 
-3f25 20628000 rtn zero 
-3f26 df200008 arg gpio_number_ext ,loopcnt 
-3f27 d8c080d4 arg core_gpio_conf_hi ,contr 
-3f28 20203f1d branch keyboard_gpio_pu_idle_loop 
-
-keyboard_key_row_wake_set:
-3f29 6fe0c9a0 fetch 1 ,mem_same_keyvalue_timerout_flag 
-3f2a 203a6eac branch gpio_set_wake ,blank 
-3f2b 20206ea5 branch gpio_set_wake_by_current_state 
-
-keyboard_pairing_check_otp_offset:
-3f2c 6fe14abd fetch 2 ,mem_otp_read_retention_offset 
-3f2d 68494abf fetcht 2 ,mem_otp_read_retention_max_size 
-3f2e 98467c00 isub temp ,null 
-3f2f 24610000 nrtn positive 
-3f30 2020233e branch assert 
-
-keyboard_load_otp_info:
-3f31 6fe0c678 fetch 1 ,mem_device_flag 
-3f32 c0003f35 beq mode_24g_device ,keyboard_load_otp_device_info_g24_init 
-3f33 c000bf3f beq mode_bt_device1 ,keyboard_load_otp_device_info_ble_init 
-3f34 20600000 rtn 
-
-keyboard_load_otp_device_info_g24_init:
-3f35 db000008 arg 8 ,regd 
-3f36 6fe14abf fetch 2 ,mem_otp_read_retention_max_size 
-3f37 9b06fc00 idiv regd 
-3f38 20407d64 call wait_div_end 
-3f39 1807fe00 quotient pdata 
-3f3a 67e1064e store 2 ,mem_pdatatemp 
-3f3b dfe01fbc arg 0x1fbc ,pdata 
-3f3c d8400004 arg 4 ,temp 
-3f3d dd600004 arg 4 ,rege 
-3f3e 20203f49 branch keyboard_load_otp_device_info 
-
-keyboard_load_otp_device_info_ble_init:
-3f3f db000020 arg 32 ,regd 
-3f40 6fe14abf fetch 2 ,mem_otp_read_retention_max_size 
-3f41 9b06fc00 idiv regd 
-3f42 20407d64 call wait_div_end 
-3f43 1807fe00 quotient pdata 
-3f44 67e1064e store 2 ,mem_pdatatemp 
-3f45 dfe01fb0 arg 0x1fb0 ,pdata 
-3f46 d8400010 arg 16 ,temp 
-3f47 dd600010 arg 16 ,rege 
-3f48 20203f49 branch keyboard_load_otp_device_info 
-
-keyboard_load_otp_device_info:
-3f49 67e10650 store 2 ,mem_pdatatemp + 2 
-3f4a 60488656 storet 1 ,mem_temp 
-3f4b da204aa5 arg mem_otp_read_retention_memory ,rega 
-3f4c da600000 arg 0 ,regc 
-
-keyboard_load_otp_info_check_page_loop:
-3f4d 6fe10650 fetch 2 ,mem_pdatatemp + 2 
-3f4e 1fe22400 copy pdata ,regb 
-3f4f 6f208656 fetchr loopcnt ,1 ,mem_temp 
-3f50 da204aa5 arg mem_otp_read_retention_memory ,rega 
-3f51 20406b62 call otp_read_data 
-3f52 6fe44aa5 fetch 8 ,mem_otp_read_retention_memory 
-3f53 684c4aad fetcht 8 ,mem_otp_read_retention_memory + 8 
-3f54 9841fe00 ior temp ,pdata 
-3f55 684c4ab5 fetcht 8 ,mem_otp_read_retention_memory + 16 
-3f56 9841fe00 ior temp ,pdata 
-3f57 203a3f5f branch keyboard_load_otp_info_check_first_time ,blank 
-3f58 1a60a601 increase 1 ,regc 
-3f59 6fe1064e fetch 2 ,mem_pdatatemp 
-3f5a 9a667c00 isub regc ,null 
-3f5b 6fe10650 fetch 2 ,mem_pdatatemp + 2 
-3f5c 9b067e00 isub regd ,pdata 
-3f5d 67e10650 store 2 ,mem_pdatatemp + 2 
-3f5e 20203f4d branch keyboard_load_otp_info_check_page_loop 
-
-keyboard_load_otp_info_check_first_time:
-3f5f 1a667c00 sub regc ,0 ,null 
-3f60 2022bf72 branch keyboard_load_otp_info_check_first_time_process ,zero 
-
-keyboard_load_otp_info_check_first_time_loop_init:
-3f61 6fe10650 fetch 2 ,mem_pdatatemp + 2 
-3f62 9b00fe00 iadd regd ,pdata 
-
-keyboard_load_otp_info_check_first_time_loop:
-3f63 9d667e00 isub rege ,pdata 
-3f64 67e10650 store 2 ,mem_pdatatemp + 2 
-3f65 6fe10650 fetch 2 ,mem_pdatatemp + 2 
-3f66 1fe22400 copy pdata ,regb 
-3f67 6f208656 fetchr loopcnt ,1 ,mem_temp 
-3f68 da204aa5 arg mem_otp_read_retention_memory ,rega 
-3f69 20406b62 call otp_read_data 
-3f6a 6fe44aa5 fetch 8 ,mem_otp_read_retention_memory 
-3f6b 684c4aad fetcht 8 ,mem_otp_read_retention_memory + 8 
-3f6c 9841fe00 ior temp ,pdata 
-3f6d 684c4ab5 fetcht 8 ,mem_otp_read_retention_memory + 16 
-3f6e 9841fe00 ior temp ,pdata 
-3f6f 203a3f74 branch keyboard_load_otp_info_check_offset_process ,blank 
-3f70 6fe10650 fetch 2 ,mem_pdatatemp + 2 
-3f71 20203f63 branch keyboard_load_otp_info_check_first_time_loop 
-
-keyboard_load_otp_info_check_first_time_process:
-3f72 6560cabd storer rege ,1 ,mem_otp_read_retention_offset 
-3f73 20600000 rtn 
-
-keyboard_load_otp_info_check_offset_process:
-3f74 58001fc0 setarg 0x1fc0 
-3f75 68490650 fetcht 2 ,mem_pdatatemp + 2 
-3f76 98467e00 isub temp ,pdata 
-3f77 67e14abd store 2 ,mem_otp_read_retention_offset 
-3f78 18427e00 copy temp ,pdata 
-3f79 9d60a400 iadd rege ,regb 
-3f7a 6f208656 fetchr loopcnt ,1 ,mem_temp 
-3f7b da204aa5 arg mem_otp_read_retention_memory ,rega 
-3f7c 20406b62 call otp_read_data 
-3f7d 6fe0c678 fetch 1 ,mem_device_flag 
-3f7e c0003f81 beq mode_24g_device ,keyboard_load_otp_info_check_offset_process_g24 
-3f7f c000bf87 beq mode_bt_device1 ,keyboard_load_otp_info_check_offset_process_ble 
-3f80 20600000 rtn 
-
-keyboard_load_otp_info_check_offset_process_g24:
-3f81 6fe34aa5 fetch 6 ,mem_otp_read_retention_memory 
-3f82 67e246a3 store 4 ,mem_device_24g_addr 
-3f83 6fe246a3 fetch 4 ,mem_device_24g_addr 
-3f84 67e245ff store 4 ,mem_24g_receiver_addr 
-3f85 67e245a6 store 4 ,mem_24g_addr 
-3f86 20600000 rtn 
-
-keyboard_load_otp_info_check_offset_process_ble:
-3f87 6fe0caa5 fetch 1 ,mem_otp_read_retention_memory 
-3f88 1fe67c03 sub pdata ,system_os_mac ,null 
-3f89 24417dcc ncall set_pdata_0 ,positive 
-3f8a 67e0caa1 store 1 ,mem_kb_computer_system 
-3f8b 6fe0caa6 fetch 1 ,mem_otp_read_retention_memory + 1 
-3f8c 67e0c679 store 1 ,mem_device1_type 
-3f8d 6fe34aa7 fetch 6 ,mem_otp_read_retention_memory + 2 
-3f8e 67e3467a store 6 ,mem_device1_addr 
-3f8f 6fe34aad fetch 6 ,mem_otp_read_retention_memory + 8 
-3f90 67e34680 store 6 ,mem_device1_locall_addr 
-3f91 68494ab3 fetcht 2 ,mem_otp_read_retention_memory + 14 
-3f92 180a7e00 random pdata 
-3f93 9840fe00 iadd temp ,pdata 
-3f94 67e146a7 store 2 ,mem_random_addr_increase_count 
-3f95 202067d5 branch hid_device_select_reconn_device 
-
-keyboard_load_eeprom_info:
-3f96 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
-3f97 c31ebf9d bbit0 keyboard_enable_sda_multi_r_line ,keyboard_load_eeprom_device_info_next 
-3f98 6848c440 fetcht 1 ,mem_eeprom_sda_gpio 
-3f99 20404f0a call device_gpio_config_input_pu 
-3f9a 6848c440 fetcht 1 ,mem_eeprom_sda_gpio 
-3f9b 20406ee0 call gpio_get_bit 
-3f9c 2020bf96 branch keyboard_load_eeprom_info ,true 
-
-keyboard_load_eeprom_device_info_next:
-3f9d 20404049 call keyboard_eeprom_init 
-3f9e d8400080 arg 128 ,temp 
-3f9f da204678 arg mem_device_flag ,rega 
-3fa0 da400000 arg keyboard_info_eeprom_offect ,regb 
-3fa1 20406cd7 call iicd_read_eep_data 
-
-keyboard_load_info_check:
-3fa2 449fc007 bpatch patch07_7 ,mem_patch07 
-3fa3 20403fc6 call keyboard_app_initflag_check 
-3fa4 6fe0c678 fetch 1 ,mem_device_flag 
-3fa5 c0003faa beq mode_24g_device ,keyboard_load_info_24g 
-3fa6 c000bfb0 beq mode_bt_device1 ,keyboard_load_info_bt1 
-3fa7 c0013fbb beq mode_bt_device2 ,keyboard_load_info_bt2 
-3fa8 c001bfbf beq mode_bt_device3 ,keyboard_load_info_bt3 
-3fa9 c0023fc3 beq mode_usb_device ,keyboard_load_info_usb 
-
-keyboard_load_info_24g:
-3faa 704aa100 jam system_os_windows ,mem_kb_computer_system 
-3fab 6fe0c6a9 fetch 1 ,mem_keyboard_24g_fn_lock 
-
-keyboard_load_info_fn_lock:
-3fac 1fe67c01 sub pdata ,1 ,null 
-3fad 2442fdcc ncall set_pdata_0 ,zero 
-3fae 67e0ca93 store 1 ,mem_keyboard_fn_lock_flag 
-3faf 20600000 rtn 
-
-keyboard_load_info_bt1:
-3fb0 6fe0c6aa fetch 1 ,mem_keyboard_bt1_fn_lock 
-3fb1 20403fac call keyboard_load_info_fn_lock 
-3fb2 6fe0c6ae fetch 1 ,mem_keyboard_bt1_computer_system 
-3fb3 1fe67c03 sub pdata ,system_os_mac ,null 
-3fb4 24417dcc ncall set_pdata_0 ,positive 
-
-keyboard_load_info_bt:
-3fb5 67e0caa1 store 1 ,mem_kb_computer_system 
-3fb6 684946a7 fetcht 2 ,mem_random_addr_increase_count 
-3fb7 180a7e00 random pdata 
-3fb8 9840fe00 iadd temp ,pdata 
-3fb9 67e146a7 store 2 ,mem_random_addr_increase_count 
-3fba 20600000 rtn 
-
-keyboard_load_info_bt2:
-3fbb 6fe0c6ab fetch 1 ,mem_keyboard_bt2_fn_lock 
-3fbc 20403fac call keyboard_load_info_fn_lock 
-3fbd 6fe0c6af fetch 1 ,mem_keyboard_bt2_computer_system 
-3fbe 20203fb5 branch keyboard_load_info_bt 
-
-keyboard_load_info_bt3:
-3fbf 6fe0c6ac fetch 1 ,mem_keyboard_bt3_fn_lock 
-3fc0 20403fac call keyboard_load_info_fn_lock 
-3fc1 6fe0c6b0 fetch 1 ,mem_keyboard_bt3_computer_system 
-3fc2 20203fb5 branch keyboard_load_info_bt 
-
-keyboard_load_info_usb:
-3fc3 704aa100 jam system_os_windows ,mem_kb_computer_system 
-3fc4 6fe0c6ad fetch 1 ,mem_keyboard_usb_fn_lock 
-3fc5 20203fac branch keyboard_load_info_fn_lock 
-
-keyboard_app_initflag_check:
-3fc6 6fe146a0 fetch 2 ,mem_store_flag 
-3fc7 d840aa55 arg eeprom_init_flag ,temp 
-3fc8 98467c00 isub temp ,null 
-3fc9 2022e7cf branch hid_device_load_device_info ,zero 
-3fca 604946a0 storet 2 ,mem_store_flag 
-3fcb 204067f8 call hid_device_ble_init_address 
-3fcc 6fe0c717 fetch 1 ,mem_device_flag_temp 
-3fcd 67e0c678 store 1 ,mem_device_flag 
-3fce 6fe245fb fetch 4 ,mem_24g_fast_conn_addr 
-3fcf 67e245ff store 4 ,mem_24g_receiver_addr 
-3fd0 67e245a6 store 4 ,mem_24g_addr 
-3fd1 6fe0caa2 fetch 1 ,mem_keyboard_device_info_store_flag 
-3fd2 79207e00 set1 keyboard_store_eepromm_flag_all_info ,pdata 
-3fd3 67e0caa2 store 1 ,mem_keyboard_device_info_store_flag 
-3fd4 20203fd7 branch keyboard_store_device_info 
-
-keyboard_load_flash_info:
-3fd5 204067b6 call hid_device_load_flash_info_check 
-3fd6 20203fa2 branch keyboard_load_info_check 
-
-keyboard_store_device_info:
-3fd7 44a04008 bpatch patch08_0 ,mem_patch08 
-3fd8 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
-3fd9 c287bfdd bbit1 keyboard_enable_otp ,keyboard_store_otp_device_info 
-3fda c2874004 bbit1 keyboard_enable_eeprom ,keyboard_store_eeprom_device_info 
-3fdb c28667bb bbit1 keyboard_enable_flash ,hid_device_store_flash_device_info 
-3fdc 20600000 rtn 
-
-keyboard_store_otp_device_info:
-3fdd 6fe0c678 fetch 1 ,mem_device_flag 
-3fde c0003fe1 beq mode_24g_device ,keyboard_store_otp_device_info_g24 
-3fdf c000bfeb beq mode_bt_device1 ,keyboard_store_otp_device_info_ble 
-3fe0 20600000 rtn 
-
-keyboard_store_otp_device_info_g24:
-3fe1 68494abd fetcht 2 ,mem_otp_read_retention_offset 
-3fe2 58001fc0 setarg 0x1fc0 
-3fe3 98462400 isub temp ,regb 
-3fe4 da2046a3 arg mem_device_24g_addr ,rega 
-3fe5 df200004 arg 4 ,loopcnt 
-3fe6 20406b33 call otp_write 
-3fe7 68494abd fetcht 2 ,mem_otp_read_retention_offset 
-3fe8 18408404 increase 4 ,temp 
-3fe9 60494abd storet 2 ,mem_otp_read_retention_offset 
-3fea 20600000 rtn 
-
-keyboard_store_otp_device_info_ble:
-3feb 704aa301 jam 1 ,mem_otp_store_device_info_flag 
-3fec 6fe0caa4 fetch 1 ,mem_otp_store_system_flag 
-3fed 207a0000 rtn blank 
-
-keyboard_wirte_otp_ble:
-3fee 68494abd fetcht 2 ,mem_otp_read_retention_offset 
-3fef 58001fc0 setarg 0x1fc0 
-3ff0 98467e00 isub temp ,pdata 
-3ff1 67e1064e store 2 ,mem_pdatatemp 
-3ff2 1fe22400 copy pdata ,regb 
-3ff3 da204aa1 arg mem_kb_computer_system ,rega 
-3ff4 df200001 arg 1 ,loopcnt 
-3ff5 20406b33 call otp_write 
-3ff6 6fe1064e fetch 2 ,mem_pdatatemp 
-3ff7 1fe0a401 add pdata ,1 ,regb 
-3ff8 da204679 arg mem_device1_type ,rega 
-3ff9 df20000d arg 13 ,loopcnt 
-3ffa 20406b33 call otp_write 
-3ffb 6fe1064e fetch 2 ,mem_pdatatemp 
-3ffc 1fe0a40e add pdata ,14 ,regb 
-3ffd da2046a7 arg mem_random_addr_increase_count ,rega 
-3ffe df200002 arg 2 ,loopcnt 
-3fff 20406b33 call otp_write 
-4000 68494abd fetcht 2 ,mem_otp_read_retention_offset 
-4001 18408410 increase 16 ,temp 
-4002 60494abd storet 2 ,mem_otp_read_retention_offset 
-4003 20600000 rtn 
-
-keyboard_store_eeprom_device_info:
-4004 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
-4005 c31ec00b bbit0 keyboard_enable_sda_multi_r_line ,keyboard_store_eeprom_device_info_next 
-4006 6848c440 fetcht 1 ,mem_eeprom_sda_gpio 
-4007 20404f0a call device_gpio_config_input_pu 
-4008 6848c440 fetcht 1 ,mem_eeprom_sda_gpio 
-4009 20406ee0 call gpio_get_bit 
-400a 2020c4b9 branch keyboard_store_device_info_delay ,true 
-
-keyboard_store_eeprom_device_info_next:
-400b 20404049 call keyboard_eeprom_init 
-
-keyboard_store_eeprom_device_info_typer_check:
-400c 6fe0caa2 fetch 1 ,mem_keyboard_device_info_store_flag 
-400d c2804014 bbit1 keyboard_store_eepromm_flag_all_info ,keyboard_store_eeprom_device_all_info 
-400e c280c019 bbit1 keyboard_store_eepromm_flag_ble_addr ,keyboard_store_eeprom_device_info_ble_addr 
-400f c2814025 bbit1 keyboard_store_eepromm_flag_g24_addr ,keyboard_store_eeprom_device_info_g24_addr 
-4010 c281c02d bbit1 keyboard_store_eepromm_flag_fn_lock ,keyboard_store_eeprom_device_info_fn_lock 
-4011 c2824035 bbit1 keyboard_store_eepromm_flag_computer_system ,keyboard_store_eeprom_device_info_device_os 
-4012 c282c03d bbit1 keyboard_store_eepromm_flag_rgb_type ,keyboard_store_eeprom_device_info_rgb_tpye 
-4013 20600000 rtn 
-
-keyboard_store_eeprom_device_all_info:
-4014 704aa200 jam 0 ,mem_keyboard_device_info_store_flag 
-4015 d8400080 arg 128 ,temp 
-4016 da204678 arg mem_device_flag ,rega 
-4017 da400000 arg keyboard_info_eeprom_offect ,regb 
-4018 20206cc9 branch iicd_write_protect_eep_data 
-
-keyboard_store_eeprom_device_info_ble_addr:
-4019 6fe0caa2 fetch 1 ,mem_keyboard_device_info_store_flag 
-401a 793ffe01 set0 keyboard_store_eepromm_flag_ble_addr ,pdata 
-401b 67e0caa2 store 1 ,mem_keyboard_device_info_store_flag 
-401c d8400027 arg 39 ,temp 
-401d da204679 arg mem_device1_type ,rega 
-401e da400001 arg keyboard_ble_addr_eeprom_offect ,regb 
-401f 20406cc9 call iicd_write_protect_eep_data 
-4020 d8400002 arg 2 ,temp 
-4021 da2046a7 arg mem_random_addr_increase_count ,rega 
-4022 da40002f arg keyboard_random_addr_count_eeprom_offset ,regb 
-4023 20406cc9 call iicd_write_protect_eep_data 
-4024 2020400c branch keyboard_store_eeprom_device_info_typer_check 
-
-keyboard_store_eeprom_device_info_g24_addr:
-4025 6fe0caa2 fetch 1 ,mem_keyboard_device_info_store_flag 
-4026 793ffe02 set0 keyboard_store_eepromm_flag_g24_addr ,pdata 
-4027 67e0caa2 store 1 ,mem_keyboard_device_info_store_flag 
-4028 d8400004 arg 4 ,temp 
-4029 da2046a3 arg mem_device_24g_addr ,rega 
-402a da40002b arg keyboard_g24_addr_eeprom_offect ,regb 
-402b 20406cc9 call iicd_write_protect_eep_data 
-402c 2020400c branch keyboard_store_eeprom_device_info_typer_check 
-
-keyboard_store_eeprom_device_info_fn_lock:
-402d 6fe0caa2 fetch 1 ,mem_keyboard_device_info_store_flag 
-402e 793ffe03 set0 keyboard_store_eepromm_flag_fn_lock ,pdata 
-402f 67e0caa2 store 1 ,mem_keyboard_device_info_store_flag 
-4030 d8400005 arg 5 ,temp 
-4031 da2046a9 arg mem_keyboard_24g_fn_lock ,rega 
-4032 da400031 arg keyboard_fn_flag_eeprom_offset ,regb 
-4033 20406cc9 call iicd_write_protect_eep_data 
-4034 2020400c branch keyboard_store_eeprom_device_info_typer_check 
-
-keyboard_store_eeprom_device_info_device_os:
-4035 6fe0caa2 fetch 1 ,mem_keyboard_device_info_store_flag 
-4036 793ffe04 set0 keyboard_store_eepromm_flag_computer_system ,pdata 
-4037 67e0caa2 store 1 ,mem_keyboard_device_info_store_flag 
-4038 d8400003 arg 3 ,temp 
-4039 da2046ae arg mem_keyboard_bt1_computer_system ,rega 
-403a da400036 arg keyboard_computer_system_eeprom_offset ,regb 
-403b 20406cc9 call iicd_write_protect_eep_data 
-403c 2020400c branch keyboard_store_eeprom_device_info_typer_check 
-
-keyboard_store_eeprom_device_info_rgb_tpye:
-403d 6fe0caa2 fetch 1 ,mem_keyboard_device_info_store_flag 
-403e 793ffe05 set0 keyboard_store_eepromm_flag_rgb_type ,pdata 
-403f 67e0caa2 store 1 ,mem_keyboard_device_info_store_flag 
-4040 d8400004 arg 4 ,temp 
-4041 da2046b1 arg mem_backlight_on_flag ,rega 
-4042 da400039 arg keyboard_rgb_tpye_offset ,regb 
-4043 20406cc9 call iicd_write_protect_eep_data 
-4044 2020400c branch keyboard_store_eeprom_device_info_typer_check 
-
-keyboard_store_device_number:
-4045 d8400001 arg 1 ,temp 
-4046 da204678 arg mem_device_flag ,rega 
-4047 da400000 arg keyboard_device_number_eeprom_offect ,regb 
-4048 20206cc9 branch iicd_write_protect_eep_data 
-
-keyboard_eeprom_init:
-4049 20406cb2 call iicd_read_init_pin 
-404a 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
-404b 2feffe0d isolate1 keyboard_enable_2k_eeprom ,pdata 
-404c 2020ecb7 branch set_eeprom_size_2k ,true 
-404d 20206cba branch clear_eeprom_size_2k 
-
-keyboard_cb_fuction:
-404e 44a0c008 bpatch patch08_1 ,mem_patch08 
-404f 580068c4 setarg hid_device_before_lpm_set 
-4050 67e143f2 store 2 ,mem_cb_before_lpm_sleep 
-4051 58004862 setarg keyboard_24g_package_data 
-4052 67e14609 store 2 ,mem_cb_24g_transmit_data 
-4053 58004871 setarg keyboard_24g_search_dongle 
-4054 67e1460b store 2 ,mem_cb_24g_search_receiver 
-4055 5800478f setarg keyboard_lpm_before_common 
-4056 67e1460d store 2 ,mem_cb_24g_lpm_before 
-4057 58004875 setarg keyboard_le 
-4058 67e143e2 store 2 ,mem_cb_le_process 
-4059 580047aa setarg keyboard_process_lpm_before 
-405a 67e143e0 store 2 ,mem_cb_before_lpm 
-405b 58004066 setarg keyboard_priority_bb_event 
-405c 67e143e6 store 2 ,mem_cb_bb_event_process 
-405d 580042dd setarg keyboard_idle 
-405e 67e143e4 store 2 ,mem_cb_idle_process 
-405f 580047ac setarg keyboard_before_hibernate 
-4060 67e143de store 2 ,mem_cb_before_hibernate 
-4061 58005420 setarg mouse_le_bb_event_connect_complete 
-4062 67e143e8 store 2 ,mem_cb_att_write 
-4063 58004075 setarg keyboard_bb_event_timer 
-4064 67e143ec store 2 ,mem_cb_event_timer 
-4065 202068cb branch hid_device_cb_fuction 
-
-keyboard_priority_bb_event:
-4066 44a14008 bpatch patch08_2 ,mem_patch08 
-4067 1a627e00 copy regc ,pdata 
-4068 c01948b3 beq bt_evt_le_start_enc ,keyboard_le_ll_start_encryt 
-4069 c02048bb beq bt_evt_le_parse_conn_papa_update_rsp ,keyboard_le_conn_param_update_rsp_recieved 
-406a c00ac8a2 beq bt_evt_le_disconnected ,keyboard_le_bb_disconnected 
-406b c00a4893 beq bt_evt_le_connected ,keyboard_le_bb_event_connected 
-406c c00848c0 beq bt_evt_button_long_pressed ,keyboard_bb_event_discovery_btn 
-406d c018d406 beq bt_evt_le_pairing_success ,mouse_le_pairing_success 
-406e c014d408 beq bt_evt_le_enc_info ,mouse_le_enc_info 
-406f c01f379e beq bt_evt_le_pairing_complete ,app_ble_store_reconn_info 
-4070 c0225428 beq bt_evt_le_parse_conn_param_accepted ,mouse_le_parse_conn_param_accepted 
-4071 c01cc7b8 beq bt_evt_24g_pairing_complete ,keyboard_24g_pairing_complete 
-4072 c01e47ca beq bt_evt_24g_attempt_success ,keyboard_24g_attempt_success 
-4073 c01d47e6 beq bt_evt_24g_attempt_fail ,keyboard_24g_attempt_fail 
-4074 20600000 rtn 
-
-keyboard_bb_event_timer:
-4075 44a1c008 bpatch patch08_3 ,mem_patch08 
-4076 204040e0 call keyboard_low_voltage_param_set 
-4077 204040cc call keyboard_adc_read 
-4078 204040dd call keyboard_adc_gpio_set_before_hibernate 
-4079 20404100 call keyboard_low_voltage_led_timer 
-407a 20404186 call keyboard_num_capslock_led_on_timer 
-407b 204041ab call keyboard_rgb_on_timer 
-407c 20404131 call keyboard_device_poweron_timer 
-407d 2040413e call keyboard_mode_led_timer 
-407e 20404146 call keyboard_device_pair_led_timer 
-407f 20404267 call keyboard_key_press_timer 
-4080 2040428f call keyboard_commbination_key_process 
-4081 204042c4 call keyboard_same_key_long_press_timer 
-4082 2040326c call g24_pair_timeout_timer 
-4083 20403507 call g24_reconn_timeout_timer 
-4084 204058f6 call mouse_24g_long_sleep_param_update_timer 
-4085 204042b5 call keyboard_24g_repeat_send_data 
-4086 204042bf call keyboard_24g_led_status_get_timer 
-4087 20404299 call keyboard_check_discovery_timeout_timer 
-4088 204042a4 call keyboard_check_direct_timeout_timer 
-4089 2040550d call mouse_le_enable_att_list_timer 
-408a 204042ad call keyboard_le_battery_updata_timer 
-408b 20405510 call mouse_le_send_smp_security_request_timer 
-408c 204042b2 call keyboard_le_send_conn_param_update_timer 
-408d 204042a1 call keyboard_le_auto_recognize_timer 
-408e 20405527 call mouse_current_mult_update_timer 
-408f 2040429e call keyboard_store_information_delay_timer 
-4090 204042c9 call keyboard_commbination_delay_release_timer 
-4091 204042cc call keyboard_usb_updata_timer 
-4092 202042d5 branch keyboard_check_no_data_timeout_timer 
-
-keyboard_adc_vol_init:
-4093 44a24008 bpatch patch08_4 ,mem_patch08 
-4094 6fe0c8b1 fetch 1 ,mem_keyboard_power_type 
-4095 c0004098 beq keyboard_battary_1v5 ,keyboard_adc_vol_1v5_init 
-4096 c000c09d beq keyboard_battary_3v0 ,keyboard_adc_vol_3v0_init 
-4097 c00140a2 beq keyboard_battary_4v2 ,keyboard_adc_vol_4v2_init 
-
-keyboard_adc_vol_1v5_init:
-4098 58560094 setarg 0x560094 
-4099 67e1c8ab store 3 ,mem_keyboard_vdd_full_vol 
-409a 58006d00 setarg 0x006d00 
-409b e7e18005 istore 3 ,contw 
-409c 20600000 rtn 
-
-keyboard_adc_vol_3v0_init:
-409d 58d4012c setarg 0xd4012c 
-409e 67e1c8ab store 3 ,mem_keyboard_vdd_full_vol 
-409f 5800e600 setarg 0x00e600 
-40a0 e7e18005 istore 3 ,contw 
-40a1 20600000 rtn 
-
-keyboard_adc_vol_4v2_init:
-40a2 5ac01270 setarg 0x2c01270 
-40a3 67e1c8ab store 3 ,mem_keyboard_vdd_full_vol 
-40a4 58014001 setarg 0x014001 
-40a5 e7e18005 istore 3 ,contw 
-40a6 20600000 rtn 
-
-keyboard_adc_init:
-40a7 204040a9 call keyboard_adc_gpio_set 
-40a8 202040e0 branch keyboard_low_voltage_param_set 
-
-keyboard_adc_gpio_set:
-40a9 6fe0c41d fetch 1 ,mem_adc_config_flag 
-40aa c1810000 rtnne adc_config_gpio 
-40ab 6fe0c41e fetch 1 ,mem_adc_channel 
-40ac 204040b2 call keyboard_channel_set_gpio 
-40ad 18427e00 copy temp ,pdata 
-40ae 67e0c64c store 1 ,mem_adc_channel_gpio 
-40af 79207e07 set1 gpio_active_bit ,pdata 
-40b0 d8400000 arg gpcfg_input ,temp 
-40b1 20206f1c branch gpio_config_function 
-
-keyboard_channel_set_gpio:
-40b2 d8400012 arg 18 ,temp 
-40b3 c1030000 rtneq 0x6 
-40b4 d840000a arg 10 ,temp 
-40b5 c1038000 rtneq 0x7 
-40b6 d8400009 arg 9 ,temp 
-40b7 c1040000 rtneq 0x8 
-40b8 d840000c arg 12 ,temp 
-40b9 c1048000 rtneq 0x9 
-40ba d8400006 arg 6 ,temp 
-40bb c1050000 rtneq 0xa 
-40bc d8400014 arg 20 ,temp 
-40bd c1058000 rtneq 0xb 
-40be d8400015 arg 21 ,temp 
-40bf c1060000 rtneq 0xc 
-40c0 d8400016 arg 22 ,temp 
-40c1 c1068000 rtneq 0xd 
-40c2 d840000d arg 13 ,temp 
-40c3 20600000 rtn 
-
-keyboard_adc_read_start:
-40c4 204040a7 call keyboard_adc_init 
-40c5 20406fb2 call enable_adc 
-40c6 20406f8e call vdd_calculate_by_mode 
-40c7 1fe6fc0a div pdata ,10 
-40c8 20407d61 call get_div_result 
-40c9 67e1464a store 2 ,mem_device_vdd_now_vol 
-40ca da204644 arg mem_device_vdd_calculate_set ,rega 
-40cb 20204ec4 branch mouse_adc_bat_percent_lowpower_out 
-
-keyboard_adc_read:
-40cc 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
-40cd c4058000 rtnbit0 keyboard_enable_adc 
-40ce 204040c4 call keyboard_adc_read_start 
-
-keyboard_adc_data_process:
-40cf 6fe0c422 fetch 1 ,mem_adc_power_flag 
-40d0 c280c7af bbit1 1 ,keyboard_power_down 
-40d1 c30040d6 bbit0 0 ,keyboard_adc_no_low_voltage 
-40d2 70464e01 jam 1 ,mem_device_adc_last_low_voltage_flag 
-40d3 202040d4 branch keyboard_adc_low_voltage 
-
-keyboard_adc_low_voltage:
-40d4 d8e00002 arg keyboard_low_voltage_flag ,queue 
-40d5 20204a25 branch keyboard_enable_function_flag 
-
-keyboard_adc_no_low_voltage:
-40d6 d8e00002 arg keyboard_low_voltage_flag ,queue 
-40d7 20404a29 call keyboard_disable_function_flag 
-40d8 704ac60c jam 12 ,mem_keyboard_adc_low_volatage_led_timer_count 
-40d9 6fe0c64e fetch 1 ,mem_device_adc_last_low_voltage_flag 
-40da 207a0000 rtn blank 
-40db 70464e00 jam 0 ,mem_device_adc_last_low_voltage_flag 
-40dc 20204184 branch keyboard_low_voltage_led_off 
-
-keyboard_adc_gpio_set_before_hibernate:
-40dd 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
-40de c4058000 rtnbit0 keyboard_enable_adc 
-40df 20204e5e branch mouse_adc_gpio_set_before_hibernate + 2 
-
-keyboard_low_voltage_param_set:
-40e0 6fe348ab fetch 6 ,mem_keyboard_vdd_full_vol 
-40e1 67e34644 store 6 ,mem_device_vdd_full_vol 
-40e2 6fe0c64e fetch 1 ,mem_device_adc_last_low_voltage_flag 
-40e3 203a40e8 branch keyboard_low_voltage_param_reset ,blank 
-40e4 6fe148af fetch 2 ,mem_keyboard_vdd_low_vol 
-40e5 1fe0fe05 increase 5 ,pdata 
-40e6 67e14648 store 2 ,mem_device_vdd_low_vol 
-40e7 20600000 rtn 
-
-keyboard_low_voltage_param_reset:
-40e8 6fe148af fetch 2 ,mem_keyboard_vdd_low_vol 
-40e9 67e14648 store 2 ,mem_device_vdd_low_vol 
-40ea 20600000 rtn 
-
-keyboard_low_vol_mult_set:
-40eb 6fe0c678 fetch 1 ,mem_device_flag 
-40ec c08040f3 bne mode_24g_device ,keyboard_low_vol_mult_ble_set 
-40ed 204035d3 call g24_interval_param_8ms 
-40ee 585d4800 setarg 0x5d4800 
-40ef 67e2462a store 4 ,mem_24g_long_sleep_set1 
-40f0 6fe0c422 fetch 1 ,mem_adc_power_flag 
-40f1 c4000000 rtnbit0 0 
-40f2 202058fc branch mouse_24g_long_sleep_set 
-
-keyboard_low_vol_mult_ble_set:
-40f3 580000a0 setarg 160 
-40f4 204040f9 call keyboard_mult_auto_get 
-40f5 6fe0c422 fetch 1 ,mem_adc_power_flag 
-40f6 c4000000 rtnbit0 0 
-40f7 58000050 setarg 80 
-40f8 202040f9 branch keyboard_mult_auto_get 
-
-keyboard_mult_auto_get:
-40f9 684942d5 fetcht 2 ,mem_le_interval_min 
-40fa 9846fc00 idiv temp 
-40fb 20407d61 call get_div_result 
-40fc 67e0c88b store 1 ,mem_lpm_mult_init 
-40fd 6fe0c73e fetch 1 ,mem_mouse_current_mult_timer 
-40fe 203a552a branch mouse_current_mult_reinit ,blank 
-40ff 20600000 rtn 
-
-keyboard_low_voltage_led_timer:
-4100 704acb00 jam 0 ,mem_keyboard_low_volatage_led_blink_new_data_enable 
-4101 6fe14750 fetch 2 ,mem_device_discovery_timer 
-4102 247a0000 nrtn blank 
-4103 6fe145ef fetch 2 ,mem_24g_pair_timeout 
-4104 247a0000 nrtn blank 
-4105 6fe145f5 fetch 2 ,mem_24g_reconn_timeout 
-4106 247a0000 nrtn blank 
-4107 6fe0cac2 fetch 1 ,mem_keyboard_device_poweron_timer 
-4108 247a0000 nrtn blank 
-4109 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
-410a c4058000 rtnbit0 keyboard_enable_adc 
-410b c4148000 rtnbit0 keyboard_enable_low_led 
-410c c4010000 rtnbit0 keyboard_low_voltage_flag 
-410d c295411b bbit1 keyboard_enable_low_voltage_led_blink_n_second ,keyboard_low_voltage_led_blink_new_data 
-410e 44a2c008 bpatch patch08_5 ,mem_patch08 
-410f 6fe0cac6 fetch 1 ,mem_keyboard_adc_low_volatage_led_timer_count 
-4110 1fe0fe01 increase 1 ,pdata 
-4111 67e0cac6 store 1 ,mem_keyboard_adc_low_volatage_led_timer_count 
-4112 1fe67c14 sub pdata ,20 ,null 
-4113 24414119 ncall keyboard_adc_low_volatage_led_timer_count_clean ,positive 
-4114 c0014182 beq 2 ,keyboard_low_voltage_led_on 
-4115 c0024184 beq 4 ,keyboard_low_voltage_led_off 
-4116 c0034182 beq 6 ,keyboard_low_voltage_led_on 
-4117 c0044184 beq 8 ,keyboard_low_voltage_led_off 
-4118 20600000 rtn 
-
-keyboard_adc_low_volatage_led_timer_count_clean:
-4119 704ac601 jam 1 ,mem_keyboard_adc_low_volatage_led_timer_count 
-411a 20204184 branch keyboard_low_voltage_led_off 
-
-keyboard_low_voltage_led_blink_new_data:
-411b 6fe1471e fetch 2 ,mem_device_no_data_timeout 
-411c 68494741 fetcht 2 ,mem_device_no_data_timer 
-411d 98460400 isub temp ,temp 
-411e 6fe14ac7 fetch 2 ,mem_adc_low_volatage_led_blink_timer 
-411f 98467c00 isub temp ,null 
-4120 24214184 nbranch keyboard_low_voltage_led_off ,positive 
-4121 704acb01 jam 1 ,mem_keyboard_low_volatage_led_blink_new_data_enable 
-4122 6fe0cac9 fetch 1 ,mem_keyboard_low_volatage_led_flag 
-4123 1fe0fe01 increase 1 ,pdata 
-4124 67e0cac9 store 1 ,mem_keyboard_low_volatage_led_flag 
-4125 6848caca fetcht 1 ,mem_keyboard_low_volatage_led_blink_count 
-4126 18408401 increase 1 ,temp 
-4127 98467c00 isub temp ,null 
-4128 24214182 nbranch keyboard_low_voltage_led_on ,positive 
-4129 20404184 call keyboard_low_voltage_led_off 
-412a 6fe0cac9 fetch 1 ,mem_keyboard_low_volatage_led_flag 
-412b 6848caca fetcht 1 ,mem_keyboard_low_volatage_led_blink_count 
-412c 184f8402 mul32 temp ,2 ,temp 
-412d 98467c00 isub temp ,null 
-412e 24628000 nrtn zero 
-412f 704ac900 jam 0 ,mem_keyboard_low_volatage_led_flag 
-4130 20600000 rtn 
-
-keyboard_device_poweron_timer:
-4131 6fe0cac2 fetch 1 ,mem_keyboard_device_poweron_timer 
-4132 207a0000 rtn blank 
-4133 1fe0ffff increase -1 ,pdata 
-4134 67e0cac2 store 1 ,mem_keyboard_device_poweron_timer 
-4135 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
-4136 c2944139 bbit1 keyboard_enable_030_power_led ,keyboard_device_poweron_030_led 
-4137 203a4166 branch keyboard_device_led_off ,blank 
-4138 2020416c branch keyboard_device_led_on 
-
-keyboard_device_poweron_030_led:
-4139 203a413c branch keyboard_power_led_off ,blank 
-
-keyboard_power_led_on:
-413a 6848c916 fetcht 1 ,mem_keyboard_power_led_gpio 
-413b 20206ef1 branch gpio_out_active 
-
-keyboard_power_led_off:
-413c 6848c916 fetcht 1 ,mem_keyboard_power_led_gpio 
-413d 20206eed branch gpio_out_inactive 
-
-keyboard_mode_led_timer:
-413e 6fe14741 fetch 2 ,mem_device_no_data_timer 
-413f 207a0000 rtn blank 
-4140 6fe0cac5 fetch 1 ,mem_keyboard_mode_led_on_timer 
-4141 207a0000 rtn blank 
-4142 1fe0ffff increase -1 ,pdata 
-4143 67e0cac5 store 1 ,mem_keyboard_mode_led_on_timer 
-4144 c280416c bbit1 0 ,keyboard_device_led_on 
-4145 20204166 branch keyboard_device_led_off 
-
-keyboard_device_pair_led_timer:
-4146 6fe0c678 fetch 1 ,mem_device_flag 
-4147 c000414b beq mode_24g_device ,keyboard_device_24g_pair_led 
-4148 6fe14750 fetch 2 ,mem_device_discovery_timer 
-4149 207a0000 rtn blank 
-414a 2020414d branch keyboard_device_pair_led 
-
-keyboard_device_24g_pair_led:
-414b 6fe145ef fetch 2 ,mem_24g_pair_timeout 
-414c 207a0000 rtn blank 
-
-keyboard_device_pair_led:
-414d 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
-414e 2fec0028 isolate0 keyboard_enable_030_power_led ,pdata 
-414f 2040c15f call keyboard_device_clear_power_timer ,true 
-4150 6fe0cacc fetch 1 ,mem_keyboard_pair_led_flag 
-4151 1fe0fe01 increase 1 ,pdata 
-4152 67e0cacc store 1 ,mem_keyboard_pair_led_flag 
-4153 6848cacd fetcht 1 ,mem_keyboard_pair_led_blink_count 
-4154 18408401 increase 1 ,temp 
-4155 98467c00 isub temp ,null 
-4156 2421416c nbranch keyboard_device_led_on ,positive 
-4157 20404166 call keyboard_device_led_off 
-4158 6fe0cacc fetch 1 ,mem_keyboard_pair_led_flag 
-4159 6848cacd fetcht 1 ,mem_keyboard_pair_led_blink_count 
-415a 184f8402 mul32 temp ,2 ,temp 
-415b 98467c00 isub temp ,null 
-415c 24628000 nrtn zero 
-415d 704acc00 jam 0 ,mem_keyboard_pair_led_flag 
-415e 20600000 rtn 
-
-keyboard_device_clear_power_timer:
-415f 704ac200 jam 0 ,mem_keyboard_device_poweron_timer 
-4160 20600000 rtn 
-
-keyboard_device_led_all_off:
-4161 44a34008 bpatch patch08_6 ,mem_patch08 
-4162 2040413c call keyboard_power_led_off 
-4163 20404166 call keyboard_device_led_off 
-4164 2040419d call keyboard_numlock_led_off 
-4165 202041a3 branch keyboard_capslock_led_off 
-
-keyboard_device_led_off:
-4166 6fe0c678 fetch 1 ,mem_device_flag 
-4167 c0004172 beq mode_24g_device ,keyboard_device_24g_led_off 
-4168 c000c174 beq mode_bt_device1 ,keyboard_device_bt1_led_off 
-4169 c0014176 beq mode_bt_device2 ,keyboard_device_bt2_led_off 
-416a c001c178 beq mode_bt_device3 ,keyboard_device_bt3_led_off 
-416b 20600000 rtn 
-
-keyboard_device_led_on:
-416c 6fe0c678 fetch 1 ,mem_device_flag 
-416d c000417a beq mode_24g_device ,keyboard_device_24g_led_on 
-416e c000c17c beq mode_bt_device1 ,keyboard_device_bt1_led_on 
-416f c001417e beq mode_bt_device2 ,keyboard_device_bt2_led_on 
-4170 c001c180 beq mode_bt_device3 ,keyboard_device_bt3_led_on 
-4171 20600000 rtn 
-
-keyboard_device_24g_led_off:
-4172 6848c918 fetcht 1 ,mem_keyboard_24g_led_gpio 
-4173 20206eed branch gpio_out_inactive 
-
-keyboard_device_bt1_led_off:
-4174 6848c919 fetcht 1 ,mem_keyboard_bt1_led_gpio 
-4175 20206eed branch gpio_out_inactive 
-
-keyboard_device_bt2_led_off:
-4176 6848c91a fetcht 1 ,mem_keyboard_bt2_led_gpio 
-4177 20206eed branch gpio_out_inactive 
-
-keyboard_device_bt3_led_off:
-4178 6848c91b fetcht 1 ,mem_keyboard_bt3_led_gpio 
-4179 20206eed branch gpio_out_inactive 
-
-keyboard_device_24g_led_on:
-417a 6848c918 fetcht 1 ,mem_keyboard_24g_led_gpio 
-417b 20206ef1 branch gpio_out_active 
-
-keyboard_device_bt1_led_on:
-417c 6848c919 fetcht 1 ,mem_keyboard_bt1_led_gpio 
-417d 20206ef1 branch gpio_out_active 
-
-keyboard_device_bt2_led_on:
-417e 6848c91a fetcht 1 ,mem_keyboard_bt2_led_gpio 
-417f 20206ef1 branch gpio_out_active 
-
-keyboard_device_bt3_led_on:
-4180 6848c91b fetcht 1 ,mem_keyboard_bt3_led_gpio 
-4181 20206ef1 branch gpio_out_active 
-
-keyboard_low_voltage_led_on:
-4182 6848c917 fetcht 1 ,mem_keyboard_low_voltage_alarm_gpio 
-4183 20206ef1 branch gpio_out_active 
-
-keyboard_low_voltage_led_off:
-4184 6848c917 fetcht 1 ,mem_keyboard_low_voltage_alarm_gpio 
-4185 20206eed branch gpio_out_inactive 
-
-keyboard_num_capslock_led_on_timer:
-4186 6fe0cace fetch 1 ,mem_usb_vdd_status_current 
-4187 c02d4193 beq usb_interface_insert ,keyboard_usb_led_check 
-4188 6fe14741 fetch 2 ,mem_device_no_data_timer 
-4189 207a0000 rtn blank 
-418a 6fe1471e fetch 2 ,mem_device_no_data_timeout 
-418b 68494741 fetcht 2 ,mem_device_no_data_timer 
-418c 98460400 isub temp ,temp 
-418d 6fe14ac3 fetch 2 ,mem_keyboard_num_caps_scoll_led_on_timer 
-418e 98467e00 isub temp ,pdata 
-418f 20214196 branch keyboard_num_cap_scoll_led_check ,positive 
-4190 2040419d call keyboard_numlock_led_off 
-4191 204041a9 call keyboard_scrolllock_led_off 
-4192 202041a3 branch keyboard_capslock_led_off 
-
-keyboard_usb_led_check:
-4193 6fe0c638 fetch 1 ,mem_24g_led_status 
-4194 67e0c70d store 1 ,mem_keyboard_led_status 
-4195 20204196 branch keyboard_num_cap_scoll_led_check 
-
-keyboard_num_cap_scoll_led_check:
-4196 20404199 call keyboard_numlock_led_check_on 
-4197 204041a5 call keyboard_scrolllock_led_check_on 
-4198 2020419f branch keyboard_capslock_led_check_on 
-
-keyboard_numlock_led_check_on:
-4199 6fe0c70d fetch 1 ,mem_keyboard_led_status 
-419a c300419d bbit0 kb_pc_keysel_numlock ,keyboard_numlock_led_off 
-
-keyboard_numlock_led_on:
-419b 6848c913 fetcht 1 ,mem_keyboard_num_led_gpio 
-419c 20206ef1 branch gpio_out_active 
-
-keyboard_numlock_led_off:
-419d 6848c913 fetcht 1 ,mem_keyboard_num_led_gpio 
-419e 20206eed branch gpio_out_inactive 
-
-keyboard_capslock_led_check_on:
-419f 6fe0c70d fetch 1 ,mem_keyboard_led_status 
-41a0 c300c1a3 bbit0 kb_pc_keysel_capslock ,keyboard_capslock_led_off 
-41a1 6848c914 fetcht 1 ,mem_keyboard_caps_led_gpio 
-41a2 20206ef1 branch gpio_out_active 
-
-keyboard_capslock_led_off:
-41a3 6848c914 fetcht 1 ,mem_keyboard_caps_led_gpio 
-41a4 20206eed branch gpio_out_inactive 
-
-keyboard_scrolllock_led_check_on:
-41a5 6fe0c70d fetch 1 ,mem_keyboard_led_status 
-41a6 c30141a9 bbit0 kb_pc_keysel_scrolllock ,keyboard_scrolllock_led_off 
-41a7 6848c915 fetcht 1 ,mem_keyboard_scroll_led_gpio 
-41a8 20206ef1 branch gpio_out_active 
-
-keyboard_scrolllock_led_off:
-41a9 6848c915 fetcht 1 ,mem_keyboard_scroll_led_gpio 
-41aa 20206eed branch gpio_out_inactive 
-
-keyboard_rgb_on_timer:
-41ab 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
-41ac c4158000 rtnbit0 keyboard_enable_backlight 
-41ad 6fe14741 fetch 2 ,mem_device_no_data_timer 
-41ae 207a0000 rtn blank 
-41af 6fe1471e fetch 2 ,mem_device_no_data_timeout 
-41b0 68494741 fetcht 2 ,mem_device_no_data_timer 
-41b1 98460400 isub temp ,temp 
-41b2 6fe148c2 fetch 2 ,mem_keyboard_rgb_on_timer 
-41b3 98467e00 isub temp ,pdata 
-41b4 20610000 rtn positive 
-41b5 7046b100 jam 0 ,mem_backlight_on_flag 
-41b6 20204203 branch keyboard_rgb_off 
-
-keyboard_pwm_init:
-41b7 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
-41b8 c4158000 rtnbit0 keyboard_enable_backlight 
-41b9 da200000 arg 0 ,rega 
-41ba 204070b9 call pwm_init 
-41bb 6fe348b2 fetch 6 ,mem_rgb_pwm_conf 
-41bc 67e3064e store 6 ,mem_pdatatemp 
-41bd 204070ca call pwm_out_set 
-41be 6fe148b2 fetch 2 ,mem_rgb_pwm_conf 
-41bf 20207103 branch pwm_disable 
-
-keyboard_rgb_pwm_disable:
-41c0 6fe0c91c fetch 1 ,mem_keyboard_led_r_gpio 
-41c1 20407103 call pwm_disable 
-41c2 6fe0c91d fetch 1 ,mem_keyboard_led_g_gpio 
-41c3 20407103 call pwm_disable 
-41c4 6fe0c91e fetch 1 ,mem_keyboard_led_b_gpio 
-41c5 20207103 branch pwm_disable 
-
-keyboard_rgb_pwm_set:
-41c6 6fe348b2 fetch 6 ,mem_rgb_pwm_conf 
-41c7 67e3064e store 6 ,mem_pdatatemp 
-41c8 202070ca branch pwm_out_set 
-
-keyboard_load_rgb:
-41c9 44a3c008 bpatch patch08_7 ,mem_patch08 
-41ca 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
-41cb c4158000 rtnbit0 keyboard_enable_backlight 
-41cc 6fe0c6b1 fetch 1 ,mem_backlight_on_flag 
-41cd 204041de call keyboard_rgb_mode_switch_next 
-41ce 6fe0c6b2 fetch 1 ,mem_backlight_on_type 
-41cf 202041ef branch keyboard_rgb_on_type_switch_next 
-
-keyboard_rgb_mode_switch:
-41d0 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
-41d1 c4158000 rtnbit0 keyboard_enable_backlight 
-41d2 204044ca call keyboard_keyvalue_clear_temp 
-41d3 6fe0c9ab fetch 1 ,mem_keyboard_press_flag_temp 
-41d4 c4000000 rtnbit0 0 
-41d5 6fe0caa2 fetch 1 ,mem_keyboard_device_info_store_flag 
-41d6 79207e05 set1 keyboard_store_eepromm_flag_rgb_type ,pdata 
-41d7 67e0caa2 store 1 ,mem_keyboard_device_info_store_flag 
-41d8 204044b7 call keyboard_store_eeprom_or_flash 
-41d9 7048ca00 jam 0 ,mem_backlight_breathe_type 
-41da 7048b800 jam 0 ,mem_rgb_pwm_breathe_flag 
-41db 7048b70a jam 10 ,mem_rgb_pwm_conf + 5 
-41dc 6fe0c6b1 fetch 1 ,mem_backlight_on_flag 
-41dd 1fe0fe01 increase 1 ,pdata 
-
-keyboard_rgb_mode_switch_next:
-41de 1fe67c02 sub pdata ,rgb_backlight_status_breathe ,null 
-41df 24417dcc ncall set_pdata_0 ,positive 
-41e0 67e0c6b1 store 1 ,mem_backlight_on_flag 
-41e1 20600000 rtn 
-
-keyboard_rgb_on_type_switch:
-41e2 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
-41e3 c4158000 rtnbit0 keyboard_enable_backlight 
-41e4 204044ca call keyboard_keyvalue_clear_temp 
-41e5 6fe0c9ab fetch 1 ,mem_keyboard_press_flag_temp 
-41e6 c4000000 rtnbit0 0 
-41e7 6fe0c6b1 fetch 1 ,mem_backlight_on_flag 
-41e8 c1808000 rtnne rgb_backlight_status_on 
-41e9 6fe0caa2 fetch 1 ,mem_keyboard_device_info_store_flag 
-41ea 79207e05 set1 keyboard_store_eepromm_flag_rgb_type ,pdata 
-41eb 67e0caa2 store 1 ,mem_keyboard_device_info_store_flag 
-41ec 204044b7 call keyboard_store_eeprom_or_flash 
-41ed 6fe0c6b2 fetch 1 ,mem_backlight_on_type 
-41ee 1fe0fe01 increase 1 ,pdata 
-
-keyboard_rgb_on_type_switch_next:
-41ef 1fe67c06 sub pdata ,rgb_backlight_on_tpye_white ,null 
-41f0 24417dcc ncall set_pdata_0 ,positive 
-41f1 67e0c6b2 store 1 ,mem_backlight_on_type 
-41f2 20600000 rtn 
-
-keyboard_rgb_process:
-41f3 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
-41f4 c4158000 rtnbit0 keyboard_enable_backlight 
-41f5 684a48c4 fetcht 4 ,mem_ui_check_timer_setup 
-41f6 1c427e00 copy clkn_bt ,pdata 
-41f7 98467e00 isub temp ,pdata 
-41f8 684948c8 fetcht 2 ,mem_customize_timer_setup 
-41f9 9846fc00 idiv temp 
-41fa 20407d64 call wait_div_end 
-41fb 1807fe00 quotient pdata 
-41fc 207a0000 rtn blank 
-41fd 1c420400 copy clkn_bt ,temp 
-41fe 604a48c4 storet 4 ,mem_ui_check_timer_setup 
-41ff 6fe0c6b1 fetch 1 ,mem_backlight_on_flag 
-4200 c0014209 beq rgb_backlight_status_breathe ,keyboard_rbg_breathe_process 
-4201 c000c244 beq rgb_backlight_status_on ,keyboard_rgb_on_process 
-4202 7046b100 jam 0 ,mem_backlight_on_flag 
-
-keyboard_rgb_off:
-4203 44a44009 bpatch patch09_0 ,mem_patch09 
-4204 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
-4205 c4158000 rtnbit0 keyboard_enable_backlight 
-4206 204041c0 call keyboard_rgb_pwm_disable 
-4207 7048b900 jam 0 ,mem_rgb_on_color_temp 
-4208 2020424e branch keyboard_rgb_led_control 
-
-keyboard_rbg_breathe_process:
-4209 6fe0c8b8 fetch 1 ,mem_rgb_pwm_breathe_flag 
-420a 203a4211 branch keyboard_rbg_breathe_up ,blank 
-420b 6fe0c8b7 fetch 1 ,mem_rgb_pwm_conf + 5 
-420c 1fe67c05 sub pdata ,5 ,null 
-420d 2021421a branch keyboard_rbg_breathe_color_switch ,positive 
-420e 1fe0ffff increase -1 ,pdata 
-420f 67e0c8b7 store 1 ,mem_rgb_pwm_conf + 5 
-4210 20204221 branch keyboard_rgb_pwm 
-
-keyboard_rbg_breathe_up:
-4211 6fe0c8b7 fetch 1 ,mem_rgb_pwm_conf + 5 
-4212 1fe0fe01 increase 1 ,pdata 
-4213 67e0c8b7 store 1 ,mem_rgb_pwm_conf + 5 
-4214 20404221 call keyboard_rgb_pwm 
-4215 6fe0c8b7 fetch 1 ,mem_rgb_pwm_conf + 5 
-4216 1fe67c5a sub pdata ,90 ,null 
-4217 20610000 rtn positive 
-4218 7048b801 jam 1 ,mem_rgb_pwm_breathe_flag 
-4219 20600000 rtn 
-
-keyboard_rbg_breathe_color_switch:
-421a 7048b800 jam 0 ,mem_rgb_pwm_breathe_flag 
-421b 6fe0c8ca fetch 1 ,mem_backlight_breathe_type 
-421c 1fe0fe01 increase 1 ,pdata 
-421d 1fe67c06 sub pdata ,rgb_backlight_breathe_tpye_white ,null 
-421e 24417dcc ncall set_pdata_0 ,positive 
-421f 67e0c8ca store 1 ,mem_backlight_breathe_type 
-4220 20600000 rtn 
-
-keyboard_rgb_pwm:
-4221 204041b7 call keyboard_pwm_init 
-4222 20404207 call keyboard_rgb_off + 4 
-4223 20204224 branch keyboard_breathe_tpye_select 
-
-keyboard_breathe_tpye_select:
-4224 6fe0c8ca fetch 1 ,mem_backlight_breathe_type 
-4225 c001422c beq rgb_backlight_breathe_tpye_red ,keyboard_breathe_tpye_red 
-4226 c000c231 beq rgb_backlight_breathe_tpye_green ,keyboard_breathe_tpye_green 
-4227 c0004236 beq rgb_backlight_breathe_tpye_blue ,keyboard_breathe_tpye_blue 
-4228 c001c23b beq rgb_backlight_breathe_tpye_cyan ,keyboard_breathe_tpye_cyan 
-4229 c002c23d beq rgb_backlight_breathe_tpye_orange ,keyboard_breathe_tpye_orange 
-422a c002423f beq rgb_backlight_breathe_tpye_purple ,keyboard_breathe_tpye_purple 
-422b c0034241 beq rgb_backlight_breathe_tpye_white ,keyboard_breathe_tpye_white 
-
-keyboard_breathe_tpye_red:
-422c 6fe0c91c fetch 1 ,mem_keyboard_led_r_gpio 
-422d 67e0c8b2 store 1 ,mem_rgb_pwm_conf 
-422e 58000001 setarg 0x01 
-422f 67e0c8b3 store 1 ,mem_rgb_pwm_conf + 1 
-4230 202041c6 branch keyboard_rgb_pwm_set 
-
-keyboard_breathe_tpye_green:
-4231 6fe0c91d fetch 1 ,mem_keyboard_led_g_gpio 
-4232 67e0c8b2 store 1 ,mem_rgb_pwm_conf 
-4233 58000002 setarg 0x02 
-4234 67e0c8b3 store 1 ,mem_rgb_pwm_conf + 1 
-4235 202041c6 branch keyboard_rgb_pwm_set 
-
-keyboard_breathe_tpye_blue:
-4236 6fe0c91e fetch 1 ,mem_keyboard_led_b_gpio 
-4237 67e0c8b2 store 1 ,mem_rgb_pwm_conf 
-4238 58000004 setarg 0x04 
-4239 67e0c8b3 store 1 ,mem_rgb_pwm_conf + 1 
-423a 202041c6 branch keyboard_rgb_pwm_set 
-
-keyboard_breathe_tpye_cyan:
-423b 20404231 call keyboard_breathe_tpye_green 
-423c 20204236 branch keyboard_breathe_tpye_blue 
-
-keyboard_breathe_tpye_orange:
-423d 2040422c call keyboard_breathe_tpye_red 
-423e 20204231 branch keyboard_breathe_tpye_green 
-
-keyboard_breathe_tpye_purple:
-423f 2040422c call keyboard_breathe_tpye_red 
-4240 20204236 branch keyboard_breathe_tpye_blue 
-
-keyboard_breathe_tpye_white:
-4241 2040422c call keyboard_breathe_tpye_red 
-4242 20404231 call keyboard_breathe_tpye_green 
-4243 20204236 branch keyboard_breathe_tpye_blue 
-
-keyboard_rgb_on_process:
-4244 204041c0 call keyboard_rgb_pwm_disable 
-4245 6fe0c6b2 fetch 1 ,mem_backlight_on_type 
-4246 1fe67c06 sub pdata ,rgb_backlight_on_tpye_white ,null 
-4247 24417dcc ncall set_pdata_0 ,positive 
-4248 67e0c6b2 store 1 ,mem_backlight_on_type 
-4249 d8c048ba arg mem_rgb_on_color ,contr 
-424a 98c08c00 iadd contr ,contr 
-424b efe08006 ifetch 1 ,contr 
-424c 67e0c8b9 store 1 ,mem_rgb_on_color_temp 
-424d 2020424e branch keyboard_rgb_led_control 
-
-keyboard_rgb_led_control:
-424e 6fe0c8b9 fetch 1 ,mem_rgb_on_color_temp 
-424f 2feffe02 isolate1 keyboard_rgb_red_status ,pdata 
-4250 2040c25b call keyboard_rgb_red_led_on ,true 
-4251 2440c25d ncall keyboard_rgb_red_led_off ,true 
-4252 6fe0c8b9 fetch 1 ,mem_rgb_on_color_temp 
-4253 2feffe01 isolate1 keyboard_rgb_green_status ,pdata 
-4254 2040c25f call keyboard_rgb_green_led_on ,true 
-4255 2440c261 ncall keyboard_rgb_green_led_off ,true 
-4256 6fe0c8b9 fetch 1 ,mem_rgb_on_color_temp 
-4257 2feffe00 isolate1 keyboard_rgb_blue_status ,pdata 
-4258 2040c263 call keyboard_rgb_blue_led_on ,true 
-4259 2440c265 ncall keyboard_rgb_blue_led_off ,true 
-425a 20600000 rtn 
-
-keyboard_rgb_red_led_on:
-425b 6848c91c fetcht 1 ,mem_keyboard_led_r_gpio 
-425c 20206eed branch gpio_out_inactive 
-
-keyboard_rgb_red_led_off:
-425d 6848c91c fetcht 1 ,mem_keyboard_led_r_gpio 
-425e 20206ef1 branch gpio_out_active 
-
-keyboard_rgb_green_led_on:
-425f 6848c91d fetcht 1 ,mem_keyboard_led_g_gpio 
-4260 20206eed branch gpio_out_inactive 
-
-keyboard_rgb_green_led_off:
-4261 6848c91d fetcht 1 ,mem_keyboard_led_g_gpio 
-4262 20206ef1 branch gpio_out_active 
-
-keyboard_rgb_blue_led_on:
-4263 6848c91e fetcht 1 ,mem_keyboard_led_b_gpio 
-4264 20206eed branch gpio_out_inactive 
-
-keyboard_rgb_blue_led_off:
-4265 6848c91e fetcht 1 ,mem_keyboard_led_b_gpio 
-4266 20206ef1 branch gpio_out_active 
-
-keyboard_key_press_timer:
-4267 6fe0c8a6 fetch 1 ,mem_keyboard_switch_device_flag 
-4268 c280426d bbit1 keyboard_flag_g24_device_button ,keyboard_device_select_g24_press_timer 
-4269 20404278 call keyboard_device_select_g24_nopress_timer 
-426a 6fe0c8a6 fetch 1 ,mem_keyboard_switch_device_flag 
-426b c280c27e bbit1 keyboard_flag_bt_device_button ,keyboard_device_select_bt_press_timer 
-426c 20204289 branch keyboard_device_select_bt_nopress_timer 
-
-keyboard_device_select_g24_press_timer:
-426d 6fe0c8a9 fetch 1 ,mem_keyboard_switch_g24_press_timer 
-426e 1fe67c64 sub pdata ,100 ,null 
-426f 24610000 nrtn positive 
-4270 1fe0fe01 increase 1 ,pdata 
-4271 67e0c8a9 store 1 ,mem_keyboard_switch_g24_press_timer 
-4272 c18c8000 rtnne 25 
-4273 7048a700 jam 0 ,mem_keyboard_switch_g24_enable 
-4274 6fe0c678 fetch 1 ,mem_device_flag 
-4275 c1020000 rtneq mode_usb_device 
-4276 204048e6 call keyboard_stop_bluetooth_mode 
-4277 20204680 branch keyboard_24g_start_pair_mode 
-
-keyboard_device_select_g24_nopress_timer:
-4278 7048a900 jam 0 ,mem_keyboard_switch_g24_press_timer 
-4279 6fe0c8a7 fetch 1 ,mem_keyboard_switch_g24_enable 
-427a 207a0000 rtn blank 
-427b 7048a700 jam 0 ,mem_keyboard_switch_g24_enable 
-427c 20404045 call keyboard_store_device_number 
-427d 20206c99 branch soft_reset_chip 
-
-keyboard_device_select_bt_press_timer:
-427e 6fe0c8aa fetch 1 ,mem_keyboard_switch_bt_press_timer 
-427f 1fe67c64 sub pdata ,100 ,null 
-4280 24610000 nrtn positive 
-4281 1fe0fe01 increase 1 ,pdata 
-4282 67e0c8aa store 1 ,mem_keyboard_switch_bt_press_timer 
-4283 c18c8000 rtnne 25 
-4284 7048a800 jam 0 ,mem_keyboard_switch_bt_enable 
-4285 6fe0c678 fetch 1 ,mem_device_flag 
-4286 c1020000 rtneq mode_usb_device 
-4287 20406824 call hid_device_le_send_empty_packet 
-4288 20204675 branch keyboard_long_button_bt_discovery 
-
-keyboard_device_select_bt_nopress_timer:
-4289 7048aa00 jam 0 ,mem_keyboard_switch_bt_press_timer 
-428a 6fe0c8a8 fetch 1 ,mem_keyboard_switch_bt_enable 
-428b 207a0000 rtn blank 
-428c 7048a800 jam 0 ,mem_keyboard_switch_bt_enable 
-428d 20404045 call keyboard_store_device_number 
-428e 20206c99 branch soft_reset_chip 
-
-keyboard_commbination_key_process:
-428f 6fe0c735 fetch 1 ,mem_commbination_key_statue 
-4290 c1808000 rtnne commbination_key_state_down 
-4291 da604736 arg mem_combination_ui_button_count ,regc 
-4292 da404294 arg keyboard_commbination_key_press_type_check ,regb 
-4293 20203755 branch timer_single_step 
-
-keyboard_commbination_key_press_type_check:
-4294 6fe0ca9b fetch 1 ,mem_keyboard_commbination_press_type 
-4295 c000c680 beq keyboard_commbination_press_type_24g_pair ,keyboard_24g_start_pair_mode 
-4296 c0014675 beq keyboard_commbination_press_type_bt_pair ,keyboard_long_button_bt_discovery 
-4297 c001d3ad beq keyboard_commbination_press_type_bt_fast_conn ,mouse_bluetooth_fast_conn_init 
-4298 20600000 rtn 
-
-keyboard_check_discovery_timeout_timer:
-4299 da604750 arg mem_device_discovery_timer ,regc 
-429a da40429c arg keyboard_check_discovery_timeout ,regb 
-429b 2020375c branch timer_single_step_2b 
-
-keyboard_check_discovery_timeout:
-429c 204048e9 call keyboard_stop_discovery 
-429d 202047af branch keyboard_power_down 
-
-keyboard_store_information_delay_timer:
-429e da604705 arg mem_store_information_delay_timer ,regc 
-429f da403fd7 arg keyboard_store_device_info ,regb 
-42a0 20203755 branch timer_single_step 
-
-keyboard_le_auto_recognize_timer:
-42a1 da60490e arg mem_le_start_auto_reco_timer ,regc 
-42a2 da4048fd arg keyboard_le_send_att_find_by_type_value_request_ancs ,regb 
-42a3 20203755 branch timer_single_step 
-
-keyboard_check_direct_timeout_timer:
-42a4 da604720 arg mem_device_direct_timer ,regc 
-42a5 da4042aa arg keyboard_check_direct_timeout ,regb 
-42a6 20403755 call timer_single_step 
-42a7 6fe0c720 fetch 1 ,mem_device_direct_timer 
-42a8 c000b788 beq 1 ,app_ble_stop_direct_adv 
-42a9 20600000 rtn 
-
-keyboard_check_direct_timeout:
-42aa 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
-42ab c28d48c5 bbit1 keyboard_enable_bt_reconnect_timeout_enter_discovery ,keyboard_start_discovery 
-42ac 20204e35 branch mouse_app_enter_hibernate 
-
-keyboard_le_battery_updata_timer:
-42ad 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
-42ae c38c8000 rtnbit1 keyboard_enable_le_battery_service_cancel 
-42af da60477f arg mem_le_battery_level_updata_timer ,regc 
-42b0 da40551f arg mouse_le_battery_level_updata ,regb 
-42b1 20203755 branch timer_single_step 
-
-keyboard_le_send_conn_param_update_timer:
-42b2 da60490d arg mem_keyboard_le_send_conn_param_update_timer ,regc 
-42b3 da405408 arg mouse_updata_le_param ,regb 
-42b4 20203755 branch timer_single_step 
-
-keyboard_24g_repeat_send_data:
-42b5 6fe0ca80 fetch 1 ,mem_24g_repeat_send_flag 
-42b6 207a0000 rtn blank 
-42b7 704a8000 jam 0 ,mem_24g_repeat_send_flag 
-42b8 6fe0c9a0 fetch 1 ,mem_same_keyvalue_timerout_flag 
-42b9 247a0000 nrtn blank 
-42ba 6fe145ef fetch 2 ,mem_24g_pair_timeout 
-42bb 247a0000 nrtn blank 
-42bc 7049a901 jam 1 ,mem_keyboard_data_change_flag 
-42bd 204035fd call g24_txdata_prep 
-42be 20204828 branch keyboard_g24_transmit_process 
-
-keyboard_24g_led_status_get_timer:
-42bf da604a82 arg mem_keyboard_led_status_get_timer ,regc 
-42c0 da4042c2 arg keyboard_24g_led_status_clear ,regb 
-42c1 20203755 branch timer_single_step 
-
-keyboard_24g_led_status_clear:
-42c2 704a8100 jam 0 ,mem_keyboard_led_status_get 
-42c3 20600000 rtn 
-
-keyboard_same_key_long_press_timer:
-42c4 da6049a3 arg mem_same_keyvalue_timer ,regc 
-42c5 da4042c7 arg keyboard_long_press_timerout ,regb 
-42c6 2020375c branch timer_single_step_2b 
-
-keyboard_long_press_timerout:
-42c7 7049a001 jam 1 ,mem_same_keyvalue_timerout_flag 
-42c8 202047af branch keyboard_power_down 
-
-keyboard_commbination_delay_release_timer:
-42c9 da604a9f arg mem_keyboard_commbination_control_key_delay_release_timer ,regc 
-42ca da404547 arg keyboard_commbination_key_null_set ,regb 
-42cb 20203755 branch timer_single_step 
-
-keyboard_usb_updata_timer:
-42cc 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
-42cd c4120000 rtnbit0 keyboard_enable_usb 
-42ce 6fe0cad0 fetch 1 ,mem_usb_wait_updata_timer 
-42cf 207a0000 rtn blank 
-42d0 1fe0ffff increase -1 ,pdata 
-42d1 67e0cad0 store 1 ,mem_usb_wait_updata_timer 
-42d2 247a0000 nrtn blank 
-42d3 70409401 jam 1 ,mem_lpm_mode 
-42d4 202047af branch keyboard_power_down 
-
-keyboard_check_no_data_timeout_timer:
-42d5 6fe0cace fetch 1 ,mem_usb_vdd_status_current 
-42d6 c12d0000 rtneq usb_interface_insert 
-42d7 da604741 arg mem_device_no_data_timer ,regc 
-42d8 da4042da arg keyboard_check_no_data_timeout ,regb 
-42d9 2020375c branch timer_single_step_2b 
-
-keyboard_check_no_data_timeout:
-42da 6fe0c678 fetch 1 ,mem_device_flag 
-42db c00047fb beq mode_24g_device ,keyboard_24g_hibernate_set 
-42dc 202053c6 branch mouse_disconnect 
-
-keyboard_idle:
-42dd 44a4c009 bpatch patch09_1 ,mem_patch09 
-42de 20404330 call kscan_dispatch 
-42df 204041f3 call keyboard_rgb_process 
-42e0 204049fa call keyboard_usb_isr 
-42e1 204049ff call keyboard_usb_mode 
-42e2 202042e3 branch keyboard_check_select_device_by_switch 
-
-keyboard_check_select_device_by_switch:
-42e3 44a54009 bpatch patch09_2 ,mem_patch09 
-42e4 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
-42e5 c41c0000 rtnbit0 keyboard_enable_select_device_by_switch_gpio 
-42e6 c29dc2f0 bbit1 keyboard_enable_select_device_by_switch_gpio_g24_connect_vdd ,keyboard_check_select_device_by_switch_vdd_check 
-42e7 c29e42f0 bbit1 keyboard_enable_select_device_by_switch_gpio_bt_connect_vdd ,keyboard_check_select_device_by_switch_vdd_check 
-42e8 6848c665 fetcht 1 ,mem_device_switch_gpio 
-42e9 20404f0a call device_gpio_config_input_pu 
-42ea 6848c665 fetcht 1 ,mem_device_switch_gpio 
-42eb 20406ee0 call gpio_get_bit 
-42ec 2020c2fd branch keyboard_check_select_device_by_switch_gnd ,true 
-42ed 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
-42ee c29cc302 bbit1 keyboard_enable_select_device_by_switch_gpio_g24_connect_gnd ,keyboard_select_btdevice 
-42ef 20204308 branch keyboard_check_select_24g_device 
-
-keyboard_check_select_device_by_switch_vdd_check:
-42f0 6848c665 fetcht 1 ,mem_device_switch_gpio 
-42f1 20404f06 call device_gpio_config_input_pd 
-42f2 6848c665 fetcht 1 ,mem_device_switch_gpio 
-42f3 20406ee0 call gpio_get_bit 
-42f4 2420c2f8 nbranch keyboard_check_select_device_by_switch_vdd ,true 
-42f5 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
-42f6 c29dc302 bbit1 keyboard_enable_select_device_by_switch_gpio_g24_connect_vdd ,keyboard_select_btdevice 
-42f7 20204308 branch keyboard_check_select_24g_device 
-
-keyboard_check_select_device_by_switch_vdd:
-42f8 6848c665 fetcht 1 ,mem_device_switch_gpio 
-42f9 20404f0a call device_gpio_config_input_pu 
-42fa 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
-42fb c29dc308 bbit1 keyboard_enable_select_device_by_switch_gpio_g24_connect_vdd ,keyboard_check_select_24g_device 
-42fc 20204302 branch keyboard_select_btdevice 
-
-keyboard_check_select_device_by_switch_gnd:
-42fd 6848c665 fetcht 1 ,mem_device_switch_gpio 
-42fe 20404f06 call device_gpio_config_input_pd 
-42ff 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
-4300 c29cc308 bbit1 keyboard_enable_select_device_by_switch_gpio_g24_connect_gnd ,keyboard_check_select_24g_device 
-4301 20204302 branch keyboard_select_btdevice 
-
-keyboard_select_btdevice:
-4302 6fe0c678 fetch 1 ,mem_device_flag 
-4303 c1008000 rtneq mode_bt_device1 
-4304 70467801 jam mode_bt_device1 ,mem_device_flag 
-4305 6fe0c896 fetch 1 ,mem_keyboard_switch_count_temp 
-4306 243a6c99 nbranch soft_reset_chip ,blank 
-4307 202048e6 branch keyboard_stop_bluetooth_mode 
-
-keyboard_check_select_24g_device:
-4308 6fe0c678 fetch 1 ,mem_device_flag 
-4309 c1000000 rtneq mode_24g_device 
-430a 70467800 jam mode_24g_device ,mem_device_flag 
-430b 6fe0c896 fetch 1 ,mem_keyboard_switch_count_temp 
-430c 243a6c99 nbranch soft_reset_chip ,blank 
-430d 20204804 branch keyboard_24g_stop 
-
-keyboard_start_work:
-430e 44a5c009 bpatch patch09_3 ,mem_patch09 
-430f 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
-4310 c305c31a bbit0 keyboard_enable_adc ,keyboard_start_work_next 
-4311 204040c4 call keyboard_adc_read_start 
-4312 6fe14646 fetch 2 ,mem_device_vdd_empty_vol 
-4313 1fe6fc02 div pdata ,2 
-4314 20407d61 call get_div_result 
-4315 6849464a fetcht 2 ,mem_device_vdd_now_vol 
-4316 98467c00 isub temp ,null 
-4317 2021430e branch keyboard_start_work ,positive 
-4318 6fe0c422 fetch 1 ,mem_adc_power_flag 
-4319 c280c7af bbit1 1 ,keyboard_power_down 
-
-keyboard_start_work_next:
-431a 6fe0ca7f fetch 1 ,mem_keyboard_pairing_type 
-431b 205a4670 call keyboard_enable_bt_button_pairing ,blank 
-431c 6fe0ca7e fetch 1 ,mem_keyboard_bt_button_flag 
-431d 247a0000 nrtn blank 
-431e 6fe0c678 fetch 1 ,mem_device_flag 
-431f c000432d beq mode_24g_device ,keyboard_24g_start_mode 
-4320 204053c1 call mouse_bluetooth_fast_conn_disable 
-4321 c000c324 beq mode_bt_device1 ,keyboard_start_ble1_reconnect 
-4322 c0014329 beq mode_bt_device2 ,keyboard_start_ble2_reconnect 
-4323 c001c32b beq mode_bt_device3 ,keyboard_start_ble3_reconnect 
-
-keyboard_start_ble1_reconnect:
-4324 6fe3467a fetch 6 ,mem_device1_addr 
-
-keyboard_start_ble_reconnect:
-4325 684b46f8 fetcht 6 ,mem_device_compare_addr 
-4326 98467c00 isub temp ,null 
-4327 2022d3ad branch mouse_bluetooth_fast_conn_init ,zero 
-4328 20204e09 branch mouse_start_reconnect_device 
-
-keyboard_start_ble2_reconnect:
-4329 6fe34687 fetch 6 ,mem_device2_addr 
-432a 20204325 branch keyboard_start_ble_reconnect 
-
-keyboard_start_ble3_reconnect:
-432b 6fe34694 fetch 6 ,mem_device3_addr 
-432c 20204325 branch keyboard_start_ble_reconnect 
-
-keyboard_24g_start_mode:
-432d 20403e9a call keyboard_wakeup_from_power_check 
-432e 20345988 branch mouse_24g_reconn_dongle_start ,user 
-432f 2020594d branch mouse_24g_reconn_general_dongle 
-
-kscan_dispatch:
-4330 44a64009 bpatch patch09_4 ,mem_patch09 
-4331 20404334 call keyboard_keyscan 
-4332 204043b5 call keyboard_key_process 
-4333 202045b4 branch keyboard_special_key_check 
-
-keyboard_keyscan:
-4334 20403ef9 call keyboard_gpio_init 
-4335 204043af call keyboard_stb_state_low 
-4336 58000000 setarg 0 
-4337 67e1499e store 2 ,mem_keyscan_exmcu_wait_wake_count 
-4338 d8c0494e arg mem_keyscan_value_current ,contr 
-4339 d8a04963 arg mem_keyscan_value_check ,contw 
-433a df200014 arg 20 ,loopcnt 
-433b 20407cdc call memcpy 
-433c 5800494e setarg mem_keyscan_value_current 
-433d 67e14998 store 2 ,mem_keyscan_value_ptr 
-433e 5800498d setarg mem_keyscan_exmcu_value 
-433f 67e1499a store 2 ,mem_keyscan_exmcu_value_ptr 
-4340 204043ad call keyboard_stb_state_high 
-4341 204043ab call keyboard_clk_input 
-
-keyboard_keyscan_exmcu_start_check:
-4342 6fe1499e fetch 2 ,mem_keyscan_exmcu_wait_wake_count 
-4343 1fe0fe01 increase 1 ,pdata 
-4344 67e1499e store 2 ,mem_keyscan_exmcu_wait_wake_count 
-4345 c284c334 bbit1 9 ,keyboard_keyscan 
-4346 6848c911 fetcht 1 ,mem_mcu_clk_gpio 
-4347 20406ee0 call gpio_get_bit 
-4348 2420c342 nbranch keyboard_keyscan_exmcu_start_check ,true 
-4349 204043af call keyboard_stb_state_low 
-
-keyboard_keyscan_wait_wake_next:
-434a 6848c911 fetcht 1 ,mem_mcu_clk_gpio 
-434b 20406ee0 call gpio_get_bit 
-434c 2020c34a branch keyboard_keyscan_wait_wake_next ,true 
-434d 20404372 call keyboard_keyscan_get_exmcu_value 
-434e 20404386 call keyboard_keyscan_get_mcu_value 
-434f 204043ab call keyboard_clk_input 
-4350 204043ad call keyboard_stb_state_high 
-
-keyboard_keyscan_copy_value:
-4351 6fe1494c fetch 2 ,mem_kb_excol_ptr 
-4352 1fe22400 copy pdata ,regb 
-4353 70499d00 jam 0 ,mem_keyscan_col_loop_count 
-
-keyboard_compare_col_excol_gpio_loop:
-4354 e8408012 ifetcht 1 ,regb 
-4355 6fe1494a fetch 2 ,mem_kb_col_ptr 
-4356 1fe22200 copy pdata ,rega 
-4357 1a222600 copy rega ,regc 
-4358 df200014 arg 20 ,loopcnt 
-
-keyboard_compare_col_gpio_loop:
-4359 efe08011 ifetch 1 ,rega 
-435a 98467c00 isub temp ,null 
-435b 2022c366 branch keyboard_copy_value_exmcu_to_mcu ,zero 
-435c 1a20a201 increase 1 ,rega 
-435d c2004359 loop keyboard_compare_col_gpio_loop 
-
-keyboard_compare_col_excol_gpio_loop_next:
-435e 1a40a401 increase 1 ,regb 
-435f 6fe0c99d fetch 1 ,mem_keyscan_col_loop_count 
-4360 1fe0fe01 increase 1 ,pdata 
-4361 67e0c99d store 1 ,mem_keyscan_col_loop_count 
-4362 1fe67c0b sub pdata ,11 ,null 
-4363 20214354 branch keyboard_compare_col_excol_gpio_loop ,positive 
-4364 20403f1b call keyboard_gpio_pu_idle 
-4365 20203f0f branch keyboard_key_row_init 
-
-keyboard_copy_value_exmcu_to_mcu:
-4366 6fe14998 fetch 2 ,mem_keyscan_value_ptr 
-4367 1fe20a00 copy pdata ,contw 
-4368 1a227e00 copy rega ,pdata 
-4369 9a667e00 isub regc ,pdata 
-436a 98a08a00 iadd contw ,contw 
-436b 6fe1499a fetch 2 ,mem_keyscan_exmcu_value_ptr 
-436c 1fe22600 copy pdata ,regc 
-436d 6fe0c99d fetch 1 ,mem_keyscan_col_loop_count 
-436e 9a60a600 iadd regc ,regc 
-436f efe08013 ifetch 1 ,regc 
-4370 e7e08005 istore 1 ,contw 
-4371 2020435e branch keyboard_compare_col_excol_gpio_loop_next 
-
-keyboard_keyscan_get_exmcu_value:
-4372 70499d00 jam 0 ,mem_keyscan_col_loop_count 
-
-keyboard_keyscan_exmcu_start_loop:
-4373 204043a9 call keyboard_clk_state_low 
-4374 2040437a call keyboard_keyscan_exmcu_get_col_value 
-4375 204043a7 call keyboard_clk_state_high 
-4376 2040437a call keyboard_keyscan_exmcu_get_col_value 
-4377 1fe67c0b sub pdata ,11 ,null 
-4378 20214373 branch keyboard_keyscan_exmcu_start_loop ,positive 
-4379 202043a9 branch keyboard_clk_state_low 
-
-keyboard_keyscan_exmcu_get_col_value:
-437a 70499c00 jam 0 ,mem_keyscan_value_temp 
-437b 20404399 call keyboard_keyscan_get_col_value 
-437c 6fe1499a fetch 2 ,mem_keyscan_exmcu_value_ptr 
-
-keyboard_keyscan_value_store:
-437d 1fe20a00 copy pdata ,contw 
-437e 6fe0c99d fetch 1 ,mem_keyscan_col_loop_count 
-437f 98a08a00 iadd contw ,contw 
-4380 6fe0c99c fetch 1 ,mem_keyscan_value_temp 
-4381 e7e08005 istore 1 ,contw 
-4382 6fe0c99d fetch 1 ,mem_keyscan_col_loop_count 
-4383 1fe0fe01 increase 1 ,pdata 
-4384 67e0c99d store 1 ,mem_keyscan_col_loop_count 
-4385 20600000 rtn 
-
-keyboard_keyscan_get_mcu_value:
-4386 6fe1494a fetch 2 ,mem_kb_col_ptr 
-4387 1fe22400 copy pdata ,regb 
-4388 70499d00 jam 0 ,mem_keyscan_col_loop_count 
-
-keyboard_keyscan_mcu_start:
-4389 70499c00 jam 0 ,mem_keyscan_value_temp 
-438a e8408012 ifetcht 1 ,regb 
-438b 284ffe07 isolate1 7 ,temp 
-438c 2020c393 branch keyboard_keyscan_mcu_start_loop ,true 
-438d 20406ef1 call gpio_out_active 
-438e 20404399 call keyboard_keyscan_get_col_value 
-438f e8408012 ifetcht 1 ,regb 
-4390 20406eed call gpio_out_inactive 
-4391 e8408012 ifetcht 1 ,regb 
-4392 20404f0a call device_gpio_config_input_pu 
-
-keyboard_keyscan_mcu_start_loop:
-4393 1a40a401 increase 1 ,regb 
-4394 6fe14998 fetch 2 ,mem_keyscan_value_ptr 
-4395 2040437d call keyboard_keyscan_value_store 
-4396 1fe67c13 sub pdata ,19 ,null 
-4397 20214389 branch keyboard_keyscan_mcu_start ,positive 
-4398 20600000 rtn 
-
-keyboard_keyscan_get_col_value:
-4399 44a6c009 bpatch patch09_5 ,mem_patch09 
-439a 20000078 nop 120 
-439b 6fe14948 fetch 2 ,mem_kb_row_ptr 
-439c 1fe22600 copy pdata ,regc 
-439d df200008 arg 8 ,loopcnt 
-
-keyboard_keyscan_get_col_value_loop:
-439e e8408013 ifetcht 1 ,regc 
-439f 20406ee0 call gpio_get_bit 
-43a0 6fe0c99c fetch 1 ,mem_keyscan_value_temp 
-43a1 1fe37e00 rshift pdata ,pdata 
-43a2 7920fe07 setflag true ,7 ,pdata 
-43a3 67e0c99c store 1 ,mem_keyscan_value_temp 
-43a4 1a60a601 increase 1 ,regc 
-43a5 c200439e loop keyboard_keyscan_get_col_value_loop 
-43a6 20600000 rtn 
-
-keyboard_clk_state_high:
-43a7 6848c911 fetcht 1 ,mem_mcu_clk_gpio 
-43a8 20206eed branch gpio_out_inactive 
-
-keyboard_clk_state_low:
-43a9 6848c911 fetcht 1 ,mem_mcu_clk_gpio 
-43aa 20206ef1 branch gpio_out_active 
-
-keyboard_clk_input:
-43ab 6848c911 fetcht 1 ,mem_mcu_clk_gpio 
-43ac 20206ed7 branch gpio_config_input 
-
-keyboard_stb_state_high:
-43ad 6848c910 fetcht 1 ,mem_mcu_stb_gpio 
-43ae 20206eed branch gpio_out_inactive 
-
-keyboard_stb_state_low:
-43af 6848c910 fetcht 1 ,mem_mcu_stb_gpio 
-43b0 20206ef1 branch gpio_out_active 
-
-keyboard_press_change_or_no_key:
-43b1 7049a000 jam 0 ,mem_same_keyvalue_timerout_flag 
-43b2 6fe149a1 fetch 2 ,mem_same_keyvalue_timer_init 
-43b3 67e149a3 store 2 ,mem_same_keyvalue_timer 
-43b4 20600000 rtn 
-
-keyboard_key_process:
-43b5 da20494e arg mem_keyscan_value_current ,rega 
-43b6 da404963 arg mem_keyscan_value_check ,regb 
-43b7 df200014 arg 20 ,loopcnt 
-43b8 20407d66 call string_compare 
-43b9 2422c3b1 nbranch keyboard_press_change_or_no_key ,zero 
-43ba 204043f1 call keyboard_keyscan_value_current_zero_check 
-43bb 205a43b1 call keyboard_press_change_or_no_key ,blank 
-43bc 204043fd call keyboard_ghost_key_check 
-43bd 6fe0c9a8 fetch 1 ,mem_keyboard_ghost_flag 
-43be 247a0000 nrtn blank 
-43bf 6fe0ca9c fetch 1 ,mem_keyboard_commbination_key_step 
-43c0 c1008000 rtneq cammbination_key_press 
-43c1 c1010000 rtneq cammbination_key_hold 
-43c2 c1020000 rtneq cammbination_key_wait_release 
-43c3 70499d00 jam 0 ,mem_keyscan_col_loop_count 
-43c4 da20494e arg mem_keyscan_value_current ,rega 
-43c5 da404978 arg mem_keyscan_value_old ,regb 
-
-keyboard_keyvalue_process:
-43c6 e8408011 ifetcht 1 ,rega 
-43c7 efe08012 ifetch 1 ,regb 
-43c8 9842fe00 ixor temp ,pdata 
-43c9 203a43e9 branch keyboard_keyvalue_process_loop ,blank 
-43ca 67e0c99c store 1 ,mem_keyscan_value_temp 
-43cb 6048c9ab storet 1 ,mem_keyboard_press_flag_temp 
-43cc e0408012 istoret 1 ,regb 
-43cd 7049a901 jam 1 ,mem_keyboard_data_change_flag 
-43ce 7049ac00 jam 0 ,mem_keyboard_keyvalue_bit_loop_count 
-
-keyboard_keyvalue_change:
-43cf 6fe0c99c fetch 1 ,mem_keyscan_value_temp 
-43d0 c30043de bbit0 0 ,keyboard_keyvalue_change_loop 
-43d1 6fe0c99d fetch 1 ,mem_keyscan_col_loop_count 
-43d2 1feffe08 mul32 pdata ,8 ,pdata 
-43d3 6848c9ac fetcht 1 ,mem_keyboard_keyvalue_bit_loop_count 
-43d4 9840fe00 iadd temp ,pdata 
-43d5 d8c049c7 arg mem_keyboard_keyvalue_map ,contr 
-43d6 98c08c00 iadd contr ,contr 
-43d7 efe08006 ifetch 1 ,contr 
-43d8 67e0c9aa store 1 ,mem_keyboard_keyvalue_temp 
-43d9 44a74009 bpatch patch09_6 ,mem_patch09 
-43da 2040442e call keyboard_keyvalue_normal_replace 
-43db 20404435 call keyboard_keyvalue_fn_replace 
-43dc 204044dc call keyboard_keyvalue_commbination_replace 
-43dd 20404564 call keyboard_keyvalue_in_out 
-
-keyboard_keyvalue_change_loop:
-43de 6fe0c99c fetch 1 ,mem_keyscan_value_temp 
-43df 1fe37e00 rshift pdata ,pdata 
-43e0 67e0c99c store 1 ,mem_keyscan_value_temp 
-43e1 6fe0c9ab fetch 1 ,mem_keyboard_press_flag_temp 
-43e2 1fe37e00 rshift pdata ,pdata 
-43e3 67e0c9ab store 1 ,mem_keyboard_press_flag_temp 
-43e4 6fe0c9ac fetch 1 ,mem_keyboard_keyvalue_bit_loop_count 
-43e5 1fe0fe01 increase 1 ,pdata 
-43e6 67e0c9ac store 1 ,mem_keyboard_keyvalue_bit_loop_count 
-43e7 1fe67c07 sub pdata ,7 ,null 
-43e8 202143cf branch keyboard_keyvalue_change ,positive 
-
-keyboard_keyvalue_process_loop:
-43e9 1a20a201 increase 1 ,rega 
-43ea 1a40a401 increase 1 ,regb 
-43eb 6fe0c99d fetch 1 ,mem_keyscan_col_loop_count 
-43ec 1fe0fe01 increase 1 ,pdata 
-43ed 67e0c99d store 1 ,mem_keyscan_col_loop_count 
-43ee 1fe67c13 sub pdata ,19 ,null 
-43ef 202143c6 branch keyboard_keyvalue_process ,positive 
-43f0 20600000 rtn 
-
-keyboard_keyscan_value_current_zero_check:
-43f1 6fe4494e fetch 8 ,mem_keyscan_value_current 
-43f2 243a41c9 nbranch keyboard_load_rgb ,blank 
-43f3 6fe44956 fetch 8 ,mem_keyscan_value_current + 8 
-43f4 243a41c9 nbranch keyboard_load_rgb ,blank 
-43f5 6fe2495e fetch 4 ,mem_keyscan_value_current + 16 
-43f6 243a41c9 nbranch keyboard_load_rgb ,blank 
-43f7 6fe0ca9f fetch 1 ,mem_keyboard_commbination_control_key_delay_release_timer 
-43f8 247a0000 nrtn blank 
-43f9 6fe0ca9c fetch 1 ,mem_keyboard_commbination_key_step 
-43fa c1030000 rtneq cammbination_key_null 
-43fb 704a9c00 jam cammbination_key_free ,mem_keyboard_commbination_key_step 
-43fc 20600000 rtn 
-
-keyboard_ghost_key_check:
-43fd 44a7c009 bpatch patch09_7 ,mem_patch09 
-43fe 7049a800 jam 0 ,mem_keyboard_ghost_flag 
-43ff 7049a600 jam 0 ,mem_keyboard_all_press_key_count 
-4400 da20494e arg mem_keyscan_value_current ,rega 
-4401 df200014 arg 20 ,loopcnt 
-
-keyboard_ghost_key_check_loop:
-4402 7049a500 jam 0 ,mem_keyboard_current_col_press_key_count 
-4403 efe08011 ifetch 1 ,rega 
-4404 203a4429 branch keyboard_ghost_key_check_next_loop ,blank 
-
-keyboard_current_col_press_key_count_check:
-4405 6848c9a5 fetcht 1 ,mem_keyboard_current_col_press_key_count 
-4406 18408401 increase 1 ,temp 
-4407 6048c9a5 storet 1 ,mem_keyboard_current_col_press_key_count 
-4408 1fe20400 copy pdata ,temp 
-4409 1fe0ffff increase -1 ,pdata 
-440a 98417e00 iand temp ,pdata 
-440b 2422c405 nbranch keyboard_current_col_press_key_count_check ,zero 
-440c 6fe0c9a5 fetch 1 ,mem_keyboard_current_col_press_key_count 
-440d 6848c9a6 fetcht 1 ,mem_keyboard_all_press_key_count 
-440e 98408400 iadd temp ,temp 
-440f 6048c9a6 storet 1 ,mem_keyboard_all_press_key_count 
-4410 1fe67c01 sub pdata ,1 ,null 
-4411 20214429 branch keyboard_ghost_key_check_next_loop ,positive 
-4412 18467c02 sub temp ,2 ,null 
-4413 20214429 branch keyboard_ghost_key_check_next_loop ,positive 
-4414 70499d00 jam 0 ,mem_keyscan_col_loop_count 
-4415 7049a700 jam 0 ,mem_keyboard_same_row_press_key_count 
-4416 e8408011 ifetcht 1 ,rega 
-4417 da40494e arg mem_keyscan_value_current ,regb 
-
-keyboard_same_row_key_check:
-4418 6fe0c99d fetch 1 ,mem_keyscan_col_loop_count 
-4419 1fe0fe01 increase 1 ,pdata 
-441a 67e0c99d store 1 ,mem_keyscan_col_loop_count 
-441b 1fe67c13 sub pdata ,19 ,null 
-441c 24214429 nbranch keyboard_ghost_key_check_next_loop ,positive 
-441d efe08012 ifetch 1 ,regb 
-441e 98417c00 iand temp ,null 
-441f 2022c42c branch keyboard_same_row_key_check_loop ,zero 
-4420 6fe0c9a7 fetch 1 ,mem_keyboard_same_row_press_key_count 
-4421 1fe0fe01 increase 1 ,pdata 
-4422 67e0c9a7 store 1 ,mem_keyboard_same_row_press_key_count 
-4423 1fe67c01 sub pdata ,1 ,null 
-4424 2021442c branch keyboard_same_row_key_check_loop ,positive 
-4425 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
-4426 c3908000 rtnbit1 keyboard_enable_full_n_key_rollover 
-4427 7049a801 jam 1 ,mem_keyboard_ghost_flag 
-4428 20600000 rtn 
-
-keyboard_ghost_key_check_next_loop:
-4429 1a20a201 increase 1 ,rega 
-442a c2004402 loop keyboard_ghost_key_check_loop 
-442b 20600000 rtn 
-
-keyboard_same_row_key_check_loop:
-442c 1a40a401 increase 1 ,regb 
-442d 20204418 branch keyboard_same_row_key_check 
-
-keyboard_keyvalue_normal_replace:
-442e 6fe0c9aa fetch 1 ,mem_keyboard_keyvalue_temp 
-442f c07341e2 beq hid_key_right_alt ,keyboard_rgb_on_type_switch 
-4430 c073c1d0 beq hid_key_right_gui ,keyboard_rgb_mode_switch 
-4431 6fe0caa1 fetch 1 ,mem_kb_computer_system 
-4432 c1000000 rtneq system_os_windows 
-4433 c1008000 rtneq system_os_android 
-4434 20600000 rtn 
-
-keyboard_keyvalue_fn_replace:
-4435 6fe0c9ab fetch 1 ,mem_keyboard_press_flag_temp 
-4436 2feffe00 isolate1 0 ,pdata 
-4437 2040c4f0 call keyboard_commbination_delay_release_clear ,true 
-4438 6fe0ca7a fetch 1 ,mem_keyboard_fn_flag 
-4439 245a445b ncall keyboard_keyvalue_fn_replace_press ,blank 
-443a 6fe0c74f fetch 1 ,mem_device_fast_conn_flag 
-443b c17f8000 rtneq 0xff 
-443c 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
-443d c31a4440 bbit0 keyboard_enable_fn_lock ,keyboard_fn_lock_check 
-443e 6fe0ca93 fetch 1 ,mem_keyboard_fn_lock_flag 
-443f 20204441 branch keyboard_fn_lock_check + 1 
-
-keyboard_fn_lock_check:
-4440 6fe0ca84 fetch 1 ,mem_keyboard_fn_first 
-4441 6848ca7a fetcht 1 ,mem_keyboard_fn_flag 
-4442 9842fe00 ixor temp ,pdata 
-4443 20628000 rtn zero 
-4444 44a8400a bpatch patch0a_0 ,mem_patch0a 
-4445 6fe0c9aa fetch 1 ,mem_keyboard_keyvalue_temp 
-4446 c014c451 beq hid_key_esc ,keyboard_keyvalue_fn_esc 
-4447 c0264459 beq hid_key_delete ,keyboard_keyvalue_fn_delete 
-4448 1fe67c45 sub pdata ,hid_key_f12 ,null 
-4449 24610000 nrtn positive 
-444a d840003a arg hid_key_f1 ,temp 
-444b 98467e00 isub temp ,pdata 
-444c 24610000 nrtn positive 
-444d d8c04a86 arg mem_keyboard_fn_f1 ,contr 
-444e 98c08c00 iadd contr ,contr 
-444f efe08006 ifetch 1 ,contr 
-4450 202044aa branch keyboard_keyvalue_store_temp 
-
-keyboard_keyvalue_fn_esc:
-4451 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
-4452 c31a4457 bbit0 keyboard_enable_fn_lock ,keyboard_keyvalue_fn_esc_next 
-4453 6fe0ca85 fetch 1 ,mem_keyboard_fn_esc 
-4454 6848ca94 fetcht 1 ,mem_keyboard_fn_lock_keyvalue 
-4455 98467c00 isub temp ,null 
-4456 20628000 rtn zero 
-
-keyboard_keyvalue_fn_esc_next:
-4457 6fe0ca85 fetch 1 ,mem_keyboard_fn_esc 
-4458 202044aa branch keyboard_keyvalue_store_temp 
-
-keyboard_keyvalue_fn_delete:
-4459 6fe0ca92 fetch 1 ,mem_keyboard_fn_del 
-445a 202044aa branch keyboard_keyvalue_store_temp 
-
-keyboard_keyvalue_fn_replace_press:
-445b 44a8c00a bpatch patch0a_1 ,mem_patch0a 
-445c 20404468 call keyboard_keyvalue_fn_lock_replace 
-445d 6fe0c9aa fetch 1 ,mem_keyboard_keyvalue_temp 
-445e c029448d beq hid_key_up_arrow ,keyboard_keyvalue_fn_up_arrow 
-445f c028c491 beq hid_key_down_arrow ,keyboard_keyvalue_fn_down_arrow 
-4460 c0284495 beq hid_key_left_arrow ,keyboard_keyvalue_fn_left_arrow 
-4461 c027c499 beq hid_key_right_arrow ,keyboard_keyvalue_fn_right_arrow 
-4462 c070449d beq hid_key_left_ctrl ,keyboard_keyvalue_fn_left_ctrl 
-4463 c01644a7 beq hid_key_space ,keyboard_keyvalue_fn_space 
-4464 c00a44ac beq hid_key_q ,keyboard_keyvalue_os_android 
-4465 c00d44bc beq hid_key_w ,keyboard_keyvalue_os_windows 
-4466 c00444c3 beq hid_key_e ,keyboard_keyvalue_os_ios 
-4467 20600000 rtn 
-
-keyboard_keyvalue_fn_lock_replace:
-4468 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
-4469 c41a0000 rtnbit0 keyboard_enable_fn_lock 
-446a 6fe0c9aa fetch 1 ,mem_keyboard_keyvalue_temp 
-446b 6848ca94 fetcht 1 ,mem_keyboard_fn_lock_keyvalue 
-446c 98467c00 isub temp ,null 
-446d 24628000 nrtn zero 
-446e 204044ca call keyboard_keyvalue_clear_temp 
-446f 6fe0c9ab fetch 1 ,mem_keyboard_press_flag_temp 
-4470 c4000000 rtnbit0 0 
-4471 6fe0ca93 fetch 1 ,mem_keyboard_fn_lock_flag 
-4472 1fe0fe01 increase 1 ,pdata 
-4473 1fe17e01 and_into 0x01 ,pdata 
-4474 67e0ca93 store 1 ,mem_keyboard_fn_lock_flag 
-4475 6fe0caa2 fetch 1 ,mem_keyboard_device_info_store_flag 
-4476 79207e03 set1 keyboard_store_eepromm_flag_fn_lock ,pdata 
-4477 67e0caa2 store 1 ,mem_keyboard_device_info_store_flag 
-4478 6fe0c678 fetch 1 ,mem_device_flag 
-4479 c000447e beq mode_24g_device ,keyboard_keyvalue_fn_lock_24g 
-447a c000c481 beq mode_bt_device1 ,keyboard_keyvalue_fn_lock_bt1 
-447b c0014484 beq mode_bt_device2 ,keyboard_keyvalue_fn_lock_bt2 
-447c c001c487 beq mode_bt_device3 ,keyboard_keyvalue_fn_lock_bt3 
-447d c002448a beq mode_usb_device ,keyboard_keyvalue_fn_lock_usb 
-
-keyboard_keyvalue_fn_lock_24g:
-447e 6fe0ca93 fetch 1 ,mem_keyboard_fn_lock_flag 
-447f 67e0c6a9 store 1 ,mem_keyboard_24g_fn_lock 
-4480 202044b7 branch keyboard_store_eeprom_or_flash 
-
-keyboard_keyvalue_fn_lock_bt1:
-4481 6fe0ca93 fetch 1 ,mem_keyboard_fn_lock_flag 
-4482 67e0c6aa store 1 ,mem_keyboard_bt1_fn_lock 
-4483 202044b7 branch keyboard_store_eeprom_or_flash 
-
-keyboard_keyvalue_fn_lock_bt2:
-4484 6fe0ca93 fetch 1 ,mem_keyboard_fn_lock_flag 
-4485 67e0c6ab store 1 ,mem_keyboard_bt2_fn_lock 
-4486 202044b7 branch keyboard_store_eeprom_or_flash 
-
-keyboard_keyvalue_fn_lock_bt3:
-4487 6fe0ca93 fetch 1 ,mem_keyboard_fn_lock_flag 
-4488 67e0c6ac store 1 ,mem_keyboard_bt3_fn_lock 
-4489 202044b7 branch keyboard_store_eeprom_or_flash 
-
-keyboard_keyvalue_fn_lock_usb:
-448a 6fe0ca93 fetch 1 ,mem_keyboard_fn_lock_flag 
-448b 67e0c6ad store 1 ,mem_keyboard_usb_fn_lock 
-448c 202044b7 branch keyboard_store_eeprom_or_flash 
-
-keyboard_keyvalue_fn_up_arrow:
-448d 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
-448e c4180000 rtnbit0 keyboard_enable_fn_arrow 
-448f 5800004b setarg hid_key_page_up 
-4490 202044aa branch keyboard_keyvalue_store_temp 
-
-keyboard_keyvalue_fn_down_arrow:
-4491 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
-4492 c4180000 rtnbit0 keyboard_enable_fn_arrow 
-4493 5800004e setarg hid_key_page_down 
-4494 202044aa branch keyboard_keyvalue_store_temp 
-
-keyboard_keyvalue_fn_left_arrow:
-4495 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
-4496 c4180000 rtnbit0 keyboard_enable_fn_arrow 
-4497 5800004a setarg hid_key_home 
-4498 202044aa branch keyboard_keyvalue_store_temp 
-
-keyboard_keyvalue_fn_right_arrow:
-4499 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
-449a c4180000 rtnbit0 keyboard_enable_fn_arrow 
-449b 5800004d setarg hid_key_end 
-449c 202044aa branch keyboard_keyvalue_store_temp 
-
-keyboard_keyvalue_fn_left_ctrl:
-449d 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
-449e c4188000 rtnbit0 keyboard_enable_fn_left_ctrl_osk 
-449f 6fe0c74f fetch 1 ,mem_device_fast_conn_flag 
-44a0 c17f8000 rtneq 0xff 
-44a1 6fe0caa1 fetch 1 ,mem_kb_computer_system 
-44a2 c00044a5 beq system_os_windows ,keyboard_keyvalue_windows_osk 
-44a3 580000f7 setarg hid_key_os_soft_kb 
-44a4 202044aa branch keyboard_keyvalue_store_temp 
-
-keyboard_keyvalue_windows_osk:
-44a5 580000aa setarg hid_key_osk 
-44a6 202044aa branch keyboard_keyvalue_store_temp 
-
-keyboard_keyvalue_fn_space:
-44a7 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
-44a8 c4190000 rtnbit0 keyboard_enable_fn_space_language 
-44a9 580000ab setarg hid_key_language 
-
-keyboard_keyvalue_store_temp:
-44aa 67e0c9aa store 1 ,mem_keyboard_keyvalue_temp 
-44ab 20600000 rtn 
-
-keyboard_keyvalue_os_android:
-44ac 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
-44ad c4198000 rtnbit0 keyboard_enable_fn_os_switch 
-44ae 204044ca call keyboard_keyvalue_clear_temp 
-44af 6fe0c9ab fetch 1 ,mem_keyboard_press_flag_temp 
-44b0 c4000000 rtnbit0 0 
-44b1 704aa101 jam system_os_android ,mem_kb_computer_system 
-
-keyboard_keyvalue_os_switch_end:
-44b2 704ac506 jam 6 ,mem_keyboard_mode_led_on_timer 
-44b3 204044cc call keyboard_store_computer_system 
-44b4 6fe0caa2 fetch 1 ,mem_keyboard_device_info_store_flag 
-44b5 79207e04 set1 keyboard_store_eepromm_flag_computer_system ,pdata 
-44b6 67e0caa2 store 1 ,mem_keyboard_device_info_store_flag 
-
-keyboard_store_eeprom_or_flash:
-44b7 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
-44b8 c3878000 rtnbit1 keyboard_enable_otp 
-
-keyboard_store_device_info_delay:
-44b9 6fe0c706 fetch 1 ,mem_store_information_delay_timer_init 
-44ba 67e0c705 store 1 ,mem_store_information_delay_timer 
-44bb 20600000 rtn 
-
-keyboard_keyvalue_os_windows:
-44bc 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
-44bd c4198000 rtnbit0 keyboard_enable_fn_os_switch 
-44be 204044ca call keyboard_keyvalue_clear_temp 
-44bf 6fe0c9ab fetch 1 ,mem_keyboard_press_flag_temp 
-44c0 c4000000 rtnbit0 0 
-44c1 704aa100 jam system_os_windows ,mem_kb_computer_system 
-44c2 202044b2 branch keyboard_keyvalue_os_switch_end 
-
-keyboard_keyvalue_os_ios:
-44c3 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
-44c4 c4198000 rtnbit0 keyboard_enable_fn_os_switch 
-44c5 204044ca call keyboard_keyvalue_clear_temp 
-44c6 6fe0c9ab fetch 1 ,mem_keyboard_press_flag_temp 
-44c7 c4000000 rtnbit0 0 
-44c8 704aa102 jam system_os_ios ,mem_kb_computer_system 
-44c9 202044b2 branch keyboard_keyvalue_os_switch_end 
-
-keyboard_keyvalue_clear_temp:
-44ca 58000000 setarg 0 
-44cb 202044aa branch keyboard_keyvalue_store_temp 
-
-keyboard_store_computer_system:
-44cc 44a9400a bpatch patch0a_2 ,mem_patch0a 
-44cd 6fe0c678 fetch 1 ,mem_device_flag 
-44ce c1000000 rtneq mode_24g_device 
-44cf c1020000 rtneq mode_usb_device 
-44d0 c000c4d3 beq mode_bt_device1 ,keyboard_store_computer_system_bt1 
-44d1 c00144d6 beq mode_bt_device2 ,keyboard_store_computer_system_bt2 
-44d2 c001c4d9 beq mode_bt_device3 ,keyboard_store_computer_system_bt3 
-
-keyboard_store_computer_system_bt1:
-44d3 6848caa1 fetcht 1 ,mem_kb_computer_system 
-44d4 6048c6ae storet 1 ,mem_keyboard_bt1_computer_system 
-44d5 20600000 rtn 
-
-keyboard_store_computer_system_bt2:
-44d6 6848caa1 fetcht 1 ,mem_kb_computer_system 
-44d7 6048c6af storet 1 ,mem_keyboard_bt2_computer_system 
-44d8 20600000 rtn 
-
-keyboard_store_computer_system_bt3:
-44d9 6848caa1 fetcht 1 ,mem_kb_computer_system 
-44da 6048c6b0 storet 1 ,mem_keyboard_bt3_computer_system 
-44db 20600000 rtn 
-
-keyboard_keyvalue_commbination_replace:
-44dc 6fe0c9aa fetch 1 ,mem_keyboard_keyvalue_temp 
-44dd c02344f2 beq hid_key_print_screen ,keyboard_commination_screen_shot_replace 
-44de c025c4f8 beq hid_key_page_up ,keyboard_commination_pageup_replace 
-44df c02744fe beq hid_key_page_down ,keyboard_commination_pagedown_replace 
-44e0 c0254500 beq hid_key_home ,keyboard_commination_home_replace 
-44e1 c026c502 beq hid_key_end ,keyboard_commination_end_replace 
-44e2 c052c504 beq hid_key_select_all ,keyboard_commination_select_all 
-44e3 c053450b beq hid_key_copy ,keyboard_commbination_copy 
-44e4 c053c50d beq hid_key_paste ,keyboard_commbination_paste 
-44e5 c054450f beq hid_key_cut ,keyboard_commbination_cut 
-44e6 c054c511 beq hid_key_all_os_lock ,keyboard_commination_os_lock 
-44e7 c055451c beq hid_key_osk ,keyboard_commbination_osk 
-44e8 c056c523 beq hid_key_search ,keyboard_commbination_search 
-44e9 c055c52a beq hid_key_language ,keyboard_commbination_language 
-44ea c0564535 beq hid_key_app_tiling ,keyboard_commbination_app_tiling 
-44eb 20600000 rtn 
-
-keyboard_commbination_delay_release_set:
-44ec 6fe0c9ab fetch 1 ,mem_keyboard_press_flag_temp 
-44ed c4000000 rtnbit0 0 
-44ee 704a9f0a jam 10 ,mem_keyboard_commbination_control_key_delay_release_timer 
-44ef 20600000 rtn 
-
-keyboard_commbination_delay_release_clear:
-44f0 704a9f00 jam 0 ,mem_keyboard_commbination_control_key_delay_release_timer 
-44f1 20600000 rtn 
-
-keyboard_commination_screen_shot_replace:
-44f2 6fe0caa1 fetch 1 ,mem_kb_computer_system 
-44f3 c1000000 rtneq system_os_windows 
-44f4 c1008000 rtneq system_os_android 
-44f5 704a9d0a jam left_shift_gui ,mem_keyboard_commbination_control_key_value 
-44f6 704a9e20 jam hid_key_3 ,mem_keyboard_commbination_standard_key_value 
-44f7 2020453e branch keyboard_commbination_keypress 
-
-keyboard_commination_pageup_replace:
-44f8 704a9e52 jam hid_key_up_arrow ,mem_keyboard_commbination_standard_key_value 
-
-keyboard_commination_ios_mac_command_commiation:
-44f9 6fe0caa1 fetch 1 ,mem_kb_computer_system 
-44fa c1000000 rtneq system_os_windows 
-44fb c1008000 rtneq system_os_android 
-44fc 704a9d08 jam left_gui ,mem_keyboard_commbination_control_key_value 
-44fd 2020453e branch keyboard_commbination_keypress 
-
-keyboard_commination_pagedown_replace:
-44fe 704a9e51 jam hid_key_down_arrow ,mem_keyboard_commbination_standard_key_value 
-44ff 202044f9 branch keyboard_commination_ios_mac_command_commiation 
-
-keyboard_commination_home_replace:
-4500 704a9e50 jam hid_key_left_arrow ,mem_keyboard_commbination_standard_key_value 
-4501 202044f9 branch keyboard_commination_ios_mac_command_commiation 
-
-keyboard_commination_end_replace:
-4502 704a9e4f jam hid_key_right_arrow ,mem_keyboard_commbination_standard_key_value 
-4503 202044f9 branch keyboard_commination_ios_mac_command_commiation 
-
-keyboard_commination_select_all:
-4504 704a9e04 jam hid_key_a ,mem_keyboard_commbination_standard_key_value 
-
-keyboard_commbination_text_edit:
-4505 704a9d01 jam left_control ,mem_keyboard_commbination_control_key_value 
-4506 6fe0caa1 fetch 1 ,mem_kb_computer_system 
-4507 c000453e beq system_os_windows ,keyboard_commbination_keypress 
-4508 c000c53e beq system_os_android ,keyboard_commbination_keypress 
-4509 704a9d08 jam left_gui ,mem_keyboard_commbination_control_key_value 
-450a 2020453e branch keyboard_commbination_keypress 
-
-keyboard_commbination_copy:
-450b 704a9e06 jam hid_key_c ,mem_keyboard_commbination_standard_key_value 
-450c 20204505 branch keyboard_commbination_text_edit 
-
-keyboard_commbination_paste:
-450d 704a9e19 jam hid_key_v ,mem_keyboard_commbination_standard_key_value 
-450e 20204505 branch keyboard_commbination_text_edit 
-
-keyboard_commbination_cut:
-450f 704a9e1b jam hid_key_x ,mem_keyboard_commbination_standard_key_value 
-4510 20204505 branch keyboard_commbination_text_edit 
-
-keyboard_commination_os_lock:
-4511 6fe0caa1 fetch 1 ,mem_kb_computer_system 
-4512 c0004516 beq system_os_windows ,keyboard_commination_windows_lock 
-4513 c001c519 beq system_os_mac ,keyboard_commination_mac_lock 
-4514 580000fa setarg hid_key_ios_android_os_lock 
-4515 202044aa branch keyboard_keyvalue_store_temp 
-
-keyboard_commination_windows_lock:
-4516 704a9d08 jam left_gui ,mem_keyboard_commbination_control_key_value 
-4517 704a9e0f jam hid_key_l ,mem_keyboard_commbination_standard_key_value 
-4518 2020453e branch keyboard_commbination_keypress 
-
-keyboard_commination_mac_lock:
-4519 704a9d09 jam left_gui_control ,mem_keyboard_commbination_control_key_value 
-451a 704a9e14 jam hid_key_q ,mem_keyboard_commbination_standard_key_value 
-451b 2020453e branch keyboard_commbination_keypress 
-
-keyboard_commbination_osk:
-451c 6fe0caa1 fetch 1 ,mem_kb_computer_system 
-451d c0004520 beq system_os_windows ,keyboard_commbination_windows_osk 
-451e 580000f7 setarg hid_key_os_soft_kb 
-451f 202044aa branch keyboard_keyvalue_store_temp 
-
-keyboard_commbination_windows_osk:
-4520 704a9d09 jam left_gui_control ,mem_keyboard_commbination_control_key_value 
-4521 704a9e12 jam hid_key_o ,mem_keyboard_commbination_standard_key_value 
-4522 2020453e branch keyboard_commbination_keypress 
-
-keyboard_commbination_search:
-4523 6fe0caa1 fetch 1 ,mem_kb_computer_system 
-4524 c001c527 beq system_os_mac ,keyboard_commbination_mac_search 
-4525 580000f5 setarg hid_key_ac_search 
-4526 202044aa branch keyboard_keyvalue_store_temp 
-
-keyboard_commbination_mac_search:
-4527 704a9d08 jam left_gui ,mem_keyboard_commbination_control_key_value 
-4528 704a9e2c jam hid_key_space ,mem_keyboard_commbination_standard_key_value 
-4529 2020453e branch keyboard_commbination_keypress 
-
-keyboard_commbination_language:
-452a 6fe0caa1 fetch 1 ,mem_kb_computer_system 
-452b c0004531 beq system_os_windows ,keyboard_commbination_language_windows 
-452c c000c533 beq system_os_android ,keyboard_commbination_language_android 
-452d 704a9d01 jam left_control ,mem_keyboard_commbination_control_key_value 
-
-keyboard_commbination_language_next:
-452e 704a9e2c jam hid_key_space ,mem_keyboard_commbination_standard_key_value 
-452f 204044ec call keyboard_commbination_delay_release_set 
-4530 2020453e branch keyboard_commbination_keypress 
-
-keyboard_commbination_language_windows:
-4531 704a9d08 jam left_gui ,mem_keyboard_commbination_control_key_value 
-4532 2020452e branch keyboard_commbination_language_next 
-
-keyboard_commbination_language_android:
-4533 704a9d02 jam left_shift ,mem_keyboard_commbination_control_key_value 
-4534 2020452e branch keyboard_commbination_language_next 
-
-keyboard_commbination_app_tiling:
-4535 6fe0caa1 fetch 1 ,mem_kb_computer_system 
-4536 c000453b beq system_os_windows ,keyboard_commbination_app_tiling_windows_android 
-4537 c000c53b beq system_os_android ,keyboard_commbination_app_tiling_windows_android 
-4538 704a9d01 jam left_control ,mem_keyboard_commbination_control_key_value 
-4539 704a9e52 jam hid_key_up_arrow ,mem_keyboard_commbination_standard_key_value 
-453a 2020453e branch keyboard_commbination_keypress 
-
-keyboard_commbination_app_tiling_windows_android:
-453b 704a9d08 jam left_gui ,mem_keyboard_commbination_control_key_value 
-453c 704a9e2b jam hid_key_tab ,mem_keyboard_commbination_standard_key_value 
-453d 2020453e branch keyboard_commbination_keypress 
-
-keyboard_commbination_keypress:
-453e 7049aa00 jam 0 ,mem_keyboard_keyvalue_temp 
-453f 6fe0c9ab fetch 1 ,mem_keyboard_press_flag_temp 
-4540 c3004545 bbit0 0 ,keyboard_commbination_key_wait_release_set 
-4541 6fe0ca9c fetch 1 ,mem_keyboard_commbination_key_step 
-4542 c001c551 beq cammbination_key_complete ,keyboard_commbination_key_hold_set 
-
-keyboard_commbination_key_press_set:
-4543 704a9c01 jam cammbination_key_press ,mem_keyboard_commbination_key_step 
-4544 20600000 rtn 
-
-keyboard_commbination_key_wait_release_set:
-4545 704a9c04 jam cammbination_key_wait_release ,mem_keyboard_commbination_key_step 
-4546 20600000 rtn 
-
-keyboard_commbination_key_null_set:
-4547 704a9c06 jam cammbination_key_null ,mem_keyboard_commbination_key_step 
-4548 20600000 rtn 
-
-keyboard_commbination_key_value_store:
-4549 67e0ca70 store 1 ,mem_keyboard_tx_data + 1 
-454a 6048ca72 storet 1 ,mem_keyboard_tx_data + 3 
-454b 20407dbc call enable_user 
-454c 704a6f00 jam hid_reportid_key_standard ,mem_keyboard_tx_data 
-454d 202046e6 branch keyboard_motion_data_check_next 
-
-keyboard_commbination_key_press_process:
-454e 6fe0ca9d fetch 1 ,mem_keyboard_commbination_control_key_value 
-454f d8400000 arg 0 ,temp 
-4550 20404549 call keyboard_commbination_key_value_store 
-
-keyboard_commbination_key_hold_set:
-4551 704a9c02 jam cammbination_key_hold ,mem_keyboard_commbination_key_step 
-4552 20600000 rtn 
-
-keyboard_commbination_key_hold_process:
-4553 704a9c03 jam cammbination_key_complete ,mem_keyboard_commbination_key_step 
-4554 6fe0ca9d fetch 1 ,mem_keyboard_commbination_control_key_value 
-4555 6848ca9e fetcht 1 ,mem_keyboard_commbination_standard_key_value 
-4556 20204549 branch keyboard_commbination_key_value_store 
-
-keyboard_commbination_key_wait_release_process:
-4557 704a6f00 jam hid_reportid_key_standard ,mem_keyboard_tx_data 
-4558 6fe0ca9d fetch 1 ,mem_keyboard_commbination_control_key_value 
-4559 d8400000 arg 0 ,temp 
-455a 20404549 call keyboard_commbination_key_value_store 
-455b 6fe0ca9f fetch 1 ,mem_keyboard_commbination_control_key_delay_release_timer 
-455c 203a4547 branch keyboard_commbination_key_null_set ,blank 
-
-keyboard_commbination_key_release_set:
-455d 704a9c05 jam cammbination_key_release ,mem_keyboard_commbination_key_step 
-455e 20600000 rtn 
-
-keyboard_commbination_key_release_process:
-455f 2020454b branch keyboard_commbination_key_value_store + 2 
-
-keyboard_commbination_key_null_process:
-4560 704a9c00 jam cammbination_key_free ,mem_keyboard_commbination_key_step 
-4561 dfe00000 arg 0 ,pdata 
-4562 d8400000 arg 0 ,temp 
-4563 20204549 branch keyboard_commbination_key_value_store 
-
-keyboard_keyvalue_in_out:
-4564 6fe0c9aa fetch 1 ,mem_keyboard_keyvalue_temp 
-4565 d84000e0 arg hid_key_left_ctrl ,temp 
-4566 98467c00 isub temp ,null 
-4567 24214576 nbranch keyboard_keyvalue_standard ,positive 
-4568 1fe67ce7 sub pdata ,hid_key_right_gui ,null 
-4569 242145ad nbranch keyboard_keyvalue_consumer ,positive 
-456a 1fe17e07 and_into 0x07 ,pdata 
-456b 1fe20e00 copy pdata ,queue 
-456c 6fe0c9ab fetch 1 ,mem_keyboard_press_flag_temp 
-456d c2804572 bbit1 0 ,keyboard_keyvalue_control_key_in 
-
-keyboard_keyvalue_control_key_out:
-456e 6fe0c9ad fetch 1 ,mem_keyboard_keyvalue_buffer 
-456f f93ffe00 qset0 pdata 
-4570 67e0c9ad store 1 ,mem_keyboard_keyvalue_buffer 
-4571 20600000 rtn 
-
-keyboard_keyvalue_control_key_in:
-4572 6fe0c9ad fetch 1 ,mem_keyboard_keyvalue_buffer 
-4573 f9207e00 qset1 pdata 
-4574 67e0c9ad store 1 ,mem_keyboard_keyvalue_buffer 
-4575 20600000 rtn 
-
-keyboard_keyvalue_standard:
-4576 7049b500 jam 0 ,mem_keyboard_keyvalue_buffer + 8 
-4577 6fe0c9ab fetch 1 ,mem_keyboard_press_flag_temp 
-4578 c280458d bbit1 0 ,keyboard_keyvalue_standard_in 
-
-keyboard_keyvalue_standard_out:
-4579 6848c9aa fetcht 1 ,mem_keyboard_keyvalue_temp 
-457a df200006 arg 6 ,loopcnt 
-457b d8c049af arg mem_keyboard_keyvalue_buffer + 2 ,contr 
-
-keyboard_keyvalue_standard_out_loop:
-457c efe08006 ifetch 1 ,contr 
-457d 98467c00 isub temp ,null 
-457e 2422c585 nbranch keyboard_keyvalue_standard_out_next ,zero 
-457f efe08006 ifetch 1 ,contr 
-4580 18c08dfe increase -2 ,contr 
-4581 e7e08006 istore 1 ,contr 
-4582 207a0000 rtn blank 
-4583 18c08c01 increase 1 ,contr 
-4584 e0408006 istoret 1 ,contr 
-
-keyboard_keyvalue_standard_out_next:
-4585 c200457c loop keyboard_keyvalue_standard_out_loop 
-4586 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
-4587 c290c58a bbit1 keyboard_enable_full_n_key_rollover ,keyboard_keyvalue_standard_out_n_key_rollover 
-4588 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
-4589 c4100000 rtnbit0 keyboard_enable_26_n_key_rollover 
-
-keyboard_keyvalue_standard_out_n_key_rollover:
-458a 2040459f call keyboard_keyvalue_n_key_rollover_data_in_out 
-458b f93ffe00 qset0 pdata 
-458c 20207dce branch istore_1_contw_rtn 
-
-keyboard_keyvalue_standard_in:
-458d 6848c9aa fetcht 1 ,mem_keyboard_keyvalue_temp 
-458e df200006 arg 6 ,loopcnt 
-458f d8c049af arg mem_keyboard_keyvalue_buffer + 2 ,contr 
-
-keyboard_keyvalue_standard_in_loop:
-4590 efe08006 ifetch 1 ,contr 
-4591 203a459c branch keyboard_keyvalue_standard_in_data ,blank 
-4592 98467c00 isub temp ,null 
-4593 20628000 rtn zero 
-4594 c2004590 loop keyboard_keyvalue_standard_in_loop 
-4595 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
-4596 c290c599 bbit1 keyboard_enable_full_n_key_rollover ,keyboard_keyvalue_standard_in_n_key_rollover 
-4597 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
-4598 c4100000 rtnbit0 keyboard_enable_26_n_key_rollover 
-
-keyboard_keyvalue_standard_in_n_key_rollover:
-4599 2040459f call keyboard_keyvalue_n_key_rollover_data_in_out 
-459a f9207e00 qset1 pdata 
-459b 20207dce branch istore_1_contw_rtn 
-
-keyboard_keyvalue_standard_in_data:
-459c 18c08dff increase -1 ,contr 
-459d e0408006 istoret 1 ,contr 
-459e 20600000 rtn 
-
-keyboard_keyvalue_n_key_rollover_data_in_out:
-459f 44a9c00a bpatch patch0a_3 ,mem_patch0a 
-45a0 6fe0c9aa fetch 1 ,mem_keyboard_keyvalue_temp 
-45a1 1fe67c70 sub pdata ,0x70 ,null 
-45a2 24610000 nrtn positive 
-45a3 7049b701 jam 1 ,mem_keboard_n_key_rollover_send_flag 
-45a4 7049a901 jam 1 ,mem_keyboard_data_change_flag 
-45a5 1fe6fc08 div pdata ,8 
-45a6 20407d64 call wait_div_end 
-45a7 1807fe00 quotient pdata 
-45a8 18070e00 remainder queue 
-45a9 d8a049b9 arg mem_keyboard_n_key_rollover_data + 1 ,contw 
-45aa 98a08a00 iadd contw ,contw 
-45ab 58000000 setarg 0 
-45ac 20600000 rtn 
-
-keyboard_keyvalue_consumer:
-45ad 704aa001 jam keyboard_consumer_key_press ,mem_keyboard_consumer_key_status 
-45ae 6fe0c9ab fetch 1 ,mem_keyboard_press_flag_temp 
-45af 2fec0000 isolate0 0 ,pdata 
-45b0 2040c5b2 call keyboard_consumer_key_release_status ,true 
-45b1 20204576 branch keyboard_keyvalue_standard 
-
-keyboard_consumer_key_release_status:
-45b2 704aa002 jam keyboard_consumer_key_release ,mem_keyboard_consumer_key_status 
-45b3 20600000 rtn 
-
-keyboard_special_key_check:
-45b4 20404660 call keyboard_pairing_button_check 
-45b5 204045f2 call keyboard_device_select 
-45b6 704a7a00 jam 0 ,mem_keyboard_fn_flag 
-45b7 704a7b00 jam 0 ,mem_keyboard_control_key_flag 
-45b8 704a7c00 jam 0 ,mem_keyboard_alt_flag 
-45b9 704a7d00 jam 0 ,mem_keyboard_shift_flag 
-45ba 704a7e00 jam 0 ,mem_keyboard_bt_button_flag 
-45bb 6fe0c9ad fetch 1 ,mem_keyboard_keyvalue_buffer 
-45bc 245a468f ncall keyborad_control_key_set ,blank 
-45bd d8c049af arg mem_keyboard_keyvalue_buffer + 2 ,contr 
-45be df200006 arg 6 ,loopcnt 
-
-keyboard_special_key_check_loop:
-45bf efe08006 ifetch 1 ,contr 
-45c0 1fe67c7f sub pdata ,hid_key_fn ,null 
-45c1 2042c699 call keyboard_fn_set ,zero 
-45c2 1fe67cae sub pdata ,hid_key_pb ,null 
-45c3 2042c69b call keyboard_pb_set ,zero 
-45c4 c20045bf loop keyboard_special_key_check_loop 
-45c5 204045c9 call keyboard_commbination_key_press_check 
-45c6 6fe0ca7f fetch 1 ,mem_keyboard_pairing_type 
-45c7 203a4670 branch keyboard_enable_bt_button_pairing ,blank 
-45c8 20600000 rtn 
-
-keyboard_commbination_key_press_check:
-45c9 44aa400a bpatch patch0a_4 ,mem_patch0a 
-45ca 704a9b00 jam 0 ,mem_keyboard_commbination_press_type 
-45cb 6fe0c678 fetch 1 ,mem_device_flag 
-45cc c08045d7 bne mode_24g_device ,keyboard_commbination_key_press_check_bt 
-45cd 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
-45ce c4098000 rtnbit0 keyboard_enable_commbination_key_by_24g_pairing 
-45cf 6fe149af fetch 2 ,mem_keyboard_keyvalue_buffer + 2 
-45d0 68494a97 fetcht 2 ,mem_keyboard_commbination_key_24g 
-45d1 98467c00 isub temp ,null 
-45d2 2022c5e8 branch keyboard_commbination_key_down_24g ,zero 
-45d3 18508400 byteswap temp ,temp 
-45d4 98467c00 isub temp ,null 
-45d5 2022c5e8 branch keyboard_commbination_key_down_24g ,zero 
-45d6 202054e6 branch mouse_commbination_key_up 
-
-keyboard_commbination_key_press_check_bt:
-45d7 6fe149af fetch 2 ,mem_keyboard_keyvalue_buffer + 2 
-45d8 68494a99 fetcht 2 ,mem_keyboard_commbination_fast_conn_bt 
-45d9 98467c00 isub temp ,null 
-45da 2022c5ec branch keyboard_commbination_key_down_bt_fast_conn ,zero 
-45db 18508400 byteswap temp ,temp 
-45dc 98467c00 isub temp ,null 
-45dd 2022c5ec branch keyboard_commbination_key_down_bt_fast_conn ,zero 
-45de 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
-45df c30dd4e6 bbit0 keyboard_enable_commbination_key_by_bt_discovery ,mouse_commbination_key_up 
-45e0 6fe149af fetch 2 ,mem_keyboard_keyvalue_buffer + 2 
-45e1 68494a95 fetcht 2 ,mem_keyboard_commbination_key_bt 
-45e2 98467c00 isub temp ,null 
-45e3 2022c5ea branch keyboard_commbination_key_down_bt ,zero 
-45e4 18508400 byteswap temp ,temp 
-45e5 98467c00 isub temp ,null 
-45e6 2022c5ea branch keyboard_commbination_key_down_bt ,zero 
-45e7 202054e6 branch mouse_commbination_key_up 
-
-keyboard_commbination_key_down_24g:
-45e8 704a9b01 jam keyboard_commbination_press_type_24g_pair ,mem_keyboard_commbination_press_type 
-45e9 202045ee branch keyboard_commbination_key_down 
-
-keyboard_commbination_key_down_bt:
-45ea 704a9b02 jam keyboard_commbination_press_type_bt_pair ,mem_keyboard_commbination_press_type 
-45eb 202045ee branch keyboard_commbination_key_down 
-
-keyboard_commbination_key_down_bt_fast_conn:
-45ec 704a9b03 jam keyboard_commbination_press_type_bt_fast_conn ,mem_keyboard_commbination_press_type 
-45ed 202045ee branch keyboard_commbination_key_down 
-
-keyboard_commbination_key_down:
-45ee 6fe0c735 fetch 1 ,mem_commbination_key_statue 
-45ef c1008000 rtneq commbination_key_state_down 
-45f0 70473501 jam commbination_key_state_down ,mem_commbination_key_statue 
-45f1 20600000 rtn 
-
-keyboard_device_select:
-45f2 20407dbe call disable_user 
-45f3 20404600 call keyboard_device_select_g24 
-45f4 20404616 call keyboard_device_select_bt1 
-45f5 20404627 call keyboard_device_select_bt2 
-45f6 20404638 call keyboard_device_select_bt3 
-45f7 2040464e call keyboard_device_select_usb 
-45f8 203445fe branch keyboard_clear_change_flag ,user 
-45f9 6fe0c8a6 fetch 1 ,mem_keyboard_switch_device_flag 
-45fa 793ffe00 set0 keyboard_flag_g24_device_button ,pdata 
-45fb 793ffe01 set0 keyboard_flag_bt_device_button ,pdata 
-45fc 67e0c8a6 store 1 ,mem_keyboard_switch_device_flag 
-45fd 20600000 rtn 
-
-keyboard_clear_change_flag:
-45fe 7049a900 jam 0 ,mem_keyboard_data_change_flag 
-45ff 20600000 rtn 
-
-keyboard_device_select_g24:
-4600 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
-4601 c4080000 rtnbit0 keyboard_enable_24g 
-4602 6fe0c897 fetch 1 ,mem_keyboard_switch_device_to_g24 
-4603 207a0000 rtn blank 
-4604 6fe149af fetch 2 ,mem_keyboard_keyvalue_buffer + 2 
-4605 68494898 fetcht 2 ,mem_keyboard_switch_device_to_g24 + 1 
-4606 98467c00 isub temp ,null 
-4607 2022c60c branch keyboard_device_select_g24_press ,zero 
-4608 18508400 byteswap temp ,temp 
-4609 98467c00 isub temp ,null 
-460a 2022c60c branch keyboard_device_select_g24_press ,zero 
-460b 20600000 rtn 
-
-keyboard_device_select_g24_press:
-460c 20407dbc call enable_user 
-460d 6fe0c8a6 fetch 1 ,mem_keyboard_switch_device_flag 
-460e 79207e00 set1 keyboard_flag_g24_device_button ,pdata 
-460f 793ffe01 set0 keyboard_flag_bt_device_button ,pdata 
-4610 67e0c8a6 store 1 ,mem_keyboard_switch_device_flag 
-4611 6fe0c678 fetch 1 ,mem_device_flag 
-4612 c1000000 rtneq mode_24g_device 
-4613 70467800 jam mode_24g_device ,mem_device_flag 
-4614 7048a701 jam 1 ,mem_keyboard_switch_g24_enable 
-4615 20600000 rtn 
-
-keyboard_device_select_bt1:
-4616 6fe0c89a fetch 1 ,mem_keyboard_switch_device_to_bt1 
-4617 207a0000 rtn blank 
-4618 6fe149af fetch 2 ,mem_keyboard_keyvalue_buffer + 2 
-4619 6849489b fetcht 2 ,mem_keyboard_switch_device_to_bt1 + 1 
-461a 98467c00 isub temp ,null 
-461b 2022c620 branch keyboard_device_select_bt1_press ,zero 
-461c 18508400 byteswap temp ,temp 
-461d 98467c00 isub temp ,null 
-461e 2022c620 branch keyboard_device_select_bt1_press ,zero 
-461f 20600000 rtn 
-
-keyboard_device_select_bt1_press:
-4620 20407dbc call enable_user 
-4621 20404649 call keyboard_device_select_bt_set_press_flag 
-4622 6fe0c678 fetch 1 ,mem_device_flag 
-4623 c1008000 rtneq mode_bt_device1 
-4624 70467801 jam mode_bt_device1 ,mem_device_flag 
-4625 7048a801 jam 1 ,mem_keyboard_switch_bt_enable 
-4626 20600000 rtn 
-
-keyboard_device_select_bt2:
-4627 6fe0c89d fetch 1 ,mem_keyboard_switch_device_to_bt2 
-4628 207a0000 rtn blank 
-4629 6fe149af fetch 2 ,mem_keyboard_keyvalue_buffer + 2 
-462a 6849489e fetcht 2 ,mem_keyboard_switch_device_to_bt2 + 1 
-462b 98467c00 isub temp ,null 
-462c 2022c631 branch keyboard_device_select_bt2_press ,zero 
-462d 18508400 byteswap temp ,temp 
-462e 98467c00 isub temp ,null 
-462f 2022c631 branch keyboard_device_select_bt2_press ,zero 
-4630 20600000 rtn 
-
-keyboard_device_select_bt2_press:
-4631 20407dbc call enable_user 
-4632 20404649 call keyboard_device_select_bt_set_press_flag 
-4633 6fe0c678 fetch 1 ,mem_device_flag 
-4634 c1010000 rtneq mode_bt_device2 
-4635 70467802 jam mode_bt_device2 ,mem_device_flag 
-4636 7048a801 jam 1 ,mem_keyboard_switch_bt_enable 
-4637 20600000 rtn 
-
-keyboard_device_select_bt3:
-4638 6fe0c8a0 fetch 1 ,mem_keyboard_switch_device_to_bt3 
-4639 207a0000 rtn blank 
-463a 6fe149af fetch 2 ,mem_keyboard_keyvalue_buffer + 2 
-463b 684948a1 fetcht 2 ,mem_keyboard_switch_device_to_bt3 + 1 
-463c 98467c00 isub temp ,null 
-463d 2022c642 branch keyboard_device_select_bt3_press ,zero 
-463e 18508400 byteswap temp ,temp 
-463f 98467c00 isub temp ,null 
-4640 2022c642 branch keyboard_device_select_bt3_press ,zero 
-4641 20600000 rtn 
-
-keyboard_device_select_bt3_press:
-4642 20407dbc call enable_user 
-4643 20404649 call keyboard_device_select_bt_set_press_flag 
-4644 6fe0c678 fetch 1 ,mem_device_flag 
-4645 c1018000 rtneq mode_bt_device3 
-4646 70467803 jam mode_bt_device3 ,mem_device_flag 
-4647 7048a801 jam 1 ,mem_keyboard_switch_bt_enable 
-4648 20600000 rtn 
-
-keyboard_device_select_bt_set_press_flag:
-4649 6fe0c8a6 fetch 1 ,mem_keyboard_switch_device_flag 
-464a 793ffe00 set0 keyboard_flag_g24_device_button ,pdata 
-464b 79207e01 set1 keyboard_flag_bt_device_button ,pdata 
-464c 67e0c8a6 store 1 ,mem_keyboard_switch_device_flag 
-464d 20600000 rtn 
-
-keyboard_device_select_usb:
-464e 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
-464f c4120000 rtnbit0 keyboard_enable_usb 
-4650 6fe0c8a3 fetch 1 ,mem_keyboard_switch_device_to_usb 
-4651 207a0000 rtn blank 
-4652 6fe149af fetch 2 ,mem_keyboard_keyvalue_buffer + 2 
-4653 684948a4 fetcht 2 ,mem_keyboard_switch_device_to_usb + 1 
-4654 98467c00 isub temp ,null 
-4655 2022c65a branch keyboard_device_select_usb_press ,zero 
-4656 18508400 byteswap temp ,temp 
-4657 98467c00 isub temp ,null 
-4658 2022c65a branch keyboard_device_select_usb_press ,zero 
-4659 20600000 rtn 
-
-keyboard_device_select_usb_press:
-465a 20407dbc call enable_user 
-465b 6fe0c678 fetch 1 ,mem_device_flag 
-465c c1020000 rtneq mode_usb_device 
-465d 70467804 jam mode_usb_device ,mem_device_flag 
-465e 20404045 call keyboard_store_device_number 
-465f 20206c99 branch soft_reset_chip 
-
-keyboard_pairing_button_check:
-4660 6fe0ca7f fetch 1 ,mem_keyboard_pairing_type 
-4661 247a0000 nrtn blank 
-4662 6848c90f fetcht 1 ,mem_keyboard_pb_button_gpio 
-4663 18467cff sub temp ,ui_button_gpio_disable ,null 
-4664 20628000 rtn zero 
-4665 20406ee0 call gpio_get_bit 
-4666 2420c66c nbranch keyboard_pairing_button_release ,true 
-4667 df200008 arg 8 ,loopcnt 
-4668 d8a049ad arg mem_keyboard_keyvalue_buffer ,contw 
-4669 20407ca3 call clear_mem 
-466a 7049afae jam hid_key_pb ,mem_keyboard_keyvalue_buffer + 2 
-466b 20600000 rtn 
-
-keyboard_pairing_button_release:
-466c 6fe0c9af fetch 1 ,mem_keyboard_keyvalue_buffer + 2 
-466d c1d70000 rtnne hid_key_pb 
-466e 7049af00 jam hid_key_null ,mem_keyboard_keyvalue_buffer + 2 
-466f 20600000 rtn 
-
-keyboard_enable_bt_button_pairing:
-4670 44aac00a bpatch patch0a_5 ,mem_patch0a 
-4671 6fe0ca7e fetch 1 ,mem_keyboard_bt_button_flag 
-4672 207a0000 rtn blank 
-4673 6fe0c678 fetch 1 ,mem_device_flag 
-4674 c0004680 beq mode_24g_device ,keyboard_24g_start_pair_mode 
-
-keyboard_long_button_bt_discovery:
-4675 44ab400a bpatch patch0a_6 ,mem_patch0a 
-4676 20403f2c call keyboard_pairing_check_otp_offset 
-4677 7049a900 jam 0 ,mem_keyboard_data_change_flag 
-4678 6fe0c678 fetch 1 ,mem_device_flag 
-4679 c1000000 rtneq mode_24g_device 
-467a 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
-467b c3820000 rtnbit1 keyboard_bt_discovery_button_long_down_flag 
-467c d8e00004 arg keyboard_bt_discovery_button_long_down_flag ,queue 
-467d 20404a25 call keyboard_enable_function_flag 
-467e 20403745 call app_evt_button_long_pressed 
-467f 202048c0 branch keyboard_bb_event_discovery_btn 
-
-keyboard_24g_start_pair_mode:
-4680 44abc00a bpatch patch0a_7 ,mem_patch0a 
-4681 20404161 call keyboard_device_led_all_off 
-4682 20403f2c call keyboard_pairing_check_otp_offset 
-4683 7049a900 jam 0 ,mem_keyboard_data_change_flag 
-4684 6fe145ef fetch 2 ,mem_24g_pair_timeout 
-4685 247a0000 nrtn blank 
-4686 58000000 setarg 0 
-4687 67e14741 store 2 ,mem_device_no_data_timer 
-4688 67e145f5 store 2 ,mem_24g_reconn_timeout 
-4689 67e0c5f9 store 1 ,mem_24g_reconn_type 
-468a d8e00000 arg keyboard_24g_pairing_flag ,queue 
-468b 20404a25 call keyboard_enable_function_flag 
-468c 204048e9 call keyboard_stop_discovery 
-468d 7045a002 jam type_kb ,mem_24g_data_type 
-468e 2020326f branch g24_pair_start 
-
-keyborad_control_key_set:
-468f 67e0ca7b store 1 ,mem_keyboard_control_key_flag 
-4690 1fe17e44 and_into 0x44 ,pdata 
-4691 245a4697 ncall keyboard_alt_flag_set ,blank 
-4692 6fe0ca7b fetch 1 ,mem_keyboard_control_key_flag 
-4693 1fe17e22 and_into 0x22 ,pdata 
-4694 207a0000 rtn blank 
-4695 704a7d01 jam 1 ,mem_keyboard_shift_flag 
-4696 20600000 rtn 
-
-keyboard_alt_flag_set:
-4697 704a7c01 jam 1 ,mem_keyboard_alt_flag 
-4698 20600000 rtn 
-
-keyboard_fn_set:
-4699 704a7a01 jam 1 ,mem_keyboard_fn_flag 
-469a 20600000 rtn 
-
-keyboard_pb_set:
-469b 704a7e01 jam 1 ,mem_keyboard_bt_button_flag 
-469c 20600000 rtn 
-
-keyboard_motion:
-469d 44ac400b bpatch patch0b_0 ,mem_patch0b 
-469e 78547c00 disable user 
-469f 70472b00 jam 0 ,mem_customer_key 
-46a0 70472c00 jam 0 ,mem_customer_data_trigger 
-46a1 70472d00 jam 0 ,mem_customer_data_trigger_last 
-46a2 6fe0ca9c fetch 1 ,mem_keyboard_commbination_key_step 
-46a3 c000c54e beq cammbination_key_press ,keyboard_commbination_key_press_process 
-46a4 c0014553 beq cammbination_key_hold ,keyboard_commbination_key_hold_process 
-46a5 c001c553 beq cammbination_key_complete ,keyboard_commbination_key_hold_process 
-46a6 c0024557 beq cammbination_key_wait_release ,keyboard_commbination_key_wait_release_process 
-46a7 c0034560 beq cammbination_key_null ,keyboard_commbination_key_null_process 
-46a8 6fe0c9a9 fetch 1 ,mem_keyboard_data_change_flag 
-46a9 203a46ba branch keyboard_no_key_press ,blank 
-46aa 1fe0ffff increase -1 ,pdata 
-46ab 67e0c9a9 store 1 ,mem_keyboard_data_change_flag 
-46ac 204046b7 call keyboard_current_mult_update 
-46ad 704a820a jam 10 ,mem_keyboard_led_status_get_timer 
-46ae 20405535 call mouse_no_data_timer_init 
-46af 6fe0ca9c fetch 1 ,mem_keyboard_commbination_key_step 
-46b0 c002c55f beq cammbination_key_release ,keyboard_commbination_key_release_process 
-46b1 d8a04a6f arg mem_keyboard_tx_data ,contw 
-46b2 df20000a arg 10 ,loopcnt 
-46b3 20407ca3 call clear_mem 
-46b4 204046ca call keyboard_motion_data_check 
-46b5 704a7900 jam 0 ,mem_keyboard_data_send_flag 
-46b6 20600000 rtn 
-
-keyboard_current_mult_update:
-46b7 7040c003 jam 3 ,mem_lpm_mult 
-46b8 70473e0a jam 10 ,mem_mouse_current_mult_timer 
-46b9 20600000 rtn 
-
-keyboard_no_key_press:
-46ba 6fe0c678 fetch 1 ,mem_device_flag 
-46bb c1800000 rtnne mode_24g_device 
-46bc 6fe0ca81 fetch 1 ,mem_keyboard_led_status_get 
-46bd 207a0000 rtn blank 
-46be 6fe0ca80 fetch 1 ,mem_24g_repeat_send_flag 
-46bf 247a0000 nrtn blank 
-46c0 6848ca83 fetcht 1 ,mem_keyboard_led_status_get_timer_last 
-46c1 6fe0ca82 fetch 1 ,mem_keyboard_led_status_get_timer 
-46c2 98467c00 isub temp ,null 
-46c3 67e0ca83 store 1 ,mem_keyboard_led_status_get_timer_last 
-46c4 20628000 rtn zero 
-46c5 d8a04a6f arg mem_keyboard_tx_data ,contw 
-46c6 df20000a arg 10 ,loopcnt 
-46c7 20407ca3 call clear_mem 
-46c8 20407dbc call enable_user 
-46c9 202046e6 branch keyboard_motion_data_check_next 
-
-keyboard_motion_data_check:
-46ca 44acc00b bpatch patch0b_1 ,mem_patch0b 
-46cb 6fe0caa0 fetch 1 ,mem_keyboard_consumer_key_status 
-46cc c001474b beq keyboard_consumer_key_release ,keyboard_value_consumer_release 
-46cd 6fe0c9b7 fetch 1 ,mem_keboard_n_key_rollover_send_flag 
-46ce 243a46ec nbranch keyboard_motion_data_check_n_key_rollover_key ,blank 
-46cf d8c049af arg mem_keyboard_keyvalue_buffer + 2 ,contr 
-46d0 df200006 arg 6 ,loopcnt 
-
-keyboard_value_tpye_check:
-46d1 efe08006 ifetch 1 ,contr 
-46d2 1fe67ce7 sub pdata ,hid_key_right_gui ,null 
-46d3 242146f5 nbranch keyboard_value_tpye_consumer_set ,positive 
-46d4 c20046d1 loop keyboard_value_tpye_check 
-46d5 6fe0c9a6 fetch 1 ,mem_keyboard_all_press_key_count 
-46d6 205a46ef call keyboard_value_release_all_key ,blank 
-46d7 704a6f00 jam hid_reportid_key_standard ,mem_keyboard_tx_data 
-46d8 44ad400b bpatch patch0b_2 ,mem_patch0b 
-46d9 da2049ad arg mem_keyboard_keyvalue_buffer ,rega 
-46da d8a04a70 arg mem_keyboard_tx_data + 1 ,contw 
-46db df200008 arg 8 ,loopcnt 
-
-keyboard_tx_data_store:
-46dc e8408011 ifetcht 1 ,rega 
-46dd 6fe0c74f fetch 1 ,mem_device_fast_conn_flag 
-46de c07fc6e3 beq 0xff ,keyboard_tx_data_store_loop 
-46df 18467c7f sub temp ,hid_key_fn ,null 
-46e0 2422c6e3 nbranch keyboard_tx_data_store_loop ,zero 
-46e1 1a20a201 increase 1 ,rega 
-46e2 e8408011 ifetcht 1 ,rega 
-
-keyboard_tx_data_store_loop:
-46e3 e0408005 istoret 1 ,contw 
-46e4 1a20a201 increase 1 ,rega 
-46e5 c20046dc loop keyboard_tx_data_store 
-
-keyboard_motion_data_check_next:
-46e6 44adc00b bpatch patch0b_3 ,mem_patch0b 
-46e7 20404756 call keyboard_device_data_tpye_check 
-46e8 6fe0ca79 fetch 1 ,mem_keyboard_data_send_flag 
-46e9 c000fdbc beq device_data_tpye_mouse ,enable_user 
-
-device_send_keyboard_data:
-46ea 2040522c call mouse_customerkey_press 
-46eb 20207dbc branch enable_user 
-
-keyboard_motion_data_check_n_key_rollover_key:
-46ec 7049b700 jam 0 ,mem_keboard_n_key_rollover_send_flag 
-46ed 704a6f08 jam hid_reportid_n_key_rollover ,mem_keyboard_tx_data 
-46ee 202046e6 branch keyboard_motion_data_check_next 
-
-keyboard_value_release_all_key:
-46ef d8a049b8 arg mem_keyboard_n_key_rollover_data ,contw 
-46f0 df20000f arg 15 ,loopcnt 
-46f1 20407ca3 call clear_mem 
-46f2 d8a049ad arg mem_keyboard_keyvalue_buffer ,contw 
-46f3 df20000a arg 10 ,loopcnt 
-46f4 20207ca3 branch clear_mem 
-
-keyboard_value_tpye_consumer_set:
-46f5 1fe20400 copy pdata ,temp 
-46f6 44ae400b bpatch patch0b_4 ,mem_patch0b 
-46f7 18427e00 copy temp ,pdata 
-46f8 704a6f05 jam hid_reportid_bit_consumer_key ,mem_keyboard_tx_data 
-46f9 6848c9a6 fetcht 1 ,mem_keyboard_all_press_key_count 
-46fa 18467c00 sub temp ,hid_key_null ,null 
-46fb 2022c74b branch keyboard_value_consumer_all_key_release ,zero 
-46fc c0744715 beq hid_key_multikey_media ,keyboard_value_media 
-46fd c074c718 beq hid_key_multikey_vol_down ,keyboard_value_vol_down 
-46fe c075471a beq hid_key_multikey_vol_up ,keyboard_value_vol_up 
-46ff c075c71c beq hid_key_multikey_mute ,keyboard_value_mute 
-4700 c076471e beq hid_key_multikey_pre_track ,keyboard_value_pre_track 
-4701 c076c720 beq hid_key_multikey_next_track ,keyboard_value_next_track 
-4702 c0774722 beq hid_key_multikey_paly ,keyboard_value_play 
-4703 c077c724 beq hid_key_multikey_stop ,keyboard_value_stop 
-4704 c0784726 beq hid_key_ac_home ,keyboard_value_ac_home 
-4705 c078c728 beq hid_key_mail ,keyboard_value_mail 
-4706 c079472a beq hid_key_my_computer ,keyboard_value_my_computer 
-4707 c079c72c beq hid_key_ac_favorites ,keyboard_value_ac_favorites 
-4708 c07a472e beq hid_key_calculator ,keyboard_value_calculator 
-4709 c07ac730 beq hid_key_ac_search ,keyboard_value_ac_search 
-470a c07b4732 beq hid_key_ac_back ,keyboard_value_ac_back 
-470b c07bc737 beq hid_key_os_soft_kb ,keyboard_value_os_soft_kb 
-470c c07c473d beq hid_key_light_down ,keyboard_value_light_down 
-470d c07cc73f beq hid_key_light_up ,keyboard_value_light_up 
-470e c07d4741 beq hid_key_ios_android_os_lock ,keyboard_value_os_lock 
-470f c07dc743 beq hid_key_mac_eject ,keyboard_value_mac_eject 
-4710 c07e4745 beq hid_key_ac_forward ,keyboard_value_ac_forward 
-4711 c07ec747 beq hid_key_ac_stop ,keyboard_value_ac_stop 
-4712 c07f4749 beq hid_key_ac_refresh ,keyboard_value_ac_refresh 
-4713 c07fc752 beq hid_key_system_sleep ,keyboard_value_system_sleep 
-4714 202046e6 branch keyboard_motion_data_check_next 
-
-keyboard_value_media:
-4715 58000001 setarg 0x000001 
-
-keyboard_consumer_value_store:
-4716 67e1ca70 store 3 ,mem_keyboard_tx_data + 1 
-4717 202046e6 branch keyboard_motion_data_check_next 
-
-keyboard_value_vol_down:
-4718 58000002 setarg 0x000002 
-4719 20204716 branch keyboard_consumer_value_store 
-
-keyboard_value_vol_up:
-471a 58000004 setarg 0x000004 
-471b 20204716 branch keyboard_consumer_value_store 
-
-keyboard_value_mute:
-471c 58000008 setarg 0x000008 
-471d 20204716 branch keyboard_consumer_value_store 
-
-keyboard_value_pre_track:
-471e 58000010 setarg 0x000010 
-471f 20204716 branch keyboard_consumer_value_store 
-
-keyboard_value_next_track:
-4720 58000020 setarg 0x000020 
-4721 20204716 branch keyboard_consumer_value_store 
-
-keyboard_value_play:
-4722 58000040 setarg 0x000040 
-4723 20204716 branch keyboard_consumer_value_store 
-
-keyboard_value_stop:
-4724 58000080 setarg 0x000080 
-4725 20204716 branch keyboard_consumer_value_store 
-
-keyboard_value_ac_home:
-4726 58000100 setarg 0x000100 
-4727 20204716 branch keyboard_consumer_value_store 
-
-keyboard_value_mail:
-4728 58000200 setarg 0x000200 
-4729 20204716 branch keyboard_consumer_value_store 
-
-keyboard_value_my_computer:
-472a 58000400 setarg 0x000400 
-472b 20204716 branch keyboard_consumer_value_store 
-
-keyboard_value_ac_favorites:
-472c 58000800 setarg 0x000800 
-472d 20204716 branch keyboard_consumer_value_store 
-
-keyboard_value_calculator:
-472e 58001000 setarg 0x001000 
-472f 20204716 branch keyboard_consumer_value_store 
-
-keyboard_value_ac_search:
-4730 58002000 setarg 0x002000 
-4731 20204716 branch keyboard_consumer_value_store 
-
-keyboard_value_ac_back:
-4732 6fe0caa1 fetch 1 ,mem_kb_computer_system 
-4733 c0014726 beq system_os_ios ,keyboard_value_ac_home 
-4734 c001c726 beq system_os_mac ,keyboard_value_ac_home 
-4735 58004000 setarg 0x004000 
-4736 20204716 branch keyboard_consumer_value_store 
-
-keyboard_value_os_soft_kb:
-4737 6fe0caa1 fetch 1 ,mem_kb_computer_system 
-4738 c000c73b beq system_os_android ,keyboard_value_os_soft_kb_android 
-4739 58010000 setarg 0x010000 
-473a 20204716 branch keyboard_consumer_value_store 
-
-keyboard_value_os_soft_kb_android:
-473b 58008000 setarg 0x008000 
-473c 20204716 branch keyboard_consumer_value_store 
-
-keyboard_value_light_down:
-473d 58020000 setarg 0x020000 
-473e 20204716 branch keyboard_consumer_value_store 
-
-keyboard_value_light_up:
-473f 58040000 setarg 0x040000 
-4740 20204716 branch keyboard_consumer_value_store 
-
-keyboard_value_os_lock:
-4741 58080000 setarg 0x080000 
-4742 20204716 branch keyboard_consumer_value_store 
-
-keyboard_value_mac_eject:
-4743 58100000 setarg 0x100000 
-4744 20204716 branch keyboard_consumer_value_store 
-
-keyboard_value_ac_forward:
-4745 58200000 setarg 0x200000 
-4746 20204716 branch keyboard_consumer_value_store 
-
-keyboard_value_ac_stop:
-4747 58400000 setarg 0x400000 
-4748 20204716 branch keyboard_consumer_value_store 
-
-keyboard_value_ac_refresh:
-4749 58800000 setarg 0x800000 
-474a 20204716 branch keyboard_consumer_value_store 
-
-keyboard_value_consumer_all_key_release:
-
-keyboard_value_consumer_release:
-474b 7049a902 jam 2 ,mem_keyboard_data_change_flag 
-474c 6fe0c9a6 fetch 1 ,mem_keyboard_all_press_key_count 
-474d 205a46ef call keyboard_value_release_all_key ,blank 
-474e 704aa000 jam keyboard_consumer_key_standby ,mem_keyboard_consumer_key_status 
-474f 58000005 setarg hid_reportid_bit_consumer_key 
-4750 67e1ca6f store 3 ,mem_keyboard_tx_data 
-4751 202046e6 branch keyboard_motion_data_check_next 
-
-keyboard_value_system_sleep:
-4752 704a6f02 jam hid_reportid_system_ctrl ,mem_keyboard_tx_data 
-4753 58000002 setarg 0x02 
-4754 67e0ca70 store 1 ,mem_keyboard_tx_data + 1 
-4755 202046e6 branch keyboard_motion_data_check_next 
-
-keyboard_device_data_tpye_check:
-4756 6fe0c678 fetch 1 ,mem_device_flag 
-4757 c080475d bne mode_24g_device ,keyboard_device_data_tpye_check_next 
-4758 704a8000 jam 0 ,mem_24g_repeat_send_flag 
-4759 6fe14a6f fetch 2 ,mem_keyboard_tx_data 
-475a 245a47e4 ncall keyboard_set_repeat_send_flag ,blank 
-475b 6fe34a72 fetch 6 ,mem_keyboard_tx_data + 3 
-475c 245a47e4 ncall keyboard_set_repeat_send_flag ,blank 
-
-keyboard_device_data_tpye_check_next:
-475d 2040684b call hid_device_clear_key_data 
-475e 704a7900 jam device_data_tpye_keyboard ,mem_keyboard_data_send_flag 
-475f 44aec00b bpatch patch0b_5 ,mem_patch0b 
-4760 6fe0ca6f fetch 1 ,mem_keyboard_tx_data 
-4761 c000476d beq hid_reportid_key_standard ,keyboard_standard_data_send 
-4762 c000c768 beq hid_reportid_mouse ,keyboard_mouse_data_send 
-4763 c001c780 beq hid_reportid_consumer_key ,keyboard_consumer_data_send 
-4764 c002c785 beq hid_reportid_bit_consumer_key ,keyboard_bit_consumer_data_send 
-4765 c0014787 beq hid_reportid_system_ctrl ,keyboard_system_control_data_send 
-4766 c004478c beq hid_reportid_n_key_rollover ,keyboard_n_key_rollover_send 
-4767 20600000 rtn 
-
-keyboard_mouse_data_send:
-4768 704a7901 jam device_data_tpye_mouse ,mem_keyboard_data_send_flag 
-4769 d8c04a70 arg mem_keyboard_tx_data + 1 ,contr 
-476a d8a0465c arg mem_mouse_key ,contw 
-476b df200007 arg 7 ,loopcnt 
-476c 20207cdc branch memcpy 
-
-keyboard_standard_data_send:
-476d 6fe0c678 fetch 1 ,mem_device_flag 
-476e c0804772 bne mode_24g_device ,keyboard_standard_data_send_end 
-476f 204047d9 call keyboard_24g_led_get_status_check 
-4770 6fe0ca81 fetch 1 ,mem_keyboard_led_status_get 
-4771 67e0ca71 store 1 ,mem_keyboard_tx_data + 2 
-
-keyboard_standard_data_send_end:
-4772 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
-4773 c2914778 bbit1 keyboard_enable_magic_keyboard ,keyboard_magic_data_send 
-4774 d8c04a6f arg mem_keyboard_tx_data ,contr 
-4775 d8a04721 arg mem_customer_key_press ,contw 
-4776 df200009 arg 9 ,loopcnt 
-4777 20207cdc branch memcpy 
-
-keyboard_magic_data_send:
-4778 704a7800 jam 0 ,mem_keyboard_tx_data + 9 
-4779 6fe0ca7a fetch 1 ,mem_keyboard_fn_flag 
-477a 203a477c branch keyboard_magic_data_send_end ,blank 
-477b 704a7801 jam 1 ,mem_keyboard_tx_data + 9 
-
-keyboard_magic_data_send_end:
-477c d8c04a6f arg mem_keyboard_tx_data ,contr 
-477d d8a04721 arg mem_customer_key_press ,contw 
-477e df20000a arg 10 ,loopcnt 
-477f 20207cdc branch memcpy 
-
-keyboard_consumer_data_send:
-4780 58000003 setarg hid_reportid_consumer_key 
-
-keyboard_consumer_data_store:
-4781 67e0c721 store 1 ,mem_customer_key_press 
-4782 6fe1ca70 fetch 3 ,mem_keyboard_tx_data + 1 
-4783 67e1c722 store 3 ,mem_customer_key_press + 1 
-4784 20600000 rtn 
-
-keyboard_bit_consumer_data_send:
-4785 58000005 setarg hid_reportid_bit_consumer_key 
-4786 20204781 branch keyboard_consumer_data_store 
-
-keyboard_system_control_data_send:
-4787 58000002 setarg hid_reportid_system_ctrl 
-4788 67e0c721 store 1 ,mem_customer_key_press 
-4789 6fe0ca70 fetch 1 ,mem_keyboard_tx_data + 1 
-478a 67e0c722 store 1 ,mem_customer_key_press + 1 
-478b 20600000 rtn 
-
-keyboard_n_key_rollover_send:
-478c 58000008 setarg hid_reportid_n_key_rollover 
-478d 67e0c721 store 1 ,mem_customer_key_press 
-478e 20600000 rtn 
-
-keyboard_lpm_before_common:
-478f 44af400b bpatch patch0b_6 ,mem_patch0b 
-4790 20407de6 call clear_wake 
-4791 6848c90f fetcht 1 ,mem_keyboard_pb_button_gpio 
-4792 20406eac call gpio_set_wake 
-4793 6fe1494a fetch 2 ,mem_kb_col_ptr 
-4794 1fe22400 copy pdata ,regb 
-4795 df200014 arg 20 ,loopcnt 
-
-keyboard_key_col_wake_init:
-4796 e8408012 ifetcht 1 ,regb 
-4797 284ffe07 isolate1 7 ,temp 
-4798 2440eef1 ncall gpio_out_active ,true 
-4799 1a40a401 increase 1 ,regb 
-479a c2004796 loop keyboard_key_col_wake_init 
-479b 20403f1b call keyboard_gpio_pu_idle 
-479c 70488c00 jam 0 ,mem_qdec_set_flag 
-479d 6fe14948 fetch 2 ,mem_kb_row_ptr 
-479e 1fe22400 copy pdata ,regb 
-479f df200008 arg 8 ,loopcnt 
-
-keyboard_key_row_wake_init:
-47a0 e8408012 ifetcht 1 ,regb 
-47a1 18467cff sub temp ,ui_button_gpio_disable ,null 
-47a2 2442bf29 ncall keyboard_key_row_wake_set ,zero 
-47a3 1a40a401 increase 1 ,regb 
-47a4 c20047a0 loop keyboard_key_row_wake_init 
-47a5 20406f4b call lpm_puchk_set_check 
-47a6 6848c666 fetcht 1 ,mem_device_reuse_2ice_gpio 
-47a7 20404f0a call device_gpio_config_input_pu 
-47a8 20404f0e call mouse_gpio_set_analog 
-47a9 202040dd branch keyboard_adc_gpio_set_before_hibernate 
-
-keyboard_process_lpm_before:
-47aa c6130000 rtnmark1 mark_24g 
-47ab 2020478f branch keyboard_lpm_before_common 
-
-keyboard_before_hibernate:
-47ac 44afc00b bpatch patch0b_7 ,mem_patch0b 
-47ad 20407388 call disable_authrom 
-47ae 202047b3 branch keyboard_setgpio_hibernate 
-
-keyboard_power_down:
-47af 44b0400c bpatch patch0c_0 ,mem_patch0c 
-47b0 20404161 call keyboard_device_led_all_off 
-
-keyboard_app_enter_hibernate:
-47b1 204047b3 call keyboard_setgpio_hibernate 
-47b2 2020379c branch app_enter_hibernate 
-
-keyboard_setgpio_hibernate:
-47b3 44b0c00c bpatch patch0c_1 ,mem_patch0c 
-47b4 20407de6 call clear_wake 
-47b5 20404161 call keyboard_device_led_all_off 
-47b6 20404203 call keyboard_rgb_off 
-47b7 2020478f branch keyboard_lpm_before_common 
-
-keyboard_24g_pairing_complete:
-47b8 204047e1 call keyboard_get_24g_led_enable 
-47b9 20405535 call mouse_no_data_timer_init 
-47ba d8e00000 arg keyboard_24g_pairing_flag ,queue 
-47bb 20404a29 call keyboard_disable_function_flag 
-47bc 58000000 setarg 0 
-47bd 67e145ef store 2 ,mem_24g_pair_timeout 
-47be 67e145f5 store 2 ,mem_24g_reconn_timeout 
-47bf 67e0c613 store 1 ,mem_24g_conn_sm 
-47c0 67e0c8fd store 1 ,mem_mouse_move_flag 
-47c1 67e0c5f9 store 1 ,mem_24g_reconn_type 
-47c2 6fe245a6 fetch 4 ,mem_24g_addr 
-47c3 67e245ff store 4 ,mem_24g_receiver_addr 
-47c4 67e246a3 store 4 ,mem_device_24g_addr 
-47c5 204047d3 call keyboard_24g_fast_conn_check 
-47c6 6fe0caa2 fetch 1 ,mem_keyboard_device_info_store_flag 
-47c7 79207e02 set1 keyboard_store_eepromm_flag_g24_addr ,pdata 
-47c8 67e0caa2 store 1 ,mem_keyboard_device_info_store_flag 
-47c9 202044b9 branch keyboard_store_device_info_delay 
-
-keyboard_24g_attempt_success:
-47ca 204047e1 call keyboard_get_24g_led_enable 
-47cb 6fe245a6 fetch 4 ,mem_24g_addr 
-47cc 67e245ff store 4 ,mem_24g_receiver_addr 
-47cd 67e246a3 store 4 ,mem_device_24g_addr 
-47ce 20403530 call g24_ch_syncword_crc8_init 
-47cf 204047d3 call keyboard_24g_fast_conn_check 
-47d0 70461300 jam 0 ,mem_24g_conn_sm 
-47d1 7045f900 jam 0 ,mem_24g_reconn_type 
-47d2 20205535 branch mouse_no_data_timer_init 
-
-keyboard_24g_fast_conn_check:
-47d3 6fe245a6 fetch 4 ,mem_24g_addr 
-47d4 684a45fb fetcht 4 ,mem_24g_fast_conn_addr 
-47d5 98467c00 isub temp ,null 
-47d6 2422d3c1 nbranch mouse_bluetooth_fast_conn_disable ,zero 
-47d7 70474fff jam 0xff ,mem_device_fast_conn_flag 
-47d8 20600000 rtn 
-
-keyboard_24g_led_get_status_check:
-47d9 df200006 arg 6 ,loopcnt 
-47da d8c04a72 arg mem_keyboard_tx_data + 3 ,contr 
-
-keyboard_24g_led_data_check:
-47db efe08006 ifetch 1 ,contr 
-47dc c029c7e1 beq hid_key_num_lock ,keyboard_get_24g_led_enable 
-47dd c01cc7e1 beq hid_key_caps_lock ,keyboard_get_24g_led_enable 
-47de c023c7e1 beq hid_key_scroll_lock ,keyboard_get_24g_led_enable 
-47df c20047db loop keyboard_24g_led_data_check 
-47e0 20600000 rtn 
-
-keyboard_get_24g_led_enable:
-47e1 704a8103 jam 0x03 ,mem_keyboard_led_status_get 
-47e2 7049a901 jam 1 ,mem_keyboard_data_change_flag 
-47e3 20600000 rtn 
-
-keyboard_set_repeat_send_flag:
-47e4 704a8001 jam 1 ,mem_24g_repeat_send_flag 
-47e5 20600000 rtn 
-
-keyboard_24g_attempt_fail:
-47e6 6fe0c617 fetch 1 ,mem_24g_attempt_fail_flag 
-47e7 243a47fb nbranch keyboard_24g_hibernate_set ,blank 
-47e8 6fe0c5f9 fetch 1 ,mem_24g_reconn_type 
-47e9 c00147f3 beq fast_conn_and_3_0_addr ,keyboard_24g_fast_conn_attempt_fail 
-47ea c000c7f3 beq fast_conn_and_receiver ,keyboard_24g_fast_conn_attempt_fail 
-47eb c001c7ed beq receiver_and_3_0_addr ,keyboard_24g_attempt_fail_enter_hibernate 
-47ec 202047ed branch keyboard_24g_attempt_fail_enter_hibernate 
-
-keyboard_24g_attempt_fail_enter_hibernate:
-47ed 20404804 call keyboard_24g_stop 
-47ee 6fe0c73f fetch 1 ,mem_reconn_times 
-47ef 243a5836 nbranch mouse_polling_device ,blank 
-47f0 6fe0c678 fetch 1 ,mem_device_flag 
-47f1 c00047af beq mode_24g_device ,keyboard_power_down 
-47f2 20600000 rtn 
-
-keyboard_24g_fast_conn_attempt_fail:
-47f3 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
-47f4 c288d952 bbit1 keyboard_enable_auto_24g_paring ,mouse_24g_start_auto_pair 
-47f5 c3095988 bbit0 keyboard_enable_24g_auto_pair_nerver_been_paired ,mouse_24g_reconn_dongle_start 
-47f6 6fe246a3 fetch 4 ,mem_device_24g_addr 
-47f7 684a46f8 fetcht 4 ,mem_device_compare_addr 
-47f8 98467c00 isub temp ,null 
-47f9 2022c680 branch keyboard_24g_start_pair_mode ,zero 
-47fa 20205988 branch mouse_24g_reconn_dongle_start 
-
-keyboard_24g_hibernate_set:
-47fb 44b1400c bpatch patch0c_2 ,mem_patch0c 
-47fc 70461700 jam 0 ,mem_24g_attempt_fail_flag 
-47fd 20403620 call g24_transmit_next_packet 
-47fe 5fffffff setarg -1 
-47ff 67e445c6 store 8 ,mem_24g_enter_hibernate 
-4800 58000000 setarg 0 
-4801 67e3c65c store 7 ,mem_mouse_key 
-4802 70473701 jam 1 ,mem_24g_shutdown_flag 
-4803 20204821 branch keyboard_g24_long_sleep 
-
-keyboard_24g_stop:
-4804 793f8026 set0 mark_24g ,mark 
-4805 70461300 jam state_24g_stop ,mem_24g_conn_sm 
-4806 d8e00000 arg keyboard_24g_pairing_flag ,queue 
-4807 20204a29 branch keyboard_disable_function_flag 
-
-keyboard_g24_reconn_dispatch:
-4808 6fe145f7 fetch 2 ,mem_24g_reconn_count 
-4809 1fe17ee0 and_into 0xe0 ,pdata 
-480a 203a480f branch keyboard_g24_reconn_dispatch_next ,blank 
-480b 6fe145f7 fetch 2 ,mem_24g_reconn_count 
-480c 1fe0fe01 increase 1 ,pdata 
-480d 67e145f7 store 2 ,mem_24g_reconn_count 
-480e 20600000 rtn 
-
-keyboard_g24_reconn_dispatch_next:
-480f 20403557 call g24_reconn_data_prep 
-4810 2040362a call g24_transmit_receive_ack 
-4811 242c355e nbranch g24_reconn_device_fail ,sync 
-4812 2437b55e nbranch g24_reconn_device_fail ,user3 
-4813 204068bc call hid_device_g24_ackpayload_parse 
-4814 20203540 branch g24_reconn_dispatch_next + 5 
-
-keyboard_g24_transmit_no_interrupt:
-4815 204035fd call g24_txdata_prep 
-4816 2434481a nbranch keyboard_g24_nodata_transmit ,user 
-
-keyboard_g24_transmit_start:
-4817 20404828 call keyboard_g24_transmit_process 
-4818 20404855 call keyboard_power_ctrl_start 
-4819 2020485b branch keyboard_g24_transmit_start_next 
-
-keyboard_g24_nodata_transmit:
-481a 6fe4494e fetch 8 ,mem_keyscan_value_current 
-481b 243a485b nbranch keyboard_g24_transmit_start_next ,blank 
-481c 6fe44956 fetch 8 ,mem_keyscan_value_current + 8 
-481d 243a485b nbranch keyboard_g24_transmit_start_next ,blank 
-481e 6fe2495e fetch 4 ,mem_keyscan_value_current + 16 
-481f 243a485b nbranch keyboard_g24_transmit_start_next ,blank 
-4820 2040367c call g24_search_receiver 
-
-keyboard_g24_long_sleep:
-4821 20404848 call keyboard_g24_lpm_wait 
-4822 24740000 nrtn user 
-4823 2040369e call g24_setgpio_lpm_before 
-4824 6fe0c737 fetch 1 ,mem_24g_shutdown_flag 
-4825 245a47b3 ncall keyboard_setgpio_hibernate ,blank 
-4826 6fe445c6 fetch 8 ,mem_24g_enter_hibernate 
-4827 202035fa branch g24_long_seep2 
-
-keyboard_g24_transmit_process:
-4828 44b1c00c bpatch patch0c_3 ,mem_patch0c 
-4829 70461800 jam 0 ,mem_24g_retry 
-
-keyboard_g24_transmit_loop:
-482a 69610040 fetchr timeup ,2 ,mem_param_rx_setup 
-482b 34730200 until clkn_rt ,meet 
-482c 2040362a call g24_transmit_receive_ack 
-482d 6fe0c596 fetch 1 ,mem_24g_no_ack 
-482e c000b61f beq no_ack_24g ,g24_transmit_no_ack 
-482f 242c4834 nbranch keyboard_g24_retransmit ,sync 
-4830 2437c834 nbranch keyboard_g24_retransmit ,user3 
-4831 204068bc call hid_device_g24_ackpayload_parse 
-4832 70473700 jam 0 ,mem_24g_shutdown_flag 
-4833 2020361f branch g24_transmit_no_ack 
-
-keyboard_g24_retransmit:
-4834 6fe0c619 fetch 1 ,mem_24g_abort_pac 
-4835 247a0000 nrtn blank 
-4836 6fe14615 fetch 2 ,mem_24g_txfail_cnt 
-4837 1fe0fe01 increase 1 ,pdata 
-4838 67e14615 store 2 ,mem_24g_txfail_cnt 
-4839 6fe0c615 fetch 1 ,mem_24g_txfail_cnt 
-483a c07fb64f beq 0xff ,g24_tx_attempt_fail 
-483b 6fe0c618 fetch 1 ,mem_24g_retry 
-483c 1fe0fe01 increase 1 ,pdata 
-483d 67e0c618 store 1 ,mem_24g_retry 
-483e 1fe17e03 and_into 0x03 ,pdata 
-483f 203a4841 branch keyboard_g24_tx_fast_hop ,blank 
-4840 2020482a branch keyboard_g24_transmit_loop 
-
-keyboard_g24_tx_fast_hop:
-4841 20404330 call kscan_dispatch 
-4842 6fe0c8a6 fetch 1 ,mem_keyboard_switch_device_flag 
-4843 243a6c99 nbranch soft_reset_chip ,blank 
-4844 6fe0ca9b fetch 1 ,mem_keyboard_commbination_press_type 
-4845 243a361f nbranch g24_transmit_no_ack ,blank 
-4846 20403675 call g24_tx_fast_hop 
-4847 2020482a branch keyboard_g24_transmit_loop 
-
-keyboard_g24_lpm_wait:
-4848 78347c00 enable user 
-4849 204023f0 call lpo_calibration 
-484a 6fe1c0bd fetch 3 ,mem_clks_per_lpo 
-484b 203a7dbe branch disable_user ,blank 
-484c 6fe0ca7a fetch 1 ,mem_keyboard_fn_flag 
-484d 243a7dbe nbranch disable_user ,blank 
-484e 6fe0ca7b fetch 1 ,mem_keyboard_control_key_flag 
-484f 243a7dbe nbranch disable_user ,blank 
-4850 6fe0ca9f fetch 1 ,mem_keyboard_commbination_control_key_delay_release_timer 
-4851 243a7dbe nbranch disable_user ,blank 
-4852 6fe0c62f fetch 1 ,mem_24g_transmit_by_interrupt 
-4853 c000fdbe beq g24_tx_timer_int_enable ,disable_user 
-4854 20203699 branch g24_lpm_wait + 5 
-
-keyboard_power_ctrl_start:
-4855 6fe245a6 fetch 4 ,mem_24g_addr 
-4856 684a45fb fetcht 4 ,mem_24g_fast_conn_addr 
-4857 98467c00 isub temp ,null 
-4858 2422b6c9 nbranch power_ctrl_start + 1 ,zero 
-4859 704141aa jam tx_power_factory ,mem_tx_power 
-485a 20600000 rtn 
-
-keyboard_g24_transmit_start_next:
-485b 6fe44622 fetch 8 ,mem_24g_long_sleep_set 
-485c 67e445c6 store 8 ,mem_24g_enter_hibernate 
-485d 6fe14634 fetch 2 ,mem_24g_long_sleep_param_update_timer_init 
-485e 67e14636 store 2 ,mem_24g_long_sleep_param_update_timer 
-
-keyboard_g24_short_sleep:
-485f 44b2400c bpatch patch0c_4 ,mem_patch0c 
-4860 20404848 call keyboard_g24_lpm_wait 
-4861 202035f0 branch g24_short_sleep + 2 
-
-keyboard_24g_package_data:
-4862 c6930000 rtnmark0 mark_24g 
-4863 2040469d call keyboard_motion 
-4864 24740000 nrtn user 
-4865 6fe0c72b fetch 1 ,mem_customer_key 
-4866 243a4868 nbranch keyboard_24g_keyboard_package_data ,blank 
-4867 202059c7 branch mouse_24g_mouse_package_data 
-
-keyboard_24g_keyboard_package_data:
-4868 7045a002 jam type_kb ,mem_24g_data_type 
-4869 6fe0c721 fetch 1 ,mem_customer_key_press 
-486a c004486d beq hid_reportid_n_key_rollover ,keyboard_24g_keyboard_package_n_key_rollover_data 
-486b da20000a arg 10 ,rega 
-486c 20206852 branch hid_device_24g_keyboard_package_data_set 
-
-keyboard_24g_keyboard_package_n_key_rollover_data:
-486d 67e0c9b8 store 1 ,mem_keyboard_n_key_rollover_data 
-486e da20000f arg 15 ,rega 
-486f da4049b8 arg mem_keyboard_n_key_rollover_data ,regb 
-4870 20600000 rtn 
-
-keyboard_24g_search_dongle:
-4871 44b2c00c bpatch patch0c_5 ,mem_patch0c 
-4872 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
-4873 c40a8000 rtnbit0 keyboard_enable_24g_search_dongle 
-4874 20206888 branch hid_device_24g_search_dongle 
-
-keyboard_le:
-4875 44b3400c bpatch patch0c_6 ,mem_patch0c 
-4876 20402a06 call le_fifo_check_nearly_full 
-4877 247a0000 nrtn blank 
-4878 6fe0c74f fetch 1 ,mem_device_fast_conn_flag 
-4879 c07fc87d beq 0xff ,keyboard_le_next 
-487a 6fe0c882 fetch 1 ,mem_le_connect_status_flag 
-487b 1fe17e03 and pdata ,0x03 ,pdata 
-487c c1818000 rtnne 0x03 
-
-keyboard_le_next:
-487d 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
-487e c2806824 bbit1 keyboard_24g_pairing_flag ,hid_device_le_send_empty_packet 
-487f c281e824 bbit1 keyboard_bt_discovery_button_down_flag ,hid_device_le_send_empty_packet 
-4880 c2826824 bbit1 keyboard_bt_discovery_button_long_down_flag ,hid_device_le_send_empty_packet 
-4881 2040469d call keyboard_motion 
-4882 24740000 nrtn user 
-4883 20404fd1 call mouse_wheel_trigger 
-4884 2020683c branch hid_device_send_package_data_check 
-
-keyboard_le_fill_n_key_rollover_key_data:
-4885 7047730e jam 14 ,mem_le_data_len 
-4886 6849439f fetcht 2 ,mem_le_notify_handle 
-4887 6fe0c773 fetch 1 ,mem_le_data_len 
-4888 1fe22200 copy pdata ,rega 
-4889 20402dcc call le_att_malloc_tx_notify 
-488a 6848c773 fetcht 1 ,mem_le_data_len 
-488b 18427200 copy temp ,loopcnt 
-488c d8c049b9 arg mem_keyboard_n_key_rollover_data + 1 ,contr 
-488d 20207cdc branch memcpy 
-
-keyboard_le_fill_standard_key_data:
-488e 70477309 jam 9 ,mem_le_data_len 
-488f 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
-4890 c2916831 bbit1 keyboard_enable_magic_keyboard ,keyoard_le_fill_standard_key_data_send 
-4891 70477308 jam 8 ,mem_le_data_len 
-4892 20206831 branch keyoard_le_fill_standard_key_data_send 
-
-keyboard_le_bb_event_connected:
-4893 204041c9 call keyboard_load_rgb 
-4894 70473d00 jam 0 ,mem_mouse_long_mult_flag 
-4895 70475301 jam 1 ,mem_device_le_bb_connected_flag 
-4896 20405960 call mouse_24g_first_store_reconn_info 
-4897 6fe0c754 fetch 1 ,mem_device_le_reconnect_flag 
-4898 243a489a nbranch keyboard_le_bb_event_connected_next ,blank 
-4899 70475514 jam 0x14 ,mem_device_send_secutiry_request_timer 
-
-keyboard_le_bb_event_connected_next:
-489a 6fe143fa fetch app_disc_rsn_size ,mem_app_disconn_reason_flag 
-489b 793ffe00 set0 app_disc_by_button ,pdata 
-489c 67e143fa store app_disc_rsn_size ,mem_app_disconn_reason_flag 
-489d 70472000 jam 0 ,mem_device_direct_timer 
-489e 6fe1477d fetch 2 ,mem_le_battery_level_updata_timer_init 
-489f 67e1477f store 2 ,mem_le_battery_level_updata_timer 
-48a0 20405535 call mouse_no_data_timer_init 
-48a1 202048e9 branch keyboard_stop_discovery 
-
-keyboard_le_bb_disconnected:
-48a2 58000000 setarg 0 
-48a3 67e1477f store 2 ,mem_le_battery_level_updata_timer 
-48a4 67e0c90c store 1 ,mem_keyboard_le_send_conn_param_update 
-48a5 67e0c90d store 1 ,mem_keyboard_le_send_conn_param_update_timer 
-48a6 67e0c753 store 1 ,mem_device_le_bb_connected_flag 
-
-keyboard_le_bb_disconnected_next:
-48a7 70478100 jam le_lpm_enable ,mem_le_conn_param_reject 
-48a8 204029aa call le_clr_config_more_data 
-48a9 70429c00 jam 0 ,mem_ltk_exists 
-48aa 202048ab branch keyboard_bb_disconnected 
-
-keyboard_bb_disconnected:
-48ab 6fe143f8 fetch app_disc_rsn_size ,mem_app_disconn_reason 
-48ac c283c8af bbit1 app_disc_ble ,keyboard_le_event_bb_disconn 
-48ad c2803771 bbit1 app_disc_by_button ,app_disconn_reason_clear 
-48ae 202048c5 branch keyboard_start_discovery 
-
-keyboard_le_event_bb_disconn:
-48af 70488200 jam 0 ,mem_le_connect_status_flag 
-48b0 6fe143f8 fetch app_disc_rsn_size ,mem_app_disconn_reason 
-48b1 c2803771 bbit1 app_disc_by_button ,app_disconn_reason_clear 
-48b2 202047af branch keyboard_power_down 
-
-keyboard_le_ll_start_encryt:
-48b3 6fe0c754 fetch 1 ,mem_device_le_reconnect_flag 
-48b4 c000c8b8 beq 1 ,keyboard_le_ll_reconn_start_encryt 
-48b5 70488314 jam 20 ,mem_le_start_encrypt_timer 
-48b6 70490e05 jam 5 ,mem_le_start_auto_reco_timer 
-48b7 2020540f branch mouse_le_ll_enable_start_enc_flag 
-
-keyboard_le_ll_reconn_start_encryt:
-48b8 20405408 call mouse_updata_le_param 
-48b9 70488305 jam 5 ,mem_le_start_encrypt_timer 
-48ba 2020540f branch mouse_le_ll_enable_start_enc_flag 
-
-keyboard_le_conn_param_update_rsp_recieved:
-48bb 6fe0c90c fetch 1 ,mem_keyboard_le_send_conn_param_update 
-48bc 247a0000 nrtn blank 
-48bd 70490c01 jam 1 ,mem_keyboard_le_send_conn_param_update 
-48be 70490d1e jam 30 ,mem_keyboard_le_send_conn_param_update_timer 
-48bf 20600000 rtn 
-
-keyboard_bb_event_discovery_btn:
-48c0 280ffe26 isolate1 mark_24g ,mark 
-48c1 2040c804 call keyboard_24g_stop ,true 
-48c2 204053c6 call mouse_disconnect 
-48c3 70488200 jam 0 ,mem_le_connect_status_flag 
-48c4 202048c5 branch keyboard_start_discovery 
-
-keyboard_start_discovery:
-48c5 44b3c00c bpatch patch0c_7 ,mem_patch0c 
-48c6 20404163 call keyboard_device_led_all_off + 2 
-48c7 58000000 setarg 0 
-48c8 67e1477f store 2 ,mem_le_battery_level_updata_timer 
-48c9 67e14aa3 store 2 ,mem_otp_store_device_info_flag 
-48ca 704aa1ff jam 0xff ,mem_kb_computer_system 
-48cb 6fe14500 fetch 2 ,mem_ui_state_map 
-48cc 2feffe0b isolate1 ui_state_ble_adv ,pdata 
-48cd 2040d565 call mouse_stop_le_adv ,true 
-48ce 204053c1 call mouse_bluetooth_fast_conn_disable 
-48cf 6fe14500 fetch 2 ,mem_ui_state_map 
-48d0 c285c8d9 bbit1 ui_state_ble_adv ,keyboard_start_discovery_norandom 
-48d1 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
-48d2 c30c48d9 bbit0 keyboard_enable_ble_random_addre ,keyboard_start_discovery_norandom 
-48d3 684946a7 fetcht 2 ,mem_random_addr_increase_count 
-48d4 18408401 increase 1 ,temp 
-48d5 604946a7 storet 2 ,mem_random_addr_increase_count 
-48d6 604942de storet 2 ,mem_le_lap + 1 
-48d7 180a7e00 random pdata 
-48d8 67e0c2dd store 1 ,mem_le_lap 
-
-keyboard_start_discovery_norandom:
-48d9 6fe1c756 fetch 3 ,mem_device_le_lap_temp 
-48da 67e1c2e0 store 3 ,mem_le_lap + 3 
-48db 204037a2 call app_lpm_mult_disable 
-48dc 6fe1464f fetch 2 ,mem_device_discovery_timeout 
-48dd 67e14750 store 2 ,mem_device_discovery_timer 
-48de 58000000 setarg 0 
-48df 67e14741 store 2 ,mem_device_no_data_timer 
-48e0 67e1477f store 2 ,mem_le_battery_level_updata_timer 
-48e1 67e0c720 store 1 ,mem_device_direct_timer 
-48e2 d8e00001 arg keyboard_store_memory_flag ,queue 
-48e3 20404a25 call keyboard_enable_function_flag 
-48e4 20404a2f call keyboard_bt_discovery_button_down_disable 
-48e5 20205455 branch mouse_check_51cmd_adv 
-
-keyboard_stop_bluetooth_mode:
-48e6 6fe14500 fetch 2 ,mem_ui_state_map 
-48e7 c284b794 bbit1 ui_state_ble_connected ,app_ble_disconnect 
-48e8 202048e9 branch keyboard_stop_discovery 
-
-keyboard_stop_discovery:
-48e9 44b4400d bpatch patch0d_0 ,mem_patch0d 
-48ea 58000000 setarg 0 
-48eb 67e14750 store 2 ,mem_device_discovery_timer 
-48ec d8e00004 arg keyboard_bt_discovery_button_long_down_flag ,queue 
-48ed 20404a29 call keyboard_disable_function_flag 
-48ee 20405565 call mouse_stop_le_adv 
-48ef 6fe0cac2 fetch 1 ,mem_keyboard_device_poweron_timer 
-48f0 203a4163 branch keyboard_device_led_all_off + 2 ,blank 
-48f1 20600000 rtn 
-
-keyboard_store_remote_bdaddr:
-48f2 44b4c00d bpatch patch0d_1 ,mem_patch0d 
-48f3 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
-48f4 c4008000 rtnbit0 keyboard_store_memory_flag 
-48f5 d8e00001 arg keyboard_store_memory_flag ,queue 
-48f6 20404a29 call keyboard_disable_function_flag 
-48f7 204067e4 call hid_device_check_device_addr 
-48f8 204067c1 call hid_device_before_store_reconn_info 
-48f9 6fe0caa2 fetch 1 ,mem_keyboard_device_info_store_flag 
-48fa 79207e01 set1 keyboard_store_eepromm_flag_ble_addr ,pdata 
-48fb 67e0caa2 store 1 ,mem_keyboard_device_info_store_flag 
-48fc 202044b9 branch keyboard_store_device_info_delay 
-
-keyboard_le_send_att_find_by_type_value_request_ancs:
-48fd 7048fe01 jam 1 ,mem_le_connect_ios_mac_flag 
-48fe da200017 arg 23 ,rega 
-48ff da400004 arg le_l2cap_cid_att ,regb 
-4900 204029d9 call le_fifo_malloc_tx_l2cap 
-4901 58000006 setarg attop_find_by_type_value_request 
-4902 e7e08005 istore 1 ,contw 
-4903 58000001 setarg 0x0001 
-4904 e7e10005 istore 2 ,contw 
-4905 5800ffff setarg 0xffff 
-4906 e7e10005 istore 2 ,contw 
-4907 58002800 setarg 0x2800 
-4908 e7e10005 istore 2 ,contw 
-4909 d8c048ee arg mem_le_search_service_uuid ,contr 
-490a 20207c91 branch memcpy16 
-
-keyboard_le_parse_att:
-490b 44b5400d bpatch patch0d_2 ,mem_patch0d 
-490c 1a220c00 copy rega ,contr 
-490d efe18006 ifetch 3 ,contr 
-490e 67e1c39b store 3 ,mem_le_att_opcode 
-490f c000c919 beq attop_error_response ,keyboard_le_send_att_find_by_type_value_request_mac 
-4910 c003c95c beq attop_find_by_type_value_response ,keyboard_le_parse_att_find_by_type_value_rsp 
-4911 c004c938 beq attop_read_by_type_response ,keyboard_le_send_att_read_by_type_rsp_mac 
-4912 c005c952 beq attop_read_response ,keyboard_le_parse_att_manu_resp 
-4913 c0044971 beq attop_read_by_type_request ,keyboard_le_parse_att_read_by_type_request 
-4914 c0064986 beq attop_read_blob_request ,keyboard_le_parse_att_read_blob_request 
-4915 c005499f beq attop_read_request ,keyboard_le_parse_att_read_request 
-4916 c00949c5 beq attop_write_request ,keyboard_le_parse_att_write_request 
-4917 c02949cb beq attop_write_command ,keyboard_le_parse_att_write_command 
-4918 20202b76 branch le_parse_att2 
-
-keyboard_le_send_att_find_by_type_value_request_mac:
-4919 6fe0c8fe fetch 1 ,mem_le_connect_ios_mac_flag 
-491a 207a0000 rtn blank 
-491b 6fe0c8fe fetch 1 ,mem_le_connect_ios_mac_flag 
-491c c0014962 beq 2 ,keyboard_le_parse_att_not_find_mac_report 
-491d 7048fe02 jam 2 ,mem_le_connect_ios_mac_flag 
-491e da200009 arg 9 ,rega 
-491f da400004 arg le_l2cap_cid_att ,regb 
-4920 204029d9 call le_fifo_malloc_tx_l2cap 
-4921 58000006 setarg attop_find_by_type_value_request 
-4922 e7e08005 istore 1 ,contw 
-4923 58000001 setarg 0x0001 
-4924 e7e10005 istore 2 ,contw 
-4925 5800ffff setarg 0xffff 
-4926 e7e10005 istore 2 ,contw 
-4927 58002800 setarg 0x2800 
-4928 e7e10005 istore 2 ,contw 
-4929 df200002 arg 2 ,loopcnt 
-492a d8c048ff arg mem_le_search_mac_uuid ,contr 
-492b 20207cdc branch memcpy 
-
-keyboard_le_parse_att_find_by_type_value_rsp_mac:
-492c da200007 arg 7 ,rega 
-492d da400004 arg le_l2cap_cid_att ,regb 
-492e 204029d9 call le_fifo_malloc_tx_l2cap 
-492f 58000008 setarg attop_read_by_type_request 
-4930 e7e08005 istore 1 ,contw 
-4931 6849433b fetcht 2 ,mem_le_payload_ptr 
-4932 18408405 increase 5 ,temp 
-4933 efe20002 ifetch 4 ,temp 
-4934 e7e20005 istore 4 ,contw 
-4935 58002803 setarg 0x2803 
-4936 e7e10005 istore 2 ,contw 
-4937 20600000 rtn 
-
-keyboard_le_send_att_read_by_type_rsp_mac:
-4938 6fe0c8fe fetch 1 ,mem_le_connect_ios_mac_flag 
-4939 207a0000 rtn blank 
-493a 6fe14337 fetch 2 ,mem_le_l2cap_size 
-493b 1fe0fffe increase -2 ,pdata 
-493c 1fe6fc07 div pdata ,7 
-493d 20407d64 call wait_div_end 
-493e 1807f200 quotient loopcnt 
-493f 6fe1433b fetch 2 ,mem_le_payload_ptr 
-4940 1fe08c06 add pdata ,6 ,contr 
-
-keyboard_le_check_att_read_type_manu_loop:
-4941 18c08c03 increase 3 ,contr 
-4942 efe10006 ifetch 2 ,contr 
-4943 1fe22600 copy pdata ,regc 
-4944 efe10006 ifetch 2 ,contr 
-4945 d8402a29 arg 0x2a29 ,temp 
-4946 98467c00 isub temp ,null 
-4947 2022c94a branch keyboard_le_send_att_read_by_type_rsp_manufactory ,zero 
-4948 c2004941 loop keyboard_le_check_att_read_type_manu_loop 
-4949 20204962 branch keyboard_le_parse_att_not_find_mac_report 
-
-keyboard_le_send_att_read_by_type_rsp_manufactory:
-494a da200003 arg 3 ,rega 
-494b da400004 arg le_l2cap_cid_att ,regb 
-494c 204029d9 call le_fifo_malloc_tx_l2cap 
-494d 5800000a setarg attop_read_request 
-494e e7e08005 istore 1 ,contw 
-494f 1a627e00 copy regc ,pdata 
-4950 e7e10005 istore 2 ,contw 
-4951 20600000 rtn 
-
-keyboard_le_parse_att_manu_resp:
-4952 6fe0c8fe fetch 1 ,mem_le_connect_ios_mac_flag 
-4953 207a0000 rtn blank 
-4954 6fe14337 fetch 2 ,mem_le_l2cap_size 
-4955 df200009 arg 9 ,loopcnt 
-4956 6fe1433b fetch 2 ,mem_le_payload_ptr 
-4957 1fe0a205 add pdata ,5 ,rega 
-4958 da404901 arg mem_le_search_mac_manu_name ,regb 
-4959 20407d66 call string_compare 
-495a 2022c965 branch keyboard_le_parse_att_find_mac_report ,zero 
-495b 20204962 branch keyboard_le_parse_att_not_find_mac_report 
-
-keyboard_le_parse_att_find_by_type_value_rsp:
-495c 6fe0c8fe fetch 1 ,mem_le_connect_ios_mac_flag 
-495d 207a0000 rtn blank 
-495e 6fe0c8fe fetch 1 ,mem_le_connect_ios_mac_flag 
-495f c001492c beq 2 ,keyboard_le_parse_att_find_by_type_value_rsp_mac 
-
-keyboard_le_parse_att_find_ios_report:
-4960 704aa102 jam system_os_ios ,mem_kb_computer_system 
-4961 20204966 branch keyboard_store_computer_system_ble 
-
-keyboard_le_parse_att_not_find_mac_report:
-4962 6fe0c2cd fetch 1 ,mem_le_conn_peer_addr_type 
-4963 67e0caa1 store 1 ,mem_kb_computer_system 
-4964 20204966 branch keyboard_store_computer_system_ble 
-
-keyboard_le_parse_att_find_mac_report:
-4965 704aa103 jam system_os_mac ,mem_kb_computer_system 
-
-keyboard_store_computer_system_ble:
-4966 7048fe00 jam 0 ,mem_le_connect_ios_mac_flag 
-4967 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
-4968 c307c96d bbit0 keyboard_enable_otp ,keyboard_store_computer_system_info 
-4969 704aa401 jam 1 ,mem_otp_store_system_flag 
-496a 6fe0caa3 fetch 1 ,mem_otp_store_device_info_flag 
-496b 207a0000 rtn blank 
-496c 20203fee branch keyboard_wirte_otp_ble 
-
-keyboard_store_computer_system_info:
-496d 6fe0caa2 fetch 1 ,mem_keyboard_device_info_store_flag 
-496e 79207e04 set1 keyboard_store_eepromm_flag_computer_system ,pdata 
-496f 67e0caa2 store 1 ,mem_keyboard_device_info_store_flag 
-4970 202044b9 branch keyboard_store_device_info_delay 
-
-keyboard_le_parse_att_read_by_type_request:
-4971 20402e1f call le_get_search_handle_start_end_common 
-4972 20402e28 call le_get_search_att_type 
-
-keyboard_le_send_att_read_by_type_response:
-4973 6849068f fetcht 2 ,mem_le_search_handle_start 
-4974 60490656 storet 2 ,mem_temp 
-4975 20402ca5 call le_init_attlist_search 
-4976 20402cb0 call le_att_get_handle_ptr2 
-4977 18c08dfe increase -2 ,contr 
-4978 18c27e00 copy contr ,pdata 
-4979 67e106a5 store 2 ,mem_le_cur_attlist_start_ptr 
-497a 68490694 fetcht 2 ,mem_le_search_att_type 
-497b 58002a50 setarg uuid_chrctr_pnp_id 
-497c 98467c00 isub temp ,null 
-497d 2022c97f branch keyboard_le_send_att_read_by_type_res_pnp_id ,zero 
-497e 20202c2d branch le_send_att_read_by_type_response + 8 
-
-keyboard_le_send_att_read_by_type_res_pnp_id:
-497f 6fe0c8ce fetch 1 ,mem_keyboard_le_change_vid_pid_flag 
-4980 203a2c2d branch le_send_att_read_by_type_response + 8 ,blank 
-4981 20402cbe call le_att_get_uuid_ptr 
-4982 203a2de1 branch le_send_att_error_response_notfound ,blank 
-4983 d8c048cf arg mem_keyboard_le_change_vid_pid_flag + 1 ,contr 
-4984 18007e0b force 11 ,pdata 
-4985 20202c83 branch le_send_att_read_by_type_res_not_characteristic + 9 
-
-keyboard_le_parse_att_read_blob_request:
-4986 efe10006 ifetch 2 ,contr 
-4987 67e10693 store 2 ,mem_le_att_offset 
-4988 98002200 iforce rega 
-4989 6849439c fetcht 2 ,mem_le_att_handle 
-498a 6fe14334 fetch 2 ,mem_le_pairing_handle 
-498b 98467c00 isub temp ,null 
-498c 2422ad2e nbranch le_send_att_read_blob_response ,zero 
-498d 6fe10693 fetch 2 ,mem_le_att_offset 
-498e 1fe67c42 sub pdata ,66 ,null 
-498f 2422c999 nbranch keyboard_le_send_att_read_blob_response ,zero 
-4990 58000017 setarg 23 
-4991 1fe22200 copy pdata ,rega 
-4992 1fe22600 copy pdata ,regc 
-4993 20402dee call le_fifo_malloc_tx_l2cap_gatt 
-4994 5800000d setarg attop_read_blob_response 
-4995 e7e08005 istore 1 ,contw 
-4996 d8c048d8 arg mem_keyboard_blob_response_consumer_customize ,contr 
-4997 1a60f3ff add regc ,-1 ,loopcnt 
-4998 20207cce branch memcpy_fast 
-
-keyboard_le_send_att_read_blob_response:
-4999 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
-499a c291ad2e bbit1 keyboard_enable_mouse ,le_send_att_read_blob_response 
-499b 6fe148d6 fetch 2 ,mem_keyboard_le_hid_map 
-499c 1fe20c00 copy pdata ,contr 
-499d efe10006 ifetch 2 ,contr 
-499e 20202d31 branch le_send_att_read_blob_response + 3 
-
-keyboard_le_parse_att_read_request:
-499f 6849439c fetcht 2 ,mem_le_att_handle 
-49a0 6fe0c323 fetch 1 ,mem_le_configuration 
-49a1 c281c9bf bbit1 bit_ble_read_auth ,keyboard_le_send_att_read_response_check_auth 
-
-keyboard_le_send_att_read_response:
-49a2 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
-49a3 c305c9a5 bbit0 keyboard_enable_adc ,keyboard_le_send_att_read_response + 3 
-49a4 c30cc9a7 bbit0 keyboard_enable_le_battery_service_cancel ,keyboard_le_send_att_read_response_next 
-49a5 6fe1439c fetch 2 ,mem_le_att_handle 
-49a6 c0182de1 beq 0x30 ,le_send_att_error_response_notfound 
-
-keyboard_le_send_att_read_response_next:
-49a7 6fe1439c fetch 2 ,mem_le_att_handle 
-49a8 c002c9b7 beq 0x05 ,keyboard_le_send_att_appearance 
-49a9 c00849ba beq 0x10 ,keyboard_le_send_att_pnp_id 
-
-keyboard_le_send_att_read_response_next_1:
-49aa 6849439c fetcht 2 ,mem_le_att_handle 
-49ab 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
-49ac c291acfb bbit1 keyboard_enable_mouse ,le_send_att_read_response 
-49ad 6fe14334 fetch 2 ,mem_le_pairing_handle 
-49ae 98467c00 isub temp ,null 
-49af 2422acfb nbranch le_send_att_read_response ,zero 
-49b0 20402e24 call le_get_search_max_mtu_data 
-49b1 684948d6 fetcht 2 ,mem_keyboard_le_hid_map 
-49b2 18420c00 copy temp ,contr 
-49b3 e8410006 ifetcht 2 ,contr 
-49b4 18408401 increase 1 ,temp 
-49b5 20407db2 call not_greater_than 
-49b6 20202d0b branch le_send_att_read_response_less 
-
-keyboard_le_send_att_appearance:
-49b7 d8c0490a arg mem_keybord_appearance ,contr 
-49b8 18007e03 force 3 ,pdata 
-49b9 20202d0b branch le_send_att_read_response_less 
-
-keyboard_le_send_att_pnp_id:
-49ba 6fe0c8ce fetch 1 ,mem_keyboard_le_change_vid_pid_flag 
-49bb 203a49aa branch keyboard_le_send_att_read_response_next_1 ,blank 
-49bc d8c048cf arg mem_keyboard_le_change_vid_pid_flag + 1 ,contr 
-49bd 18007e08 force 8 ,pdata 
-49be 20202d0b branch le_send_att_read_response_less 
-
-keyboard_le_send_att_read_response_check_auth:
-49bf 6fe14334 fetch 2 ,mem_le_pairing_handle 
-49c0 98467c00 isub temp ,null 
-49c1 2422c9a2 nbranch keyboard_le_send_att_read_response ,zero 
-49c2 20402da5 call le_check_encrypt_state 
-49c3 243449a7 nbranch keyboard_le_send_att_read_response_next ,user 
-49c4 20202d24 branch le_send_att_read_response_error_insufficient_auth 
-
-keyboard_le_parse_att_write_request:
-49c5 18c22200 copy contr ,rega 
-49c6 6fe14337 fetch 2 ,mem_le_l2cap_size 
-49c7 1fe0a5fd add pdata ,-3 ,regb 
-49c8 20402908 call le_writeatt_cb 
-49c9 204049cc call keyboard_le_parse_att_write_command + 1 
-49ca 20206878 branch hid_device_le_parse_att_write_request 
-
-keyboard_le_parse_att_write_command:
-49cb 20402dc8 call le_parse_att_write_command 
-49cc 6fe0c74f fetch 1 ,mem_device_fast_conn_flag 
-49cd c07fc9d1 beq 0xff ,keyboard_le_fast_conn_led_get 
-49ce 6fe1439c fetch 2 ,mem_le_att_handle 
-49cf c012c9d4 beq 0x25 ,keyboard_le_led_get 
-49d0 20600000 rtn 
-
-keyboard_le_fast_conn_led_get:
-49d1 6fe1439c fetch 2 ,mem_le_att_handle 
-49d2 c010c9d4 beq 0x21 ,keyboard_le_led_get 
-49d3 20600000 rtn 
-
-keyboard_le_led_get:
-49d4 6fe08055 fetch 1 ,mem_le_rxbuf + 9 
-49d5 67e0c70d store 1 ,mem_keyboard_led_status 
-49d6 20600000 rtn 
-
-keyboard_usb_mode_start:
-49d7 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
-49d8 c4060000 rtnbit0 mouse_enable_usb 
-49d9 204049db call keyboard_usb_check_enable 
-49da 202049ec branch keyboard_usb_interface_check_power_on 
-
-keyboard_usb_check_enable:
-49db 6fe4cad1 fetch 9 ,mem_keyboard_usb_vid_pid 
-49dc 67e4883a store 9 ,mem_usb_vid_pid 
-49dd 580049e1 setarg keyboard_usb_config_param 
-49de 67e10837 store 2 ,mem_cb_usb_config 
-49df 704ace5a jam usb_interface_insert ,mem_usb_vdd_status_current 
-49e0 20600000 rtn 
-
-keyboard_usb_config_param:
-49e1 7046775a jam dongle_kb_bind_success ,mem_usb_keyboard_flag 
-49e2 70083901 jam 0x01 ,mem_usb_tx_interval 
-49e3 20407956 call usb_tx_interval_config 
-49e4 204049e7 call keyboard_usb_vid_pid_config 
-49e5 6fe0c677 fetch 1 ,mem_usb_keyboard_flag 
-49e6 20203d2a branch dongle_usb_hid_icon_config + 1 
-
-keyboard_usb_vid_pid_config:
-49e7 6fe0883a fetch 1 ,mem_usb_vid_pid 
-49e8 207a0000 rtn blank 
-49e9 6fe0c677 fetch 1 ,mem_usb_keyboard_flag 
-49ea c02d3d27 beq dongle_kb_bind_success ,dongle_usb_vid_pid_for_suit 
-49eb 20203d24 branch dongle_usb_vid_pid_for_mouse_only_auto_pair 
-
-keyboard_usb_interface_check_power_on:
-49ec 6fe0cace fetch 1 ,mem_usb_vdd_status_current 
-49ed c02d49f1 beq usb_interface_insert ,keyboard_usb_insert 
-
-keyboard_usb_vdd_status_store:
-49ee 6fe0cace fetch 1 ,mem_usb_vdd_status_current 
-49ef 67e0cacf store 1 ,mem_usb_vdd_status_last 
-49f0 20600000 rtn 
-
-keyboard_usb_insert:
-49f1 204049ee call keyboard_usb_vdd_status_store 
-49f2 58000000 setarg 0 
-49f3 67e145ef store 2 ,mem_24g_pair_timeout 
-49f4 67e145f5 store 2 ,mem_24g_reconn_timeout 
-49f5 70409400 jam 0 ,mem_lpm_mode 
-49f6 6fe0cad0 fetch 1 ,mem_usb_wait_updata_timer 
-49f7 205a7902 call usb_init ,blank 
-49f8 704ad032 jam 50 ,mem_usb_wait_updata_timer 
-49f9 20600000 rtn 
-
-keyboard_usb_isr:
-49fa 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
-49fb c4120000 rtnbit0 keyboard_enable_usb 
-49fc 6fe0c678 fetch 1 ,mem_device_flag 
-49fd c1820000 rtnne mode_usb_device 
-49fe 202078f6 branch usb_isr 
-
-keyboard_usb_mode:
-49ff 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
-4a00 c4120000 rtnbit0 keyboard_enable_usb 
-4a01 6fe0c678 fetch 1 ,mem_device_flag 
-4a02 c1820000 rtnne mode_usb_device 
-4a03 6ff08c01 fetch 1 ,core_usb_addr 
-4a04 67e0c675 store 1 ,mem_usb_addr 
-4a05 c4038000 rtnbit0 7 
-4a06 704ad000 jam 0 ,mem_usb_wait_updata_timer 
-4a07 58000000 setarg 0 
-4a08 67e14741 store 2 ,mem_device_no_data_timer 
-4a09 20404804 call keyboard_24g_stop 
-4a0a 204048e6 call keyboard_stop_bluetooth_mode 
-4a0b 2040469d call keyboard_motion 
-4a0c 24740000 nrtn user 
-4a0d 6fe0c72b fetch 1 ,mem_customer_key 
-4a0e c000e85b beq 1 ,hid_device_push_keyboard_data_to_usb 
-4a0f 20206856 branch hid_device_push_mouse_data_to_usb 
-
-keyboard_usb_tx_kb_normal_data:
-4a10 7008e900 jam 0 ,mem_usb_ep1_data 
-4a11 df200009 arg 9 ,loopcnt 
-4a12 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
-4a13 c2917c24 bbit1 keyboard_enable_magic_keyboard ,usb_tx_kb_normal_data + 4 
-4a14 20207c22 branch usb_tx_kb_normal_data + 2 
-
-keyboard_push_n_key_rollover_key_data_to_usb:
-4a15 20403d53 call dongle_usb_tx_enable_ep2 
-4a16 7008ea24 jam usb_ep2_n_key_rollover ,mem_usb_ep2_data 
-4a17 58000008 setarg kb_n_key_rollover_report_id 
-4a18 67e08911 store 1 ,mem_usb_kb_n_key_rollvoer_data 
-4a19 d8c049b9 arg mem_keyboard_n_key_rollover_data + 1 ,contr 
-4a1a d8a00912 arg mem_usb_kb_n_key_rollvoer_data + 1 ,contw 
-4a1b df20000e arg 14 ,loopcnt 
-4a1c 20207cdc branch memcpy 
-
-keyboard_ui_ipc_send_event:
-4a1d 6fe0864d fetch 1 ,mem_fifo_temp 
-4a1e df200008 arg 8 ,loopcnt 
-4a1f d8c044ea arg mem_ipc_fifo_bt2c51 ,contr 
-
-ui_ipc_fifo_check:
-4a20 e8408006 ifetcht 1 ,contr 
-4a21 98467c00 isub temp ,null 
-4a22 20628000 rtn zero 
-4a23 c2004a20 loop ui_ipc_fifo_check 
-4a24 2020781c branch ui_ipc_send_event + 3 
-
-keyboard_enable_function_flag:
-4a25 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
-4a26 f9207e00 qset1 pdata 
-4a27 67e4488e store keyboard_flag_len ,mem_keyboard_flag 
-4a28 20600000 rtn 
-
-keyboard_disable_function_flag:
-4a29 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
-4a2a f93ffe00 qset0 pdata 
-4a2b 67e4488e store keyboard_flag_len ,mem_keyboard_flag 
-4a2c 20600000 rtn 
-
-keyboard_bt_discovery_button_down_enable:
-4a2d d8e00003 arg keyboard_bt_discovery_button_down_flag ,queue 
-4a2e 20204a25 branch keyboard_enable_function_flag 
-
-keyboard_bt_discovery_button_down_disable:
-4a2f d8e00003 arg keyboard_bt_discovery_button_down_flag ,queue 
-4a30 20204a29 branch keyboard_disable_function_flag 
-
-module_init:
-4a31 2035ca43 branch module_lpm_uart_init ,wake 
-4a32 20402931 call le_modified_name 
-4a33 58004a5e setarg module_process_idle 
-4a34 67e143e4 store 2 ,mem_cb_idle_process 
-4a35 58004a61 setarg module_process_bb_event 
-4a36 67e143e6 store 2 ,mem_cb_bb_event_process 
-4a37 58004a5a setarg module_lpm_lock 
-4a38 67e143dc store 2 ,mem_cb_check_wakelock 
-4a39 58004b0a setarg module_hci_cmd_transmit_le_notify 
-4a3a 67e143ea store 2 ,mem_cb_ble_transmit 
-4a3b 58004ce1 setarg module_le_receive_data 
-4a3c 67e143e8 store 2 ,mem_cb_att_write 
-4a3d 58004cf2 setarg module_bb_event_timer 
-4a3e 67e143ec store 2 ,mem_cb_event_timer 
-4a3f 44b6400d bpatch patch0d_4 ,mem_patch0d 
-4a40 20404a43 call module_lpm_uart_init 
-4a41 20404a55 call module_gpio_init 
-4a42 20204c6c branch module_hci_event_enter_standby_mode 
-
-module_lpm_uart_init:
-4a43 6ff08060 fetch 1 ,core_uart_ctrl 
-4a44 793ffe00 set0 bit_uart_control_enable ,pdata 
-4a45 67f08060 store 1 ,core_uart_ctrl 
-4a46 6fe44517 fetch 8 ,mem_module_uart_rx_buffer 
-4a47 20406d5b call uarta_init_dma_mem 
-4a48 6fe1451f fetch uart_baud_len ,mem_module_uarta_baud_rate 
-4a49 20406d66 call uarta_init_baud_rate 
-4a4a 20406d75 call uart_clock_select_main_freq_crystal 
-4a4b 70807708 jam gpcfg_uart_txd ,core_gpio_conf + hci_uart_tx_gpio_num 
-4a4c 70807649 jam gpcfg_uart_rxd | gpcfg_pullup ,core_gpio_conf + hci_uart_rx_gpio_num 
-4a4d 7080790a jam gpcfg_uart_rts ,core_gpio_conf + hci_uart_rts_gpio_num 
-4a4e 70807a0b jam gpcfg_uart_cts ,core_gpio_conf + hci_uart_cts_gpio_num 
-4a4f d8400081 arg fun_uart_control_enable | fun_uart_control_setting_rate_baud ,temp 
-4a50 6fe14526 fetch 2 ,mem_module_flag 
-4a51 2feffe00 isolate1 module_flag_uart_flow_control ,pdata 
-4a52 79208404 setflag true ,bit_uart_control_flow_control ,temp 
-4a53 60588060 storet 1 ,core_uart_ctrl 
-4a54 20600000 rtn 
-
-module_gpio_init:
-4a55 6848c50c fetcht 1 ,mem_module_connect_state_gpio 
-4a56 20406ef1 call gpio_config_output 
-4a57 20404a84 call module_set_conn_pin_low 
-4a58 6848c50a fetcht 1 ,mem_module_wake_up_gpio 
-4a59 20206ed7 branch gpio_config_input 
-
-module_lpm_lock:
-4a5a 6848c50a fetcht 1 ,mem_module_wake_up_gpio 
-4a5b 20406ee0 call gpio_get_bit 
-4a5c 2420b77f nbranch app_put_lpm_wake_lock ,true 
-4a5d 2020377d branch app_get_lpm_wake_lock 
-
-module_process_idle:
-4a5e 20406935 call l2cap_malloc_is_fifo_full 
-4a5f 247a0000 nrtn blank 
-4a60 20204a86 branch module_process_check_hci_command_complete 
-
-module_process_bb_event:
-4a61 1a627e00 copy regc ,pdata 
-4a62 c00a4a73 beq bt_evt_le_connected ,module_process_le_conn 
-4a63 c00aca6f beq bt_evt_le_disconnected ,module_process_bb_even_le_disconn 
-4a64 c0184ca6 beq bt_evt_le_pairing_fail ,module_hci_event_le_pairing_fail 
-4a65 c018cca8 beq bt_evt_le_pairing_success ,module_hci_event_le_pairing_success 
-4a66 c0194cb2 beq bt_evt_le_start_enc ,module_hci_event_start_enc 
-4a67 c019ccb0 beq bt_evt_le_pause_enc ,module_hci_event_pause_enc 
-4a68 c01a4ca0 beq bt_evt_le_tk_generate ,module_hci_event_le_tk 
-4a69 c01ecc80 beq bt_evt_store_nvram ,module_hci_event_store_device 
-4a6a c020ca79 beq bt_evt_le_ltk_lost ,module_process_ble_ltk_lost 
-4a6b c0214a7b beq bt_evt_le_update_phy ,module_process_ble_update_phy 
-4a6c c021cc9e beq bt_evt_le_get_passkey ,module_hci_event_passkey_entry_mode 
-4a6d c01dcc89 beq bt_evt_le_gkey_generate ,module_hci_event_gkey_generate 
-4a6e 20600000 rtn 
-
-module_process_bb_even_le_disconn:
-4a6f 204029aa call le_clr_config_more_data 
-4a70 70452800 jam 0 ,mem_module_hci_notify_len 
-4a71 20404a77 call module_disconn_start 
-4a72 20204c52 branch module_hci_event_le_disconnect 
-
-module_process_le_conn:
-4a73 20404a7e call module_conn_start 
-4a74 6fe0c515 fetch 1 ,mem_module_le_lpm_mult 
-4a75 67e0c0c0 store 1 ,mem_lpm_mult 
-4a76 20204c50 branch module_hci_event_le_connect 
-
-module_disconn_start:
-4a77 20404ad3 call module_start_adv_discovery_by_command 
-4a78 20204a7c branch module_set_conn_pin_high 
-
-module_process_ble_ltk_lost:
-4a79 204030d1 call le_send_reject_ind 
-4a7a 20202eb3 branch le_send_smp_security_request 
-
-module_process_ble_update_phy:
-4a7b 20204cc2 branch module_hci_event_le_update_phy 
-
-module_set_conn_pin_high:
-4a7c 6848c50c fetcht 1 ,mem_module_connect_state_gpio 
-4a7d 20206ef1 branch gpio_out_active 
-
-module_conn_start:
-4a7e 20404a80 call module_stop_adv_discovery 
-4a7f 20204a84 branch module_set_conn_pin_low 
-
-module_stop_adv_discovery:
-4a80 6fe0c50f fetch 1 ,mem_module_state 
-4a81 2feffe01 isolate1 moudle_state_ble_bit ,pdata 
-4a82 2040b78a call app_ble_stop_adv ,true 
-4a83 20600000 rtn 
-
-module_set_conn_pin_low:
-4a84 6848c50c fetcht 1 ,mem_module_connect_state_gpio 
-4a85 20206eed branch gpio_out_inactive 
-
-module_process_check_hci_command_complete:
-4a86 6ff0810b fetch 1 ,core_uart_status 
-4a87 c3810000 rtnbit1 uart_status_rx_fifo_empty 
-4a88 20406d89 call uarta_prepare_rx 
-4a89 efe08003 ifetch 1 ,contru 
-4a8a c080ca9c bne 0x01 ,module_hci_in_excp 
-4a8b 6ff10112 fetch 2 ,core_uart_rxitems 
-4a8c 1fe67c02 sub pdata ,2 ,null 
-4a8d 20610000 rtn positive 
-4a8e efe08003 ifetch 1 ,contru 
-4a8f 67e086c0 store 1 ,mem_module_uart_opcode 
-4a90 e8408003 ifetcht 1 ,contru 
-4a91 18622200 copy contru ,rega 
-4a92 604886c1 storet 1 ,mem_module_uart_len 
-4a93 18408403 add temp ,3 ,temp 
-4a94 6ff10112 fetch 2 ,core_uart_rxitems 
-4a95 98460400 isub temp ,temp 
-4a96 24610000 nrtn positive 
-4a97 7006c201 jam hci_discard_packet ,mem_module_temp_nl_discard_packet 
-4a98 20404aaa call module_hci_cmd_control 
-4a99 6fe086c2 fetch 1 ,mem_module_temp_nl_discard_packet 
-4a9a c1000000 rtneq hci_not_discard_packet 
-4a9b 20204aa5 branch module_hci_dicard_packet 
-
-module_hci_in_excp:
-4a9c 20407c97 call delay_10ms 
-4a9d 20404c8f call module_hci_event_invalid_packet 
-4a9e 20204a9f branch module_hci_release_except 
-
-module_hci_release_except:
-4a9f 44b6c00d bpatch patch0d_5 ,mem_patch0d 
-4aa0 20406d89 call uarta_prepare_rx 
-4aa1 6ff10112 fetch 2 ,core_uart_rxitems 
-4aa2 207a0000 rtn blank 
-4aa3 98608600 iadd contru ,contru 
-4aa4 20204aa9 branch module_hci_dicard_bytes 
-
-module_hci_dicard_packet:
-4aa5 20406d89 call uarta_prepare_rx 
-4aa6 18608602 increase 2 ,contu 
-4aa7 efe08003 ifetch 1 ,contu 
-4aa8 98608600 iadd contu ,contu 
-
-module_hci_dicard_bytes:
-4aa9 20206d8f branch uarta_rxdone 
-
-module_hci_cmd_control:
-4aaa 44b7400d bpatch patch0d_6 ,mem_patch0d 
-4aab 6fe086c0 fetch 1 ,mem_module_uart_opcode 
-4aac c000cac7 beq hci_cmd_set_le_addr_req ,module_hci_cmd_set_le_addr 
-4aad c0014acc beq hci_cmd_set_visibility_req ,module_hci_cmd_set_visibility 
-4aae c0024ada beq hci_cmd_set_le_name_req ,module_hci_cmd_set_le_name 
-4aaf c004cade beq hci_cmd_le_data_req ,module_hci_cmd_receive_le_data 
-4ab0 c005cb35 beq hci_cmd_status_irq ,module_hci_cmd_inquire_status 
-4ab1 c007cb36 beq hci_cmd_set_uart_baud_req ,module_hci_cmd_set_uart_baud 
-4ab2 c0084b3e beq hci_cmd_version_req ,module_hci_cmd_version_request 
-4ab3 c0094b42 beq hci_cmd_ble_disconnect ,module_hci_cmd_ble_disconnect 
-4ab4 c0134b46 beq hci_cmd_set_nvram_req ,module_hci_cmd_set_nvram 
-4ab5 c0154b4b beq hci_cmd_auto_adv_scan ,module_hci_cmd_auto_adv 
-4ab6 c015cb7e beq hci_cmd_power_req ,module_hci_cmd_power_request 
-4ab7 c0164b84 beq hci_cmd_power_set ,module_hci_cmd_power_set 
-4ab8 c0184b8b beq hci_cmd_passkey_entry ,module_hci_cmd_passkey_entry 
-4ab9 c019cb90 beq hci_cmd_le_set_pairing ,module_hci_cmd_le_set_pairing_mode 
-4aba c01acbbd beq hci_cmd_le_set_scan_data ,module_hci_cmd_le_set_scan_data 
-4abb c01b4bc6 beq hci_cmd_le_send_conn_update_req ,module_hci_cmd_le_send_conn_update_req 
-4abc c01bcbcf beq hci_cmd_le_set_adv_parm ,module_hci_cmd_set_le_adv_parameter 
-4abd c01c4bd5 beq hci_cmd_le_start_pairing ,module_hci_cmd_le_start_pairing 
-4abe c0204bdd beq hci_cmd_set_wake_gpio ,module_hci_cmd_set_wake_gpio 
-4abf c0214be7 beq hci_cmd_set_tx_power ,module_hci_cmd_set_tx_power 
-4ac0 c0244bec beq hci_cmd_le_confirm_gkey ,module_hci_cmd_le_confirm_gkey 
-4ac1 c028cbf7 beq hci_cmd_reset_chip_req ,module_hci_cmd_reset_chip 
-4ac2 c03b4bfb beq hci_cmd_delete_customize_service ,module_hci_cmd_delete_customize_service 
-4ac3 c03bcc01 beq hci_cmd_add_service_uuid ,module_hci_cmd_add_service_uuid 
-4ac4 c03c4c06 beq hci_cmd_add_characteristic_uuid ,module_hci_cmd_add_characteristic_uuid 
-4ac5 c03d4c3c beq hci_cmd_passkey_entry_input ,module_hci_cmd_le_passkey_entry_input 
-4ac6 20204c4a branch module_hci_event_receive_invalid_cmd 
-
-module_hci_cmd_set_le_addr:
-4ac7 6fe086c1 fetch 1 ,mem_module_uart_len 
-4ac8 c0834c4a bne 6 ,module_hci_event_receive_invalid_cmd 
-4ac9 efe30003 ifetch 6 ,contru 
-4aca 67e342dd store 6 ,mem_le_lap 
-4acb 20204c4d branch module_hci_event_receive_valid_cmd 
-
-module_hci_cmd_set_visibility:
-4acc 6fe086c1 fetch 1 ,mem_module_uart_len 
-4acd c080cc4a bne 1 ,module_hci_event_receive_invalid_cmd 
-4ace e8408003 ifetcht 1 ,contru 
-4acf 6048c516 storet 1 ,mem_module_bluetooth_stauts_by_command 
-4ad0 20404c4d call module_hci_event_receive_valid_cmd 
-4ad1 6fe14500 fetch 2 ,mem_ui_state_map 
-4ad2 c3848000 rtnbit1 ui_state_ble_connected 
-
-module_start_adv_discovery_by_command:
-
-moudle_start_adv_by_command:
-4ad3 6fe0c50f fetch 1 ,mem_module_state 
-4ad4 2feffe01 isolate1 moudle_state_ble_bit ,pdata 
-4ad5 24608000 nrtn true 
-4ad6 6848c516 fetcht 1 ,mem_module_bluetooth_stauts_by_command 
-4ad7 284ffe02 isolate1 2 ,temp 
-4ad8 2020b78c branch app_ble_start_adv ,true 
-4ad9 2020378a branch app_ble_stop_adv 
-
-module_hci_cmd_set_le_name:
-4ada dfe0001d arg 29 ,pdata 
-4adb d8a0426d arg mem_le_name_len ,contw 
-4adc 20404bc0 call module_hci_cmd_receive_store_mem 
-4add 20202931 branch le_modified_name 
-
-module_hci_cmd_receive_le_data:
-4ade 6fe14500 fetch 2 ,mem_ui_state_map 
-4adf c304cc4a bbit0 ui_state_ble_connected ,module_hci_event_receive_invalid_cmd 
-4ae0 20404b32 call module_check_ble_encrypt_state 
-4ae1 20344c4a branch module_hci_event_receive_invalid_cmd ,user 
-4ae2 7006c200 jam hci_not_discard_packet ,mem_module_temp_nl_discard_packet 
-4ae3 6fe14526 fetch 2 ,mem_module_flag 
-4ae4 c2844b03 bbit1 module_flag_ble_data_finish ,module_hci_cmd_receive_le_data_finish 
-4ae5 6fe0c528 fetch 1 ,mem_module_hci_notify_len 
-4ae6 247a0000 nrtn blank 
-4ae7 7006c201 jam hci_discard_packet ,mem_module_temp_nl_discard_packet 
-4ae8 efe10003 ifetch 2 ,contru 
-4ae9 67e14529 store 2 ,mem_module_hci_notify_handle 
-4aea 6061452b storer contru ,2 ,mem_module_hci_nofiy_addr 
-4aeb 6fe086c1 fetch 1 ,mem_module_uart_len 
-4aec 1fe0fffe pincrease -2 
-4aed 24214c4a nbranch module_hci_event_receive_invalid_cmd ,positive 
-4aee 2022cc4a branch module_hci_event_receive_invalid_cmd ,zero 
-4aef 67e0c528 store 1 ,mem_module_hci_notify_len 
-4af0 68494529 fetcht 2 ,mem_module_hci_notify_handle 
-4af1 184085ff increase -1 ,temp 
-4af2 20402cb0 call le_att_get_handle_ptr2 
-4af3 203a4b06 branch module_hci_cmd_transmit_handle_error ,blank 
-4af4 e8420006 ifetcht 4 ,contr 
-4af5 59280302 setarg 0x01280302 
-4af6 98467c00 isub temp ,null 
-4af7 2422cb06 nbranch module_hci_cmd_transmit_handle_error ,zero 
-4af8 efe08006 ifetch 1 ,contr 
-4af9 67e0c52d store 1 ,mem_module_hci_notify_type 
-4afa 1fe17e30 and_into 0x30 ,pdata 
-4afb 203a4b06 branch module_hci_cmd_transmit_handle_error ,blank 
-4afc 7006c200 jam hci_not_discard_packet ,mem_module_temp_nl_discard_packet 
-4afd 204029a8 call le_set_config_more_data 
-4afe 20404b0a call module_hci_cmd_transmit_le_notify 
-4aff 20404b0a call module_hci_cmd_transmit_le_notify 
-4b00 20404b0a call module_hci_cmd_transmit_le_notify 
-4b01 6fe14526 fetch 2 ,mem_module_flag 
-4b02 c4040000 rtnbit0 module_flag_ble_data_finish 
-
-module_hci_cmd_receive_le_data_finish:
-4b03 7006c201 jam hci_discard_packet ,mem_module_temp_nl_discard_packet 
-4b04 20404d07 call module_clear_le_tx_data_flag 
-4b05 20204c4d branch module_hci_event_receive_valid_cmd 
-
-module_hci_cmd_transmit_handle_error:
-4b06 70452800 jam 0 ,mem_module_hci_notify_len 
-4b07 7006c201 jam hci_discard_packet ,mem_module_temp_nl_discard_packet 
-4b08 20404d07 call module_clear_le_tx_data_flag 
-4b09 20204c4a branch module_hci_event_receive_invalid_cmd 
-
-module_hci_cmd_transmit_le_notify:
-4b0a 6fe0c528 fetch 1 ,mem_module_hci_notify_len 
-4b0b 207a0000 rtn blank 
-4b0c 20402a06 call le_fifo_check_nearly_full 
-4b0d 247a0000 nrtn blank 
-4b0e 20404b2d call module_get_le_remote_mtu 
-4b0f 44b7c00d bpatch patch0d_7 ,mem_patch0d 
-4b10 6fe142e3 fetch 2 ,mem_le_local_mtu 
-4b11 20407db2 call not_greater_than 
-4b12 1fe20400 copy pdata ,temp 
-4b13 6fe0c39a fetch 1 ,mem_le_l2cap_att_states 
-4b14 c3800000 rtnbit1 ble_l2cap_recv_confirmation_packet 
-4b15 1840fffd add temp ,-3 ,pdata 
-4b16 d84000fb arg 251 ,temp 
-4b17 20407db2 call not_greater_than 
-4b18 6848c528 fetcht 1 ,mem_module_hci_notify_len 
-4b19 20407db2 call not_greater_than 
-4b1a 1fe22200 copy pdata ,rega 
-4b1b 18427e00 copy temp ,pdata 
-4b1c 9a267e00 isub rega ,pdata 
-4b1d 67e0c528 store 1 ,mem_module_hci_notify_len 
-4b1e 20404b28 call module_hci_cmd_transmit_le_notify_malloc_l2cap 
-4b1f 6fe1452b fetch 2 ,mem_module_hci_nofiy_addr 
-4b20 1fe20600 copy pdata ,contru 
-4b21 1a227200 copy rega ,loopcnt 
-4b22 20406dbd call uart_copy_rx_bytes_fast 
-4b23 18627e00 copy contru ,pdata 
-4b24 67e1452b store 2 ,mem_module_hci_nofiy_addr 
-4b25 6fe0c528 fetch 1 ,mem_module_hci_notify_len 
-4b26 247a0000 nrtn blank 
-4b27 20204d05 branch module_set_le_tx_data_flag 
-
-module_hci_cmd_transmit_le_notify_malloc_l2cap:
-4b28 68494529 fetcht 2 ,mem_module_hci_notify_handle 
-4b29 6fe0c52d fetch 1 ,mem_module_hci_notify_type 
-4b2a c282add5 bbit1 bit_characteristic_indicate ,le_att_malloc_tx_indication 
-4b2b c2822dcc bbit1 bit_characteristic_notify ,le_att_malloc_tx_notify 
-4b2c 20600000 rtn 
-
-module_get_le_remote_mtu:
-4b2d d8400017 arg 0x17 ,temp 
-4b2e 6fe14526 fetch 2 ,mem_module_flag 
-4b2f c3808000 rtnbit1 module_flag_ble_send_mtu23 
-4b30 684942e5 fetcht 2 ,mem_le_remote_mtu 
-4b31 20600000 rtn 
-
-module_check_ble_encrypt_state:
-4b32 6fe14526 fetch 2 ,mem_module_flag 
-4b33 c2812da5 bbit1 module_flag_ble_data_encrypt ,le_check_encrypt_state 
-4b34 20207dbe branch disable_user 
-
-module_hci_cmd_inquire_status:
-4b35 20204c70 branch module_hci_event_status_res 
-
-module_hci_cmd_set_uart_baud:
-4b36 6f2086c1 fetchr loopcnt ,1 ,mem_module_uart_len 
-4b37 20407d35 call string2dec_from_uart 
-4b38 20406d6a call uart_calc_baud_rate_config 
-4b39 67e1451f store uart_baud_len ,mem_module_uarta_baud_rate 
-4b3a 20404c4d call module_hci_event_receive_valid_cmd 
-4b3b 20406da1 call wait_uarttx 
-4b3c 6fe1451f fetch uart_baud_len ,mem_module_uarta_baud_rate 
-4b3d 20206d66 branch uarta_init_baud_rate 
-
-module_hci_cmd_version_request:
-4b3e da200002 arg 2 ,rega 
-4b3f da404508 arg mem_soft_version_num ,regb 
-4b40 d8400000 arg 0 ,temp 
-4b41 20204c54 branch module_hci_event_set_cmd 
-
-module_hci_cmd_ble_disconnect:
-4b42 6fe14500 fetch 2 ,mem_ui_state_map 
-4b43 c304cc4a bbit0 ui_state_ble_connected ,module_hci_event_receive_invalid_cmd 
-
-module_hci_cmd_ble_disconnect_doing:
-4b44 20404c4d call module_hci_event_receive_valid_cmd 
-4b45 20203794 branch app_ble_disconnect 
-
-module_hci_cmd_set_nvram:
-4b46 6f2086c1 fetchr loopcnt ,1 ,mem_module_uart_len 
-4b47 6fe14401 fetch 2 ,mem_nv_data_ptr 
-4b48 1fe20a00 icopy contw 
-4b49 20406dbd call uart_copy_rx_bytes_fast 
-4b4a 20204c4d branch module_hci_event_receive_valid_cmd 
-
-module_hci_cmd_auto_adv:
-4b4b df200040 arg 0x40 ,loopcnt 
-4b4c d8a0434c arg mem_le_adv_data_len ,contw 
-4b4d 20407ca3 call clear_mem 
-4b4e 58000000 setarg 0 
-4b4f 67e08666 store 1 ,mem_regb 
-4b50 1a220600 copy rega ,contru 
-
-module_hci_cmd_auto_adv_loop:
-4b51 18627e00 copy contru ,pdata 
-4b52 67e1066a store 2 ,mem_regc 
-4b53 20404b79 call module_hci_cmd_auto_adv_adv_analys 
-4b54 6fe08666 fetch 1 ,mem_regb 
-4b55 68488656 fetcht 1 ,mem_temp 
-4b56 18408401 increase 1 ,temp 
-4b57 9840fe00 iadd temp ,pdata 
-4b58 67e08666 store 1 ,mem_regb 
-4b59 1fe67c1f sub pdata ,31 ,null 
-4b5a 24214b65 nbranch module_hci_cmd_auto_adv_store_scan ,positive 
-
-module_hci_cmd_auto_adv_store_adv:
-4b5b 6848c34c fetcht 1 ,mem_le_adv_data_len 
-4b5c 5800434d setarg mem_le_adv_data 
-4b5d 9840fe00 iadd temp ,pdata 
-4b5e 67e1066f store 2 ,mem_contw 
-4b5f 68488656 fetcht 1 ,mem_temp 
-4b60 18408401 increase 1 ,temp 
-4b61 6fe0c34c fetch 1 ,mem_le_adv_data_len 
-4b62 9840fe00 iadd temp ,pdata 
-4b63 67e0c34c store 1 ,mem_le_adv_data_len 
-4b64 20204b6e branch module_hci_cmd_auto_adv_store_common 
-
-module_hci_cmd_auto_adv_store_scan:
-4b65 6848c36c fetcht 1 ,mem_le_scan_data_len 
-4b66 5800436d setarg mem_le_scan_data 
-4b67 9840fe00 iadd temp ,pdata 
-4b68 67e1066f store 2 ,mem_contw 
-4b69 68488656 fetcht 1 ,mem_temp 
-4b6a 18408401 increase 1 ,temp 
-4b6b 6fe0c36c fetch 1 ,mem_le_scan_data_len 
-4b6c 9840fe00 iadd temp ,pdata 
-4b6d 67e0c36c store 1 ,mem_le_scan_data_len 
-
-module_hci_cmd_auto_adv_store_common:
-4b6e 6fe1066f fetch 2 ,mem_contw 
-4b6f 1fe20a00 copy pdata ,contw 
-4b70 6fe1066a fetch 2 ,mem_regc 
-4b71 1fe20600 copy pdata ,contru 
-4b72 18427200 copy temp ,loopcnt 
-4b73 20406dbd call uart_copy_rx_bytes_fast 
-4b74 6fe086c1 fetch 1 ,mem_module_uart_len 
-4b75 68488666 fetcht 1 ,mem_regb 
-4b76 98467c00 isub temp ,null 
-4b77 2422cb51 nbranch module_hci_cmd_auto_adv_loop ,zero 
-4b78 20204c4d branch module_hci_event_receive_valid_cmd 
-
-module_hci_cmd_auto_adv_adv_analys:
-4b79 efe08003 ifetch 1 ,contru 
-4b7a 67e08656 store 1 ,mem_temp 
-4b7b efe08003 ifetch 1 ,contru 
-4b7c 67e08662 store 1 ,mem_rega 
-4b7d 20600000 rtn 
-
-module_hci_cmd_power_request:
-4b7e d8400000 arg 0 ,temp 
-4b7f da200002 arg 2 ,rega 
-4b80 6fe14523 fetch 2 ,mem_module_vdd_quotient 
-4b81 67e1067f store 2 ,mem_event_cmd_response_content 
-4b82 da40067f arg mem_event_cmd_response_content ,regb 
-4b83 20204c54 branch module_hci_event_set_cmd 
-
-module_hci_cmd_power_set:
-4b84 6fe086c1 fetch 1 ,mem_module_uart_len 
-4b85 c080cc4a bne 1 ,module_hci_event_receive_invalid_cmd 
-4b86 efe08003 ifetch 1 ,contru 
-4b87 67e0c521 store 1 ,mem_module_read_vdd_flag 
-4b88 58000000 setarg 0x00 
-4b89 67e14523 store 2 ,mem_module_vdd_quotient 
-4b8a 20204c4d branch module_hci_event_receive_valid_cmd 
-
-module_hci_cmd_passkey_entry:
-4b8b 6fe086c1 fetch 1 ,mem_module_uart_len 
-4b8c c0824c4a bne 4 ,module_hci_event_receive_invalid_cmd 
-4b8d 6fe14500 fetch 2 ,mem_ui_state_map 
-4b8e c284cc3c bbit1 ui_state_ble_connected ,module_hci_cmd_le_passkey_entry_input 
-4b8f 20204c4a branch module_hci_event_receive_invalid_cmd 
-
-module_hci_cmd_le_set_pairing_mode:
-4b90 efe08003 ifetch 1 ,contru 
-4b91 1fe20400 copy pdata ,temp 
-4b92 c040cb9f beq le_pairing_mode_secure_connect_justwork ,module_le_set_pairing_mode_secure_justwork 
-4b93 c0414ba3 beq le_pairing_mode_secure_connect_numeric ,module_le_set_pairing_mode_secure_numeric 
-4b94 c041cba8 beq le_pairing_mode_secure_connect_passkey ,module_le_set_pairing_mode_secure_passkey 
-4b95 c0424bac beq le_pairing_mode_secure_connect_passkey_res_input ,module_le_set_pairing_mode_secure_passkey_res_input 
-4b96 67e0c300 store 1 ,mem_le_pairing_mode 
-4b97 204074ed call sc_reset 
-4b98 20402ea2 call le_secure_connection_disable 
-4b99 6fe0c300 fetch 1 ,mem_le_pairing_mode 
-4b9a c0004bb0 beq le_pairing_mode_none ,module_le_set_no_pairing 
-4b9b c000cbb3 beq le_pairing_mode_lagacy_justwork ,module_le_set_pairing_mode_lagacy_just_work 
-4b9c c0014bb5 beq le_pairing_mode_lagacy_passkey ,module_le_set_pairing_mode_lagacy_passkey 
-4b9d c0024bb7 beq le_pairing_mode_lagacy_passkey_res_input ,module_le_set_pairing_mode_lagacy_passkey_res_input 
-4b9e 20204c4a branch module_hci_event_receive_invalid_cmd 
-
-module_le_set_pairing_mode_secure_justwork:
-4b9f 6048c300 storet 1 ,mem_le_pairing_mode 
-4ba0 20402e9e call le_secure_connection_enable 
-4ba1 7042c90d jam flag_le_bonding_mitm_secure ,mem_le_pres_auth 
-4ba2 20204bb1 branch module_le_set_noinputnooutput 
-
-module_le_set_pairing_mode_secure_numeric:
-4ba3 6048c300 storet 1 ,mem_le_pairing_mode 
-4ba4 20402e9e call le_secure_connection_enable 
-4ba5 7042c90d jam flag_le_bonding_mitm_secure ,mem_le_pres_auth 
-4ba6 7042c701 jam flag_iocap_displayyesno ,mem_le_pres_iocap 
-4ba7 20204c4d branch module_hci_event_receive_valid_cmd 
-
-module_le_set_pairing_mode_secure_passkey:
-4ba8 6048c300 storet 1 ,mem_le_pairing_mode 
-4ba9 20402e9e call le_secure_connection_enable 
-4baa 7042c90d jam flag_le_bonding_mitm_secure ,mem_le_pres_auth 
-4bab 20204bbb branch module_le_set_displayonly 
-
-module_le_set_pairing_mode_secure_passkey_res_input:
-4bac 6048c300 storet 1 ,mem_le_pairing_mode 
-4bad 20402e9e call le_secure_connection_enable 
-4bae 7042c90d jam flag_le_bonding_mitm_secure ,mem_le_pres_auth 
-4baf 20204bb9 branch module_le_set_keboadonly 
-
-module_le_set_no_pairing:
-4bb0 7042c900 jam flag_le_no_bonding_no_mitm ,mem_le_pres_auth 
-
-module_le_set_noinputnooutput:
-4bb1 7042c703 jam flag_iocap_noinputnooutput ,mem_le_pres_iocap 
-4bb2 20204c4d branch module_hci_event_receive_valid_cmd 
-
-module_le_set_pairing_mode_lagacy_just_work:
-4bb3 7042c901 jam flag_le_bonding_no_mitm ,mem_le_pres_auth 
-4bb4 20204bb1 branch module_le_set_noinputnooutput 
-
-module_le_set_pairing_mode_lagacy_passkey:
-4bb5 7042c905 jam flag_le_bonding_mitm ,mem_le_pres_auth 
-4bb6 20204bbb branch module_le_set_displayonly 
-
-module_le_set_pairing_mode_lagacy_passkey_res_input:
-4bb7 7042c905 jam flag_le_bonding_mitm ,mem_le_pres_auth 
-4bb8 20204bb9 branch module_le_set_keboadonly 
-
-module_le_set_keboadonly:
-4bb9 7042c702 jam flag_iocap_keyboardonly ,mem_le_pres_iocap 
-4bba 20204c4d branch module_hci_event_receive_valid_cmd 
-
-module_le_set_displayonly:
-4bbb 7042c700 jam flag_iocap_displayonly ,mem_le_pres_iocap 
-4bbc 20204c4d branch module_hci_event_receive_valid_cmd 
-
-module_hci_cmd_le_set_scan_data:
-4bbd dfe0001f arg 31 ,pdata 
-4bbe d8a0436c arg mem_le_scan_data_len ,contw 
-4bbf 20204bc0 branch module_hci_cmd_receive_store_mem 
-
-module_hci_cmd_receive_store_mem:
-4bc0 6f2086c1 fetchr loopcnt ,1 ,mem_module_uart_len 
-4bc1 9f267c00 isub loopcnt ,null 
-4bc2 24214c4a nbranch module_hci_event_receive_invalid_cmd ,positive 
-4bc3 e7208005 istorer loopcnt ,1 ,contw 
-4bc4 20406dbd call uart_copy_rx_bytes_fast 
-4bc5 20204c4d branch module_hci_event_receive_valid_cmd 
-
-module_hci_cmd_le_send_conn_update_req:
-4bc6 6fe14500 fetch 2 ,mem_ui_state_map 
-4bc7 c304cc4a bbit0 ui_state_ble_connected ,module_hci_event_receive_invalid_cmd 
-4bc8 6fe086c1 fetch 1 ,mem_module_uart_len 
-4bc9 c0844c4a bne 0x08 ,module_hci_event_receive_invalid_cmd 
-4bca efe40003 ifetch 8 ,contru 
-4bcb 67e442d5 store 8 ,mem_le_interval_min 
-4bcc 70064d12 jam bt_cmd_le_update_conn ,mem_fifo_temp 
-4bcd 20407824 call ui_ipc_send_cmd 
-4bce 20204c4d branch module_hci_event_receive_valid_cmd 
-
-module_hci_cmd_set_le_adv_parameter:
-4bcf efe10003 ifetch 2 ,contru 
-4bd0 67e1438d store 2 ,mem_le_adv_interval 
-4bd1 6048c0a6 storet 1 ,mem_lpm_overhead 
-4bd2 9840fe00 iadd temp ,pdata 
-4bd3 67e140a4 store 2 ,mem_lpm_interval 
-4bd4 20204c4d branch module_hci_event_receive_valid_cmd 
-
-module_hci_cmd_le_start_pairing:
-4bd5 6fe0c300 fetch 1 ,mem_le_pairing_mode 
-4bd6 203a4c4a branch module_hci_event_receive_invalid_cmd ,blank 
-4bd7 6fe0c2fe fetch 1 ,mem_le_pairing_state 
-4bd8 c0804c4a bne flag_le_pairing_null ,module_hci_event_receive_invalid_cmd 
-4bd9 6fe0c2ff fetch 1 ,mem_le_enc_state 
-4bda c0804c4a bne flag_le_enc_null ,module_hci_event_receive_invalid_cmd 
-4bdb 20407899 call check_51cmd_le_smp_sec_req 
-4bdc 20204c4d branch module_hci_event_receive_valid_cmd 
-
-module_hci_cmd_set_wake_gpio:
-4bdd 6fe086c1 fetch 1 ,mem_module_uart_len 
-4bde c082cc4a bne 5 ,module_hci_event_receive_invalid_cmd 
-4bdf efe08003 ifetch 1 ,contru 
-4be0 67e0c510 store 1 ,mem_module_mcu_wake_pin 
-4be1 efe20003 ifetch 4 ,contru 
-4be2 67e24511 store 4 ,mem_module_mcu_wake_delay_us 
-4be3 6848c510 fetcht 1 ,mem_module_mcu_wake_pin 
-4be4 20406ef1 call gpio_config_output 
-4be5 20404cdf call module_set_mcu_wake_pin_low 
-4be6 20204c4d branch module_hci_event_receive_valid_cmd 
-
-module_hci_cmd_set_tx_power:
-4be7 6fe086c1 fetch 1 ,mem_module_uart_len 
-4be8 c080cc4a bne 0x01 ,module_hci_event_receive_invalid_cmd 
-4be9 efe08003 ifetch 1 ,contru 
-4bea 67e0c141 store 1 ,mem_tx_power 
-4beb 20204c4d branch module_hci_event_receive_valid_cmd 
-
-module_hci_cmd_le_confirm_gkey:
-4bec efe08003 ifetch 1 ,contru 
-4bed c000cbf5 beq 0x01 ,module_hci_cmd_le_confirm_gkey_fail 
-4bee 6fe0c2fc fetch 1 ,mem_le_secure_connect_state 
-4bef c001cbf3 beq le_sc_stat_send_public_key ,module_hci_cmd_le_confirm_gkey_ok 
-4bf0 c0034bf3 beq le_sc_stat_receive_dhkey ,module_hci_cmd_le_confirm_gkey_ok 
-4bf1 c003cbf3 beq le_sc_stat_wait_confirm_gkey ,module_hci_cmd_le_confirm_gkey_ok 
-4bf2 20204c4a branch module_hci_event_receive_invalid_cmd 
-
-module_hci_cmd_le_confirm_gkey_ok:
-4bf3 7042fd01 jam flag_le_sc_confrim_gkey_ok ,mem_le_sc_confirm_gkey_flag 
-4bf4 20204c4d branch module_hci_event_receive_valid_cmd 
-
-module_hci_cmd_le_confirm_gkey_fail:
-4bf5 20402f08 call le_send_pairing_confirm_value_failed 
-4bf6 20204c4d branch module_hci_event_receive_valid_cmd 
-
-module_hci_cmd_reset_chip:
-4bf7 20404c4d call module_hci_event_receive_valid_cmd 
-4bf8 20406da1 call wait_uarttx 
-4bf9 70801001 jam 0x01 ,core_reset 
-4bfa 2020233e branch assert 
-
-module_hci_cmd_delete_customize_service:
-4bfb d8400001 arg 0x0001 ,temp 
-4bfc 20402cb0 call le_att_get_handle_ptr2 
-4bfd 18c08bfe add contr ,-2 ,contw 
-4bfe 58000000 setarg 0x0000 
-4bff e7e10005 istore 2 ,contw 
-4c00 20204c4d branch module_hci_event_receive_valid_cmd 
-
-module_hci_cmd_add_service_uuid:
-4c01 20404c0a call module_hci_cmd_add_service_uuid_set_uuid 
-4c02 20404c38 call uart_copy_rx_bytes_len_data 
-4c03 58000000 setarg 0x0000 
-4c04 e7e10005 istore 2 ,contw 
-4c05 20204cb9 branch module_hci_event_uuid_handle 
-
-module_hci_cmd_add_characteristic_uuid:
-4c06 efe08003 ifetch 1 ,contru 
-4c07 20404c0e call module_hci_cmd_add_characteristic_uuid_set_handle 
-4c08 20404c15 call module_hci_cmd_add_characteristic_uuid_set_uuid 
-4c09 20204cb9 branch module_hci_event_uuid_handle 
-
-module_hci_cmd_add_service_uuid_set_uuid:
-4c0a 20404c35 call le_att_creat_new_handle 
-4c0b 58280002 setarg 0x280002 
-4c0c e7e18005 istore 3 ,contw 
-4c0d 20600000 rtn 
-
-module_hci_cmd_add_characteristic_uuid_set_handle:
-4c0e 67e0864e store 1 ,mem_pdatatemp 
-4c0f 20404c35 call le_att_creat_new_handle 
-4c10 59280302 setarg 0x01280302 
-4c11 e7e20005 istore 4 ,contw 
-4c12 6fe0864e fetch 1 ,mem_pdatatemp 
-4c13 e7e18005 istore 3 ,contw 
-4c14 20600000 rtn 
-
-module_hci_cmd_add_characteristic_uuid_set_uuid:
-4c15 20402cd4 call le_att_get_last_handle 
-4c16 efe08003 ifetch 1 ,contru 
-4c17 1fe1721f and pdata ,0x1f ,loopcnt 
-4c18 1fe22200 copy pdata ,rega 
-4c19 2a2ffe07 isolate1 bit_of_write_authenticated ,rega 
-4c1a 7920840f setflag true ,bit_of_att_handle_write_authenticated ,temp 
-4c1b 2a2ffe06 isolate1 bit_of_read_authenticated ,rega 
-4c1c 7920840e setflag true ,bit_of_att_handle_read_authenticated ,temp 
-4c1d e0410005 istoret 2 ,contw 
-4c1e 1f227e00 copy loopcnt ,pdata 
-4c1f e7e08005 istore 1 ,contw 
-4c20 20406dd0 call uart_copy_rx_bytes 
-4c21 20404c38 call uart_copy_rx_bytes_len_data 
-4c22 58000000 setarg 0 
-4c23 e7e10005 istore 2 ,contw 
-4c24 184104ff and temp ,0xff ,temp 
-4c25 184085ff increase -1 ,temp 
-4c26 20402cb0 call le_att_get_handle_ptr2 
-4c27 18c08c04 add contr ,4 ,contr 
-4c28 efe08006 ifetch 1 ,contr 
-4c29 c2824c2d bbit1 bit_characteristic_notify ,module_hci_cmd_add_characteristic_uuid_set_ccc_uuid 
-4c2a c282cc2d bbit1 bit_characteristic_indicate ,module_hci_cmd_add_characteristic_uuid_set_ccc_uuid 
-4c2b 18408401 increase 1 ,temp 
-4c2c 20600000 rtn 
-
-module_hci_cmd_add_characteristic_uuid_set_ccc_uuid:
-4c2d 20402cd4 call le_att_get_last_handle 
-4c2e 2a2ffe05 isolate1 bit_of_notify_authenticated ,rega 
-4c2f 7920840f setflag true ,bit_of_att_handle_write_authenticated ,temp 
-4c30 e0410005 istoret 2 ,contw 
-4c31 5a290202 setarg 0x02290202 
-4c32 e7e40005 istore 8 ,contw 
-4c33 184085ff increase -1 ,temp 
-4c34 20600000 rtn 
-
-le_att_creat_new_handle:
-4c35 20402cd4 call le_att_get_last_handle 
-4c36 e0410005 istoret 2 ,contw 
-4c37 20600000 rtn 
-
-uart_copy_rx_bytes_len_data:
-4c38 efe08003 ifetch 1 ,contru 
-4c39 1fe27200 copy pdata ,loopcnt 
-4c3a e7e08005 istore 1 ,contw 
-4c3b 20206dd0 branch uart_copy_rx_bytes 
-
-module_hci_cmd_le_passkey_entry_input:
-4c3c 6fe0c2fe fetch 1 ,mem_le_pairing_state 
-4c3d c082cc4a bne flag_le_pairing_receive_pairing_confirm ,module_hci_event_receive_invalid_cmd 
-4c3e 6fe0c300 fetch 1 ,mem_le_pairing_mode 
-4c3f c0024c48 beq le_pairing_mode_lagacy_passkey_res_input ,module_hci_cmd_passkey_entry_res_input 
-4c40 c0424c42 beq le_pairing_mode_secure_connect_passkey_res_input ,module_hci_cmd_passkey_entry_sc_res_input 
-4c41 20204c4a branch module_hci_event_receive_invalid_cmd 
-
-module_hci_cmd_passkey_entry_sc_res_input:
-4c42 7042fb02 jam le_sp_flag_commit_256 ,mem_le_secure_connect_flag 
-4c43 7042fc08 jam le_sc_stat_passkey_wait_confirm ,mem_le_secure_connect_state 
-4c44 20204c45 branch module_hci_cmd_receive_ble_passkey 
-
-module_hci_cmd_receive_ble_passkey:
-4c45 efe20003 ifetch 4 ,contru 
-4c46 67e24301 store 4 ,mem_le_tk 
-4c47 20204c4d branch module_hci_event_receive_valid_cmd 
-
-module_hci_cmd_passkey_entry_res_input:
-4c48 20404c45 call module_hci_cmd_receive_ble_passkey 
-4c49 20202ef1 branch le_send_smp_pairing_confirm 
-
-module_hci_event_receive_invalid_cmd:
-4c4a d8400001 arg 1 ,temp 
-4c4b da200000 arg 0 ,rega 
-4c4c 20204c54 branch module_hci_event_set_cmd 
-
-module_hci_event_receive_valid_cmd:
-4c4d d8400000 arg 0 ,temp 
-4c4e da200000 arg 0 ,rega 
-4c4f 20204c54 branch module_hci_event_set_cmd 
-
-module_hci_event_le_connect:
-4c50 7006c002 jam hci_event_le_conn_rep ,mem_module_uart_opcode 
-4c51 20204c6d branch module_hci_event_enter_standby_mode_len0 
-
-module_hci_event_le_disconnect:
-4c52 7006c005 jam hci_event_le_dis_rep ,mem_module_uart_opcode 
-4c53 20204c6d branch module_hci_event_enter_standby_mode_len0 
-
-module_hci_event_set_cmd:
-4c54 6fe086c0 fetch 1 ,mem_module_uart_opcode 
-4c55 1fe22600 copy pdata ,regc 
-4c56 7006c006 jam hci_event_cmd_res ,mem_module_uart_opcode 
-4c57 58000002 setarg 2 
-4c58 9a20fe00 iadd rega ,pdata 
-4c59 20404cc8 call module_hci_prepare_tx 
-4c5a 1a627e00 copy regc ,pdata 
-4c5b e7e08003 istore 1 ,contwu 
-4c5c e0408003 istoret 1 ,contwu 
-4c5d 1a227200 copy rega ,loopcnt 
-4c5e 1a420c00 copy regb ,contr 
-4c5f 20406db7 call uart_copy_tx_bytes 
-4c60 20204cd2 branch module_hci_transmit_tx 
-
-module_hci_event_receive_le_data:
-4c61 7006c008 jam hci_event_le_data_rep ,mem_module_uart_opcode 
-4c62 1f20fe02 add loopcnt ,2 ,pdata 
-4c63 20404cc8 call module_hci_prepare_tx 
-4c64 6fe106eb fetch 2 ,mem_module_le_rx_data_handle 
-4c65 e7e10003 istore 2 ,contwu 
-4c66 6fe106e9 fetch 2 ,mem_module_le_rx_data_address 
-4c67 1fe20c00 icopy contr 
-4c68 20406da4 call uart_copy_tx_bytes_fast 
-4c69 18c27e00 copy contr ,pdata 
-4c6a 67e106e9 store 2 ,mem_module_le_rx_data_address 
-4c6b 20204cd2 branch module_hci_transmit_tx 
-
-module_hci_event_enter_standby_mode:
-4c6c 7006c009 jam hci_event_standby_rep ,mem_module_uart_opcode 
-
-module_hci_event_enter_standby_mode_len0:
-4c6d 58000000 setarg 0 
-4c6e 20404cc8 call module_hci_prepare_tx 
-4c6f 20204cd2 branch module_hci_transmit_tx 
-
-module_hci_event_status_res:
-4c70 7006c00a jam hci_event_status_res ,mem_module_uart_opcode 
-4c71 58000001 setarg 1 
-4c72 20404cc8 call module_hci_prepare_tx 
-4c73 20404c7a call module_hci_read_bt_status 
-4c74 6fe14500 fetch 2 ,mem_ui_state_map 
-4c75 d8e00009 arg ui_state_ble_connected ,queue 
-4c76 afefffff qisolate1 pdata 
-4c77 79208405 setflag true ,5 ,temp 
-4c78 e0408003 istoret 1 ,contwu 
-4c79 20204cd2 branch module_hci_transmit_tx 
-
-module_hci_read_bt_status:
-4c7a d8400000 arg 0 ,temp 
-4c7b 6fe0c38c fetch 1 ,mem_le_adv_enable 
-4c7c d8e00000 arg 0 ,queue 
-4c7d afefffff qisolate1 pdata 
-4c7e 79208402 setflag true ,2 ,temp 
-4c7f 20600000 rtn 
-
-module_hci_event_store_device:
-4c80 7006c00d jam hci_event_nvram_rep ,mem_module_uart_opcode 
-4c81 6fe0c403 fetch 1 ,mem_nv_data_number 
-4c82 1feffe22 mul32 pdata ,34 ,pdata 
-4c83 1fe27200 icopy loopcnt 
-4c84 20404cc8 call module_hci_prepare_tx 
-4c85 6fe14401 fetch 2 ,mem_nv_data_ptr 
-4c86 1fe20c00 icopy contr 
-4c87 20406da4 call uart_copy_tx_bytes_fast 
-4c88 20204cd2 branch module_hci_transmit_tx 
-
-module_hci_event_gkey_generate:
-4c89 7006c00e jam hci_event_gkey ,mem_module_uart_opcode 
-4c8a 58000004 setarg 4 
-4c8b 20404cc8 call module_hci_prepare_tx 
-4c8c 6fe205d8 fetch 4 ,mem_gkey 
-4c8d e7e20003 istore 4 ,contwu 
-4c8e 20204cd2 branch module_hci_transmit_tx 
-
-module_hci_event_invalid_packet:
-4c8f 7006c00f jam hci_event_invalid_packet ,mem_module_uart_opcode 
-4c90 6ff10112 fetch 2 ,core_uart_rxitems 
-4c91 d8400040 arg 0x40 ,temp 
-4c92 20407db2 call not_greater_than 
-4c93 1fe22200 copy pdata ,rega 
-4c94 1fe27200 copy pdata ,loopcnt 
-4c95 20406d89 call uarta_prepare_rx 
-4c96 d8a0067f arg mem_module_rx_error_data_buffer ,contw 
-4c97 20406dbd call uart_copy_rx_bytes_fast 
-4c98 1a227e00 copy rega ,pdata 
-4c99 1a227200 copy rega ,loopcnt 
-4c9a 20404cc8 call module_hci_prepare_tx 
-4c9b d8c0067f arg mem_module_rx_error_data_buffer ,contr 
-4c9c 20406da4 call uart_copy_tx_bytes_fast 
-4c9d 20204cd2 branch module_hci_transmit_tx 
-
-module_hci_event_passkey_entry_mode:
-4c9e 7006c010 jam hci_event_get_passkey ,mem_module_uart_opcode 
-4c9f 20204c6d branch module_hci_event_enter_standby_mode_len0 
-
-module_hci_event_le_tk:
-4ca0 7006c011 jam hci_event_le_tk ,mem_module_uart_opcode 
-4ca1 58000004 setarg 4 
-4ca2 20404cc8 call module_hci_prepare_tx 
-4ca3 6fe24301 fetch 4 ,mem_le_tk 
-4ca4 e7e20003 istore 4 ,contwu 
-4ca5 20204cd2 branch module_hci_transmit_tx 
-
-module_hci_event_le_pairing_fail:
-4ca6 da200180 arg flag_ble_pairing_fail ,rega 
-4ca7 20204caa branch module_hci_event_pairing_completed 
-
-module_hci_event_le_pairing_success:
-4ca8 da200080 arg flag_ble_pairing_success ,rega 
-4ca9 20204caa branch module_hci_event_pairing_completed 
-
-module_hci_event_pairing_completed:
-4caa 7006c014 jam hci_event_le_pairing_state ,mem_module_uart_opcode 
-4cab 58000002 setarg 2 
-4cac 20404cc8 call module_hci_prepare_tx 
-4cad 1a227e00 copy rega ,pdata 
-4cae e7e10003 istore 2 ,contwu 
-4caf 20204cd2 branch module_hci_transmit_tx 
-
-module_hci_event_pause_enc:
-4cb0 da600000 arg flag_event_pause_enc ,regc 
-4cb1 20204cb3 branch module_hci_event_enc 
-
-module_hci_event_start_enc:
-4cb2 da600001 arg flag_event_start_enc ,regc 
-
-module_hci_event_enc:
-4cb3 7006c015 jam hci_event_le_encryption_state ,mem_module_uart_opcode 
-4cb4 58000001 setarg 1 
-4cb5 20404cc8 call module_hci_prepare_tx 
-4cb6 1a627e00 copy regc ,pdata 
-4cb7 e7e08003 istore 1 ,contwu 
-4cb8 20204cd2 branch module_hci_transmit_tx 
-
-module_hci_event_uuid_handle:
-4cb9 60490656 storet 2 ,mem_temp 
-4cba 7006c029 jam hci_event_uuid_handle ,mem_module_uart_opcode 
-4cbb 58000002 setarg 2 
-4cbc 20404cc8 call module_hci_prepare_tx 
-4cbd 68490656 fetcht 2 ,mem_temp 
-4cbe e0410003 istoret 2 ,contwu 
-4cbf 20204cd2 branch module_hci_transmit_tx 
-
-module_hci_event_le_input_passkey:
-4cc0 7006c02b jam hci_event_le_input_gkey ,mem_module_uart_opcode 
-4cc1 20204c6d branch module_hci_event_enter_standby_mode_len0 
-
-module_hci_event_le_update_phy:
-4cc2 7006c040 jam hci_ble_update_phy_event ,mem_module_uart_opcode 
-4cc3 58000002 setarg 2 
-4cc4 20404cc8 call module_hci_prepare_tx 
-4cc5 6fe14075 fetch 2 ,mem_context + coffset_le_rx_phy 
-4cc6 e7e10003 istore 2 ,contwu 
-4cc7 20204cd2 branch module_hci_transmit_tx 
-
-module_hci_prepare_tx:
-4cc8 7006bf02 jam 0x02 ,mem_module_uart_cmd 
-4cc9 67e086c1 store 1 ,mem_module_uart_len 
-4cca 604c0656 storet 8 ,mem_temp 
-4ccb 44b8400e bpatch patch0e_0 ,mem_patch0e 
-4ccc 20404cd4 call module_set_mcu_wake_pin_high_delay 
-4ccd 684c0656 fetcht 8 ,mem_temp 
-4cce 20406d95 call uarta_prepare_tx_register_push 
-4ccf 6fe186bf fetch 3 ,mem_module_uart_cmd 
-4cd0 e7e18003 istore 3 ,contwu 
-4cd1 20600000 rtn 
-
-module_hci_transmit_tx:
-4cd2 44b8c00e bpatch patch0e_1 ,mem_patch0e 
-4cd3 20206d97 branch uarta_send_register_pop 
-
-module_set_mcu_wake_pin_high_delay:
-4cd4 20404cdd call module_check_mcu_wake_pin_high 
-4cd5 20608000 rtn true 
-
-module_set_mcu_wake_pin_h_delay:
-4cd6 20404cdb call module_set_mcu_wake_pin_high 
-4cd7 6fe24511 fetch 4 ,mem_module_mcu_wake_delay_us 
-4cd8 1feb7e00 rshift2 pdata ,pdata 
-4cd9 207a0000 rtn blank 
-4cda 20207c93 branch delay 
-
-module_set_mcu_wake_pin_high:
-4cdb 6848c510 fetcht 1 ,mem_module_mcu_wake_pin 
-4cdc 20206ef1 branch gpio_out_active 
-
-module_check_mcu_wake_pin_high:
-4cdd 6848c510 fetcht 1 ,mem_module_mcu_wake_pin 
-4cde 20206efc branch gpio_check_active 
-
-module_set_mcu_wake_pin_low:
-4cdf 6848c510 fetcht 1 ,mem_module_mcu_wake_pin 
-4ce0 20206eed branch gpio_out_inactive 
-
-module_le_receive_data:
-4ce1 622106e9 storer rega ,2 ,mem_module_le_rx_data_address 
-4ce2 624106e7 storer regb ,2 ,mem_module_le_rx_data_len 
-4ce3 6fe1439c fetch 2 ,mem_le_att_handle 
-4ce4 67e106eb store 2 ,mem_module_le_rx_data_handle 
-4ce5 20404b32 call module_check_ble_encrypt_state 
-4ce6 20740000 rtn user 
-
-module_le_receive_data_ok:
-4ce7 684906e7 fetcht 2 ,mem_module_le_rx_data_len 
-4ce8 6fe0c525 fetch 1 ,mem_module_ble_data_uart_max_length 
-4ce9 20407db2 call not_greater_than 
-4cea 1fe27200 copy pdata ,loopcnt 
-4ceb 18427e00 copy temp ,pdata 
-4cec 9f267e00 isub loopcnt ,pdata 
-4ced 67e106e7 store 2 ,mem_module_le_rx_data_len 
-4cee 20404c61 call module_hci_event_receive_le_data 
-4cef 6fe106e7 fetch 2 ,mem_module_le_rx_data_len 
-4cf0 207a0000 rtn blank 
-4cf1 20204ce7 branch module_le_receive_data_ok 
-
-module_bb_event_timer:
-4cf2 20600000 rtn 
-
-module_read_vdd_timer:
-4cf3 6fe0c521 fetch 1 ,mem_module_read_vdd_flag 
-4cf4 207a0000 rtn blank 
-4cf5 6fe0c522 fetch 1 ,mem_module_read_vdd_count 
-4cf6 207a0000 rtn blank 
-4cf7 1fe0ffff increase -1 ,pdata 
-4cf8 67e0c522 store 1 ,mem_module_read_vdd_count 
-4cf9 247a0000 nrtn blank 
-4cfa 70452205 jam flag_module_read_vdd_count ,mem_module_read_vdd_count 
-4cfb 20406fb2 call enable_adc 
-4cfc 20406f8e call vdd_calculate_by_mode 
-4cfd 1fe6fc0a div pdata ,10 
-4cfe 20407d61 call get_div_result 
-4cff 1fe6fc64 div pdata ,100 
-4d00 20407d61 call get_div_result 
-4d01 18070400 remainder temp 
-4d02 67e0c523 store 1 ,mem_module_vdd_quotient 
-4d03 6048c524 storet 1 ,mem_module_vdd_remainder 
-4d04 20600000 rtn 
-
-module_set_le_tx_data_flag:
-4d05 d8e00008 arg module_flag_ble_data_finish ,queue 
-4d06 20204d0d branch module_set_state 
-
-module_clear_le_tx_data_flag:
-4d07 d8e00008 arg module_flag_ble_data_finish ,queue 
-4d08 20204d09 branch module_clr_state 
-
-module_clr_state:
-4d09 6fe14526 fetch 2 ,mem_module_flag 
-4d0a f93ffe00 qset0 pdata 
-4d0b 67e14526 store 2 ,mem_module_flag 
-4d0c 20600000 rtn 
-
-module_set_state:
-4d0d 6fe14526 fetch 2 ,mem_module_flag 
-4d0e f9207e00 qset1 pdata 
-4d0f 67e14526 store 2 ,mem_module_flag 
-4d10 20600000 rtn 
-
-mouse_init:
-4d11 20407384 call enable_authrom 
-4d12 2055cd20 call mouse_wake_gpio_set ,wake 
-4d13 20404d40 call mouse_setting_config 
-4d14 20404dec call mouse_le_name_modify 
-4d15 20405260 call mouse_init_sunt 
-4d16 20758000 rtn wake 
-4d17 20405b83 call mouse_usb_check_enable 
-4d18 2040506b call mouse_setting_sensor_type 
-4d19 20405853 call mouse_drawing_optima_init 
-4d1a 20404d22 call mouse_cb_fuction 
-4d1b 20405303 call mouse_sensor_powerdown 
-
-mouse_init_wireless:
-4d1c 6fe14500 fetch 2 ,mem_ui_state_map 
-4d1d c2865544 bbit1 ui_state_btn_down ,mouse_start_discovery 
-4d1e 204057d7 call mouse_check_select_device_by_switch_once 
-4d1f 20204df5 branch mouse_start_work 
-
-mouse_wake_gpio_set:
-4d20 20405203 call mouse_matrix_public_gpio_reset 
-4d21 20206f4e branch lpm_config_puchk_disable 
-
-mouse_cb_fuction:
-4d22 44b9400e bpatch patch0e_2 ,mem_patch0e 
-4d23 58005b02 setarg mouse_24g_short_sleep 
-4d24 67e1460f store 2 ,mem_cb_24g_transmit_short_sleep 
-4d25 58005af7 setarg mouse_24g_long_sleep 
-4d26 67e14611 store 2 ,mem_cb_24g_transmit_long_sleep 
-4d27 580059f0 setarg mouse_24g_before_lpm_sleep 
-4d28 67e143f2 store 2 ,mem_cb_before_lpm_sleep 
-4d29 580059bc setarg mouse_24g_package_data 
-4d2a 67e14609 store 2 ,mem_cb_24g_transmit_data 
-4d2b 58006886 setarg mouse_24g_search_dongle 
-4d2c 67e1460b store 2 ,mem_cb_24g_search_receiver 
-4d2d 58004e75 setarg mouse_lpm_before_common 
-4d2e 67e1460d store 2 ,mem_cb_24g_lpm_before 
-4d2f 58005438 setarg mouse_le 
-4d30 67e143e2 store 2 ,mem_cb_le_process 
-4d31 58004e70 setarg mouse_process_lpm_before 
-4d32 67e143e0 store 2 ,mem_cb_before_lpm 
-4d33 580053da setarg mouse_priority_bb_event 
-4d34 67e143e6 store 2 ,mem_cb_bb_event_process 
-4d35 58005759 setarg mouse_idle 
-4d36 67e143e4 store 2 ,mem_cb_idle_process 
-4d37 58004e3d setarg mouse_before_hibernate 
-4d38 67e143de store 2 ,mem_cb_before_hibernate 
-4d39 58005420 setarg mouse_le_bb_event_connect_complete 
-4d3a 67e143e8 store 2 ,mem_cb_att_write 
-4d3b 58005494 setarg mouse_bb_event_timer 
-4d3c 67e143ec store 2 ,mem_cb_event_timer 
-4d3d 58004e2d setarg mouse_lpm_check_wake_lock 
-4d3e 67e143dc store 2 ,mem_cb_check_wakelock 
-4d3f 202068cb branch hid_device_cb_fuction 
-
-mouse_setting_config:
-4d40 20758000 rtn wake 
-4d41 204035c8 call g24_transmit_init 
-4d42 2040323a call g24_chmap_param_init 
-4d43 20405b7f call mouse_24g_send_time_long_wake 
-4d44 20404ee5 call mouse_gpio_init 
-4d45 20404d88 call mouse_param_info_init 
-4d46 20405a4b call mouse_device_multi_led_parm_init 
-4d47 20402a1f call le_set_fixed_ltk_justwork 
-
-mouse_load_device_info_check:
-4d48 44b9c00e bpatch patch0e_3 ,mem_patch0e 
-4d49 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
-4d4a c288d640 bbit1 mouse_enable_eeprom ,mouse_load_eeprom_info_check 
-4d4b c2885650 bbit1 mouse_enable_flash ,mouse_load_flash_info_check 
-4d4c c2895685 bbit1 mouse_enable_otp ,mouse_load_otp_info_check 
-4d4d 20600000 rtn 
-
-mouse_xtal_init:
-4d4e 70409910 jam xtal_16m ,mem_fcomp_div 
-4d4f 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
-4d50 c3858000 rtnbit1 mouse_enable_16m 
-4d51 70409918 jam xtal_24m ,mem_fcomp_div 
-4d52 20600000 rtn 
-
-mouse_24g_phy_select:
-4d53 20403260 call g24_enable_1m 
-4d54 7048fa00 jam 0 ,mem_mouse_sleep_deal_type 
-4d55 7045e100 jam 0 ,mem_24g_disable_fec1 
-4d56 70444e00 jam 0 ,mem_power_ctrl_disable 
-4d57 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
-4d58 c41e8000 rtnbit0 mouse_enable_24g_2m_phy 
-4d59 7048fa01 jam 1 ,mem_mouse_sleep_deal_type 
-4d5a 7045e101 jam 1 ,mem_24g_disable_fec1 
-4d5b 70444e01 jam 1 ,mem_power_ctrl_disable 
-4d5c 20203263 branch g24_enable_2m 
-
-mouse_g24_reconn_dispatch_set:
-4d5d 4778403e bpatchx patch3e_0 ,mem_patch3e 
-4d5e 6fe0c594 fetch 1 ,mem_24g_rxdata_length 
-4d5f 203a4d65 branch mouse_receiver_addr_check ,blank 
-
-mouse_g24_reconn_dispatch:
-4d60 6fe245e3 fetch 4 ,mem_24g_pair_addr 
-4d61 684a45a6 fetcht 4 ,mem_24g_addr 
-4d62 98467c00 isub temp ,null 
-4d63 2022cd6c branch mouse_g24_reconn_mode_judge ,zero 
-4d64 20203546 branch g24_reconn_dispatch_success 
-
-mouse_receiver_addr_check:
-4d65 6fe245fb fetch 4 ,mem_24g_fast_conn_addr 
-4d66 684a45a6 fetcht 4 ,mem_24g_addr 
-4d67 98467c00 isub temp ,null 
-4d68 2022cd60 branch mouse_g24_reconn_dispatch ,zero 
-4d69 6fe24576 fetch 4 ,mem_24g_rxpayload + 2 
-4d6a 207a0000 rtn blank 
-4d6b 20204d60 branch mouse_g24_reconn_dispatch 
-
-mouse_g24_reconn_mode_judge:
-4d6c 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
-4d6d c298596c bbit1 mouse_enable_auto_24g_paring ,mouse_24g_pair_mode_check 
-4d6e c29f596c bbit1 mouse_enable_24g_first_auto_pairing ,mouse_24g_pair_mode_check 
-4d6f 2020351f branch g24_reconn_receiver_addr 
-
-mouse_g24_transmit_hop_process:
-4d70 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
-4d71 c31eb658 bbit0 mouse_enable_24g_2m_phy ,g24_transmit_hop_process_next 
-
-mouse_g24_transmit_hop_process_new:
-4d72 6848c618 fetcht 1 ,mem_24g_retry 
-4d73 6fe0c638 fetch 1 ,mem_24g_fast_hop_count 
-4d74 98467c00 isub temp ,null 
-4d75 24213675 nbranch g24_tx_fast_hop ,positive 
-4d76 18408401 increase 1 ,temp 
-4d77 6048c618 storet 1 ,mem_24g_retry 
-4d78 6fe0c638 fetch 1 ,mem_24g_fast_hop_count 
-4d79 c007cd7e beq 15 ,mouse_g24_transmit_hop_process_4ms 
-4d7a 6fe0c618 fetch 1 ,mem_24g_retry 
-4d7b c00a366f beq 20 ,g24_hop_ch_disable 
-4d7c c00f366f beq 30 ,g24_hop_ch_disable 
-4d7d 20600000 rtn 
-
-mouse_g24_transmit_hop_process_4ms:
-4d7e 6fe0c618 fetch 1 ,mem_24g_retry 
-4d7f c005366f beq 10 ,g24_hop_ch_disable 
-4d80 c007b66f beq 15 ,g24_hop_ch_disable 
-4d81 20600000 rtn 
-
-mouse_default_init:
-4d82 44ba400e bpatch patch0e_4 ,mem_patch0e 
-4d83 204067ff call hid_device_default_parm_init 
-4d84 20404d4e call mouse_xtal_init 
-4d85 20404d53 call mouse_24g_phy_select 
-4d86 204058fc call mouse_24g_long_sleep_set 
-4d87 20203266 branch g24_pair_param_init 
-
-mouse_param_info_init:
-4d88 44bac00e bpatch patch0e_5 ,mem_patch0e 
-4d89 20404d93 call mouse_param_common_init 
-4d8a 20404da5 call mouse_report_rate_parm_init 
-4d8b 20404dd3 call mouse_sensor_set_angle 
-
-mouse_spi_parm_init:
-4d8c 58000a77 setarg 0x0a77 
-4d8d 67e143fe store 2 ,mem_spi_init_clk 
-4d8e 38001224 setsect 0 ,0x1224 
-4d8f 38044000 setsect 1 ,0x4000 
-4d90 38080000 setsect 2 ,0x0 
-4d91 e7e28005 istore 5 ,contw 
-4d92 20600000 rtn 
-
-mouse_param_common_init:
-4d93 58009000 setarg mouse_ble_att_list_addr 
-4d94 67e142f9 store 2 ,mem_ui_le_uuid_table 
-4d95 70491700 jam dpi_button_state_up ,mem_mouse_dpi_button_state 
-4d96 58000000 setarg 0 
-4d97 67e3c65c store 7 ,mem_mouse_key 
-4d98 6fe0c502 fetch 1 ,mem_ui_button_timeout 
-4d99 67e0c731 store 1 ,mem_bt_discovery_count 
-4d9a 67e0c732 store 1 ,mem_select_device_count 
-4d9b 7045a001 jam type_ms ,mem_24g_data_type 
-4d9c 7045fa01 jam 1 ,mem_24g_fast_conn_enable 
-4d9d 704ac400 jam 0 ,mem_mouse_pair_flag 
-4d9e 20404da0 call mouse_compare_addr_init 
-4d9f 2020680c branch hid_device_param_common_init 
-
-mouse_compare_addr_init:
-4da0 d8400000 arg 0 ,temp 
-4da1 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
-4da2 c289681d bbit1 mouse_enable_otp ,hid_device_compare_addr_store 
-4da3 d85fffff arg 0xffffff ,temp 
-4da4 2020681d branch hid_device_compare_addr_store 
-
-mouse_report_rate_parm_init:
-4da5 20404dae call mouse_24g_report_rate_parm_init 
-4da6 6fe1c61f fetch 3 ,mem_24g_short_sleep_set 
-4da7 67e1c8dc store 3 ,mem_mouse_24g_short_sleep_set_init 
-
-mouse_le_report_rate_parm_init:
-4da8 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
-4da9 c40d8000 rtnbit0 mouse_enable_bt_125hz 
-4daa 58000006 setarg le_interval_7_5ms 
-
-mouse_le_interval_store:
-4dab 67e142d5 store 2 ,mem_le_interval_min 
-4dac 67e142d7 store 2 ,mem_le_interval_min + 2 
-4dad 20600000 rtn 
-
-mouse_24g_report_rate_parm_init:
-4dae 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
-4daf c28ccdb2 bbit1 mouse_enable_24g_500hz ,mouse_g24_interval_param_2ms 
-4db0 c28c4db9 bbit1 mouse_enable_24g_250hz ,mouse_g24_interval_param_4ms 
-4db1 20204dc6 branch mouse_g24_interval_param_8ms 
-
-mouse_g24_interval_param_2ms:
-4db2 6fe0c8bf fetch 1 ,mem_mouse_24g_fast_hop_count_2ms 
-4db3 67e0c638 store 1 ,mem_24g_fast_hop_count 
-4db4 6fe248d0 fetch 4 ,mem_mouse_24g_tsniff_2ms 
-4db5 67e248cc store 4 ,mem_mouse_24g_tsniff 
-
-mouse_report_rate_set_500hz:
-4db6 58080606 setarg 0x080606 
-4db7 67e1c5be store 3 ,mem_24g_interval 
-4db8 202036bb branch g24_transmit_by_interrupt_enable 
-
-mouse_g24_interval_param_4ms:
-4db9 6fe1c8c0 fetch 3 ,mem_mouse_24g_short_sleep_set_4ms 
-4dba 67e1c61f store 3 ,mem_24g_short_sleep_set 
-4dbb 6fe1c8c3 fetch 3 ,mem_mouse_24g_long_sleep_set_4ms 
-4dbc 67e1c622 store 3 ,mem_24g_long_sleep_set 
-4dbd 6fe248d4 fetch 4 ,mem_mouse_24g_tsniff_4ms 
-4dbe 67e248cc store 4 ,mem_mouse_24g_tsniff 
-4dbf 58100c0c setarg 0x100c0c 
-4dc0 67e1c5be store 3 ,mem_24g_interval 
-4dc1 70463805 jam 0x05 ,mem_24g_fast_hop_count 
-4dc2 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
-4dc3 c41e8000 rtnbit0 mouse_enable_24g_2m_phy 
-4dc4 7046380f jam 0x0f ,mem_24g_fast_hop_count 
-4dc5 20600000 rtn 
-
-mouse_g24_interval_param_8ms:
-4dc6 6fe1c8c6 fetch 3 ,mem_mouse_24g_short_sleep_set_8ms 
-4dc7 67e1c61f store 3 ,mem_24g_short_sleep_set 
-4dc8 6fe1c8c9 fetch 3 ,mem_mouse_24g_long_sleep_set_8ms 
-4dc9 67e1c622 store 3 ,mem_24g_long_sleep_set 
-4dca 6fe248d8 fetch 4 ,mem_mouse_24g_tsniff_8ms 
-4dcb 67e248cc store 4 ,mem_mouse_24g_tsniff 
-4dcc 581c1919 setarg 0x1c1919 
-4dcd 67e1c5be store 3 ,mem_24g_interval 
-4dce 7046380b jam 0x0b ,mem_24g_fast_hop_count 
-4dcf 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
-4dd0 c41e8000 rtnbit0 mouse_enable_24g_2m_phy 
-4dd1 7046381e jam 0x1e ,mem_24g_fast_hop_count 
-4dd2 20600000 rtn 
-
-mouse_sensor_set_angle:
-4dd3 44bb400e bpatch patch0e_6 ,mem_patch0e 
-4dd4 20404de9 call mouse_set_sensor_angle_float 
-4dd5 6fe0c895 fetch 1 ,mem_select_sensor_angle_gpio 
-4dd6 c17f8000 rtneq gpio_disable 
-4dd7 6fe0c895 fetch 1 ,mem_select_sensor_angle_gpio 
-4dd8 20405258 call mouse_gpio_config_pu_check 
-4dd9 6848c895 fetcht 1 ,mem_select_sensor_angle_gpio 
-4dda 20406ee0 call gpio_get_bit 
-4ddb 2020cde5 branch mouse_set_sensor_angle_gnd ,true 
-4ddc 6fe0c895 fetch 1 ,mem_select_sensor_angle_gpio 
-4ddd 2040525c call mouse_gpio_config_pd_check 
-4dde 6848c895 fetcht 1 ,mem_select_sensor_angle_gpio 
-4ddf 20406ee0 call gpio_get_bit 
-4de0 2020cde9 branch mouse_set_sensor_angle_float ,true 
-
-mouse_set_sensor_angle_vin:
-4de1 6fe0c895 fetch 1 ,mem_select_sensor_angle_gpio 
-4de2 20405258 call mouse_gpio_config_pu_check 
-4de3 6fe0c898 fetch 1 ,mem_sensor_angle_vin 
-4de4 20204dea branch mouse_store_sensor_angle 
-
-mouse_set_sensor_angle_gnd:
-4de5 6fe0c895 fetch 1 ,mem_select_sensor_angle_gpio 
-4de6 2040525c call mouse_gpio_config_pd_check 
-4de7 6fe0c897 fetch 1 ,mem_sensor_angle_gnd 
-4de8 20204dea branch mouse_store_sensor_angle 
-
-mouse_set_sensor_angle_float:
-4de9 6fe0c896 fetch 1 ,mem_sensor_angle_default 
-
-mouse_store_sensor_angle:
-4dea 67e0c9fb store 1 ,mem_config_sensor_angle 
-4deb 20600000 rtn 
-
-mouse_le_name_modify:
-4dec 44bc400f bpatch patch0f_0 ,mem_patch0f 
-4ded 20758000 rtn wake 
-4dee 6fe0ca1e fetch 1 ,mem_le_name_patch_len 
-4def 207a0000 rtn blank 
-4df0 1fe0f201 add pdata ,1 ,loopcnt 
-4df1 d8c04a1e arg mem_le_name_patch_len ,contr 
-4df2 d8a0426d arg mem_le_name_len ,contw 
-4df3 20407cdc call memcpy 
-4df4 20202948 branch le_modified_name_adv 
-
-mouse_start_work:
-4df5 44bcc00f bpatch patch0f_1 ,mem_patch0f 
-4df6 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
-4df7 c29f594b bbit1 mouse_enable_24g_first_auto_pairing ,mouse_24g_first_start_auto_pair_mode 
-4df8 6fe0c678 fetch 1 ,mem_device_flag 
-4df9 c000593a beq mode_24g_device ,mouse_24g_start_mode 
-
-mouse_le_fast_conn_judge:
-4dfa 20405a70 call mouse_device_le_reconn_led_config 
-4dfb 204053c1 call mouse_bluetooth_fast_conn_disable 
-4dfc 6fe0c678 fetch 1 ,mem_device_flag 
-4dfd c000ce00 beq mode_bt_device1 ,mouse_le_device1_judge 
-4dfe c0014e05 beq mode_bt_device2 ,mouse_le_device2_judge 
-4dff 20600000 rtn 
-
-mouse_le_device1_judge:
-4e00 6fe3467a fetch 6 ,mem_device1_addr 
-4e01 684b46f8 fetcht 6 ,mem_device_compare_addr 
-4e02 98467c00 isub temp ,null 
-4e03 2022d3ad branch mouse_bluetooth_fast_conn_init ,zero 
-4e04 20204e09 branch mouse_start_reconnect_device 
-
-mouse_le_device2_judge:
-4e05 6fe34687 fetch 6 ,mem_device2_addr 
-4e06 684b46f8 fetcht 6 ,mem_device_compare_addr 
-4e07 98467c00 isub temp ,null 
-4e08 2022d3ad branch mouse_bluetooth_fast_conn_init ,zero 
-
-mouse_start_reconnect_device:
-4e09 44bd400f bpatch patch0f_2 ,mem_patch0f 
-4e0a da204679 arg mem_device1_type ,rega 
-4e0b 6fe0c678 fetch 1 ,mem_device_flag 
-4e0c 1fe0ffff increase -1 ,pdata 
-4e0d 1feffe0d mul32 pdata ,13 ,pdata 
-4e0e 9a20a200 iadd rega ,rega 
-4e0f efe08011 ifetch 1 ,rega 
-4e10 67e0c3fc store 1 ,mem_xrecord_mode 
-
-mouse_start_reconnect:
-4e11 6fe0c3fc fetch 1 ,mem_xrecord_mode 
-4e12 c01a4e1e beq rec_4_mode ,mouse4_0_check_reconn_target 
-4e13 202053ad branch mouse_bluetooth_fast_conn_init 
-
-mouse_wakeup_from_power_check:
-4e14 44bdc00f bpatch patch0f_3 ,mem_patch0f 
-4e15 78547c00 disable user 
-4e16 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
-4e17 c3054e1b bbit0 mouse_enable_wakeup_from_power ,mouse_wakeup_from_poweron 
-4e18 6ff08132 fetch 1 ,core_lpm_isogate 
-4e19 c2824e1b bbit1 cold_wake ,mouse_wakeup_from_poweron 
-4e1a 78347c00 enable user 
-
-mouse_wakeup_from_poweron:
-4e1b 6fe0c740 fetch 1 ,mem_reconn_times_init 
-4e1c 67e0c73f store 1 ,mem_reconn_times 
-4e1d 20600000 rtn 
-
-mouse4_0_check_reconn_target:
-4e1e 70475401 jam 1 ,mem_device_le_reconnect_flag 
-4e1f 6848c719 fetcht 1 ,mem_device_fast_direct_timeout 
-4e20 6fe0c74f fetch 1 ,mem_device_fast_conn_flag 
-4e21 c07fce23 beq 0xff ,mouse4_0_check_reconn_target_next 
-4e22 6848c653 fetcht 1 ,mem_device_direct_timeout 
-
-mouse4_0_check_reconn_target_next:
-4e23 6048c720 storet 1 ,mem_device_direct_timer 
-4e24 204037a2 call app_lpm_mult_disable 
-4e25 6fe1c75c fetch 3 ,mem_le_adv_direct_ind 
-4e26 67e1c351 store 3 ,mem_le_adv_data + 4 
-4e27 2040545e call mouse_le_check_adv_flag 
-4e28 58000004 setarg adv_flag_bredr_not_supported 
-4e29 e7e08006 istore 1 ,contr 
-4e2a d8c0436d arg mem_le_scan_data ,contr 
-4e2b 20405465 call mouse_le_adv_data_update 
-4e2c 20207860 branch check_51cmd_adv 
-
-mouse_lpm_check_wake_lock:
-4e2d c513377d bmark1 mark_24g ,app_get_lpm_wake_lock 
-4e2e 6fe0c9f9 fetch 1 ,mem_mouse_clear_sensor_data_flag 
-4e2f 203a377d branch app_get_lpm_wake_lock ,blank 
-4e30 6fe0c781 fetch 1 ,mem_le_conn_param_reject 
-4e31 c000b77d beq le_lpm_disable ,app_get_lpm_wake_lock 
-4e32 6fe0c672 fetch 1 ,mem_mouse_wheel_trigger 
-4e33 243a377d nbranch app_get_lpm_wake_lock ,blank 
-4e34 2020377f branch app_put_lpm_wake_lock 
-
-mouse_app_enter_hibernate:
-4e35 44be400f bpatch patch0f_4 ,mem_patch0f 
-4e36 58000006 setarg pan_reg_config 
-4e37 20406971 call twspi_read 
-4e38 c281ce3b bbit1 3 ,mouse_app_enter_hibernate_next 
-4e39 204052f0 call mouse_sensor_reset 
-4e3a 20405303 call mouse_sensor_powerdown 
-
-mouse_app_enter_hibernate_next:
-4e3b 20404e42 call mouse_setgpio_hibernate 
-4e3c 2020379c branch app_enter_hibernate 
-
-mouse_before_hibernate:
-4e3d 44bec00f bpatch patch0f_5 ,mem_patch0f 
-4e3e 20407388 call disable_authrom 
-
-mouse_before_hibernate_next:
-4e3f 2040567d call mouse_flash_power_down 
-4e40 6848c667 fetcht 1 ,mem_sensor_motion_gpio 
-4e41 20206ecd branch gpio_clr_wake 
-
-mouse_setgpio_hibernate:
-4e42 44bf400f bpatch patch0f_6 ,mem_patch0f 
-4e43 204053ab call mouse_set_sdio_high 
-4e44 20407de6 call clear_wake 
-4e45 20404fc9 call mouse_before_hibernate_wheel_gpio_set 
-4e46 6fe0c894 fetch 1 ,mem_mouse_sensor_sdio_gpio 
-4e47 20405254 call mouse_gpio_config_output_high 
-4e48 6848c665 fetcht 1 ,mem_device_switch_gpio 
-4e49 20404f02 call mouse_gpio_set_pupd_by_input 
-
-mouse_setgpio_hibernate_next:
-4e4a 20404e75 call mouse_lpm_before_common 
-4e4b 6848c666 fetcht 1 ,mem_device_reuse_2ice_gpio 
-4e4c 20404f0a call device_gpio_config_input_pu 
-4e4d 20404f0e call mouse_gpio_set_analog 
-4e4e 204059fc call mouse_logo_led_off 
-4e4f 20405ace call mouse_device_multi_led_all_off 
-4e50 20404e5c call mouse_adc_gpio_set_before_hibernate 
-4e51 20204e52 branch mouse_wheel_gpio_set_before_hibernate 
-
-mouse_wheel_gpio_set_before_hibernate:
-4e52 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
-4e53 c41e0000 rtnbit0 mouse_enable_wheel_wake_up_cancel 
-
-mouse_wheel_gpio_clr_wakeup:
-4e54 6848c668 fetcht 1 ,mem_whee_a_data_gpio 
-4e55 20406ecd call gpio_clr_wake 
-4e56 6848c669 fetcht 1 ,mem_whee_b_data_gpio 
-4e57 20406ecd call gpio_clr_wake 
-4e58 6848c668 fetcht 1 ,mem_whee_a_data_gpio 
-4e59 20404f06 call device_gpio_config_input_pd 
-4e5a 6848c669 fetcht 1 ,mem_whee_b_data_gpio 
-4e5b 20204f06 branch device_gpio_config_input_pd 
-
-mouse_adc_gpio_set_before_hibernate:
-4e5c 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
-4e5d c4098000 rtnbit0 mouse_enable_adc 
-4e5e 6fe0c41d fetch 1 ,mem_adc_config_flag 
-4e5f c1810000 rtnne adc_config_gpio 
-4e60 6848c64c fetcht 1 ,mem_adc_channel_gpio 
-4e61 20206f05 branch gpio_set_analog 
-
-mouse_gpio_pd_idle:
-4e62 d8c08070 arg core_gpio_conf ,contr 
-4e63 df200010 arg gpio_number ,loopcnt 
-
-mouse_gpio_pd_idle_loop:
-4e64 efe08006 ifetch 1 ,contr 
-4e65 243a4e69 nbranch mouse_gpio_pd_idle_configured ,blank 
-4e66 58000080 setarg gpcfg_pulldown 
-4e67 18c08bff add contr ,-1 ,contw 
-4e68 e7e08005 istore 1 ,contw 
-
-mouse_gpio_pd_idle_configured:
-4e69 c2004e64 loop mouse_gpio_pd_idle_loop 
-4e6a dfe080dc arg core_gpio_conf_hi + gpio_number_ext ,pdata 
-4e6b 98c67c00 isub contr ,null 
-4e6c 20628000 rtn zero 
-
-mouse_gpio_pd_idle_ext:
-4e6d df200008 arg gpio_number_ext ,loopcnt 
-4e6e d8c080d4 arg core_gpio_conf_hi ,contr 
-4e6f 20204e64 branch mouse_gpio_pd_idle_loop 
-
-mouse_process_lpm_before:
-4e70 c6130000 rtnmark1 mark_24g 
-4e71 20404e75 call mouse_lpm_before_common 
-4e72 6fe08015 fetch 1 ,mem_lpm_current_mult 
-4e73 247a0000 nrtn blank 
-4e74 20206ecd branch gpio_clr_wake 
-
-mouse_lpm_before_common:
-4e75 44bfc00f bpatch patch0f_7 ,mem_patch0f 
-4e76 70488c00 jam 0 ,mem_qdec_set_flag 
-4e77 20407de6 call clear_wake 
-4e78 6848c89c fetcht 1 ,mem_matrix_public_gpio 
-4e79 20406ef1 call gpio_out_active 
-4e7a 6848c89c fetcht 1 ,mem_matrix_public_gpio 
-4e7b 20406ecd call gpio_clr_wake 
-4e7c 20404f42 call mouse_wheel_check 
-4e7d 6fe0c893 fetch 1 ,mem_mouse_sensor_sclk_gpio 
-4e7e 20405254 call mouse_gpio_config_output_high 
-4e7f 20406968 call twspi_disable 
-4e80 6848c88d fetcht 1 ,mem_lbutton_gpio 
-4e81 20406eac call gpio_set_wake 
-4e82 6848c88f fetcht 1 ,mem_rbutton_gpio 
-4e83 20406eac call gpio_set_wake 
-4e84 6848c88e fetcht 1 ,mem_mbutton_gpio 
-4e85 20406eac call gpio_set_wake 
-4e86 6848c890 fetcht 1 ,mem_bk_button_gpio 
-4e87 20406eac call gpio_set_wake 
-4e88 6848c891 fetcht 1 ,mem_fw_button_gpio 
-4e89 20406eac call gpio_set_wake 
-4e8a 6848c892 fetcht 1 ,mem_dpi_button_gpio 
-4e8b 20406eac call gpio_set_wake 
-4e8c 6848c89d fetcht 1 ,mem_config_select_device_button_gpio 
-4e8d 20406eac call gpio_set_wake 
-4e8e 6848c89e fetcht 1 ,mem_customer_key_gpio 
-4e8f 20406eac call gpio_set_wake 
-4e90 20404e62 call mouse_gpio_pd_idle 
-4e91 6848c668 fetcht 1 ,mem_whee_a_data_gpio 
-4e92 20406ea5 call gpio_set_wake_by_current_state 
-4e93 6848c669 fetcht 1 ,mem_whee_b_data_gpio 
-4e94 20406ea5 call gpio_set_wake_by_current_state 
-4e95 6848c89a fetcht 1 ,mem_whee_ta_data_gpio 
-4e96 20406ea5 call gpio_set_wake_by_current_state 
-4e97 6848c89b fetcht 1 ,mem_whee_tb_data_gpio 
-4e98 20406ea5 call gpio_set_wake_by_current_state 
-4e99 6848c667 fetcht 1 ,mem_sensor_motion_gpio 
-4e9a 20206eac branch gpio_set_wake 
-
-mouse_set_mult:
-4e9b 6fe14500 fetch 2 ,mem_ui_state_map 
-4e9c c4048000 rtnbit0 ui_state_ble_connected 
-4e9d 1a227e00 copy rega ,pdata 
-4e9e 243a29b4 nbranch le_set_config_short_mult ,blank 
-4e9f 202029b9 branch le_clr_config_short_mult 
-
-mouse_adc_gpio_set:
-4ea0 44c04010 bpatch patch10_0 ,mem_patch10 
-4ea1 6fe0c41d fetch 1 ,mem_adc_config_flag 
-4ea2 c1810000 rtnne adc_config_gpio 
-4ea3 6848c64c fetcht 1 ,mem_adc_channel_gpio 
-4ea4 20206f0b branch gpio_set_high_impedance 
-
-mouse_adc_read:
-4ea5 44c0c010 bpatch patch10_1 ,mem_patch10 
-4ea6 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
-4ea7 c4098000 rtnbit0 mouse_enable_adc 
-4ea8 20404ea0 call mouse_adc_gpio_set 
-
-mouse_adc_read_start:
-4ea9 20406fb2 call enable_adc 
-4eaa 20406f8e call vdd_calculate_by_mode 
-4eab 67e1464a store 2 ,mem_device_vdd_now_vol 
-4eac 6fe0c41d fetch 1 ,mem_adc_config_flag 
-4ead c0814eb4 bne adc_config_gpio ,mouse_adc_data_process 
-4eae 6849464a fetcht 2 ,mem_device_vdd_now_vol 
-4eaf 184ffe08 mul32 temp ,8 ,pdata 
-4eb0 1fe6fc0a div pdata ,10 
-4eb1 20407d61 call get_div_result 
-4eb2 9840fe00 iadd temp ,pdata 
-4eb3 67e1464a store 2 ,mem_device_vdd_now_vol 
-
-mouse_adc_data_process:
-4eb4 da204644 arg mem_device_vdd_calculate_set ,rega 
-4eb5 20404ec4 call mouse_adc_bat_percent_lowpower_out 
-4eb6 6fe0c422 fetch 1 ,mem_adc_power_flag 
-4eb7 c280ce35 bbit1 1 ,mouse_app_enter_hibernate 
-4eb8 c3004ebd bbit0 0 ,mouse_adc_no_low_voltage 
-4eb9 70464e01 jam 1 ,mem_device_adc_last_low_voltage_flag 
-4eba 20204ebb branch mouse_adc_low_voltage 
-
-mouse_adc_low_voltage:
-4ebb d8e00004 arg mouse_low_voltage_flag ,queue 
-4ebc 2020582e branch mouse_enable_function_flag 
-
-mouse_adc_no_low_voltage:
-4ebd d8e00004 arg mouse_low_voltage_flag ,queue 
-4ebe 20405832 call mouse_disable_function_flag 
-4ebf 70464d01 jam 1 ,mem_adc_low_volatage_led_timer_count 
-4ec0 6fe0c64e fetch 1 ,mem_device_adc_last_low_voltage_flag 
-4ec1 207a0000 rtn blank 
-4ec2 70464e00 jam 0 ,mem_device_adc_last_low_voltage_flag 
-4ec3 20205a43 branch mouse_low_voltage_led_off_judge 
-
-mouse_adc_bat_percent_lowpower_out:
-4ec4 44c14010 bpatch patch10_2 ,mem_patch10 
-4ec5 efe40011 ifetch 8 ,rega 
-4ec6 67e4064e store 8 ,mem_pdatatemp 
-
-mouse_adc_bat_percent_lowpower_out_battery:
-4ec7 20407057 call adc_clear_no_power_flag 
-4ec8 20407051 call adc_clear_low_power_flag 
-4ec9 6fe10654 fetch 2 ,mem_pdatatemp + 6 
-4eca 68490650 fetcht 2 ,mem_pdatatemp + 2 
-4ecb 98467c00 isub temp ,null 
-4ecc 24417054 ncall adc_set_no_power_flag ,positive 
-4ecd 68490652 fetcht 2 ,mem_pdatatemp + 4 
-4ece 98467c00 isub temp ,null 
-4ecf 2441704e ncall adc_set_low_power_flag ,positive 
-
-mouse_adc_bat_level_set:
-4ed0 6fe10654 fetch 2 ,mem_pdatatemp + 6 
-4ed1 6849064e fetcht 2 ,mem_pdatatemp 
-4ed2 98467c00 isub temp ,null 
-4ed3 20214ee1 branch mouse_adc_bat_level_100_percent ,positive 
-4ed4 68490650 fetcht 2 ,mem_pdatatemp + 2 
-4ed5 98467e00 isub temp ,pdata 
-4ed6 24214ee3 nbranch mouse_adc_bat_level_0_percent ,positive 
-4ed7 203a4ee3 branch mouse_adc_bat_level_0_percent ,blank 
-4ed8 1fefa264 mul32 pdata ,100 ,rega 
-4ed9 6fe1064e fetch 2 ,mem_pdatatemp 
-4eda 68490650 fetcht 2 ,mem_pdatatemp + 2 
-4edb 98460400 isub temp ,temp 
-4edc 1a227e00 copy rega ,pdata 
-4edd 9846fc00 idiv temp 
-4ede 20407d61 call get_div_result 
-4edf 67e0c77c store 1 ,mem_le_battery_level_percentage 
-4ee0 20600000 rtn 
-
-mouse_adc_bat_level_100_percent:
-4ee1 70477c64 jam 100 ,mem_le_battery_level_percentage 
-4ee2 20600000 rtn 
-
-mouse_adc_bat_level_0_percent:
-4ee3 70477c00 jam 0 ,mem_le_battery_level_percentage 
-4ee4 20600000 rtn 
-
-mouse_gpio_init:
-4ee5 6848c43e fetcht 1 ,mem_eeprom_wp_gpio 
-4ee6 20406ef1 call gpio_config_output 
-4ee7 6848c88d fetcht 1 ,mem_lbutton_gpio 
-4ee8 20404f0a call device_gpio_config_input_pu 
-4ee9 6848c88f fetcht 1 ,mem_rbutton_gpio 
-4eea 20404f0a call device_gpio_config_input_pu 
-4eeb 6848c88e fetcht 1 ,mem_mbutton_gpio 
-4eec 20404f0a call device_gpio_config_input_pu 
-4eed 6848c890 fetcht 1 ,mem_bk_button_gpio 
-4eee 20404f0a call device_gpio_config_input_pu 
-4eef 6848c891 fetcht 1 ,mem_fw_button_gpio 
-4ef0 20404f0a call device_gpio_config_input_pu 
-4ef1 6848c892 fetcht 1 ,mem_dpi_button_gpio 
-4ef2 20404f0a call device_gpio_config_input_pu 
-4ef3 6848c89c fetcht 1 ,mem_matrix_public_gpio 
-4ef4 20404f0a call device_gpio_config_input_pu 
-4ef5 6848c89d fetcht 1 ,mem_config_select_device_button_gpio 
-4ef6 20404f0a call device_gpio_config_input_pu 
-4ef7 6848c89e fetcht 1 ,mem_customer_key_gpio 
-4ef8 20404f0a call device_gpio_config_input_pu 
-4ef9 2040591f call mouse_wheel_gpio_init 
-4efa 6848c89a fetcht 1 ,mem_whee_ta_data_gpio 
-4efb 20404f0a call device_gpio_config_input_pu 
-4efc 6848c89b fetcht 1 ,mem_whee_tb_data_gpio 
-4efd 20404f0a call device_gpio_config_input_pu 
-4efe 6848c667 fetcht 1 ,mem_sensor_motion_gpio 
-4eff 20404f0a call device_gpio_config_input_pu 
-4f00 6848c665 fetcht 1 ,mem_device_switch_gpio 
-4f01 20204f0a branch device_gpio_config_input_pu 
-
-mouse_gpio_set_pupd_by_input:
-4f02 18410e7f and temp ,0x7f ,queue 
-4f03 6ff2011c fetch 4 ,core_gpio_in 
-4f04 afefffff qisolate1 pdata 
-4f05 2020cf0a branch device_gpio_config_input_pu ,true 
-
-device_gpio_config_input_pd:
-4f06 18467cff sub temp ,ui_button_gpio_disable ,null 
-4f07 20628000 rtn zero 
-4f08 79200407 set1 gpio_active_bit ,temp 
-4f09 20206ed7 branch gpio_config_input 
-
-device_gpio_config_input_pu:
-4f0a 18467cff sub temp ,ui_button_gpio_disable ,null 
-4f0b 20628000 rtn zero 
-4f0c 793f8407 set0 gpio_active_bit ,temp 
-4f0d 20206ed7 branch gpio_config_input 
-
-mouse_gpio_set_analog:
-4f0e 6fe1c72e fetch 3 ,mem_device_set_analog_bit_set 
-4f0f 67e1864e store 3 ,mem_pdatatemp 
-4f10 df200018 arg 24 ,loopcnt 
-4f11 d8400000 arg 0 ,temp 
-
-mouse_gpio_set_analog_bit_loop:
-4f12 6fe1864e fetch 3 ,mem_pdatatemp 
-4f13 2feffe00 isolate1 0 ,pdata 
-4f14 2040ef05 call gpio_set_analog ,true 
-4f15 6fe1864e fetch 3 ,mem_pdatatemp 
-4f16 1fe3fe00 lshift pdata ,pdata 
-4f17 67e1864e store 3 ,mem_pdatatemp 
-4f18 18408401 increase 1 ,temp 
-4f19 c2004f12 loop mouse_gpio_set_analog_bit_loop 
-4f1a 20600000 rtn 
-
-mouse_sensor_spi_init:
-4f1b 20404f20 call mouse_spid_init_pin 
-4f1c 7043fe73 jam 0x73 ,mem_spi_init_clk 
-4f1d 20404f1f call mouse_spi_init 
-4f1e 2020696c branch twspi_enable 
-
-mouse_spi_write_flash_cb:
-
-mouse_spi_init:
-4f1f 20206bbc branch spid_init 
-
-mouse_spid_init_pin:
-4f20 6fe0c893 fetch 1 ,mem_mouse_sensor_sclk_gpio 
-4f21 d8400021 arg gpcfg_spid_sck ,temp 
-4f22 20406f1d call gpio_config_function_int 
-4f23 6fe0c894 fetch 1 ,mem_mouse_sensor_sdio_gpio 
-4f24 d8400023 arg gpcfg_spid_sdio ,temp 
-4f25 20206f1d branch gpio_config_function_int 
-
-mouse_motion:
-4f26 44c1c010 bpatch patch10_3 ,mem_patch10 
-4f27 2040684e call hid_device_copy_key_data 
-4f28 78547c00 disable user 
-4f29 58000000 setarg 0 
-4f2a 67e3465d store 6 ,mem_mouse_x 
-4f2b 2040530c call mouse_check_sensor_data 
-4f2c 58000089 setarg 0x0089 
-4f2d 20406970 call twspi_write 
-4f2e 2040506b call mouse_setting_sensor_type 
-4f2f 20404f38 call mouse_zwheel 
-4f30 20404f3d call mouse_t_zwheel 
-4f31 204050ca call mouse_key 
-4f32 6fe0c65c fetch 1 ,mem_mouse_key 
-4f33 1fe17e1f and_into 0x1f ,pdata 
-4f34 67e0c65c store 1 ,mem_mouse_key 
-4f35 24345853 nbranch mouse_drawing_optima_init ,user 
-
-mouse_motion_rf_data:
-4f36 20405841 call mouse_drawing_optima 
-4f37 20205535 branch mouse_no_data_timer_init 
-
-mouse_zwheel:
-4f38 6fe0c671 fetch 1 ,mem_mouse_z_data 
-4f39 207a0000 rtn blank 
-4f3a 67e0c661 store 1 ,mem_mouse_z 
-4f3b 70467100 jam 0 ,mem_mouse_z_data 
-4f3c 20207dbc branch enable_user 
-
-mouse_t_zwheel:
-4f3d 6fe0c66d fetch 1 ,mem_mouse_tz_data 
-4f3e 207a0000 rtn blank 
-4f3f 67e0c662 store 1 ,mem_mouse_tz 
-4f40 70466d00 jam 0 ,mem_mouse_tz_data 
-4f41 20207dbc branch enable_user 
-
-mouse_wheel_check:
-4f42 44c24010 bpatch patch10_4 ,mem_patch10 
-4f43 2040591f call mouse_wheel_gpio_init 
-4f44 20404f51 call mouse_t_wheel_scan 
-4f45 20404f8d call mouse_wheel_scan 
-4f46 6fe0c66b fetch 1 ,mem_wheel_tb_new_pinlevel 
-4f47 6848c66a fetcht 1 ,mem_wheel_tb_old_pinlevel 
-4f48 67e0c66a store 1 ,mem_wheel_tb_old_pinlevel 
-4f49 98467c00 isub temp ,null 
-4f4a 2422b781 nbranch app_lpm_wake_auto_lock ,zero 
-4f4b 6fe0c66f fetch 1 ,mem_mwheel_b_new_pinlevel 
-4f4c 6848c66e fetcht 1 ,mem_mwheel_b_old_pinlevel 
-4f4d 67e0c66e store 1 ,mem_mwheel_b_old_pinlevel 
-4f4e 98467c00 isub temp ,null 
-4f4f 2422b781 nbranch app_lpm_wake_auto_lock ,zero 
-4f50 20600000 rtn 
-
-mouse_t_wheel_scan:
-4f51 6fe0c89a fetch 1 ,mem_whee_ta_data_gpio 
-4f52 c17f8000 rtneq gpio_disable 
-4f53 da200000 arg 0 ,rega 
-4f54 6848c89a fetcht 1 ,mem_whee_ta_data_gpio 
-4f55 20406ee0 call gpio_get_bit 
-4f56 7920a200 setflag true ,0 ,rega 
-4f57 6848c89b fetcht 1 ,mem_whee_tb_data_gpio 
-4f58 20406ee0 call gpio_get_bit 
-4f59 7920a201 setflag true ,1 ,rega 
-4f5a 1a227e00 copy rega ,pdata 
-4f5b 67e0c66b store 1 ,mem_wheel_tb_new_pinlevel 
-4f5c c000cf61 beq 0x01 ,mouse_t_wheel_scan_judge1 
-4f5d c0014f65 beq 0x02 ,mouse_t_wheel_scan_judge2 
-4f5e 6fe0c66c fetch 1 ,mem_wheel_tog 
-4f5f c283cf71 bbit1 7 ,mouse_t_wheel_scan_judge3 
-4f60 20600000 rtn 
-
-mouse_t_wheel_scan_judge1:
-4f61 6fe0c66a fetch 1 ,mem_wheel_tb_old_pinlevel 
-4f62 c0004f69 beq 0 ,mouse_t_wheel_scan_judge11 
-4f63 c001cf6b beq 3 ,mouse_t_wheel_scan_judge12 
-4f64 20600000 rtn 
-
-mouse_t_wheel_scan_judge2:
-4f65 6fe0c66a fetch 1 ,mem_wheel_tb_old_pinlevel 
-4f66 c0004f6d beq 0 ,mouse_t_wheel_scan_judge21 
-4f67 c001cf6f beq 3 ,mouse_t_wheel_scan_judge22 
-4f68 20600000 rtn 
-
-mouse_t_wheel_scan_judge11:
-4f69 70466c82 jam 0x82 ,mem_wheel_tog 
-4f6a 20600000 rtn 
-
-mouse_t_wheel_scan_judge12:
-4f6b 70466c81 jam 0x81 ,mem_wheel_tog 
-4f6c 20600000 rtn 
-
-mouse_t_wheel_scan_judge21:
-4f6d 70466c80 jam 0x80 ,mem_wheel_tog 
-4f6e 20600000 rtn 
-
-mouse_t_wheel_scan_judge22:
-4f6f 70466c83 jam 0x83 ,mem_wheel_tog 
-4f70 20600000 rtn 
-
-mouse_t_wheel_scan_judge3:
-4f71 6fe0c66c fetch 1 ,mem_wheel_tog 
-4f72 793ffe07 set0 7 ,pdata 
-4f73 67e0c66c store 1 ,mem_wheel_tog 
-4f74 c0004f79 beq 0 ,mouse_t_wheel_scan_judge30 
-4f75 c000cf7c beq 1 ,mouse_t_wheel_scan_judge31 
-4f76 c0014f7f beq 2 ,mouse_t_wheel_scan_judge32 
-4f77 c001cf82 beq 3 ,mouse_t_wheel_scan_judge33 
-4f78 20600000 rtn 
-
-mouse_t_wheel_scan_judge30:
-4f79 6fe0c66b fetch 1 ,mem_wheel_tb_new_pinlevel 
-4f7a c001cf85 beq 3 ,mouse_wheel_t_forward 
-4f7b 20600000 rtn 
-
-mouse_t_wheel_scan_judge31:
-4f7c 6fe0c66b fetch 1 ,mem_wheel_tb_new_pinlevel 
-4f7d c0004f85 beq 0 ,mouse_wheel_t_forward 
-4f7e 20600000 rtn 
-
-mouse_t_wheel_scan_judge32:
-4f7f 6fe0c66b fetch 1 ,mem_wheel_tb_new_pinlevel 
-4f80 c001cf89 beq 3 ,mouse_wheel_t_back 
-4f81 20600000 rtn 
-
-mouse_t_wheel_scan_judge33:
-4f82 6fe0c66b fetch 1 ,mem_wheel_tb_new_pinlevel 
-4f83 c0004f89 beq 0 ,mouse_wheel_t_back 
-4f84 20600000 rtn 
-
-mouse_wheel_t_forward:
-4f85 6fe0c66d fetch 1 ,mem_mouse_tz_data 
-4f86 1fe0fe01 increase 1 ,pdata 
-4f87 67e0c66d store 1 ,mem_mouse_tz_data 
-4f88 20600000 rtn 
-
-mouse_wheel_t_back:
-4f89 6fe0c66d fetch 1 ,mem_mouse_tz_data 
-4f8a 1fe0ffff increase -1 ,pdata 
-4f8b 67e0c66d store 1 ,mem_mouse_tz_data 
-4f8c 20600000 rtn 
-
-mouse_wheel_scan:
-4f8d 6fe0c668 fetch 1 ,mem_whee_a_data_gpio 
-4f8e c17f8000 rtneq gpio_disable 
-4f8f da200000 arg 0 ,rega 
-4f90 6848c668 fetcht 1 ,mem_whee_a_data_gpio 
-4f91 20406ee0 call gpio_get_bit 
-4f92 7920a200 setflag true ,0 ,rega 
-4f93 6848c669 fetcht 1 ,mem_whee_b_data_gpio 
-4f94 20406ee0 call gpio_get_bit 
-4f95 7920a201 setflag true ,1 ,rega 
-4f96 1a227e00 copy rega ,pdata 
-4f97 67e0c66f store 1 ,mem_mwheel_b_new_pinlevel 
-4f98 c000cf9d beq 0x01 ,mouse_wheel_scan_judge1 
-4f99 c0014fa1 beq 0x02 ,mouse_wheel_scan_judge2 
-4f9a 6fe0c670 fetch 1 ,mem_mwheel_tog 
-4f9b c283cfad bbit1 7 ,mouse_wheel_scan_judge3 
-4f9c 20600000 rtn 
-
-mouse_wheel_scan_judge1:
-4f9d 6fe0c66e fetch 1 ,mem_mwheel_b_old_pinlevel 
-4f9e c0004fa5 beq 0 ,mouse_wheel_scan_judge11 
-4f9f c001cfa7 beq 3 ,mouse_wheel_scan_judge12 
-4fa0 20600000 rtn 
-
-mouse_wheel_scan_judge2:
-4fa1 6fe0c66e fetch 1 ,mem_mwheel_b_old_pinlevel 
-4fa2 c0004fa9 beq 0 ,mouse_wheel_scan_judge21 
-4fa3 c001cfab beq 3 ,mouse_wheel_scan_judge22 
-4fa4 20600000 rtn 
-
-mouse_wheel_scan_judge11:
-4fa5 70467082 jam 0x82 ,mem_mwheel_tog 
-4fa6 20600000 rtn 
-
-mouse_wheel_scan_judge12:
-4fa7 70467081 jam 0x81 ,mem_mwheel_tog 
-4fa8 20600000 rtn 
-
-mouse_wheel_scan_judge21:
-4fa9 70467080 jam 0x80 ,mem_mwheel_tog 
-4faa 20600000 rtn 
-
-mouse_wheel_scan_judge22:
-4fab 70467083 jam 0x83 ,mem_mwheel_tog 
-4fac 20600000 rtn 
-
-mouse_wheel_scan_judge3:
-4fad 6fe0c670 fetch 1 ,mem_mwheel_tog 
-4fae 793ffe07 set0 7 ,pdata 
-4faf 67e0c670 store 1 ,mem_mwheel_tog 
-4fb0 c0004fb5 beq 0 ,mouse_wheel_scan_judge30 
-4fb1 c000cfb8 beq 1 ,mouse_wheel_scan_judge31 
-4fb2 c0014fbb beq 2 ,mouse_wheel_scan_judge32 
-4fb3 c001cfbe beq 3 ,mouse_wheel_scan_judge33 
-4fb4 20600000 rtn 
-
-mouse_wheel_scan_judge30:
-4fb5 6fe0c66f fetch 1 ,mem_mwheel_b_new_pinlevel 
-4fb6 c001cfc1 beq 3 ,mouse_wheel_forward 
-4fb7 20600000 rtn 
-
-mouse_wheel_scan_judge31:
-4fb8 6fe0c66f fetch 1 ,mem_mwheel_b_new_pinlevel 
-4fb9 c0004fc1 beq 0 ,mouse_wheel_forward 
-4fba 20600000 rtn 
-
-mouse_wheel_scan_judge32:
-4fbb 6fe0c66f fetch 1 ,mem_mwheel_b_new_pinlevel 
-4fbc c001cfc5 beq 3 ,mouse_wheel_back 
-4fbd 20600000 rtn 
-
-mouse_wheel_scan_judge33:
-4fbe 6fe0c66f fetch 1 ,mem_mwheel_b_new_pinlevel 
-4fbf c0004fc5 beq 0 ,mouse_wheel_back 
-4fc0 20600000 rtn 
-
-mouse_wheel_forward:
-4fc1 6fe0c671 fetch 1 ,mem_mouse_z_data 
-4fc2 1fe0fe01 increase 1 ,pdata 
-4fc3 67e0c671 store 1 ,mem_mouse_z_data 
-4fc4 20600000 rtn 
-
-mouse_wheel_back:
-4fc5 6fe0c671 fetch 1 ,mem_mouse_z_data 
-4fc6 1fe0ffff increase -1 ,pdata 
-4fc7 67e0c671 store 1 ,mem_mouse_z_data 
-4fc8 20600000 rtn 
-
-mouse_before_hibernate_wheel_gpio_set:
-4fc9 6848c668 fetcht 1 ,mem_whee_a_data_gpio 
-4fca 20404f02 call mouse_gpio_set_pupd_by_input 
-4fcb 6848c669 fetcht 1 ,mem_whee_b_data_gpio 
-4fcc 20404f02 call mouse_gpio_set_pupd_by_input 
-4fcd 6848c89a fetcht 1 ,mem_whee_ta_data_gpio 
-4fce 20404f02 call mouse_gpio_set_pupd_by_input 
-4fcf 6848c89b fetcht 1 ,mem_whee_tb_data_gpio 
-4fd0 20204f02 branch mouse_gpio_set_pupd_by_input 
-
-mouse_wheel_trigger:
-4fd1 6fe14661 fetch 2 ,mem_mouse_z 
-4fd2 207a0000 rtn blank 
-4fd3 70467201 jam 1 ,mem_mouse_wheel_trigger 
-4fd4 7046730a jam 10 ,mem_mouse_wheel_trigger_timer 
-4fd5 20600000 rtn 
-
-mouse_wheel_trigger_timer:
-4fd6 da604673 arg mem_mouse_wheel_trigger_timer ,regc 
-4fd7 da404fd9 arg mouse_wheel_trigger_disable ,regb 
-4fd8 20203755 branch timer_single_step 
-
-mouse_wheel_trigger_disable:
-4fd9 70467200 jam 0 ,mem_mouse_wheel_trigger 
-4fda 20600000 rtn 
-
-mouse_dpi_check:
-4fdb 6fe0c892 fetch 1 ,mem_dpi_button_gpio 
-4fdc c17f8000 rtneq gpio_disable 
-4fdd da200000 arg 0 ,rega 
-4fde 704a0f05 jam mouse_dpi_key ,mem_mouse_key_temp 
-4fdf 6848c892 fetcht 1 ,mem_dpi_button_gpio 
-4fe0 20404fe8 call mouse_dpi_key_check 
-4fe1 67e0ca0c store 1 ,mem_mouse_dpikey_press_status 
-4fe2 6fe0c89c fetch 1 ,mem_matrix_public_gpio 
-4fe3 c07fcffc beq gpio_disable ,mouse_3io6key_dpi_check_end 
-4fe4 20405203 call mouse_matrix_public_gpio_reset 
-
-mouse_dpi_check_exit:
-4fe5 1a227e00 copy rega ,pdata 
-4fe6 c282d004 bbit1 mouse_dpi_key ,mouse_dpi_down 
-4fe7 2020500b branch mouse_dpi_up 
-
-mouse_dpi_key_check:
-4fe8 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
-4fe9 c295d002 bbit1 mouse_enable_dpi_key_connect_gnd ,mouse_dpi_key_connect_gnd 
-4fea 6fe0ca0c fetch 1 ,mem_mouse_dpikey_press_status 
-4feb 1fe22600 copy pdata ,regc 
-4fec 6fe0c89c fetch 1 ,mem_matrix_public_gpio 
-4fed c07fcff8 beq gpio_disable ,mouse_dpi_3io6key_check 
-4fee 6fe0ca13 fetch 1 ,mem_mouse_ghost_flag 
-4fef 243a4fff nbranch mouse_dpi_check_end ,blank 
-
-mouse_dpi_key_connect_matrix:
-4ff0 20406ee0 call gpio_get_bit 
-4ff1 6848c89c fetcht 1 ,mem_matrix_public_gpio 
-4ff2 2020d002 branch mouse_dpi_key_connect_gnd ,true 
-4ff3 6848c89c fetcht 1 ,mem_matrix_public_gpio 
-4ff4 20406ef1 call gpio_out_active 
-4ff5 6848c892 fetcht 1 ,mem_dpi_button_gpio 
-4ff6 6fe0ca0c fetch 1 ,mem_mouse_dpikey_press_status 
-4ff7 20205236 branch mouse_check_key_connect_gnd 
-
-mouse_dpi_3io6key_check:
-4ff8 6fe0c892 fetch 1 ,mem_dpi_button_gpio 
-4ff9 20405256 call mouse_gpio_config_output_low 
-4ffa 6848c892 fetcht 1 ,mem_dpi_button_gpio 
-4ffb 20205242 branch mouse_3io6key_check 
-
-mouse_3io6key_dpi_check_end:
-4ffc 6848c892 fetcht 1 ,mem_dpi_button_gpio 
-4ffd 20404f0a call device_gpio_config_input_pu 
-4ffe 20204fe5 branch mouse_dpi_check_exit 
-
-mouse_dpi_check_end:
-4fff 70491700 jam dpi_button_state_up ,mem_mouse_dpi_button_state 
-5000 704a0c00 jam 0 ,mem_mouse_dpikey_press_status 
-5001 20600000 rtn 
-
-mouse_dpi_key_connect_gnd:
-5002 6fe0ca0c fetch 1 ,mem_mouse_dpikey_press_status 
-5003 20205236 branch mouse_check_key_connect_gnd 
-
-mouse_dpi_down:
-5004 6fe0c917 fetch 1 ,mem_mouse_dpi_button_state 
-5005 c1008000 rtneq dpi_button_state_down 
-5006 70491701 jam dpi_button_state_down ,mem_mouse_dpi_button_state 
-5007 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
-5008 c3940000 rtnbit1 mouse_enable_select_device_by_dpi_button 
-5009 c39b0000 rtnbit1 mouse_enable_dpi_key_long_press_disconvery 
-500a 2020501b branch mouse_dpi_process 
-
-mouse_dpi_up:
-500b 6fe0c917 fetch 1 ,mem_mouse_dpi_button_state 
-500c c1000000 rtneq dpi_button_state_up 
-500d 70491700 jam dpi_button_state_up ,mem_mouse_dpi_button_state 
-500e 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
-500f c2945012 bbit1 mouse_enable_select_device_by_dpi_button ,mouse_dpi_up_next 
-5010 c29b5012 bbit1 mouse_enable_dpi_key_long_press_disconvery ,mouse_dpi_up_next 
-5011 20600000 rtn 
-
-mouse_dpi_up_next:
-5012 6fe0c918 fetch 1 ,mem_mouse_dpi_long_press_flag 
-5013 243a5016 nbranch mouse_dpi_up_after_long_press ,blank 
-5014 6fe0c732 fetch 1 ,mem_select_device_count 
-5015 245a501b ncall mouse_dpi_process ,blank 
-
-mouse_dpi_up_after_long_press:
-5016 70491800 jam 0 ,mem_mouse_dpi_long_press_flag 
-5017 6fe0c502 fetch 1 ,mem_ui_button_timeout 
-5018 67e0c732 store 1 ,mem_select_device_count 
-5019 67e0c731 store 1 ,mem_bt_discovery_count 
-501a 20600000 rtn 
-
-mouse_dpi_process:
-501b 44c2c010 bpatch patch10_5 ,mem_patch10 
-501c 2040504c call mouse_dpi_ghost_check 
-501d 20740000 rtn user 
-
-mouse_dpi_process_skip_ghost:
-501e 6fe0c6a2 fetch 1 ,mem_mouse_dpi 
-501f 1fe20400 copy pdata ,temp 
-5020 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
-5021 c28ad028 bbit1 mouse_enable_double_dpi_key ,mouse_double_dpi_check 
-5022 18427e00 copy temp ,pdata 
-5023 1fe0fe01 increase 1 ,pdata 
-5024 1fe17e03 and pdata ,0x03 ,pdata 
-
-mouse_dpi_level_store:
-5025 67e0c6a2 store 1 ,mem_mouse_dpi 
-5026 20405068 call mouse_setting_dpi 
-5027 2020557a branch mouse_store_dpi_info_check 
-
-mouse_double_dpi_check:
-5028 6fe0ca1c fetch 1 ,mem_dpi_another_button_down_enable 
-5029 243a5045 nbranch mouse_another_dpi_button_down ,blank 
-
-mouse_dpi_increase:
-502a 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
-502b c28e5039 bbit1 mouse_enable_dpi_level_4 ,mouse_dpi_increase_level_4 
-502c 18427e00 copy temp ,pdata 
-502d c1008000 rtneq mouse_dpi_level2 
-
-mouse_dpi_increase_level:
-502e c0005035 beq mouse_dpi_level1 ,mouse_dpi_level_3 
-502f c0015033 beq mouse_dpi_level3 ,mouse_dpi_level_2 
-5030 20600000 rtn 
-
-mouse_dpi_level_1:
-5031 58000002 setarg 2 
-5032 20205025 branch mouse_dpi_level_store 
-
-mouse_dpi_level_2:
-5033 58000000 setarg 0 
-5034 20205025 branch mouse_dpi_level_store 
-
-mouse_dpi_level_3:
-5035 58000001 setarg 1 
-5036 20205025 branch mouse_dpi_level_store 
-
-mouse_dpi_level_4:
-5037 58000003 setarg 3 
-5038 20205025 branch mouse_dpi_level_store 
-
-mouse_dpi_increase_level_4:
-5039 18427e00 copy temp ,pdata 
-503a c1008000 rtneq mouse_dpi_level2 
-503b c0005035 beq mouse_dpi_level1 ,mouse_dpi_level_3 
-503c c0015037 beq mouse_dpi_level3 ,mouse_dpi_level_4 
-503d c001d033 beq mouse_dpi_level4 ,mouse_dpi_level_2 
-503e 20600000 rtn 
-
-mouse_dpi_decrease_level_4:
-503f 18427e00 copy temp ,pdata 
-5040 c1010000 rtneq mouse_dpi_level3 
-5041 c0005037 beq mouse_dpi_level1 ,mouse_dpi_level_4 
-5042 c000d033 beq mouse_dpi_level2 ,mouse_dpi_level_2 
-5043 c001d031 beq mouse_dpi_level4 ,mouse_dpi_level_1 
-5044 20600000 rtn 
-
-mouse_another_dpi_button_down:
-
-mouse_dpi_decrease:
-5045 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
-5046 c28e503f bbit1 mouse_enable_dpi_level_4 ,mouse_dpi_decrease_level_4 
-5047 18427e00 copy temp ,pdata 
-5048 c1010000 rtneq mouse_dpi_level3 
-
-mouse_dpi_decrease_level:
-5049 c0005031 beq mouse_dpi_level1 ,mouse_dpi_level_1 
-504a c000d033 beq mouse_dpi_level2 ,mouse_dpi_level_2 
-504b 20600000 rtn 
-
-mouse_dpi_ghost_check:
-504c 78547c00 disable user 
-504d 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
-504e c3958000 rtnbit1 mouse_enable_dpi_key_connect_gnd 
-504f 202057b1 branch mouse_ghost_key_value_check 
-
-mouse_dpi_key_check_long_press:
-5050 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
-5051 c2945054 bbit1 mouse_enable_select_device_by_dpi_button ,mouse_select_device_by_dpi_button 
-5052 c29b505b bbit1 mouse_enable_dpi_key_long_press_disconvery ,mouse_discovery_by_dpi_button 
-5053 20600000 rtn 
-
-mouse_select_device_by_dpi_button:
-5054 6fe0c917 fetch 1 ,mem_mouse_dpi_button_state 
-5055 c1808000 rtnne dpi_button_state_down 
-5056 da604732 arg mem_select_device_count ,regc 
-5057 da405059 arg mouse_ready_reconnection_by_dpi_button ,regb 
-5058 20203755 branch timer_single_step 
-
-mouse_ready_reconnection_by_dpi_button:
-5059 70491801 jam 1 ,mem_mouse_dpi_long_press_flag 
-505a 202057f6 branch mouse_ready_reconnection_by_button 
-
-mouse_discovery_by_dpi_button:
-505b 6fe0c917 fetch 1 ,mem_mouse_dpi_button_state 
-505c c1808000 rtnne dpi_button_state_down 
-505d da604731 arg mem_bt_discovery_count ,regc 
-505e da405060 arg mouse_long_dpi_button_bt_discovery ,regb 
-505f 20203755 branch timer_single_step 
-
-mouse_long_dpi_button_bt_discovery:
-5060 70491801 jam 1 ,mem_mouse_dpi_long_press_flag 
-5061 202054b2 branch mouse_long_button_bt_discovery 
-
-mouse_setting_dpi_4_level:
-5062 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
-5063 c38e0000 rtnbit1 mouse_enable_dpi_level_4 
-5064 6fe0c6a2 fetch 1 ,mem_mouse_dpi 
-5065 c1818000 rtnne mouse_dpi_level4 
-5066 7046a200 jam mouse_dpi_level1 ,mem_mouse_dpi 
-5067 20600000 rtn 
-
-mouse_setting_dpi:
-5068 44c34010 bpatch patch10_6 ,mem_patch10 
-5069 20405062 call mouse_setting_dpi_4_level 
-506a 20405a1e call mouse_dpi_led_blink_delay 
-
-mouse_setting_sensor_type:
-506b 44c3c010 bpatch patch10_7 ,mem_patch10 
-506c 6fe0c9fa fetch 1 ,mem_config_sensor_type 
-506d c006508f beq s201x ,mouse_seting_s201_dpi 
-506e c001d0a9 beq p3212 ,mouse_seting_3212_dpi 
-506f c005d0bd beq ka8g2 ,mouse_seting_ka8g2_dpi 
-5070 6fe0c6a2 fetch 1 ,mem_mouse_dpi 
-5071 c0005077 beq mouse_dpi_level1 ,mouse_set_cpi0 
-5072 c000d075 beq mouse_dpi_level2 ,mouse_set_cpi1 
-5073 c0015079 beq mouse_dpi_level3 ,mouse_set_cpi2 
-5074 c001d07b beq mouse_dpi_level4 ,mouse_set_cpi3 
-
-mouse_set_cpi1:
-5075 6848c906 fetcht 1 ,mem_320x_dpi_1 
-5076 2020507c branch mouse_dpi_store 
-
-mouse_set_cpi0:
-5077 6848c905 fetcht 1 ,mem_320x_dpi_0 
-5078 2020507c branch mouse_dpi_store 
-
-mouse_set_cpi2:
-5079 6848c907 fetcht 1 ,mem_320x_dpi_2 
-507a 2020507c branch mouse_dpi_store 
-
-mouse_set_cpi3:
-507b 6848c908 fetcht 1 ,mem_320x_dpi_3 
-
-mouse_dpi_store:
-507c 6fe0c9fa fetch 1 ,mem_config_sensor_type 
-507d c002508b beq p3065_xy ,mouse_3065xy_set_dpi 
-507e c002d08b beq mx8650 ,mouse_3065xy_set_dpi 
-507f c004508d beq ka8 ,mouse_ka8_set_dpi 
-5080 c003d08d beq p6520 ,mouse_ka8_set_dpi 
-5081 c003508b beq p8009 ,mouse_3065xy_set_dpi 
-
-mouse_dpi_write:
-5082 6048c916 storet 1 ,mem_mouse_cpi_count 
-5083 58000006 setarg mouse_dpi_address 
-5084 20406971 call twspi_read 
-5085 1fe104f8 and pdata ,0xf8 ,temp 
-5086 6fe0c916 fetch 1 ,mem_mouse_cpi_count 
-5087 9840fe00 iadd temp ,pdata 
-5088 1fed7e00 lshift8 pdata ,pdata 
-5089 1fe0fe06 add pdata ,mouse_dpi_address ,pdata 
-508a 20206970 branch twspi_write 
-
-mouse_3065xy_set_dpi:
-508b 184085ff increase -1 ,temp 
-508c 20205082 branch mouse_dpi_write 
-
-mouse_ka8_set_dpi:
-508d 18408402 increase 2 ,temp 
-508e 20205082 branch mouse_dpi_write 
-
-mouse_seting_s201_dpi:
-508f 6fe0c6a2 fetch 1 ,mem_mouse_dpi 
-5090 c0005095 beq mouse_dpi_level1 ,mouse_set_s201_dpi_0 
-5091 c000d099 beq mouse_dpi_level2 ,mouse_set_s201_dpi_2 
-5092 c001509b beq mouse_dpi_level3 ,mouse_set_s201_dpi_3 
-5093 c001d09d beq mouse_dpi_level4 ,mouse_set_s201_dpi_4 
-5094 20600000 rtn 
-
-mouse_set_s201_dpi_0:
-5095 6fe0c911 fetch 1 ,mem_sensor_s201_dpi_0 
-5096 2020509e branch mouse_dpi_s201_store 
-
-mouse_set_s201_dpi_1:
-5097 6fe0c912 fetch 1 ,mem_sensor_s201_dpi_1 
-5098 2020509e branch mouse_dpi_s201_store 
-
-mouse_set_s201_dpi_2:
-5099 6fe0c913 fetch 1 ,mem_sensor_s201_dpi_2 
-509a 2020509e branch mouse_dpi_s201_store 
-
-mouse_set_s201_dpi_3:
-509b 6fe0c914 fetch 1 ,mem_sensor_s201_dpi_3 
-509c 2020509e branch mouse_dpi_s201_store 
-
-mouse_set_s201_dpi_4:
-509d 6fe0c915 fetch 1 ,mem_sensor_s201_dpi_4 
-
-mouse_dpi_s201_store:
-509e 1fe22200 copy pdata ,rega 
-509f 5800c309 setarg 0xc309 
-50a0 20406970 call twspi_write 
-50a1 1a227e00 copy rega ,pdata 
-50a2 1fed7e00 lshift8 pdata ,pdata 
-50a3 1fe0fe23 add pdata ,0x23 ,pdata 
-50a4 20406970 call twspi_write 
-
-mouse_sensor_enable_wp:
-50a5 58000009 setarg 0x0009 
-50a6 20206970 branch twspi_write 
-
-mouse_sensor_disable_wp:
-50a7 58005a09 setarg 0x5a09 
-50a8 20206970 branch twspi_write 
-
-mouse_seting_3212_dpi:
-50a9 6fe0c6a2 fetch 1 ,mem_mouse_dpi 
-50aa c00050b0 beq mouse_dpi_level1 ,mouse_set_p3212_cpi0 
-50ab c000d0ae beq mouse_dpi_level2 ,mouse_set_p3212_cpi1 
-50ac c00150b2 beq mouse_dpi_level3 ,mouse_set_p3212_cpi2 
-50ad c001d0b4 beq mouse_dpi_level4 ,mouse_set_p3212_cpi3 
-
-mouse_set_p3212_cpi1:
-50ae 6fe0c90a fetch 1 ,mem_3212_dpi_1 
-50af 202050b5 branch mouse_p3212_dpi 
-
-mouse_set_p3212_cpi0:
-50b0 6fe0c909 fetch 1 ,mem_3212_dpi_0 
-50b1 202050b5 branch mouse_p3212_dpi 
-
-mouse_set_p3212_cpi2:
-50b2 6fe0c90b fetch 1 ,mem_3212_dpi_2 
-50b3 202050b5 branch mouse_p3212_dpi 
-
-mouse_set_p3212_cpi3:
-50b4 6fe0c90c fetch 1 ,mem_3212_dpi_3 
-
-mouse_p3212_dpi:
-50b5 67e0c916 store 1 ,mem_mouse_cpi_count 
-50b6 1fed7e00 lshift8 pdata ,pdata 
-50b7 1fe22200 copy pdata ,rega 
-50b8 1fe0fe0d add pdata ,mouse_p3212_dpi_xaddress ,pdata 
-50b9 20406970 call twspi_write 
-50ba 1a227e00 copy rega ,pdata 
-50bb 1fe0fe0e add pdata ,mouse_p3212_dpi_yaddress ,pdata 
-50bc 20206970 branch twspi_write 
-
-mouse_seting_ka8g2_dpi:
-50bd 6fe0c6a2 fetch 1 ,mem_mouse_dpi 
-50be c00050c4 beq mouse_dpi_level1 ,mouse_set_pka8g2_cpi0 
-50bf c000d0c2 beq mouse_dpi_level2 ,mouse_set_pka8g2_cpi1 
-50c0 c00150c6 beq mouse_dpi_level3 ,mouse_set_pka8g2_cpi2 
-50c1 c001d0c8 beq mouse_dpi_level4 ,mouse_set_pka8g2_cpi3 
-
-mouse_set_pka8g2_cpi1:
-50c2 6fe0c90e fetch 1 ,mem_ka8g2_dpi_1 
-50c3 202050b5 branch mouse_p3212_dpi 
-
-mouse_set_pka8g2_cpi0:
-50c4 6fe0c90d fetch 1 ,mem_ka8g2_dpi_0 
-50c5 202050b5 branch mouse_p3212_dpi 
-
-mouse_set_pka8g2_cpi2:
-50c6 6fe0c90f fetch 1 ,mem_ka8g2_dpi_2 
-50c7 202050b5 branch mouse_p3212_dpi 
-
-mouse_set_pka8g2_cpi3:
-50c8 6fe0c910 fetch 1 ,mem_ka8g2_dpi_3 
-50c9 202050b5 branch mouse_p3212_dpi 
-
-mouse_key:
-50ca 20405170 call mouse_check_firekey_gpio 
-50cb 6fe0ca19 fetch 1 ,mem_fire_key_flag 
-50cc 243a5184 nbranch fire_key_press ,blank 
-50cd 6fe0ca14 fetch 1 ,mem_fire_key_status 
-50ce 243a5183 nbranch fire_key_process ,blank 
-50cf 204051ac call mouse_check_key_gpio 
-
-mouse_key_next:
-50d0 204050e0 call mouse_ghost_key_check 
-50d1 20404e9b call mouse_set_mult 
-50d2 204050db call mouse_24g_key 
-50d3 1a227e00 copy rega ,pdata 
-50d4 6848c664 fetcht 1 ,mem_mouse_key_last 
-50d5 67e0c664 store 1 ,mem_mouse_key_last 
-50d6 67e0c65c store 1 ,mem_mouse_key 
-50d7 9842fe00 ixor temp ,pdata 
-50d8 1fe67c00 sub pdata ,0 ,null 
-50d9 20628000 rtn zero 
-50da 20207dbc branch enable_user 
-
-mouse_24g_key:
-50db c6930000 rtnmark0 mark_24g 
-50dc 1a227e00 copy rega ,pdata 
-50dd 207a0000 rtn blank 
-50de 67e0c65c store 1 ,mem_mouse_key 
-50df 20207dbc branch enable_user 
-
-mouse_ghost_key_check:
-50e0 704a1100 jam 0 ,mem_mouse_matrix_key_cow_count 
-50e1 704a1200 jam 0 ,mem_mouse_matrix_key_row_count 
-50e2 704a1300 jam 0 ,mem_mouse_ghost_flag 
-50e3 1fe22400 copy pdata ,regb 
-50e4 6848c88d fetcht 1 ,mem_lbutton_gpio 
-50e5 6fe0c890 fetch 1 ,mem_bk_button_gpio 
-50e6 98467c00 isub temp ,null 
-50e7 2022d0f0 branch mouse_matrix_ghost_key_l_bk ,zero 
-50e8 6fe0c891 fetch 1 ,mem_fw_button_gpio 
-50e9 98467c00 isub temp ,null 
-50ea 2022d0f5 branch mouse_matrix_ghost_key_l_fw ,zero 
-50eb 6848c88e fetcht 1 ,mem_mbutton_gpio 
-50ec 6fe0c890 fetch 1 ,mem_bk_button_gpio 
-50ed 98467c00 isub temp ,null 
-50ee 2022d104 branch mouse_ghost_key_mbk_rfw ,zero 
-50ef 20205107 branch mouse_ghost_key_mfw_rbk 
-
-mouse_matrix_ghost_key_l_bk:
-50f0 6848c88e fetcht 1 ,mem_mbutton_gpio 
-50f1 6fe0c891 fetch 1 ,mem_fw_button_gpio 
-50f2 98467c00 isub temp ,null 
-50f3 2022d0fa branch mouse_ghost_key_lbk_mfw ,zero 
-50f4 202050fd branch mouse_ghost_key_lbk_rfw 
-
-mouse_matrix_ghost_key_l_fw:
-50f5 6848c88e fetcht 1 ,mem_mbutton_gpio 
-50f6 6fe0c890 fetch 1 ,mem_bk_button_gpio 
-50f7 98467c00 isub temp ,null 
-50f8 2022d0ff branch mouse_ghost_key_lfw_mbk ,zero 
-50f9 20205102 branch mouse_ghost_key_lfw_rbk 
-
-mouse_ghost_key_lbk_mfw:
-50fa 20405113 call mouse_ghost_key_check_l_bk 
-50fb 2040511f call mouse_ghost_key_check_m_fw 
-50fc 20205109 branch mouse_ghost_key_check_next 
-
-mouse_ghost_key_lbk_rfw:
-50fd 20405113 call mouse_ghost_key_check_l_bk 
-50fe 20205105 branch mouse_ghost_key_rfw 
-
-mouse_ghost_key_lfw_mbk:
-50ff 2040511c call mouse_ghost_key_check_l_fw 
-5100 20405116 call mouse_ghost_key_check_m_bk 
-5101 20205109 branch mouse_ghost_key_check_next 
-
-mouse_ghost_key_lfw_rbk:
-5102 2040511c call mouse_ghost_key_check_l_fw 
-5103 20205108 branch mouse_ghost_key_rbk 
-
-mouse_ghost_key_mbk_rfw:
-5104 20405116 call mouse_ghost_key_check_m_bk 
-
-mouse_ghost_key_rfw:
-5105 20405122 call mouse_ghost_key_check_r_fw 
-5106 20205109 branch mouse_ghost_key_check_next 
-
-mouse_ghost_key_mfw_rbk:
-5107 2040511f call mouse_ghost_key_check_m_fw 
-
-mouse_ghost_key_rbk:
-5108 20405119 call mouse_ghost_key_check_r_bk 
-
-mouse_ghost_key_check_next:
-5109 20405125 call mouse_ghost_key_check_bk_fw 
-510a 20405128 call mouse_ghost_key_check_lmr 
-510b 6fe0ca12 fetch 1 ,mem_mouse_matrix_key_row_count 
-510c 207a0000 rtn blank 
-510d 6fe0ca11 fetch 1 ,mem_mouse_matrix_key_cow_count 
-510e 207a0000 rtn blank 
-510f 704a1301 jam 1 ,mem_mouse_ghost_flag 
-5110 6fe0c664 fetch 1 ,mem_mouse_key_last 
-5111 1fe22200 copy pdata ,rega 
-5112 20600000 rtn 
-
-mouse_ghost_key_check_l_bk:
-5113 1a417e09 and regb ,mouse_l_bk_button ,pdata 
-5114 c004d130 beq mouse_l_bk_button ,mouse_matrix_cow_more_than_one_key 
-5115 20600000 rtn 
-
-mouse_ghost_key_check_m_bk:
-5116 1a417e12 and regb ,mouse_m_bk_button ,pdata 
-5117 c0095130 beq mouse_m_bk_button ,mouse_matrix_cow_more_than_one_key 
-5118 20600000 rtn 
-
-mouse_ghost_key_check_r_bk:
-5119 1a417e0a and regb ,mouse_r_bk_button ,pdata 
-511a c0055130 beq mouse_r_bk_button ,mouse_matrix_cow_more_than_one_key 
-511b 20600000 rtn 
-
-mouse_ghost_key_check_l_fw:
-511c 1a417e11 and regb ,mouse_l_fw_button ,pdata 
-511d c008d130 beq mouse_l_fw_button ,mouse_matrix_cow_more_than_one_key 
-511e 20600000 rtn 
-
-mouse_ghost_key_check_m_fw:
-511f 1a417e14 and regb ,mouse_m_fw_button ,pdata 
-5120 c00a5130 beq mouse_m_fw_button ,mouse_matrix_cow_more_than_one_key 
-5121 20600000 rtn 
-
-mouse_ghost_key_check_r_fw:
-5122 1a417e12 and regb ,mouse_r_fw_button ,pdata 
-5123 c0095130 beq mouse_r_fw_button ,mouse_matrix_cow_more_than_one_key 
-5124 20600000 rtn 
-
-mouse_ghost_key_check_bk_fw:
-5125 1a417e18 and regb ,mouse_bk_fw_button ,pdata 
-5126 c00c512e beq mouse_bk_fw_button ,mouse_matrix_row_more_than_one_key 
-5127 20600000 rtn 
-
-mouse_ghost_key_check_lmr:
-5128 18417e07 and temp ,mouse_lmr_button ,pdata 
-5129 c001d12e beq mouse_lr_button ,mouse_matrix_row_more_than_one_key 
-512a c002d12e beq mouse_lm_button ,mouse_matrix_row_more_than_one_key 
-512b c003512e beq mouse_rm_button ,mouse_matrix_row_more_than_one_key 
-512c c003d12e beq mouse_lmr_button ,mouse_matrix_row_more_than_one_key 
-512d 20600000 rtn 
-
-mouse_matrix_row_more_than_one_key:
-512e 704a1201 jam 1 ,mem_mouse_matrix_key_row_count 
-512f 20600000 rtn 
-
-mouse_matrix_cow_more_than_one_key:
-5130 704a1101 jam 1 ,mem_mouse_matrix_key_cow_count 
-5131 20600000 rtn 
-
-mouse_dpi_another_gpio_check:
-5132 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
-5133 c40a8000 rtnbit0 mouse_enable_double_dpi_key 
-5134 c316513a bbit0 mouse_enable_another_dpi_key_connect_gnd ,mouse_dpi_another_gpio_connect_vin_check 
-
-mouse_dpi_another_gpio_connect_gnd_check:
-5135 6fe0c8a0 fetch 1 ,mem_dpi_another_button_gpio 
-5136 20405254 call mouse_gpio_config_output_high 
-5137 20405148 call mouse_dpi_another_check 
-5138 6848c8a0 fetcht 1 ,mem_dpi_another_button_gpio 
-5139 20204f0a branch device_gpio_config_input_pu 
-
-mouse_dpi_another_gpio_connect_vin_check:
-513a 6fe0c8a0 fetch 1 ,mem_dpi_another_button_gpio 
-513b 20405256 call mouse_gpio_config_output_low 
-513c 704a1d00 jam mouse_dpi_another_key ,mem_mouse_key_temp_patch 
-513d 6848c8a0 fetcht 1 ,mem_dpi_another_button_gpio 
-513e 6fe0ca1a fetch 1 ,mem_dpi_another_press_status 
-513f 20405161 call mouse_check_key_connect_vin_new 
-5140 2040514c call mouse_dpi_another_state_check 
-5141 6848c8a0 fetcht 1 ,mem_dpi_another_button_gpio 
-5142 20204f0a branch device_gpio_config_input_pu 
-
-mouse_dpi_another_down_new:
-5143 20404f0a call device_gpio_config_input_pu 
-5144 6fe0ca1b fetch 1 ,mem_dpi_another_button_state 
-5145 c1008000 rtneq dpi_button_state_down 
-5146 704a1b01 jam dpi_button_state_down ,mem_dpi_another_button_state 
-5147 2020501b branch mouse_dpi_process 
-
-mouse_dpi_another_check:
-5148 704a1d00 jam mouse_dpi_another_key ,mem_mouse_key_temp_patch 
-5149 6848c8a0 fetcht 1 ,mem_dpi_another_button_gpio 
-514a 6fe0ca1a fetch 1 ,mem_dpi_another_press_status 
-514b 20405157 call mouse_check_key_connect_gnd_new 
-
-mouse_dpi_another_state_check:
-514c 67e0ca1a store 1 ,mem_dpi_another_press_status 
-514d 6fe0ca1c fetch 1 ,mem_dpi_another_button_down_enable 
-514e 203a5153 branch mouse_dpi_another_up ,blank 
-
-mouse_dpi_another_down:
-514f 6fe0ca1b fetch 1 ,mem_dpi_another_button_state 
-5150 c1008000 rtneq dpi_button_state_down 
-5151 704a1b01 jam dpi_button_state_down ,mem_dpi_another_button_state 
-5152 2020501b branch mouse_dpi_process 
-
-mouse_dpi_another_up:
-5153 6fe0ca1b fetch 1 ,mem_dpi_another_button_state 
-5154 c1000000 rtneq dpi_button_state_up 
-5155 704a1b00 jam dpi_button_state_up ,mem_dpi_another_button_state 
-5156 20600000 rtn 
-
-mouse_check_key_connect_gnd_new:
-5157 1fe3fe00 lshift pdata ,pdata 
-5158 1fe22400 copy pdata ,regb 
-5159 20406ee0 call gpio_get_bit 
-515a 7920a400 setflag true ,0 ,regb 
-515b 1a417e07 and regb ,0x07 ,pdata 
-515c 6848ca1d fetcht 1 ,mem_mouse_key_temp_patch 
-515d 18420e00 copy temp ,queue 
-515e c003d16c beq 0x07 ,mouse_another_dpi_key_press 
-515f c000516e beq 0x00 ,mouse_another_dpi_key_release 
-5160 20600000 rtn 
-
-mouse_check_key_connect_vin_new:
-5161 1fe3fe00 lshift pdata ,pdata 
-5162 1fe22400 copy pdata ,regb 
-5163 20404f06 call device_gpio_config_input_pd 
-5164 20406ee0 call gpio_get_bit 
-5165 7920a400 setflag true ,0 ,regb 
-5166 1a417e07 and regb ,0x07 ,pdata 
-5167 6848ca1d fetcht 1 ,mem_mouse_key_temp_patch 
-5168 18420e00 copy temp ,queue 
-5169 c003d16c beq 0x07 ,mouse_another_dpi_key_press 
-516a c000516e beq 0x00 ,mouse_another_dpi_key_release 
-516b 20600000 rtn 
-
-mouse_another_dpi_key_press:
-516c 704a1c01 jam 1 ,mem_dpi_another_button_down_enable 
-516d 20600000 rtn 
-
-mouse_another_dpi_key_release:
-516e 704a1c00 jam 0 ,mem_dpi_another_button_down_enable 
-516f 20600000 rtn 
-
-mouse_check_firekey_gpio:
-5170 da400000 arg 0 ,regb 
-5171 6fe0c89f fetch 1 ,mem_firebutton_gpio 
-5172 c17f8000 rtneq gpio_disable 
-5173 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
-5174 c317517d bbit0 mouse_enable_fire_key_connect_gnd ,mouse_check_firekey_connect_vin 
-
-mouse_check_firekey_connect_gnd:
-5175 6848c89f fetcht 1 ,mem_firebutton_gpio 
-5176 20404f0a call device_gpio_config_input_pu 
-5177 6848c89f fetcht 1 ,mem_firebutton_gpio 
-5178 20406ee0 call gpio_get_bit 
-5179 7920a400 setflag true ,0 ,regb 
-
-mouse_firekey_state_store:
-517a 1a427e00 copy regb ,pdata 
-517b 67e0ca19 store 1 ,mem_fire_key_flag 
-517c 20600000 rtn 
-
-mouse_check_firekey_connect_vin:
-517d 6848c89f fetcht 1 ,mem_firebutton_gpio 
-517e 20404f06 call device_gpio_config_input_pd 
-517f 6848c89f fetcht 1 ,mem_firebutton_gpio 
-5180 20406ee0 call gpio_get_bit 
-5181 7d20a400 nsetflag true ,0 ,regb 
-5182 2020517a branch mouse_firekey_state_store 
-
-fire_key_process:
-5183 c002519c beq 4 ,fire_key_process_end 
-
-fire_key_press:
-5184 2040519f call firekey_clkn_bt_timer_check 
-5185 6fe24a15 fetch 4 ,mem_fire_key_delay 
-5186 d84000a0 arg 0xa0 ,temp 
-5187 98408400 iadd temp ,temp 
-5188 1c427e00 copy clkn_bt ,pdata 
-5189 98467c00 isub temp ,null 
-518a 24610000 nrtn positive 
-518b 67e24a15 store 4 ,mem_fire_key_delay 
-518c 6fe0ca14 fetch 1 ,mem_fire_key_status 
-518d c0005192 beq 0 ,fire_key_process_start 
-518e c000d195 beq 1 ,fire_key_process_release1 
-518f c0015198 beq 2 ,fire_key_process_start2 
-5190 c001d19a beq 3 ,fire_key_process_release2 
-5191 20600000 rtn 
-
-fire_key_process_start:
-5192 704a1401 jam 1 ,mem_fire_key_status 
-
-fire_key_down:
-5193 70465c01 jam 1 ,mem_mouse_key 
-5194 20207dbc branch enable_user 
-
-fire_key_process_release1:
-5195 704a1402 jam 2 ,mem_fire_key_status 
-
-fire_key_release:
-5196 70465c00 jam 0 ,mem_mouse_key 
-5197 20207dbc branch enable_user 
-
-fire_key_process_start2:
-5198 704a1403 jam 3 ,mem_fire_key_status 
-5199 20205193 branch fire_key_down 
-
-fire_key_process_release2:
-519a 704a1400 jam 0 ,mem_fire_key_status 
-519b 20205196 branch fire_key_release 
-
-fire_key_process_end:
-519c 704a1400 jam 0 ,mem_fire_key_status 
-519d 70465c00 jam 0 ,mem_mouse_key 
-519e 20600000 rtn 
-
-firekey_clkn_bt_timer_check:
-519f 684a4a15 fetcht 4 ,mem_fire_key_delay 
-51a0 1c427e00 copy clkn_bt ,pdata 
-51a1 98467c00 isub temp ,null 
-51a2 244151a4 ncall firekey_clkn_bt_timer_timeout ,positive 
-51a3 20600000 rtn 
-
-firekey_clkn_bt_timer_timeout:
-51a4 58000000 setarg 0 
-51a5 67e24a15 store 4 ,mem_fire_key_delay 
-51a6 20600000 rtn 
-
-mouse_key_check_once:
-51a7 204051b9 call mouse_check_key_gpio_once 
-51a8 204051ac call mouse_check_key_gpio 
-51a9 58000000 setarg 0x00 
-51aa 67e1ca07 store 3 ,mem_mouse_lkey_press_status 
-51ab 20600000 rtn 
-
-mouse_check_key_gpio:
-51ac 44c44011 bpatch patch11_0 ,mem_patch11 
-51ad 6fe0c737 fetch 1 ,mem_24g_shutdown_flag 
-51ae 245a51b9 ncall mouse_check_key_gpio_once ,blank 
-51af da200000 arg 0 ,rega 
-51b0 204051bc call mouse_check_lkey_gpio 
-51b1 204051c5 call mouse_check_rkey_gpio 
-51b2 204051ce call mouse_check_mkey_gpio 
-51b3 204051d7 call mouse_check_bkkey_gpio 
-51b4 204051f3 call mouse_check_fwkey_gpio 
-51b5 20405170 call mouse_check_firekey_gpio 
-51b6 20405210 call mouse_check_customerkey_gpio 
-
-mouse_check_key_gpio_next:
-51b7 1a227e00 copy rega ,pdata 
-51b8 20600000 rtn 
-
-mouse_check_key_gpio_once:
-51b9 58030303 setarg 0x030303 
-51ba 67e1ca07 store 3 ,mem_mouse_lkey_press_status 
-51bb 20600000 rtn 
-
-mouse_check_lkey_gpio:
-51bc 6fe0c88d fetch 1 ,mem_lbutton_gpio 
-51bd 20405254 call mouse_gpio_config_output_high 
-51be 704a0f00 jam mouse_l_key ,mem_mouse_key_temp 
-51bf 6848c88d fetcht 1 ,mem_lbutton_gpio 
-51c0 6fe0ca07 fetch 1 ,mem_mouse_lkey_press_status 
-51c1 20405236 call mouse_check_key_connect_gnd 
-51c2 67e0ca07 store 1 ,mem_mouse_lkey_press_status 
-51c3 6848c88d fetcht 1 ,mem_lbutton_gpio 
-51c4 20204f0a branch device_gpio_config_input_pu 
-
-mouse_check_rkey_gpio:
-51c5 6fe0c88f fetch 1 ,mem_rbutton_gpio 
-51c6 20405254 call mouse_gpio_config_output_high 
-51c7 704a0f01 jam mouse_r_key ,mem_mouse_key_temp 
-51c8 6848c88f fetcht 1 ,mem_rbutton_gpio 
-51c9 6fe0ca08 fetch 1 ,mem_mouse_rkey_press_status 
-51ca 20405236 call mouse_check_key_connect_gnd 
-51cb 67e0ca08 store 1 ,mem_mouse_rkey_press_status 
-51cc 6848c88f fetcht 1 ,mem_rbutton_gpio 
-51cd 20204f0a branch device_gpio_config_input_pu 
-
-mouse_check_mkey_gpio:
-51ce 6fe0c88e fetch 1 ,mem_mbutton_gpio 
-51cf 20405254 call mouse_gpio_config_output_high 
-51d0 704a0f02 jam mouse_m_key ,mem_mouse_key_temp 
-51d1 6848c88e fetcht 1 ,mem_mbutton_gpio 
-51d2 6fe0ca09 fetch 1 ,mem_mouse_mkey_press_status 
-51d3 20405236 call mouse_check_key_connect_gnd 
-51d4 67e0ca09 store 1 ,mem_mouse_mkey_press_status 
-51d5 6848c88e fetcht 1 ,mem_mbutton_gpio 
-51d6 20204f0a branch device_gpio_config_input_pu 
-
-mouse_check_bkkey_gpio:
-51d7 6fe0c890 fetch 1 ,mem_bk_button_gpio 
-51d8 c17f8000 rtneq gpio_disable 
-51d9 704a0f03 jam mouse_bk_key ,mem_mouse_key_temp 
-51da 6fe0ca0a fetch 1 ,mem_mouse_bkkey_press_status 
-51db 1fe22600 copy pdata ,regc 
-51dc 6848c890 fetcht 1 ,mem_bk_button_gpio 
-51dd 6fe0c89c fetch 1 ,mem_matrix_public_gpio 
-51de c07fd1ec beq gpio_disable ,mouse_3io6key_bk_check 
-51df 20406ee0 call gpio_get_bit 
-51e0 2020d1e8 branch mouse_check_bk_button_connect_gnd ,true 
-51e1 6848c89c fetcht 1 ,mem_matrix_public_gpio 
-51e2 20406ef1 call gpio_out_active 
-51e3 6848c890 fetcht 1 ,mem_bk_button_gpio 
-51e4 6fe0ca0a fetch 1 ,mem_mouse_bkkey_press_status 
-51e5 20405236 call mouse_check_key_connect_gnd 
-
-mouse_check_bkkey_gpio_end:
-51e6 67e0ca0a store 1 ,mem_mouse_bkkey_press_status 
-51e7 20205203 branch mouse_matrix_public_gpio_reset 
-
-mouse_check_bk_button_connect_gnd:
-51e8 6848c89c fetcht 1 ,mem_matrix_public_gpio 
-51e9 6fe0ca0a fetch 1 ,mem_mouse_bkkey_press_status 
-51ea 20405236 call mouse_check_key_connect_gnd 
-51eb 202051e6 branch mouse_check_bkkey_gpio_end 
-
-mouse_3io6key_bk_check:
-51ec 6fe0c890 fetch 1 ,mem_bk_button_gpio 
-51ed 20405256 call mouse_gpio_config_output_low 
-51ee 6848c890 fetcht 1 ,mem_bk_button_gpio 
-51ef 20405242 call mouse_3io6key_check 
-51f0 67e0ca0a store 1 ,mem_mouse_bkkey_press_status 
-51f1 6848c890 fetcht 1 ,mem_bk_button_gpio 
-51f2 20204f0a branch device_gpio_config_input_pu 
-
-mouse_check_fwkey_gpio:
-51f3 6fe0c891 fetch 1 ,mem_fw_button_gpio 
-51f4 c17f8000 rtneq gpio_disable 
-51f5 704a0f04 jam mouse_fw_key ,mem_mouse_key_temp 
-51f6 6fe0ca0b fetch 1 ,mem_mouse_fwkey_press_status 
-51f7 1fe22600 copy pdata ,regc 
-51f8 6848c891 fetcht 1 ,mem_fw_button_gpio 
-51f9 6fe0c89c fetch 1 ,mem_matrix_public_gpio 
-51fa c07fd209 beq gpio_disable ,mouse_3io6key_fw_check 
-51fb 20406ee0 call gpio_get_bit 
-51fc 2020d205 branch mouse_check_fw_button_connect_gnd ,true 
-51fd 6848c89c fetcht 1 ,mem_matrix_public_gpio 
-51fe 20406ef1 call gpio_out_active 
-51ff 6848c891 fetcht 1 ,mem_fw_button_gpio 
-5200 6fe0ca0b fetch 1 ,mem_mouse_fwkey_press_status 
-5201 20405236 call mouse_check_key_connect_gnd 
-
-mouse_check_fwkey_gpio_end:
-5202 67e0ca0b store 1 ,mem_mouse_fwkey_press_status 
-
-mouse_matrix_public_gpio_reset:
-5203 6848c89c fetcht 1 ,mem_matrix_public_gpio 
-5204 20204f0a branch device_gpio_config_input_pu 
-
-mouse_check_fw_button_connect_gnd:
-5205 6848c89c fetcht 1 ,mem_matrix_public_gpio 
-5206 6fe0ca0b fetch 1 ,mem_mouse_fwkey_press_status 
-5207 20405236 call mouse_check_key_connect_gnd 
-5208 20205202 branch mouse_check_fwkey_gpio_end 
-
-mouse_3io6key_fw_check:
-5209 6fe0c891 fetch 1 ,mem_fw_button_gpio 
-520a 20405256 call mouse_gpio_config_output_low 
-520b 6848c891 fetcht 1 ,mem_fw_button_gpio 
-520c 20405242 call mouse_3io6key_check 
-520d 67e0ca0b store 1 ,mem_mouse_fwkey_press_status 
-520e 6848c891 fetcht 1 ,mem_fw_button_gpio 
-520f 20204f0a branch device_gpio_config_input_pu 
-
-mouse_check_customerkey_gpio:
-5210 70472b00 jam 0 ,mem_customer_key 
-5211 6fe0c89e fetch 1 ,mem_customer_key_gpio 
-5212 c17f8000 rtneq gpio_disable 
-5213 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
-5214 c40a0000 rtnbit0 mouse_enable_keyboard 
-5215 c297d221 bbit1 mouse_enable_customer_key_connect_vin ,mouse_customer_key_connect_vin 
-
-mouse_customer_key_connect_gnd:
-5216 704a0f07 jam mouse_customer_key ,mem_mouse_key_temp 
-5217 6848c89e fetcht 1 ,mem_customer_key_gpio 
-5218 6fe0ca0e fetch 1 ,mem_mouse_customerkey_press_status 
-5219 20405236 call mouse_check_key_connect_gnd 
-521a 67e0ca0e store 1 ,mem_mouse_customerkey_press_status 
-
-mouse_check_customerkey_state:
-521b 1a227e00 copy rega ,pdata 
-521c c283d22c bbit1 mouse_customer_key ,mouse_customerkey_press 
-521d 2040522f call mouse_customerkey_release 
-
-mouse_check_customerkey_gpio_exit:
-521e 6fe0c72c fetch 1 ,mem_customer_data_trigger 
-521f 67e0c72d store 1 ,mem_customer_data_trigger_last 
-5220 20600000 rtn 
-
-mouse_customer_key_connect_vin:
-5221 704a0f07 jam mouse_customer_key ,mem_mouse_key_temp 
-5222 6fe0ca0e fetch 1 ,mem_mouse_customerkey_press_status 
-5223 1fe22600 copy pdata ,regc 
-5224 6fe0c89e fetch 1 ,mem_customer_key_gpio 
-5225 20405256 call mouse_gpio_config_output_low 
-5226 6848c89e fetcht 1 ,mem_customer_key_gpio 
-5227 20405242 call mouse_3io6key_check 
-5228 67e0ca0e store 1 ,mem_mouse_customerkey_press_status 
-5229 2040521b call mouse_check_customerkey_state 
-522a 6848c89e fetcht 1 ,mem_customer_key_gpio 
-522b 20204f0a branch device_gpio_config_input_pu 
-
-mouse_customerkey_press:
-522c 70472c01 jam 1 ,mem_customer_data_trigger 
-522d 20405232 call mouse_customer_key_need_send 
-522e 2020521e branch mouse_check_customerkey_gpio_exit 
-
-mouse_customerkey_release:
-522f 70472c00 jam 0 ,mem_customer_data_trigger 
-5230 6fe0c72d fetch 1 ,mem_customer_data_trigger_last 
-5231 207a0000 rtn blank 
-
-mouse_customer_key_need_send:
-5232 70472b01 jam 1 ,mem_customer_key 
-5233 20600000 rtn 
-
-mouse_key_release:
-5234 f93fa200 qset0 rega 
-5235 20600000 rtn 
-
-mouse_check_key_connect_gnd:
-5236 1fe3fe00 lshift pdata ,pdata 
-5237 1fe22400 copy pdata ,regb 
-5238 20406ee0 call gpio_get_bit 
-5239 7920a400 setflag true ,0 ,regb 
-
-mouse_check_key_connect_gnd_next:
-523a 1a417e07 and regb ,0x07 ,pdata 
-523b 6848ca0f fetcht 1 ,mem_mouse_key_temp 
-523c 18420e00 copy temp ,queue 
-523d c003d240 beq 0x07 ,mouse_key_press 
-523e c0005234 beq 0x00 ,mouse_key_release 
-523f 20600000 rtn 
-
-mouse_key_press:
-5240 f9202200 qset1 rega 
-5241 20600000 rtn 
-
-mouse_3io6key_check:
-5242 44c4c011 bpatch patch11_1 ,mem_patch11 
-5243 1a627e00 copy regc ,pdata 
-5244 67e0ca10 store 1 ,mem_mouse_key_status 
-5245 1fe3fe00 lshift pdata ,pdata 
-5246 1fe22400 copy pdata ,regb 
-5247 18422600 copy temp ,regc 
-
-mouse_3io6key_check_next:
-5248 20404f06 call device_gpio_config_input_pd 
-5249 1a620400 copy regc ,temp 
-524a 20406ee0 call gpio_get_bit 
-524b 7d20a400 nsetflag true ,0 ,regb 
-524c 2040524e call mouse_check_press 
-524d 2020523a branch mouse_check_key_connect_gnd_next 
-
-mouse_check_press:
-524e 6848ca10 fetcht 1 ,mem_mouse_key_status 
-524f 18410401 and_into 0x01 ,temp 
-5250 1a417e01 and regb ,0x01 ,pdata 
-5251 98467c00 isub temp ,null 
-5252 2422d3d5 nbranch mouse_current_mult_update ,zero 
-5253 20600000 rtn 
-
-mouse_gpio_config_output_high:
-5254 d840003f arg gpcfg_output_high ,temp 
-5255 20206f1d branch gpio_config_function_int 
-
-mouse_gpio_config_output_low:
-5256 d840003e arg gpcfg_output_low ,temp 
-5257 20206f1d branch gpio_config_function_int 
-
-mouse_gpio_config_pu_check:
-5258 67e0c8a7 store 1 ,mem_device_temp_gpio 
-5259 20405254 call mouse_gpio_config_output_high 
-525a 6848c8a7 fetcht 1 ,mem_device_temp_gpio 
-525b 20204f0a branch device_gpio_config_input_pu 
-
-mouse_gpio_config_pd_check:
-525c 67e0c8a7 store 1 ,mem_device_temp_gpio 
-525d 20405256 call mouse_gpio_config_output_low 
-525e 6848c8a7 fetcht 1 ,mem_device_temp_gpio 
-525f 20204f06 branch device_gpio_config_input_pd 
-
-mouse_init_sunt:
-5260 44c54011 bpatch patch11_2 ,mem_patch11 
-5261 20404f1b call mouse_sensor_spi_init 
-5262 20758000 rtn wake 
-
-mouse_init_sensor_wakeup:
-5263 204052fd call mouse_sensor_poweron 
-
-mouse_init_sensor:
-5264 44c5c011 bpatch patch11_3 ,mem_patch11 
-5265 2040526f call mouse_read_sensor_id 
-5266 c0185276 beq p32xx_id1 ,mouse_init_p32xx_id2_judge 
-5267 c018d2dc beq p3065_id1 ,mouse_init_p3065 
-5268 c02c52e5 beq pka8g2_id1 ,mouse_ka8g2_id2_judge 
-5269 2040526c call mouse_twspi_reset 
-526a 20001af4 nop 6900 
-526b 20205264 branch mouse_init_sensor 
-
-mouse_twspi_reset:
-526c 6848c893 fetcht 1 ,mem_mouse_sensor_sclk_gpio 
-526d 20406953 call twspi_reset 
-526e 20204f20 branch mouse_spid_init_pin 
-
-mouse_read_sensor_id:
-526f 58000001 setarg pan_reg_pid_h 
-5270 20406971 call twspi_read 
-5271 67e0c8fc store 1 ,mem_sensor_id2 
-5272 58000000 setarg pan_reg_pid_l 
-5273 20406971 call twspi_read 
-5274 67e0c8fb store 1 ,mem_sensor_id1 
-5275 20600000 rtn 
-
-mouse_init_p32xx_id2_judge:
-5276 6fe0c8fc fetch 1 ,mem_sensor_id2 
-5277 c02d5285 beq p_mx8650 ,mouse_mx8650_init_param 
-5278 c06c528a beq p8009_id2 ,mouse_8009_init_param 
-5279 c068d27f beq p3205_tj3t_id2 ,mouse_s210x_3205_3t_judge 
-527a c06952a2 beq p3204_tj3l_id2 ,mouse_3204_3l_init_param 
-527b c00152a9 beq p3212_id2 ,mouse_3212_init_param 
-527c c02a52b2 beq pka8_id2 ,mouse_ka8_init_param_check 
-527d c02852d9 beq p6520a_id2 ,mouse_p6520_init_param 
-527e 20205264 branch mouse_init_sensor 
-
-mouse_s210x_3205_3t_judge:
-527f 58000049 setarg 0x49 
-5280 20406971 call twspi_read 
-5281 c050d283 beq 0xa1 ,mouse_s201x_init_param 
-5282 20205299 branch mouse_3205_3t_init_param 
-
-mouse_s201x_init_param:
-5283 7049fa0c jam s201x ,mem_config_sensor_type 
-5284 20600000 rtn 
-
-mouse_mx8650_init_param:
-5285 7049fa05 jam mx8650 ,mem_config_sensor_type 
-5286 204052f0 call mouse_sensor_reset 
-5287 20407c97 call delay_10ms 
-5288 da604973 arg mem_sensor_8650_init ,regc 
-5289 20205301 branch mouse_sensor_poweron_end 
-
-mouse_8009_init_param:
-528a 58000016 setarg 0x16 
-528b 20406971 call twspi_read 
-528c 1fe67cbd sub pdata ,0xbd ,null 
-528d 2422d260 nbranch mouse_init_sunt ,zero 
-528e 58000019 setarg 0x19 
-528f 20406971 call twspi_read 
-5290 1fe67c55 sub pdata ,0x55 ,null 
-5291 2422d260 nbranch mouse_init_sunt ,zero 
-5292 5800001b setarg 0x1b 
-5293 20406971 call twspi_read 
-5294 1fe67c1d sub pdata ,0x1d ,null 
-5295 2422d260 nbranch mouse_init_sunt ,zero 
-5296 7049fa06 jam p8009 ,mem_config_sensor_type 
-5297 da6049af arg mem_sensor_8009_init ,regc 
-5298 202052ab branch mouse_sensor_wr_seq 
-
-mouse_3205_3t_init_param:
-5299 7049fa00 jam p3205 ,mem_config_sensor_type 
-529a da60492d arg mem_sensor_3205_init ,regc 
-529b 204052ab call mouse_sensor_wr_seq 
-529c da604937 arg mem_sensor_32xx_init ,regc 
-529d 204052ab call mouse_sensor_wr_seq 
-529e 58000943 setarg 0x0943 
-529f 20406970 call twspi_write 
-52a0 da604951 arg mem_sensor_32xx_init_1 ,regc 
-52a1 202052ab branch mouse_sensor_wr_seq 
-
-mouse_3204_3l_init_param:
-52a2 7049fa02 jam p3204 ,mem_config_sensor_type 
-52a3 da604923 arg mem_sensor_3204_init ,regc 
-52a4 204052ab call mouse_sensor_wr_seq 
-52a5 da604937 arg mem_sensor_32xx_init ,regc 
-52a6 204052ab call mouse_sensor_wr_seq 
-52a7 da604951 arg mem_sensor_32xx_init_1 ,regc 
-52a8 202052ab branch mouse_sensor_wr_seq 
-
-mouse_3212_init_param:
-52a9 7049fa03 jam p3212 ,mem_config_sensor_type 
-52aa da604919 arg mem_sensor_3212_init ,regc 
-
-mouse_sensor_wr_seq:
-52ab efe10013 ifetch 2 ,regc 
-52ac d840ffff arg 0xffff ,temp 
-52ad 98467c00 isub temp ,null 
-52ae 20628000 rtn zero 
-52af 20406970 call twspi_write 
-52b0 1a60a602 increase 2 ,regc 
-52b1 202052ab branch mouse_sensor_wr_seq 
-
-mouse_ka8_init_param_check:
-52b2 204050a7 call mouse_sensor_disable_wp 
-52b3 58009a5b setarg 0x9a5b 
-52b4 20406970 call twspi_write 
-52b5 5800000d setarg 0x0d 
-52b6 20406971 call twspi_read 
-52b7 1fe67c12 sub pdata ,0x12 ,null 
-52b8 2022d2c6 branch mouse_ka8ul_init_param ,zero 
-52b9 1fe67c0a sub pdata ,0x0a ,null 
-52ba 2422d2c9 nbranch mouse_ka8hd_sensor_judge ,zero 
-52bb 5800000e setarg 0x0e 
-52bc 20406971 call twspi_read 
-52bd 1fe67ce5 sub pdata ,0xe5 ,null 
-52be 2422d264 nbranch mouse_init_sensor ,zero 
-52bf 58000010 setarg 0x10 
-52c0 20406971 call twspi_read 
-52c1 1fe67ca5 sub pdata ,0xa5 ,null 
-52c2 2022d2c6 branch mouse_ka8ul_init_param ,zero 
-52c3 204052d6 call mouse_enable_ka8_sensor_wp 
-
-mouse_ka8_init_param:
-52c4 7049fa08 jam ka8 ,mem_config_sensor_type 
-52c5 20600000 rtn 
-
-mouse_ka8ul_init_param:
-52c6 7049fa09 jam ka8_ul ,mem_config_sensor_type 
-52c7 da604991 arg mem_sensor_ka8ul_init ,regc 
-52c8 202052ab branch mouse_sensor_wr_seq 
-
-mouse_ka8hd_sensor_judge:
-52c9 1fe67c10 sub pdata ,0x10 ,null 
-52ca 2422d264 nbranch mouse_init_sensor ,zero 
-52cb 5800000e setarg 0x0e 
-52cc 20406971 call twspi_read 
-52cd 1fe67cc5 sub pdata ,0xc5 ,null 
-52ce 2422d264 nbranch mouse_init_sensor ,zero 
-52cf 58000010 setarg 0x10 
-52d0 20406971 call twspi_read 
-52d1 1fe67c38 sub pdata ,0x38 ,null 
-52d2 2422d264 nbranch mouse_init_sensor ,zero 
-
-mouse_ka8hd_init_param:
-52d3 204052d6 call mouse_enable_ka8_sensor_wp 
-52d4 7049fa0a jam ka8_hd ,mem_config_sensor_type 
-52d5 20600000 rtn 
-
-mouse_enable_ka8_sensor_wp:
-52d6 5800005b setarg 0x005b 
-52d7 20406970 call twspi_write 
-52d8 202050a5 branch mouse_sensor_enable_wp 
-
-mouse_p6520_init_param:
-52d9 7049fa07 jam p6520 ,mem_config_sensor_type 
-52da da6049d1 arg mem_sensor_p6520_init ,regc 
-52db 202052ab branch mouse_sensor_wr_seq 
-
-mouse_init_p3065:
-52dc 204052fd call mouse_sensor_poweron 
-52dd 6fe0c8fc fetch 1 ,mem_sensor_id2 
-52de c03852e3 beq p3065_xy_id2 ,mouse_p3065xy_init_param 
-52df c00052e1 beq p3065_id2 ,mouse_p3065_init_param 
-52e0 20205264 branch mouse_init_sensor 
-
-mouse_p3065_init_param:
-52e1 7049fa01 jam p3065 ,mem_config_sensor_type 
-52e2 20600000 rtn 
-
-mouse_p3065xy_init_param:
-52e3 7049fa04 jam p3065_xy ,mem_config_sensor_type 
-52e4 20600000 rtn 
-
-mouse_ka8g2_id2_judge:
-52e5 204052fd call mouse_sensor_poweron 
-52e6 6fe0c8fc fetch 1 ,mem_sensor_id2 
-52e7 c02bd2ed beq ka5857_id2 ,mouse_ka5857_init_param 
-52e8 c02cd2ea beq pka8g2_id2 ,mouse_ka8g2_init_param 
-52e9 20205276 branch mouse_init_p32xx_id2_judge 
-
-mouse_ka8g2_init_param:
-52ea 7049fa0b jam ka8g2 ,mem_config_sensor_type 
-52eb da6049bf arg mem_sensor_ka8g2_init ,regc 
-52ec 202052ab branch mouse_sensor_wr_seq 
-
-mouse_ka5857_init_param:
-52ed 7049fa0d jam ka5857 ,mem_config_sensor_type 
-52ee da6049dd arg mem_sensor_ka5857_init ,regc 
-52ef 20205301 branch mouse_sensor_poweron_end 
-
-mouse_sensor_reset:
-52f0 d8408006 arg 0x8006 ,temp 
-52f1 6fe0c9fa fetch 1 ,mem_config_sensor_type 
-52f2 c085d2f4 bne ka8g2 ,mouse_sensor_reset_end 
-52f3 d8409706 arg 0x9706 ,temp 
-
-mouse_sensor_reset_end:
-52f4 18427e00 copy temp ,pdata 
-52f5 20406970 call twspi_write 
-52f6 20002ee0 nop 12000 
-52f7 20600000 rtn 
-
-mouse_sensor_poweron_init:
-52f8 da6049e9 arg mem_sensor_poweron_init ,regc 
-52f9 6fe0c9fa fetch 1 ,mem_config_sensor_type 
-52fa c1858000 rtnne ka8g2 
-52fb da6049f1 arg mem_sensor_ka8g2_poweron_init ,regc 
-52fc 20600000 rtn 
-
-mouse_sensor_poweron:
-52fd 44c64011 bpatch patch11_4 ,mem_patch11 
-52fe 20404f1b call mouse_sensor_spi_init 
-52ff 204052f0 call mouse_sensor_reset 
-5300 204052f8 call mouse_sensor_poweron_init 
-
-mouse_sensor_poweron_end:
-5301 204052ab call mouse_sensor_wr_seq 
-5302 2020506b branch mouse_setting_sensor_type 
-
-mouse_sensor_powerdown:
-5303 44c6c011 bpatch patch11_5 ,mem_patch11 
-5304 20405260 call mouse_init_sunt 
-5305 20404f1b call mouse_sensor_spi_init 
-5306 d8400806 arg 0x0806 ,temp 
-5307 6fe0c9fa fetch 1 ,mem_config_sensor_type 
-5308 c085d30a bne ka8g2 ,mouse_sensor_powerdown_end 
-5309 d8401f06 arg 0x1f06 ,temp 
-
-mouse_sensor_powerdown_end:
-530a 18427e00 copy temp ,pdata 
-530b 20206970 branch twspi_write 
-
-mouse_check_sensor_data:
-530c 6fe0c437 fetch 1 ,mem_spi_write_flash_sm 
-530d c1800000 rtnne flash_sm_no_buys 
-530e 6fe0c9fa fetch 1 ,mem_config_sensor_type 
-530f c0005319 beq p3205 ,mouse_p32xx_sensor_motion 
-5310 c000d319 beq p3065 ,mouse_p32xx_sensor_motion 
-5311 c0045319 beq ka8 ,mouse_p32xx_sensor_motion 
-5312 c0015319 beq p3204 ,mouse_p32xx_sensor_motion 
-5313 c001d33d beq p3212 ,mouse_p3212_sensor_motion 
-5314 c0025319 beq p3065_xy ,mouse_p32xx_sensor_motion 
-5315 c0035365 beq p8009 ,mouse_p8009_sensor_motion 
-5316 c005d35b beq ka8g2 ,mouse_pka8g2_sensor_motion 
-5317 c006d35b beq ka5857 ,mouse_pka8g2_sensor_motion 
-5318 20205319 branch mouse_p32xx_sensor_motion 
-
-mouse_p32xx_sensor_motion:
-5319 20405387 call mouse_clear_sensor_data 
-531a 78547c00 disable user 
-531b 6fe0c667 fetch 1 ,mem_sensor_motion_gpio 
-531c c07fd320 beq gpio_disable ,mouse_p32xx_sensor_motion_2 
-531d 6848c667 fetcht 1 ,mem_sensor_motion_gpio 
-531e 20406ee0 call gpio_get_bit 
-531f 24608000 nrtn true 
-
-mouse_p32xx_sensor_motion_2:
-5320 58000000 setarg pan_reg_pid_l 
-5321 20406971 call twspi_read 
-5322 c0985333 bne p32xx_id1 ,mouse_p3065_judge 
-
-mouse_p32xx_sensor_motion_1:
-5323 58000002 setarg pan_reg_motion_staus 
-5324 20406971 call twspi_read 
-5325 c4038000 rtnbit0 7 
-5326 2040539e call mouse_read_sensor_common 
-5327 6fe0c65d fetch 1 ,mem_mouse_x 
-5328 20405397 call mouse_data_extsign 
-5329 67e1465d store 2 ,mem_mouse_x 
-532a 6fe0c65f fetch 1 ,mem_mouse_y 
-532b 20405397 call mouse_data_extsign 
-532c 67e1465f store 2 ,mem_mouse_y 
-532d 6fe0c9fb fetch 1 ,mem_config_sensor_angle 
-532e c0005335 beq mouse_6clk_angle ,mouse_motion32xx_6clk_direction_selection 
-532f c000d337 beq mouse_9clk_angle ,mouse_motion32xx_9clk_direction_selection 
-5330 c0015339 beq mouse_12clk_angle ,mouse_motion32xx_12clk_direction_selection 
-5331 c001d33b beq mouse_3clk_angle ,mouse_motion32xx_3clk_direction_selection 
-5332 20600000 rtn 
-
-mouse_p3065_judge:
-5333 c018d323 beq p3065_id1 ,mouse_p32xx_sensor_motion_1 
-5334 2020526c branch mouse_twspi_reset 
-
-mouse_motion32xx_6clk_direction_selection:
-5335 20405370 call mouse_motion_6clk_direction_dispose 
-5336 202053a4 branch mouse_sensor_sdio_low 
-
-mouse_motion32xx_9clk_direction_selection:
-5337 20405378 call mouse_motion_9clk_direction_dispose 
-5338 202053a4 branch mouse_sensor_sdio_low 
-
-mouse_motion32xx_12clk_direction_selection:
-5339 20405374 call mouse_motion_12clk_direction_dispose 
-533a 202053a4 branch mouse_sensor_sdio_low 
-
-mouse_motion32xx_3clk_direction_selection:
-533b 20405380 call mouse_motion_3clk_direction_dispose 
-533c 202053a4 branch mouse_sensor_sdio_low 
-
-mouse_p3212_sensor_motion:
-533d 20405387 call mouse_clear_sensor_data 
-533e 6fe0c667 fetch 1 ,mem_sensor_motion_gpio 
-533f c07fd343 beq gpio_disable ,mouse_p3212_sensor_motion_1 
-5340 6848c667 fetcht 1 ,mem_sensor_motion_gpio 
-5341 20406ee0 call gpio_get_bit 
-5342 24608000 nrtn true 
-
-mouse_p3212_sensor_motion_1:
-5343 58000000 setarg pan_reg_pid_l 
-5344 20406971 call twspi_read 
-5345 c098526c bne p32xx_id1 ,mouse_twspi_reset 
-
-mouse_p3212_sensor_motion_2:
-5346 58000002 setarg pan_reg_motion_staus 
-5347 20406971 call twspi_read 
-5348 c4038000 rtnbit0 7 
-5349 2040539e call mouse_read_sensor_common 
-534a 20405359 call mouse_read_3212sensor_xy_high 
-534b 67e0c663 store 1 ,mem_mouse_xy_h 
-534c 1ff1fe00 rshift4 pdata ,pdata 
-534d 2040539b call mouse_data_extsign_bit3 
-534e 67e0c65e store 1 ,mem_mouse_x + 1 
-534f 6fe0c663 fetch 1 ,mem_mouse_xy_h 
-5350 1fe17e0f and pdata ,0x0f ,pdata 
-5351 2040539b call mouse_data_extsign_bit3 
-5352 67e0c660 store 1 ,mem_mouse_y + 1 
-5353 6fe0c9fb fetch 1 ,mem_config_sensor_angle 
-5354 c0005370 beq mouse_6clk_angle ,mouse_motion_6clk_direction_dispose 
-5355 c000d378 beq mouse_9clk_angle ,mouse_motion_9clk_direction_dispose 
-5356 c0015374 beq mouse_12clk_angle ,mouse_motion_12clk_direction_dispose 
-5357 c001d380 beq mouse_3clk_angle ,mouse_motion_3clk_direction_dispose 
-5358 20600000 rtn 
-
-mouse_read_3212sensor_xy_high:
-5359 58000012 setarg 0x12 
-535a 20206971 branch twspi_read 
-
-mouse_pka8g2_sensor_motion:
-535b 20405387 call mouse_clear_sensor_data 
-535c 6fe0c667 fetch 1 ,mem_sensor_motion_gpio 
-535d c07fd361 beq gpio_disable ,mouse_pka8g2_sensor_motion_1 
-535e 6848c667 fetcht 1 ,mem_sensor_motion_gpio 
-535f 20406ee0 call gpio_get_bit 
-5360 24608000 nrtn true 
-
-mouse_pka8g2_sensor_motion_1:
-5361 58000000 setarg pan_reg_pid_l 
-5362 20406971 call twspi_read 
-5363 c0ac526c bne pka8g2_id1 ,mouse_twspi_reset 
-5364 20205346 branch mouse_p3212_sensor_motion_2 
-
-mouse_p8009_sensor_motion:
-5365 20405387 call mouse_clear_sensor_data 
-5366 78547c00 disable user 
-5367 58000002 setarg pan_reg_motion_staus 
-5368 20406971 call twspi_read 
-5369 c4038000 rtnbit0 7 
-536a 58000008 setarg pan_reg_opration_state 
-536b 20406971 call twspi_read 
-536c 203a5326 branch mouse_p32xx_sensor_motion_1 + 3 ,blank 
-536d 58000000 setarg 0 
-536e 67e3465d store 6 ,mem_mouse_x 
-536f 20600000 rtn 
-
-mouse_motion_6clk_direction_dispose:
-5370 6fe1465d fetch 2 ,mem_mouse_x 
-5371 1fe67e00 sub pdata ,0 ,pdata 
-5372 67e1465d store 2 ,mem_mouse_x 
-5373 20207dbc branch enable_user 
-
-mouse_motion_12clk_direction_dispose:
-5374 6fe1465f fetch 2 ,mem_mouse_y 
-5375 1fe67e00 sub pdata ,0 ,pdata 
-5376 67e1465f store 2 ,mem_mouse_y 
-5377 20207dbc branch enable_user 
-
-mouse_motion_9clk_direction_dispose:
-5378 6fe1465f fetch 2 ,mem_mouse_y 
-5379 1fe67e00 sub pdata ,0 ,pdata 
-537a 67e1465f store 2 ,mem_mouse_y 
-537b 6fe1465d fetch 2 ,mem_mouse_x 
-537c 1fe67e00 sub pdata ,0 ,pdata 
-537d 67e1465d store 2 ,mem_mouse_x 
-537e 20405382 call mouse_sensor_data_swap_places 
-537f 20207dbc branch enable_user 
-
-mouse_motion_3clk_direction_dispose:
-5380 20405382 call mouse_sensor_data_swap_places 
-5381 20207dbc branch enable_user 
-
-mouse_sensor_data_swap_places:
-5382 6fe1465f fetch 2 ,mem_mouse_y 
-5383 6849465d fetcht 2 ,mem_mouse_x 
-5384 67e1465d store 2 ,mem_mouse_x 
-5385 6049465f storet 2 ,mem_mouse_y 
-5386 20600000 rtn 
-
-mouse_clear_sensor_data:
-5387 6fe0c8fd fetch 1 ,mem_mouse_move_flag 
-5388 205a539e call mouse_read_sensor_common ,blank 
-5389 7048fd01 jam 1 ,mem_mouse_move_flag 
-538a 20600000 rtn 
-
-mouse_clear_sensor_data_by_reset:
-538b 7049f901 jam 1 ,mem_mouse_clear_sensor_data_flag 
-538c 204029a8 call le_set_config_more_data 
-
-mouse_init_sensor_reset:
-538d 20205260 branch mouse_init_sunt 
-
-mouse_data_xy_release:
-538e 6fe0c667 fetch 1 ,mem_sensor_motion_gpio 
-538f c1ff8000 rtnne gpio_disable 
-5390 6fe0c73d fetch 1 ,mem_mouse_long_mult_flag 
-5391 207a0000 rtn blank 
-5392 1fe0ffff increase -1 ,pdata 
-5393 67e0c73d store 1 ,mem_mouse_long_mult_flag 
-5394 58000000 setarg 0 
-5395 67e2465d store 4 ,mem_mouse_x 
-5396 2020538d branch mouse_init_sensor_reset 
-
-mouse_data_extsign:
-5397 c4038000 rtnbit0 7 
-5398 d840ff00 arg 0xff00 ,temp 
-
-mouse_data_ior:
-5399 9841fe00 ior temp ,pdata 
-539a 20600000 rtn 
-
-mouse_data_extsign_bit3:
-539b c4018000 rtnbit0 3 
-539c d84000f0 arg 0xf0 ,temp 
-539d 20205399 branch mouse_data_ior 
-
-mouse_read_sensor_common:
-539e dfe00003 arg pan_reg_delta_x ,pdata 
-539f 20406971 call twspi_read 
-53a0 67e1465d store 2 ,mem_mouse_x 
-53a1 dfe00004 arg pan_reg_delta_y ,pdata 
-53a2 20406971 call twspi_read 
-53a3 2020586a branch mouse_data_y_store 
-
-mouse_sensor_sdio_low:
-53a4 6848c894 fetcht 1 ,mem_mouse_sensor_sdio_gpio 
-53a5 20406ee0 call gpio_get_bit 
-53a6 20608000 rtn true 
-53a7 5800000a setarg 0x0a 
-53a8 20406971 call twspi_read 
-53a9 200003e8 nop 1000 
-53aa 202053a4 branch mouse_sensor_sdio_low 
-
-mouse_set_sdio_high:
-53ab 58008100 setarg 0x8100 
-53ac 20206970 branch twspi_write 
-
-mouse_bluetooth_fast_conn_init:
-53ad 70474fff jam 0xff ,mem_device_fast_conn_flag 
-
-mouse_ble_fast_conn_init:
-53ae 7043fc34 jam 0x34 ,mem_xrecord_mode 
-53af 580f0f0f setarg 0x0f0f0f 
-53b0 67e1c2dd store 3 ,mem_le_lap 
-53b1 67e1c2e0 store 3 ,mem_le_lap + 3 
-53b2 20204e11 branch mouse_start_reconnect 
-
-mouse_buletooth_fast_conn_end:
-53b3 44c74011 bpatch patch11_6 ,mem_patch11 
-53b4 204067d5 call hid_device_select_reconn_device 
-53b5 204053c1 call mouse_bluetooth_fast_conn_disable 
-53b6 6fe0c678 fetch 1 ,mem_device_flag 
-53b7 c000d3ba beq mode_bt_device1 ,mouse_device1_check_auto_discover 
-53b8 c00153bc beq mode_bt_device2 ,mouse_device2_check_auto_discover 
-53b9 20600000 rtn 
-
-mouse_device1_check_auto_discover:
-53ba 6fe3467a fetch 6 ,mem_device1_addr 
-53bb 202053bd branch mouse_device_check_auto_discover 
-
-mouse_device2_check_auto_discover:
-53bc 6fe34687 fetch 6 ,mem_device2_addr 
-
-mouse_device_check_auto_discover:
-53bd 684b46f8 fetcht 6 ,mem_device_compare_addr 
-53be 98467c00 isub temp ,null 
-53bf 2022d544 branch mouse_start_discovery ,zero 
-53c0 20204e09 branch mouse_start_reconnect_device 
-
-mouse_bluetooth_fast_conn_disable:
-53c1 70474f5a jam 0x5a ,mem_device_fast_conn_flag 
-53c2 20600000 rtn 
-
-mouse_stop_bluetooth_mode:
-53c3 6fe14500 fetch 2 ,mem_ui_state_map 
-53c4 c284b794 bbit1 ui_state_ble_connected ,app_ble_disconnect 
-53c5 20205562 branch mouse_stop_discovery 
-
-mouse_disconnect:
-53c6 58000000 setarg 0 
-53c7 67e14741 store 2 ,mem_device_no_data_timer 
-53c8 6fe14500 fetch 2 ,mem_ui_state_map 
-53c9 c284b794 bbit1 ui_state_ble_connected ,app_ble_disconnect 
-53ca 20600000 rtn 
-
-mouse_check_125hz:
-53cb 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
-53cc c40d8000 rtnbit0 mouse_enable_bt_125hz 
-
-mouse_bluetooth_125hz:
-53cd 243453d3 nbranch mouse_bluetooth_125hz_clear ,user 
-53ce 6fe0c9fc fetch 1 ,mem_bluetooth_125hz_cnt 
-53cf 1fe0fe01 increase 1 ,pdata 
-53d0 1fe17e0f and_into 0x0f ,pdata 
-53d1 67e0c9fc store 1 ,mem_bluetooth_125hz_cnt 
-53d2 247a0000 nrtn blank 
-
-mouse_bluetooth_125hz_clear:
-53d3 7049fc00 jam 0 ,mem_bluetooth_125hz_cnt 
-53d4 20207dbe branch disable_user 
-
-mouse_current_mult_update:
-53d5 6fe0c667 fetch 1 ,mem_sensor_motion_gpio 
-53d6 c1ff8000 rtnne gpio_disable 
-53d7 7040c000 jam 0 ,mem_lpm_mult 
-53d8 70473e1e jam 30 ,mem_mouse_current_mult_timer 
-53d9 20600000 rtn 
-
-mouse_priority_bb_event:
-53da 44c7c011 bpatch patch11_7 ,mem_patch11 
-53db 1a627e00 copy regc ,pdata 
-53dc c00a53e9 beq bt_evt_le_connected ,mouse_le_bb_event_connected 
-53dd c00ad3f9 beq bt_evt_le_disconnected ,mouse_le_bb_disconnected 
-53de c008553f beq bt_evt_button_long_pressed ,mouse_bb_event_discovery_btn 
-53df c018d406 beq bt_evt_le_pairing_success ,mouse_le_pairing_success 
-53e0 c014d408 beq bt_evt_le_enc_info ,mouse_le_enc_info 
-53e1 c019540a beq bt_evt_le_start_enc ,mouse_le_ll_start_encryt 
-53e2 c01f379e beq bt_evt_le_pairing_complete ,app_ble_store_reconn_info 
-53e3 c0205415 beq bt_evt_le_parse_conn_papa_update_rsp ,mouse_le_conn_param_update_rsp_recieved 
-53e4 c01cd9a8 beq bt_evt_24g_pairing_complete ,mouse_24g_pairing_complete 
-53e5 c01d5971 beq bt_evt_24g_attempt_fail ,mouse_24g_attempt_fail 
-53e6 c01e5997 beq bt_evt_24g_attempt_success ,mouse_24g_attempt_success 
-53e7 c0225428 beq bt_evt_le_parse_conn_param_accepted ,mouse_le_parse_conn_param_accepted 
-53e8 20600000 rtn 
-
-mouse_le_bb_event_connected:
-53e9 20405a62 call mouse_device_poweron_led_config 
-53ea 70473d00 jam 0 ,mem_mouse_long_mult_flag 
-53eb 2040538d call mouse_init_sensor_reset 
-53ec 70475301 jam 1 ,mem_device_le_bb_connected_flag 
-53ed 20405960 call mouse_24g_first_store_reconn_info 
-53ee 6fe0c754 fetch 1 ,mem_device_le_reconnect_flag 
-53ef 243a53f1 nbranch mouse_le_bb_event_connected_next ,blank 
-53f0 70475514 jam 0x14 ,mem_device_send_secutiry_request_timer 
-
-mouse_le_bb_event_connected_next:
-53f1 6fe143fa fetch app_disc_rsn_size ,mem_app_disconn_reason_flag 
-53f2 793ffe00 set0 app_disc_by_button ,pdata 
-53f3 67e143fa store app_disc_rsn_size ,mem_app_disconn_reason_flag 
-53f4 70472000 jam 0 ,mem_device_direct_timer 
-53f5 6fe1477d fetch 2 ,mem_le_battery_level_updata_timer_init 
-53f6 67e1477f store 2 ,mem_le_battery_level_updata_timer 
-53f7 20405535 call mouse_no_data_timer_init 
-53f8 20205562 branch mouse_stop_discovery 
-
-mouse_le_bb_disconnected:
-53f9 58000000 setarg 0 
-53fa 67e1477f store 2 ,mem_le_battery_level_updata_timer 
-53fb 70475300 jam 0 ,mem_device_le_bb_connected_flag 
-53fc d8400006 arg le_interval_7_5ms ,temp 
-53fd 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
-53fe c28dd400 bbit1 mouse_enable_bt_125hz ,mouse_le_bb_disconnected_next 
-53ff d8400007 arg le_interval_8_75ms ,temp 
-
-mouse_le_bb_disconnected_next:
-5400 604942d5 storet 2 ,mem_le_interval_min 
-5401 604942d7 storet 2 ,mem_le_interval_min + 2 
-5402 70478100 jam le_lpm_enable ,mem_le_conn_param_reject 
-5403 7049f900 jam 0 ,mem_mouse_clear_sensor_data_flag 
-5404 204029aa call le_clr_config_more_data 
-5405 20205484 branch mouse_bb_disconnected 
-
-mouse_le_pairing_success:
-5406 d8e00002 arg ll_pairing_success_flag ,queue 
-5407 20205411 branch mouse_le_enable_connect_flag 
-
-mouse_le_enc_info:
-
-mouse_updata_le_param:
-5408 70064d12 jam bt_cmd_le_update_conn ,mem_fifo_temp 
-5409 20207824 branch ui_ipc_send_cmd 
-
-mouse_le_ll_start_encryt:
-540a 6fe0c754 fetch 1 ,mem_device_le_reconnect_flag 
-540b c000d40d beq 1 ,mouse_le_ll_reconn_start_encryt 
-540c 2020540f branch mouse_le_ll_enable_start_enc_flag 
-
-mouse_le_ll_reconn_start_encryt:
-540d 20405408 call mouse_updata_le_param 
-540e 70488314 jam 20 ,mem_le_start_encrypt_timer 
-
-mouse_le_ll_enable_start_enc_flag:
-540f d8e00001 arg ll_start_enc_flag ,queue 
-5410 20205411 branch mouse_le_enable_connect_flag 
-
-mouse_le_enable_connect_flag:
-5411 6fe0c882 fetch 1 ,mem_le_connect_status_flag 
-5412 f9207e00 qset1 pdata 
-5413 67e0c882 store 1 ,mem_le_connect_status_flag 
-5414 20600000 rtn 
-
-mouse_le_conn_param_update_rsp_recieved:
-5415 6fe14340 fetch 2 ,mem_le_l2cap_signaling_conn_param_update_rsp_result 
-5416 c1000000 rtneq ble_signaling_connect_parameter_update_accepted 
-5417 6fe0816a fetch 1 ,mem_le_tsniff 
-5418 1feb7e00 rshift2 pdata ,pdata 
-5419 1fe67c0c sub pdata ,le_interval_15ms ,null 
-541a 20610000 rtn positive 
-541b 58000009 setarg le_interval_11_25ms 
-541c 20404dab call mouse_le_interval_store 
-541d 20405408 call mouse_updata_le_param 
-
-mouse_le_conn_param_lpm_disable:
-541e 70478101 jam le_lpm_disable ,mem_le_conn_param_reject 
-541f 20600000 rtn 
-
-mouse_le_bb_event_connect_complete:
-5420 6fe0c754 fetch 1 ,mem_device_le_reconnect_flag 
-5421 247a0000 nrtn blank 
-5422 6fe0c39c fetch 1 ,mem_le_att_handle 
-5423 1fe67e22 sub pdata ,34 ,pdata 
-5424 24628000 nrtn zero 
-5425 70488300 jam 0 ,mem_le_start_encrypt_timer 
-
-mouse_le_write_enable:
-5426 d8e00000 arg write_req_enable_flag ,queue 
-5427 20205411 branch mouse_le_enable_connect_flag 
-
-mouse_le_parse_conn_param_accepted:
-5428 6fe081a2 fetch 1 ,mem_le_new_conninterval 
-5429 1fe67c0c sub pdata ,le_interval_15ms ,null 
-542a 2421541e nbranch mouse_le_conn_param_lpm_disable ,positive 
-542b 20404dab call mouse_le_interval_store 
-542c 6fe081a4 fetch 1 ,mem_le_new_connslavelatency 
-542d 203a5434 branch mouse_le_lpm_mult_reinit ,blank 
-542e 6848c88b fetcht 1 ,mem_lpm_mult_init 
-542f 98467c00 isub temp ,null 
-5430 20215434 branch mouse_le_lpm_mult_reinit ,positive 
-5431 6fe081a4 fetch 1 ,mem_le_new_connslavelatency 
-5432 67e0c0c0 store 1 ,mem_lpm_mult 
-5433 20205436 branch mouse_le_conn_param_lpm_enable 
-
-mouse_le_lpm_mult_reinit:
-5434 6fe0c88b fetch 1 ,mem_lpm_mult_init 
-5435 67e0c0c0 store 1 ,mem_lpm_mult 
-
-mouse_le_conn_param_lpm_enable:
-5436 70478100 jam le_lpm_enable ,mem_le_conn_param_reject 
-5437 20600000 rtn 
-
-mouse_le:
-5438 44c84012 bpatch patch12_0 ,mem_patch12 
-5439 20402a06 call le_fifo_check_nearly_full 
-543a 247a0000 nrtn blank 
-543b 6fe0c74f fetch 1 ,mem_device_fast_conn_flag 
-543c c07fd440 beq 0xff ,mouse_le_next 
-543d 6fe0c882 fetch 1 ,mem_le_connect_status_flag 
-543e 1fe17e03 and pdata ,0x03 ,pdata 
-543f c1818000 rtnne 0x03 
-
-mouse_le_next:
-5440 6fe0c9f9 fetch 1 ,mem_mouse_clear_sensor_data_flag 
-5441 205a538b call mouse_clear_sensor_data_by_reset ,blank 
-5442 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
-5443 c280e824 bbit1 mouse_24g_pairing_flag ,hid_device_le_send_empty_packet 
-5444 c2806824 bbit1 mouse_select_device_flag ,hid_device_le_send_empty_packet 
-5445 c282e824 bbit1 mouse_bt_discovery_button_down_flag ,hid_device_le_send_empty_packet 
-5446 c2836824 bbit1 mouse_bt_discovery_button_long_down_flag ,hid_device_le_send_empty_packet 
-
-mouse_le_package:
-5447 20404f26 call mouse_motion 
-5448 204053cb call mouse_check_125hz 
-5449 24740000 nrtn user 
-544a 204053d5 call mouse_current_mult_update 
-544b 2040538e call mouse_data_xy_release 
-544c 20404fd1 call mouse_wheel_trigger 
-544d 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
-544e c30a683e bbit0 mouse_enable_keyboard ,hid_device_le_send_mouse_data 
-544f 2020683c branch hid_device_send_package_data_check 
-
-mouse_fill_battery_level_le:
-5450 da200001 arg 1 ,rega 
-5451 6849477a fetcht 2 ,mem_le_battery_level_handle 
-5452 20402dcc call le_att_malloc_tx_notify 
-5453 6fe0c77c fetch 1 ,mem_le_battery_level_percentage 
-5454 20207dce branch istore_1_contw_rtn 
-
-mouse_check_51cmd_adv:
-5455 70475400 jam 0 ,mem_device_le_reconnect_flag 
-5456 6fe1c759 fetch 3 ,mem_le_adv_ind 
-5457 67e1c351 store 3 ,mem_le_adv_data + 4 
-5458 2040545e call mouse_le_check_adv_flag 
-5459 58000005 setarg adv_flag_bredr_not_supported | adv_flag_limited_discoverable 
-545a e7e08006 istore 1 ,contr 
-545b d8c0475f arg mem_le_adv_swift_pair ,contr 
-545c 20405465 call mouse_le_adv_data_update 
-545d 20207860 branch check_51cmd_adv 
-
-mouse_le_check_adv_flag:
-545e da20434d arg mem_le_adv_data ,rega 
-
-mouse_le_check_adv_flag_loop:
-545f efe08011 ifetch 1 ,rega 
-5460 207a0000 rtn blank 
-5461 98c0a200 iadd contr ,rega 
-5462 efe08006 ifetch 1 ,contr 
-5463 c1008000 rtneq 0x01 
-5464 2020545f branch mouse_le_check_adv_flag_loop 
-
-mouse_le_adv_data_update:
-5465 d8a04358 arg mem_le_adv_data + 11 ,contw 
-5466 df200013 arg 19 ,loopcnt 
-5467 20407cdc call memcpy 
-5468 20202948 branch le_modified_name_adv 
-
-mouse_le_parse_att:
-5469 44c8c012 bpatch patch12_1 ,mem_patch12 
-546a 1a220c00 copy rega ,contr 
-546b efe18006 ifetch 3 ,contr 
-546c 67e1c39b store 3 ,mem_le_att_opcode 
-546d c0055470 beq attop_read_request ,mouse_le_parse_att_read_request 
-546e c009547f beq attop_write_request ,mouse_le_parse_att_write_request 
-546f 20202b76 branch le_parse_att2 
-
-mouse_le_parse_att_read_request:
-5470 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
-5471 c31dacf7 bbit0 mouse_enable_le_battery_service_cancel ,le_parse_att_read_request 
-5472 20402da5 call le_check_encrypt_state 
-5473 6849439c fetcht 2 ,mem_le_att_handle 
-5474 6fe0c323 fetch 1 ,mem_le_configuration 
-5475 c281d47a bbit1 bit_ble_read_auth ,mouse_le_send_att_read_response_check_auth 
-
-mouse_le_send_att_read_response:
-5476 6fe1439c fetch 2 ,mem_le_att_handle 
-5477 c0182de1 beq 0x30 ,le_send_att_error_response_notfound 
-5478 6849439c fetcht 2 ,mem_le_att_handle 
-5479 20202cfb branch le_send_att_read_response 
-
-mouse_le_send_att_read_response_check_auth:
-547a 6fe14334 fetch 2 ,mem_le_pairing_handle 
-547b 98467c00 isub temp ,null 
-547c 2422d476 nbranch mouse_le_send_att_read_response ,zero 
-547d 24345476 nbranch mouse_le_send_att_read_response ,user 
-547e 20202d24 branch le_send_att_read_response_error_insufficient_auth 
-
-mouse_le_parse_att_write_request:
-547f 18c22200 copy contr ,rega 
-5480 6fe14337 fetch 2 ,mem_le_l2cap_size 
-5481 1fe0a5fd add pdata ,-3 ,regb 
-5482 20402908 call le_writeatt_cb 
-5483 20206878 branch hid_device_le_parse_att_write_request 
-
-mouse_bb_disconnected:
-5484 44c94012 bpatch patch12_2 ,mem_patch12 
-5485 2040548a call mouse_bb_discon_clear_stack 
-5486 6fe143f8 fetch app_disc_rsn_size ,mem_app_disconn_reason 
-5487 c283d490 bbit1 app_disc_ble ,mouse4_0_event_bb_disconn 
-5488 c2803771 bbit1 app_disc_by_button ,app_disconn_reason_clear 
-5489 20205544 branch mouse_start_discovery 
-
-mouse_bb_discon_clear_stack:
-548a 58000000 setarg 0 
-548b 67e4466a store 8 ,mem_wheel_tb_old_pinlevel 
-548c e7e10005 istore 2 ,contw 
-548d 7048fd00 jam 0 ,mem_mouse_move_flag 
-548e 70429c00 jam 0 ,mem_ltk_exists 
-548f 20600000 rtn 
-
-mouse4_0_event_bb_disconn:
-5490 70488200 jam 0 ,mem_le_connect_status_flag 
-5491 6fe143f8 fetch app_disc_rsn_size ,mem_app_disconn_reason 
-5492 c2803771 bbit1 app_disc_by_button ,app_disconn_reason_clear 
-5493 20204e35 branch mouse_app_enter_hibernate 
-
-mouse_bb_event_timer:
-5494 44c9c012 bpatch patch12_3 ,mem_patch12 
-5495 20405a29 call mouse_low_voltage_led_timer 
-5496 20404ea5 call mouse_adc_read 
-5497 204059f2 call mouse_logo_led_on_timer 
-5498 20405a81 call mouse_led_multi_timer 
-5499 20405a00 call mouse_dpi_led_blink_delay_timer 
-549a 20405050 call mouse_dpi_key_check_long_press 
-549b 204054ab call mouse_bt_discovery_check 
-549c 204054d7 call mouse_commbination_key_process 
-549d 204054ba call mouse_commbination_dpi_check_timer 
-549e 204054cb call mouse_commbination_key_select_device_timer 
-549f 20405527 call mouse_current_mult_update_timer 
-54a0 20404fd6 call mouse_wheel_trigger_timer 
-54a1 20405538 call mouse_store_information_delay_timer 
-54a2 2040552f call mouse_check_no_data_timeout_timer 
-54a3 204058f6 call mouse_24g_long_sleep_param_update_timer 
-
-mouse_bb_event_timer_next:
-54a4 2040326c call g24_pair_timeout_timer 
-54a5 20403507 call g24_reconn_timeout_timer 
-54a6 204054fa call mouse_check_discovery_timeout_timer 
-54a7 204054ff call mouse_check_direct_timeout_timer 
-54a8 2040550d call mouse_le_enable_att_list_timer 
-54a9 2040551a call mouse_le_battery_updata_timer 
-54aa 20205510 branch mouse_le_send_smp_security_request_timer 
-
-mouse_bt_discovery_check:
-54ab 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
-54ac c41b8000 rtnbit0 mouse_enable_pb_button_long_press_disconvery 
-
-mouse_bt_discovery_by_pb_button:
-54ad 6fe0c734 fetch 1 ,mem_select_device_button_statue 
-54ae c1808000 rtnne pb_button_state_down 
-54af da604731 arg mem_bt_discovery_count ,regc 
-54b0 da4054b2 arg mouse_long_button_bt_discovery ,regb 
-54b1 20203755 branch timer_single_step 
-
-mouse_long_button_bt_discovery:
-54b2 6fe0c678 fetch 1 ,mem_device_flag 
-54b3 c1000000 rtneq mode_24g_device 
-54b4 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
-54b5 c3830000 rtnbit1 mouse_bt_discovery_button_long_down_flag 
-54b6 d8e00006 arg mouse_bt_discovery_button_long_down_flag ,queue 
-54b7 2040582e call mouse_enable_function_flag 
-54b8 20403745 call app_evt_button_long_pressed 
-54b9 2020553f branch mouse_bb_event_discovery_btn 
-
-mouse_commbination_dpi_check_timer:
-54ba 6fe0cabf fetch 1 ,mem_mouse_commbination_key_dpi 
-54bb c17f8000 rtneq gpio_disable 
-54bc 6fe0cac4 fetch 1 ,mem_mouse_pair_flag 
-54bd 207a0000 rtn blank 
-54be 204051ac call mouse_check_key_gpio 
-54bf 1a217e07 and rega ,0x07 ,pdata 
-54c0 6848cabf fetcht 1 ,mem_mouse_commbination_key_dpi 
-54c1 98467c00 isub temp ,null 
-54c2 2022d4c6 branch mouse_commbination_dpi_check ,zero 
-54c3 6fe0cac1 fetch 1 ,mem_mouse_commbination_dpi_timer 
-
-mouse_commbination_key_count_init:
-54c4 67e0cac3 store 1 ,mem_mouse_commbination_key_count 
-54c5 20600000 rtn 
-
-mouse_commbination_dpi_check:
-54c6 da604ac3 arg mem_mouse_commbination_key_count ,regc 
-54c7 da40501e arg mouse_dpi_process_skip_ghost ,regb 
-54c8 20203755 branch timer_single_step 
-
-mouse_retransmit_commbination_key_check:
-54c9 6fe0c737 fetch 1 ,mem_24g_shutdown_flag 
-54ca 207a0000 rtn blank 
-
-mouse_commbination_key_select_device_timer:
-54cb 6fe0cac0 fetch 1 ,mem_mouse_commbination_key_select_device 
-54cc c17f8000 rtneq gpio_disable 
-54cd 204051ac call mouse_check_key_gpio 
-54ce 1a217e07 and rega ,0x07 ,pdata 
-54cf 6848cac0 fetcht 1 ,mem_mouse_commbination_key_select_device 
-54d0 98467c00 isub temp ,null 
-54d1 2022d4d4 branch mouse_check_mouse_key_select_device_set ,zero 
-54d2 6fe0cac2 fetch 1 ,mem_mouse_commbination_select_device_timer 
-54d3 202054c4 branch mouse_commbination_key_count_init 
-
-mouse_check_mouse_key_select_device_set:
-54d4 da604ac3 arg mem_mouse_commbination_key_count ,regc 
-54d5 da4057f6 arg mouse_ready_reconnection_by_button ,regb 
-54d6 20203755 branch timer_single_step 
-
-mouse_commbination_key_process:
-54d7 6fe0c678 fetch 1 ,mem_device_flag 
-54d8 c00054dd beq mode_24g_device ,mouse_24g_commbination_key_process 
-54d9 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
-54da c41a8000 rtnbit0 mouse_enable_commbination_key_by_bt_discovery 
-54db 6848cabd fetcht 1 ,mem_mouse_commbination_key_bt 
-54dc 202054e0 branch mouse_commbination_key_start 
-
-mouse_24g_commbination_key_process:
-54dd 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
-54de c4190000 rtnbit0 mouse_enable_commbination_key_by_24g_pairing 
-54df 6848cabe fetcht 1 ,mem_mouse_commbination_key_24g 
-
-mouse_commbination_key_start:
-54e0 6048c733 storet 1 ,mem_mouse_commbination_key 
-54e1 204051ac call mouse_check_key_gpio 
-54e2 1a217e07 and rega ,0x07 ,pdata 
-54e3 6848c733 fetcht 1 ,mem_mouse_commbination_key 
-54e4 98467c00 isub temp ,null 
-54e5 2022d4ec branch mouse_commbination_key_down ,zero 
-
-mouse_commbination_key_up:
-54e6 6fe0c502 fetch 1 ,mem_ui_button_timeout 
-54e7 67e0c736 store 1 ,mem_combination_ui_button_count 
-54e8 6fe0c735 fetch 1 ,mem_commbination_key_statue 
-54e9 c1000000 rtneq commbination_key_state_up 
-54ea 70473500 jam commbination_key_state_up ,mem_commbination_key_statue 
-54eb 20600000 rtn 
-
-mouse_commbination_key_down:
-54ec 204054f1 call mouse_combination_ui_timer 
-54ed 6fe0c735 fetch 1 ,mem_commbination_key_statue 
-54ee c1008000 rtneq commbination_key_state_down 
-54ef 70473501 jam commbination_key_state_down ,mem_commbination_key_statue 
-54f0 20600000 rtn 
-
-mouse_combination_ui_timer:
-54f1 da405965 arg mouse_24g_start_pair_mode ,regb 
-54f2 da604736 arg mem_combination_ui_button_count ,regc 
-54f3 6fe0c678 fetch 1 ,mem_device_flag 
-54f4 c0003755 beq mode_24g_device ,timer_single_step 
-54f5 da4054b2 arg mouse_long_button_bt_discovery ,regb 
-54f6 20403755 call timer_single_step 
-54f7 6fe0c736 fetch 1 ,mem_combination_ui_button_count 
-54f8 c000d820 beq 1 ,mouse_bt_discovery_button_down_enable 
-54f9 20600000 rtn 
-
-mouse_check_discovery_timeout_timer:
-54fa da604750 arg mem_device_discovery_timer ,regc 
-54fb da4054fd arg mouse_check_discovery_timeout ,regb 
-54fc 2020375c branch timer_single_step_2b 
-
-mouse_check_discovery_timeout:
-54fd 20405562 call mouse_stop_discovery 
-54fe 20204e35 branch mouse_app_enter_hibernate 
-
-mouse_check_direct_timeout_timer:
-54ff da604720 arg mem_device_direct_timer ,regc 
-5500 da405505 arg mouse_check_direct_timeout ,regb 
-5501 20403755 call timer_single_step 
-5502 6fe0c720 fetch 1 ,mem_device_direct_timer 
-5503 c000b788 beq 1 ,app_ble_stop_direct_adv 
-5504 20600000 rtn 
-
-mouse_check_direct_timeout:
-5505 6fe0c74f fetch 1 ,mem_device_fast_conn_flag 
-5506 c07fd3b3 beq 0xff ,mouse_buletooth_fast_conn_end 
-5507 6fe0c73f fetch 1 ,mem_reconn_times 
-5508 243a5836 nbranch mouse_polling_device ,blank 
-5509 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
-550a c299d544 bbit1 mouse_enable_bt_reconnect_timeout_enter_discovery ,mouse_start_discovery 
-550b c29f595d bbit1 mouse_enable_24g_first_auto_pairing ,mouse_24g_first_bb_event_reconn_timeout 
-550c 20204e35 branch mouse_app_enter_hibernate 
-
-mouse_le_enable_att_list_timer:
-550d da604883 arg mem_le_start_encrypt_timer ,regc 
-550e da405426 arg mouse_le_write_enable ,regb 
-550f 20203755 branch timer_single_step 
-
-mouse_le_send_smp_security_request_timer:
-5510 6fe0c753 fetch 1 ,mem_device_le_bb_connected_flag 
-5511 207a0000 rtn blank 
-5512 da604755 arg mem_device_send_secutiry_request_timer ,regc 
-5513 da405515 arg mouse_le_pairing_sm_start_check ,regb 
-5514 20203755 branch timer_single_step 
-
-mouse_le_pairing_sm_start_check:
-5515 6fe0c754 fetch 1 ,mem_device_le_reconnect_flag 
-5516 247a0000 nrtn blank 
-5517 6fe0c2fe fetch 1 ,mem_le_pairing_state 
-5518 c1800000 rtnne flag_le_pairing_null 
-5519 20202fab branch le_pairing_sm_start 
-
-mouse_le_battery_updata_timer:
-551a 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
-551b c39d8000 rtnbit1 mouse_enable_le_battery_service_cancel 
-551c da60477f arg mem_le_battery_level_updata_timer ,regc 
-551d da40551f arg mouse_le_battery_level_updata ,regb 
-551e 20203755 branch timer_single_step 
-
-mouse_le_battery_level_updata:
-551f 6fe1477d fetch 2 ,mem_le_battery_level_updata_timer_init 
-5520 67e1477f store 2 ,mem_le_battery_level_updata_timer 
-5521 20205450 branch mouse_fill_battery_level_le 
-
-mouse_le_enable_att_list:
-5522 6fe0c882 fetch 1 ,mem_le_connect_status_flag 
-5523 c3810000 rtnbit1 ll_pairing_success_flag 
-5524 20405408 call mouse_updata_le_param 
-5525 d8e00000 arg write_req_enable_flag ,queue 
-5526 20205411 branch mouse_le_enable_connect_flag 
-
-mouse_current_mult_update_timer:
-5527 da60473e arg mem_mouse_current_mult_timer ,regc 
-5528 da40552a arg mouse_current_mult_reinit ,regb 
-5529 20203755 branch timer_single_step 
-
-mouse_current_mult_reinit:
-552a 6fe0c88b fetch 1 ,mem_lpm_mult_init 
-552b 67e0c0c0 store 1 ,mem_lpm_mult 
-
-mouse_long_mult_init:
-552c 6fe0c73c fetch 1 ,mem_mouse_long_mult_count 
-552d 67e0c73d store 1 ,mem_mouse_long_mult_flag 
-552e 20600000 rtn 
-
-mouse_check_no_data_timeout_timer:
-552f da604741 arg mem_device_no_data_timer ,regc 
-5530 da405532 arg mouse_check_no_data_timeout ,regb 
-5531 2020375c branch timer_single_step_2b 
-
-mouse_check_no_data_timeout:
-5532 6fe0c678 fetch 1 ,mem_device_flag 
-5533 c000590a beq mode_24g_device ,mouse_24g_hibernate_set 
-5534 202053c6 branch mouse_disconnect 
-
-mouse_no_data_timer_init:
-5535 6fe1471e fetch 2 ,mem_device_no_data_timeout 
-5536 67e14741 store 2 ,mem_device_no_data_timer 
-5537 20600000 rtn 
-
-mouse_store_information_delay_timer:
-5538 da604705 arg mem_store_information_delay_timer ,regc 
-5539 da40553b arg mouse_store_device_info_check ,regb 
-553a 20203755 branch timer_single_step 
-
-mouse_store_device_info_check:
-553b 20405574 call mouse_store_device_info 
-553c 6fe0c752 fetch 1 ,mem_device_need_soft_reset 
-553d 243a5801 nbranch mouse_soft_reset ,blank 
-553e 20600000 rtn 
-
-mouse_bb_event_discovery_btn:
-553f 280ffe26 isolate1 mark_24g ,mark 
-5540 2040d936 call mouse_24g_stop ,true 
-5541 204053c6 call mouse_disconnect 
-5542 70488200 jam 0 ,mem_le_connect_status_flag 
-5543 20205544 branch mouse_start_discovery 
-
-mouse_start_discovery:
-5544 44ca4012 bpatch patch12_4 ,mem_patch12 
-5545 20405a7a call mouse_device_discovery_led_config 
-5546 6fe14500 fetch 2 ,mem_ui_state_map 
-5547 2feffe0b isolate1 ui_state_ble_adv ,pdata 
-5548 2040d565 call mouse_stop_le_adv ,true 
-5549 204053c1 call mouse_bluetooth_fast_conn_disable 
-554a 6fe14500 fetch 2 ,mem_ui_state_map 
-554b c285d554 bbit1 ui_state_ble_adv ,mouse_start_discovery_norandom 
-554c 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
-554d c3045554 bbit0 mouse_enable_ble_random_addre ,mouse_start_discovery_norandom 
-554e 6848c6a7 fetcht 1 ,mem_random_addr_increase_count 
-554f 18408401 increase 1 ,temp 
-5550 6048c6a7 storet 1 ,mem_random_addr_increase_count 
-5551 6048c2df storet 1 ,mem_le_lap + 2 
-5552 180a7e00 random pdata 
-5553 67e142dd store 2 ,mem_le_lap 
-
-mouse_start_discovery_norandom:
-5554 6fe1c756 fetch 3 ,mem_device_le_lap_temp 
-5555 67e1c2e0 store 3 ,mem_le_lap + 3 
-5556 204037a2 call app_lpm_mult_disable 
-5557 6fe1464f fetch 2 ,mem_device_discovery_timeout 
-5558 67e14750 store 2 ,mem_device_discovery_timer 
-5559 58000000 setarg 0 
-555a 67e14741 store 2 ,mem_device_no_data_timer 
-555b 67e1477f store 2 ,mem_le_battery_level_updata_timer 
-555c 67e0c720 store 1 ,mem_device_direct_timer 
-555d 67e0c9f9 store 1 ,mem_mouse_clear_sensor_data_flag 
-555e d8e00002 arg mouse_store_eeprom_flag ,queue 
-555f 2040582e call mouse_enable_function_flag 
-5560 20405822 call mouse_bt_discovery_button_down_disable 
-5561 20205455 branch mouse_check_51cmd_adv 
-
-mouse_stop_discovery:
-5562 44cac012 bpatch patch12_5 ,mem_patch12 
-5563 d8e00006 arg mouse_bt_discovery_button_long_down_flag ,queue 
-5564 20405832 call mouse_disable_function_flag 
-
-mouse_stop_le_adv:
-5565 58000000 setarg 0 
-5566 67e0c720 store 1 ,mem_device_direct_timer 
-5567 67e14750 store 2 ,mem_device_discovery_timer 
-5568 20207866 branch check_51cmd_stop_adv 
-
-mouse_store_remote_bdaddr:
-5569 44cb4012 bpatch patch12_6 ,mem_patch12 
-556a 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
-556b c4010000 rtnbit0 mouse_store_eeprom_flag 
-556c d8e00002 arg mouse_store_eeprom_flag ,queue 
-556d 20405832 call mouse_disable_function_flag 
-556e 204067e4 call hid_device_check_device_addr 
-
-mouse_unplug_clean_bdaddr:
-556f 204067c1 call hid_device_before_store_reconn_info 
-5570 20205571 branch mouse_store_device_info_delay 
-
-mouse_store_device_info_delay:
-5571 6fe0c706 fetch 1 ,mem_store_information_delay_timer_init 
-5572 67e0c705 store 1 ,mem_store_information_delay_timer 
-5573 20600000 rtn 
-
-mouse_store_device_info:
-5574 44cbc012 bpatch patch12_7 ,mem_patch12 
-5575 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
-5576 c288d580 bbit1 mouse_enable_eeprom ,mouse_store_eeprom_device_info 
-5577 c2885588 bbit1 mouse_enable_flash ,mouse_store_flash_device_info 
-5578 c289558a bbit1 mouse_enable_otp ,mouse_store_otp_device_info 
-5579 20600000 rtn 
-
-mouse_store_dpi_info_check:
-557a 44cc4013 bpatch patch13_0 ,mem_patch13 
-557b 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
-557c c288d584 bbit1 mouse_enable_eeprom ,mouse_store_eerpom_dpi 
-557d c2895612 bbit1 mouse_enable_otp ,mouse_store_otp_dpi 
-557e c2885588 bbit1 mouse_enable_flash ,mouse_store_flash_device_info 
-557f 20600000 rtn 
-
-mouse_store_eeprom_device_info:
-5580 d8400080 arg 128 ,temp 
-5581 da204678 arg mem_device_flag ,rega 
-5582 da400000 arg mouse_info_eeprom_offect ,regb 
-5583 20206cc9 branch iicd_write_protect_eep_data 
-
-mouse_store_eerpom_dpi:
-5584 d8400001 arg 1 ,temp 
-5585 da2046a2 arg mem_mouse_dpi ,rega 
-5586 da40005a arg mouse_dpi_eeprom_offect ,regb 
-5587 20206cc9 branch iicd_write_protect_eep_data 
-
-mouse_store_flash_device_info:
-5588 204067bb call hid_device_store_flash_device_info 
-5589 20204f1b branch mouse_sensor_spi_init 
-
-mouse_store_otp_device_info:
-558a 2040558e call mouse_write_otp_app_initflag 
-558b 20405594 call mouse_write_otp_device_flag 
-558c 204055bb call mouse_write_otp_device_info 
-558d 202055fc branch mouse_write_otp_le_addr_increase_count_info 
-
-mouse_write_otp_app_initflag:
-558e 20405699 call mouse_otp_load_app_initflag 
-558f 6fe146a0 fetch 2 ,mem_store_flag 
-5590 d840aa55 arg eeprom_init_flag ,temp 
-5591 98467c00 isub temp ,null 
-5592 20628000 rtn zero 
-5593 2020569d branch mouse_otp_store_app_initflag 
-
-mouse_write_otp_device_flag:
-5594 6a414a7f fetchr regb ,2 ,mem_otp_offset_device_flag 
-5595 1a422600 copy regb ,regc 
-
-mouse_write_otp_device_flag_loop:
-5596 204056ad call mouse_read_otp_device_flag_common 
-5597 6fe0c718 fetch 1 ,mem_device_otp_flag_temp 
-5598 203a55a0 branch mouse_device_flag_store ,blank 
-5599 67e0ca32 store 1 ,mem_device_flag_last 
-559a 1a60a601 increase 1 ,regc 
-559b 6fe14a81 fetch 2 ,mem_otp_offset_device_flag_end 
-559c 9a667c00 isub regc ,null 
-559d 24610000 nrtn positive 
-559e 1a622400 copy regc ,regb 
-559f 20205596 branch mouse_write_otp_device_flag_loop 
-
-mouse_device_flag_store:
-55a0 6fe0ca32 fetch 1 ,mem_device_flag_last 
-55a1 1fe17ef0 and pdata ,0xf0 ,pdata 
-55a2 203a55aa branch mouse_device_flag_store_check ,blank 
-55a3 6fe0c678 fetch 1 ,mem_device_flag 
-55a4 204055b8 call mouse_device_flag_otp_store_judge 
-55a5 67e0ca33 store 1 ,mem_device_flag_value 
-
-mouse_devoce_flag_store_end:
-55a6 df200001 arg 1 ,loopcnt 
-55a7 1a622400 copy regc ,regb 
-55a8 da204a33 arg mem_device_flag_value ,rega 
-55a9 20206b33 branch otp_write 
-
-mouse_device_flag_store_check:
-55aa 6848ca32 fetcht 1 ,mem_device_flag_last 
-55ab 6fe0c678 fetch 1 ,mem_device_flag 
-55ac 204055b8 call mouse_device_flag_otp_store_judge 
-55ad 98467c00 isub temp ,null 
-55ae 20628000 rtn zero 
-55af 1ff27e00 lshift4 pdata ,pdata 
-55b0 9840fe00 iadd temp ,pdata 
-55b1 67e0ca33 store 1 ,mem_device_flag_value 
-55b2 1a627e00 copy regc ,pdata 
-55b3 68494a7f fetcht 2 ,mem_otp_offset_device_flag 
-55b4 98467c00 isub temp ,null 
-55b5 2022d5a6 branch mouse_devoce_flag_store_end ,zero 
-55b6 1a60a7ff increase -1 ,regc 
-55b7 202055a6 branch mouse_devoce_flag_store_end 
-
-mouse_device_flag_otp_store_judge:
-55b8 c1800000 rtnne mode_24g_device 
-55b9 1fe0fe04 increase 4 ,pdata 
-55ba 20600000 rtn 
-
-mouse_write_otp_device_info:
-55bb 6fe0c678 fetch 1 ,mem_device_flag 
-55bc c00055c0 beq mode_24g_device ,mouse_write_otp_24g_addr 
-55bd c000d5d4 beq mode_bt_device1 ,mouse_write_otp_le_device1 
-55be c00155e8 beq mode_bt_device2 ,mouse_write_otp_le_device2 
-55bf 20600000 rtn 
-
-mouse_write_otp_24g_addr:
-55c0 6a414a83 fetchr regb ,2 ,mem_otp_offset_24g_addr 
-55c1 1a422600 copy regb ,regc 
-
-mouse_otp_store_24g_addr_loop:
-55c2 20405726 call mouse_read_otp_24g_addr_common 
-55c3 6fe24a6b fetch 4 ,mem_mouse_24g_addr_temp 
-55c4 203a55cc branch mouse_24g_addr_store ,blank 
-55c5 67e24a67 store 4 ,mem_mouse_24g_addr_last 
-55c6 1a60a604 increase 4 ,regc 
-55c7 6fe14a85 fetch 2 ,mem_otp_offset_24g_addr_end 
-55c8 9a667c00 isub regc ,null 
-55c9 24610000 nrtn positive 
-55ca 1a622400 copy regc ,regb 
-55cb 202055c2 branch mouse_otp_store_24g_addr_loop 
-
-mouse_24g_addr_store:
-55cc 6fe24a67 fetch 4 ,mem_mouse_24g_addr_last 
-55cd 684a46a3 fetcht 4 ,mem_device_24g_addr 
-55ce 98467c00 isub temp ,null 
-55cf 20628000 rtn zero 
-55d0 df200004 arg 4 ,loopcnt 
-55d1 da2046a3 arg mem_device_24g_addr ,rega 
-55d2 1a622400 copy regc ,regb 
-55d3 20206b33 branch otp_write 
-
-mouse_write_otp_le_device1:
-55d4 6a414a87 fetchr regb ,2 ,mem_otp_offset_le_addr1 
-55d5 1a422600 copy regb ,regc 
-
-mouse_otp_store_le_addr1_loop:
-55d6 204056d3 call mouse_read_otp_le_addr1_common 
-55d7 6fe34a3a fetch 6 ,mem_mouse_le_addr1_temp 
-55d8 203a55e0 branch mouse_le_addr1_store ,blank 
-55d9 67e34a34 store 6 ,mem_mouse_le_addr1_last 
-55da 1a60a606 increase 6 ,regc 
-55db 6fe14a89 fetch 2 ,mem_otp_offset_le_addr1_end 
-55dc 9a667c00 isub regc ,null 
-55dd 24610000 nrtn positive 
-55de 1a622400 copy regc ,regb 
-55df 202055d6 branch mouse_otp_store_le_addr1_loop 
-
-mouse_le_addr1_store:
-55e0 6fe34a34 fetch 6 ,mem_mouse_le_addr1_last 
-55e1 684b467a fetcht 6 ,mem_device1_addr 
-55e2 98467c00 isub temp ,null 
-55e3 20628000 rtn zero 
-55e4 df200006 arg 6 ,loopcnt 
-55e5 da20467a arg mem_device1_addr ,rega 
-55e6 1a622400 copy regc ,regb 
-55e7 20206b33 branch otp_write 
-
-mouse_write_otp_le_device2:
-55e8 6a414a73 fetchr regb ,2 ,mem_otp_offset_le_addr2 
-55e9 1a422600 copy regb ,regc 
-
-mouse_otp_store_le_addr2_loop:
-55ea 204056fc call mouse_read_otp_le_addr2_common 
-55eb 6fe34a52 fetch 6 ,mem_mouse_le_addr2_temp 
-55ec 203a55f4 branch mouse_le_addr2_store ,blank 
-55ed 67e34a4c store 6 ,mem_mouse_le_addr2_last 
-55ee 1a60a606 increase 6 ,regc 
-55ef 6fe14a75 fetch 2 ,mem_otp_offset_le_addr2_end 
-55f0 9a667c00 isub regc ,null 
-55f1 24610000 nrtn positive 
-55f2 1a622400 copy regc ,regb 
-55f3 202055ea branch mouse_otp_store_le_addr2_loop 
-
-mouse_le_addr2_store:
-55f4 6fe34a4c fetch 6 ,mem_mouse_le_addr2_last 
-55f5 684b4687 fetcht 6 ,mem_device2_addr 
-55f6 98467c00 isub temp ,null 
-55f7 20628000 rtn zero 
-55f8 df200006 arg 6 ,loopcnt 
-55f9 da204687 arg mem_device2_addr ,rega 
-55fa 1a622400 copy regc ,regb 
-55fb 20206b33 branch otp_write 
-
-mouse_write_otp_le_addr_increase_count_info:
-55fc 6fe0c678 fetch 1 ,mem_device_flag 
-55fd c1000000 rtneq mode_24g_device 
-55fe 6a414a8f fetchr regb ,2 ,mem_otp_offset_le_addr_increase_count 
-55ff 1a422600 copy regb ,regc 
-
-mouse_otp_store_le_addr_increase_count_loop:
-5600 20405738 call mouse_read_otp_le_addr_increase_count_common 
-5601 6fe0ca71 fetch 1 ,mem_random_addr_increase_count_temp 
-5602 203a560a branch mouse_le_addr_increase_count_store ,blank 
-5603 67e0ca6f store 1 ,mem_random_addr_increase_count_last 
-5604 1a60a601 increase 1 ,regc 
-5605 6fe14a91 fetch 2 ,mem_otp_offset_le_addr_increase_count_end 
-5606 9a667c00 isub regc ,null 
-5607 24610000 nrtn positive 
-5608 1a622400 copy regc ,regb 
-5609 20205600 branch mouse_otp_store_le_addr_increase_count_loop 
-
-mouse_le_addr_increase_count_store:
-560a 6fe0ca6f fetch 1 ,mem_random_addr_increase_count_last 
-560b 6848c6a7 fetcht 1 ,mem_random_addr_increase_count 
-560c 98467c00 isub temp ,null 
-560d 20628000 rtn zero 
-560e df200001 arg 1 ,loopcnt 
-560f da2046a7 arg mem_random_addr_increase_count ,rega 
-5610 1a622400 copy regc ,regb 
-5611 20206b33 branch otp_write 
-
-mouse_store_otp_dpi:
-5612 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
-5613 c4070000 rtnbit0 mouse_enable_load_and_store_dpi 
-5614 6a414a7b fetchr regb ,2 ,mem_otp_offset_dpi 
-5615 1a422600 copy regb ,regc 
-
-mouse_otp_store_dpi_loop:
-5616 2040574c call mouse_read_otp_dpi_common 
-5617 6fe0ca65 fetch 1 ,mem_mouse_dpi_temp 
-5618 203a5620 branch mouse_otp_dpi_store ,blank 
-5619 67e0ca64 store 1 ,mem_mouse_dpi_last 
-561a 1a60a601 increase 1 ,regc 
-561b 6fe14a7d fetch 2 ,mem_otp_offset_dpi_end 
-561c 9a667c00 isub regc ,null 
-561d 24610000 nrtn positive 
-561e 1a622400 copy regc ,regb 
-561f 20205616 branch mouse_otp_store_dpi_loop 
-
-mouse_otp_dpi_store:
-5620 6fe0ca64 fetch 1 ,mem_mouse_dpi_last 
-5621 1fe17ef0 and pdata ,0xf0 ,pdata 
-5622 203a562a branch mouse_dpi_store_last_check ,blank 
-5623 6fe0c6a2 fetch 1 ,mem_mouse_dpi 
-5624 20405638 call mouse_dpi_otp_store_judge 
-5625 67e0ca66 store 1 ,mem_mouse_otp_dpi_value 
-
-mouse_dpi_store_end:
-5626 df200001 arg 1 ,loopcnt 
-5627 1a622400 copy regc ,regb 
-5628 da204a66 arg mem_mouse_otp_dpi_value ,rega 
-5629 20206b33 branch otp_write 
-
-mouse_dpi_store_last_check:
-562a 6848ca64 fetcht 1 ,mem_mouse_dpi_last 
-562b 6fe0c6a2 fetch 1 ,mem_mouse_dpi 
-562c 20405638 call mouse_dpi_otp_store_judge 
-562d 98467c00 isub temp ,null 
-562e 20628000 rtn zero 
-562f 1ff27e00 lshift4 pdata ,pdata 
-5630 9840fe00 iadd temp ,pdata 
-5631 67e0ca66 store 1 ,mem_mouse_otp_dpi_value 
-5632 1a627e00 copy regc ,pdata 
-5633 68494a7b fetcht 2 ,mem_otp_offset_dpi 
-5634 98467c00 isub temp ,null 
-5635 2022d626 branch mouse_dpi_store_end ,zero 
-5636 1a60a7ff increase -1 ,regc 
-5637 20205626 branch mouse_dpi_store_end 
-
-mouse_dpi_otp_store_judge:
-5638 c1800000 rtnne mouse_dpi_level1 
-5639 1fe0fe07 increase 7 ,pdata 
-563a 20600000 rtn 
-
-mouse_device_flag_check:
-563b 6fe0c678 fetch 1 ,mem_device_flag 
-563c 1fe67c04 sub pdata ,4 ,null 
-563d 20610000 rtn positive 
-563e 20407dcc call set_pdata_0 
-563f 202056bb branch mouse_store_device_flag 
-
-mouse_load_eeprom_info_check:
-5640 20406cb2 call iicd_read_init_pin 
-5641 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
-5642 2feffe09 isolate1 mouse_enable_2k_eeprom ,pdata 
-5643 2440ecba ncall clear_eeprom_size_2k ,true 
-5644 2040ecb7 call set_eeprom_size_2k ,true 
-5645 20405648 call mouse_eeprom_load_recon_info 
-5646 2040563b call mouse_device_flag_check 
-5647 20205689 branch mouse_app_initflag_load_check 
-
-mouse_eeprom_load_recon_info:
-5648 d8400080 arg 128 ,temp 
-5649 da204678 arg mem_device_flag ,rega 
-564a da400000 arg mouse_info_eeprom_offect ,regb 
-564b 20206cd7 branch iicd_read_eep_data 
-
-mouse_load_eeprom_dpi:
-564c d8400001 arg 1 ,temp 
-564d da2046a2 arg mem_mouse_dpi ,rega 
-564e da40005a arg mouse_dpi_eeprom_offect ,regb 
-564f 20206cd7 branch iicd_read_eep_data 
-
-mouse_load_flash_info_check:
-5650 204067b6 call hid_device_load_flash_info_check 
-5651 2040563b call mouse_device_flag_check 
-5652 20405689 call mouse_app_initflag_load_check 
-5653 20204f1b branch mouse_sensor_spi_init 
-
-mouse_information_flash_parameters:
-5654 580046f8 setarg mem_device_information_end 
-5655 d8404678 arg mem_device_information_start ,temp 
-5656 98460400 isub temp ,temp 
-5657 6fe1c6fe fetch 3 ,mem_flash_base 
-5658 da204678 arg mem_device_information_start ,rega 
-5659 20600000 rtn 
-
-mouse_spid_flash_release_form_powerdown:
-565a 700656ab jam flash_command_release_from_powerdown ,mem_temp 
-
-mouse_spid_write_flash_cmd:
-565b 204070bf call delay_nop100 
-565c 20406c1c call spid_unlock_flash 
-565d da204701 arg mem_write_flash_head_temp ,rega 
-565e 68488656 fetcht 1 ,mem_temp 
-565f 20405663 call mouse_spid_write_flash_cmd_common 
-5660 202070bf branch delay_nop100 
-
-mouse_spid_flash_powerdown:
-5661 700656b9 jam flash_command_powerdown ,mem_temp 
-5662 2020565b branch mouse_spid_write_flash_cmd 
-
-mouse_spid_write_flash_cmd_common:
-5663 e0408011 istoret 1 ,rega 
-5664 1ff10400 rshift16 pdata ,temp 
-5665 e0408005 istoret 1 ,contw 
-5666 1fec8400 rshift8 pdata ,temp 
-5667 e0408005 istoret 1 ,contw 
-5668 e7e08005 istore 1 ,contw 
-5669 1a227e00 deposit rega 
-566a 67f10084 store 2 ,core_spid_txaddr 
-566b 58000000 setarg 0 
-566c 67f10088 store 2 ,core_spid_rxlen 
-566d 70800602 jam spid_start ,core_misc_ctrl 
-566e 20206bd6 branch wait_spid_done 
-
-mouse_flash_erase_sector:
-566f 6fe1c6fe fetch 3 ,mem_flash_base 
-5670 67e1c430 store 3 ,mem_spi_write_addr 
-5671 20206bf0 branch spid_flash_erase_sector + 2 
-
-mouse_spid_write_flash:
-5672 1fe22600 copy pdata ,regc 
-5673 1a227e00 copy rega ,pdata 
-5674 1fe0fffc increase -4 ,pdata 
-5675 1fe22400 copy pdata ,regb 
-5676 efe20012 ifetch 4 ,regb 
-5677 67e24701 store 4 ,mem_write_flash_head_temp 
-5678 1a627e00 copy regc ,pdata 
-5679 20406c32 call spid_write_flash 
-567a 6fe24701 fetch 4 ,mem_write_flash_head_temp 
-567b e7e20012 istore 4 ,regb 
-567c 20600000 rtn 
-
-mouse_flash_power_down:
-567d 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
-567e c4080000 rtnbit0 mouse_enable_flash 
-567f 20405661 call mouse_spid_flash_powerdown 
-5680 2040696c call twspi_enable 
-5681 6848c438 fetcht 1 ,mem_spi_cs_gpio 
-5682 20406eed call gpio_out_inactive 
-5683 6848c43d fetcht 1 ,mem_spi_hold_gpio 
-5684 20204f06 branch device_gpio_config_input_pd 
-
-mouse_load_otp_info_check:
-5685 2040573e call mouse_read_otp_dpi 
-5686 204056a1 call mouse_read_otp_device_flag 
-5687 2040563b call mouse_device_flag_check 
-5688 204056bf call mouse_read_otp_device_info 
-
-mouse_app_initflag_load_check:
-5689 44ccc013 bpatch patch13_1 ,mem_patch13 
-568a 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
-568b 2feffe12 isolate1 mouse_enable_otp ,pdata 
-568c 2040d699 call mouse_otp_load_app_initflag ,true 
-568d 6fe146a0 fetch 2 ,mem_store_flag 
-568e d840aa55 arg eeprom_init_flag ,temp 
-568f 98467c00 isub temp ,null 
-5690 2022e7cf branch hid_device_load_device_info ,zero 
-
-mouse_app_initflag_load:
-5691 604946a0 storet 2 ,mem_store_flag 
-5692 204067f8 call hid_device_ble_init_address 
-5693 6fe0c717 fetch 1 ,mem_device_flag_temp 
-5694 67e0c678 store 1 ,mem_device_flag 
-5695 67e0c6a7 store 1 ,mem_random_addr_increase_count 
-
-mouse_load_default_dpi:
-5696 6fe0c899 fetch 1 ,mem_config_sensor_dpi 
-
-mouse_temp_store_dpi:
-5697 67e0c6a2 store 1 ,mem_mouse_dpi 
-5698 20600000 rtn 
-
-mouse_otp_load_app_initflag:
-5699 df200002 arg 2 ,loopcnt 
-569a 6a414a93 fetchr regb ,2 ,mem_otp_offset_app_initflag 
-569b da2046a0 arg mem_store_flag ,rega 
-569c 20206b62 branch otp_read_data 
-
-mouse_otp_store_app_initflag:
-569d df200002 arg 2 ,loopcnt 
-569e da2046a0 arg mem_store_flag ,rega 
-569f 6a414a93 fetchr regb ,2 ,mem_otp_offset_app_initflag 
-56a0 20206b33 branch otp_write 
-
-mouse_read_otp_device_flag:
-56a1 6a414a7f fetchr regb ,2 ,mem_otp_offset_device_flag 
-56a2 1a422600 copy regb ,regc 
-
-mouse_read_otp_device_flag_loop:
-56a3 204056ad call mouse_read_otp_device_flag_common 
-56a4 6fe0c718 fetch 1 ,mem_device_otp_flag_temp 
-56a5 203a56b0 branch mouse_device_flag_load ,blank 
-56a6 67e0ca32 store 1 ,mem_device_flag_last 
-56a7 1a60a601 increase 1 ,regc 
-56a8 6fe14a81 fetch 2 ,mem_otp_offset_device_flag_end 
-56a9 9a667c00 isub regc ,null 
-56aa 242156b0 nbranch mouse_device_flag_load ,positive 
-56ab 1a622400 copy regc ,regb 
-56ac 202056a3 branch mouse_read_otp_device_flag_loop 
-
-mouse_read_otp_device_flag_common:
-56ad df200001 arg 1 ,loopcnt 
-56ae da204718 arg mem_device_otp_flag_temp ,rega 
-56af 20206b62 branch otp_read_data 
-
-mouse_device_flag_load:
-56b0 6fe0ca32 fetch 1 ,mem_device_flag_last 
-56b1 1fe20400 copy pdata ,temp 
-56b2 1fe17ef0 and pdata ,0xf0 ,pdata 
-56b3 203a56b6 branch mouse_device_flag_load_last ,blank 
-56b4 1ff1fe00 rshift4 pdata ,pdata 
-56b5 202056b7 branch mouse_device_flag_load_end 
-
-mouse_device_flag_load_last:
-56b6 18427e00 copy temp ,pdata 
-
-mouse_device_flag_load_end:
-56b7 1fe67c00 sub pdata ,0 ,null 
-56b8 2022d6bd branch mouse_device_flag_temp_load ,zero 
-56b9 1fe67c04 sub pdata ,4 ,null 
-56ba 2042fdcc call set_pdata_0 ,zero 
-
-mouse_store_device_flag:
-56bb 67e0c678 store 1 ,mem_device_flag 
-56bc 20600000 rtn 
-
-mouse_device_flag_temp_load:
-56bd 6fe0c717 fetch 1 ,mem_device_flag_temp 
-56be 202056bb branch mouse_store_device_flag 
-
-mouse_read_otp_device_info:
-56bf 2040571a call mouse_read_otp_24g_addr 
-56c0 204056c3 call mouse_read_otp_le_device1 
-56c1 204056c5 call mouse_read_otp_le_device2 
-56c2 2020572c branch mouse_read_otp_le_addr_increase_count_info 
-
-mouse_read_otp_le_device1:
-56c3 204056c7 call mouse_read_otp_le_device1_addr 
-56c4 202056d9 branch mouse_read_otp_le_device1_locall_addr 
-
-mouse_read_otp_le_device2:
-56c5 204056f0 call mouse_read_otp_le_device2_addr 
-56c6 20205702 branch mouse_read_otp_le_device2_locall_addr 
-
-mouse_read_otp_le_device1_addr:
-56c7 6a414a87 fetchr regb ,2 ,mem_otp_offset_le_addr1 
-56c8 1a422600 copy regb ,regc 
-
-mouse_read_otp_le_device1_addr_loop:
-56c9 204056d3 call mouse_read_otp_le_addr1_common 
-56ca 6fe34a3a fetch 6 ,mem_mouse_le_addr1_temp 
-56cb 203a56d6 branch mouse_le_addr1_load ,blank 
-56cc 67e34a34 store 6 ,mem_mouse_le_addr1_last 
-56cd 1a60a606 increase 6 ,regc 
-56ce 6fe14a89 fetch 2 ,mem_otp_offset_le_addr1_end 
-56cf 9a667c00 isub regc ,null 
-56d0 242156d6 nbranch mouse_le_addr1_load ,positive 
-56d1 1a622400 copy regc ,regb 
-56d2 202056c9 branch mouse_read_otp_le_device1_addr_loop 
-
-mouse_read_otp_le_addr1_common:
-56d3 df200006 arg 6 ,loopcnt 
-56d4 da204a3a arg mem_mouse_le_addr1_temp ,rega 
-56d5 20206b62 branch otp_read_data 
-
-mouse_le_addr1_load:
-56d6 6fe34a34 fetch 6 ,mem_mouse_le_addr1_last 
-56d7 67e3467a store 6 ,mem_device1_addr 
-56d8 20600000 rtn 
-
-mouse_read_otp_le_device1_locall_addr:
-56d9 6a414a8b fetchr regb ,2 ,mem_otp_offset_le_locall_addr1 
-56da 1a422600 copy regb ,regc 
-
-mouse_read_otp_le_device1_locall_addr_loop:
-56db 204056e5 call mouse_read_otp_le_locall_addr1_common 
-56dc 6fe34a46 fetch 6 ,mem_mouse_le_locall_addr1_temp 
-56dd 203a56e8 branch mouse_le_locall_addr1_load ,blank 
-56de 67e34a40 store 6 ,mem_mouse_le_locall_addr1_last 
-56df 1a60a606 increase 6 ,regc 
-56e0 6fe14a8d fetch 2 ,mem_otp_offset_le_locall_addr1_end 
-56e1 9a667c00 isub regc ,null 
-56e2 242156e8 nbranch mouse_le_locall_addr1_load ,positive 
-56e3 1a622400 copy regc ,regb 
-56e4 202056db branch mouse_read_otp_le_device1_locall_addr_loop 
-
-mouse_read_otp_le_locall_addr1_common:
-56e5 df200006 arg 6 ,loopcnt 
-56e6 da204a46 arg mem_mouse_le_locall_addr1_temp ,rega 
-56e7 20206b62 branch otp_read_data 
-
-mouse_le_locall_addr1_load:
-56e8 6fe34a40 fetch 6 ,mem_mouse_le_locall_addr1_last 
-56e9 684b46f8 fetcht 6 ,mem_device_compare_addr 
-56ea 98467c00 isub temp ,null 
-56eb 2042d6ee call mouse_device_le_locall_addr1_init ,zero 
-56ec 67e34680 store 6 ,mem_device1_locall_addr 
-56ed 20600000 rtn 
-
-mouse_device_le_locall_addr1_init:
-56ee 6fe342dd fetch 6 ,mem_le_lap 
-56ef 20600000 rtn 
-
-mouse_read_otp_le_device2_addr:
-56f0 6a414a73 fetchr regb ,2 ,mem_otp_offset_le_addr2 
-56f1 1a422600 copy regb ,regc 
-
-mouse_read_otp_le_device2_addr_loop:
-56f2 204056fc call mouse_read_otp_le_addr2_common 
-56f3 6fe34a52 fetch 6 ,mem_mouse_le_addr2_temp 
-56f4 203a56ff branch mouse_le_addr2_load ,blank 
-56f5 67e34a4c store 6 ,mem_mouse_le_addr2_last 
-56f6 1a60a606 increase 6 ,regc 
-56f7 6fe14a75 fetch 2 ,mem_otp_offset_le_addr2_end 
-56f8 9a667c00 isub regc ,null 
-56f9 242156ff nbranch mouse_le_addr2_load ,positive 
-56fa 1a622400 copy regc ,regb 
-56fb 202056f2 branch mouse_read_otp_le_device2_addr_loop 
-
-mouse_read_otp_le_addr2_common:
-56fc df200006 arg 6 ,loopcnt 
-56fd da204a52 arg mem_mouse_le_addr2_temp ,rega 
-56fe 20206b62 branch otp_read_data 
-
-mouse_le_addr2_load:
-56ff 6fe34a4c fetch 6 ,mem_mouse_le_addr2_last 
-5700 67e34687 store 6 ,mem_device2_addr 
-5701 20600000 rtn 
-
-mouse_read_otp_le_device2_locall_addr:
-5702 6a414a77 fetchr regb ,2 ,mem_otp_offset_le_locall_addr2 
-5703 1a422600 copy regb ,regc 
-
-mouse_read_otp_le_device2_locall_addr_loop:
-5704 2040570e call mouse_read_otp_le_locall_addr2_common 
-5705 6fe34a5e fetch 6 ,mem_mouse_le_locall_addr2_temp 
-5706 203a5711 branch mouse_le_locall_addr2_load ,blank 
-5707 67e34a58 store 6 ,mem_mouse_le_locall_addr2_last 
-5708 1a60a606 increase 6 ,regc 
-5709 6fe14a79 fetch 2 ,mem_otp_offset_le_locall_addr2_end 
-570a 9a667c00 isub regc ,null 
-570b 24215711 nbranch mouse_le_locall_addr2_load ,positive 
-570c 1a622400 copy regc ,regb 
-570d 20205704 branch mouse_read_otp_le_device2_locall_addr_loop 
-
-mouse_read_otp_le_locall_addr2_common:
-570e df200006 arg 6 ,loopcnt 
-570f da204a5e arg mem_mouse_le_locall_addr2_temp ,rega 
-5710 20206b62 branch otp_read_data 
-
-mouse_le_locall_addr2_load:
-5711 6fe34a58 fetch 6 ,mem_mouse_le_locall_addr2_last 
-5712 684b46f8 fetcht 6 ,mem_device_compare_addr 
-5713 98467c00 isub temp ,null 
-5714 2042d717 call mouse_device_le_locall_addr2_init ,zero 
-5715 67e3468d store 6 ,mem_device2_locall_addr 
-5716 20600000 rtn 
-
-mouse_device_le_locall_addr2_init:
-5717 6fe342dd fetch 6 ,mem_le_lap 
-5718 1fe0ff00 add pdata ,0x0100 ,pdata 
-5719 20600000 rtn 
-
-mouse_read_otp_24g_addr:
-571a 6a414a83 fetchr regb ,2 ,mem_otp_offset_24g_addr 
-571b 1a422600 copy regb ,regc 
-
-mouse_read_otp_24g_addr_loop:
-571c 20405726 call mouse_read_otp_24g_addr_common 
-571d 6fe24a6b fetch 4 ,mem_mouse_24g_addr_temp 
-571e 203a5729 branch mouse_24g_addr_load ,blank 
-571f 67e24a67 store 4 ,mem_mouse_24g_addr_last 
-5720 1a60a604 increase 4 ,regc 
-5721 6fe14a85 fetch 2 ,mem_otp_offset_24g_addr_end 
-5722 9a667c00 isub regc ,null 
-5723 24215729 nbranch mouse_24g_addr_load ,positive 
-5724 1a622400 copy regc ,regb 
-5725 2020571c branch mouse_read_otp_24g_addr_loop 
-
-mouse_read_otp_24g_addr_common:
-5726 df200004 arg 4 ,loopcnt 
-5727 da204a6b arg mem_mouse_24g_addr_temp ,rega 
-5728 20206b62 branch otp_read_data 
-
-mouse_24g_addr_load:
-5729 6fe24a67 fetch 4 ,mem_mouse_24g_addr_last 
-572a 67e246a3 store 4 ,mem_device_24g_addr 
-572b 20600000 rtn 
-
-mouse_read_otp_le_addr_increase_count_info:
-572c 6a414a8f fetchr regb ,2 ,mem_otp_offset_le_addr_increase_count 
-572d 1a422600 copy regb ,regc 
-
-mouse_read_otp_le_addr_increase_count_loop:
-572e 20405738 call mouse_read_otp_le_addr_increase_count_common 
-572f 6fe0ca71 fetch 1 ,mem_random_addr_increase_count_temp 
-5730 203a573b branch mouse_le_addr_increase_count_load ,blank 
-5731 67e0ca6f store 1 ,mem_random_addr_increase_count_last 
-5732 1a60a601 increase 1 ,regc 
-5733 6fe14a91 fetch 2 ,mem_otp_offset_le_addr_increase_count_end 
-5734 9a667c00 isub regc ,null 
-5735 2421573b nbranch mouse_le_addr_increase_count_load ,positive 
-5736 1a622400 copy regc ,regb 
-5737 2020572e branch mouse_read_otp_le_addr_increase_count_loop 
-
-mouse_read_otp_le_addr_increase_count_common:
-5738 df200001 arg 1 ,loopcnt 
-5739 da204a71 arg mem_random_addr_increase_count_temp ,rega 
-573a 20206b62 branch otp_read_data 
-
-mouse_le_addr_increase_count_load:
-573b 6fe0ca6f fetch 1 ,mem_random_addr_increase_count_last 
-573c 67e0c6a7 store 1 ,mem_random_addr_increase_count 
-573d 20600000 rtn 
-
-mouse_read_otp_dpi:
-573e 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
-573f c3075696 bbit0 mouse_enable_load_and_store_dpi ,mouse_load_default_dpi 
-5740 6a414a7b fetchr regb ,2 ,mem_otp_offset_dpi 
-5741 1a422600 copy regb ,regc 
-
-mouse_read_otp_dpi_loop:
-5742 2040574c call mouse_read_otp_dpi_common 
-5743 6fe0ca65 fetch 1 ,mem_mouse_dpi_temp 
-5744 203a574f branch mouse_dpi_load ,blank 
-5745 67e0ca64 store 1 ,mem_mouse_dpi_last 
-5746 1a60a601 increase 1 ,regc 
-5747 6fe14a7d fetch 2 ,mem_otp_offset_dpi_end 
-5748 9a667c00 isub regc ,null 
-5749 2421574f nbranch mouse_dpi_load ,positive 
-574a 1a622400 copy regc ,regb 
-574b 20205742 branch mouse_read_otp_dpi_loop 
-
-mouse_read_otp_dpi_common:
-574c df200001 arg 1 ,loopcnt 
-574d da204a65 arg mem_mouse_dpi_temp ,rega 
-574e 20206b62 branch otp_read_data 
-
-mouse_dpi_load:
-574f 6fe0ca64 fetch 1 ,mem_mouse_dpi_last 
-5750 1fe20400 copy pdata ,temp 
-5751 1fe17ef0 and pdata ,0xf0 ,pdata 
-5752 203a5755 branch mouse_dpi_load_last ,blank 
-5753 1ff1fe00 rshift4 pdata ,pdata 
-5754 20205756 branch mouse_dpi_load_end 
-
-mouse_dpi_load_last:
-5755 18427e00 copy temp ,pdata 
-
-mouse_dpi_load_end:
-5756 1fe67c07 sub pdata ,7 ,null 
-5757 2042fdcc call set_pdata_0 ,zero 
-5758 20205697 branch mouse_temp_store_dpi 
-
-mouse_idle:
-5759 44cd4013 bpatch patch13_2 ,mem_patch13 
-575a 20405add call mouse_low_voltage_led_no_enter_lpm 
-575b 2040789a call ui_check_paring_button 
-575c 20404fdb call mouse_dpi_check 
-575d 20405132 call mouse_dpi_another_gpio_check 
-575e 20405767 call mouse_select_device_check 
-575f 204057b8 call mouse_check_select_device_by_switch 
-5760 20405815 call mouse_bt_button_check 
-5761 20404f42 call mouse_wheel_check 
-5762 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
-5763 c4060000 rtnbit0 mouse_enable_usb 
-5764 44cdc013 bpatch patch13_3 ,mem_patch13 
-5765 20405b87 call mouse_usb_isr 
-5766 20205bb0 branch mouse_usb_mode 
-
-mouse_select_device_check:
-5767 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
-5768 c294d76b bbit1 mouse_enable_select_device_by_pb_button ,mouse_select_device_by_pb_button 
-5769 c29bd76b bbit1 mouse_enable_pb_button_long_press_disconvery ,mouse_select_device_by_pb_button 
-576a 20600000 rtn 
-
-mouse_select_device_by_pb_button:
-576b 2040576d call mouse_select_device_by_pb_button_check 
-576c 2020577e branch mouse_select_device_by_pb_button_exit 
-
-mouse_select_device_by_pb_button_check:
-576d 44ce4013 bpatch patch13_4 ,mem_patch13 
-576e da200000 arg 0 ,rega 
-576f 704a0f06 jam mouse_pb_key ,mem_mouse_key_temp 
-5770 6848c89d fetcht 1 ,mem_config_select_device_button_gpio 
-5771 20405781 call mouse_pb_button_check 
-5772 67e0ca0d store 1 ,mem_mouse_pbkey_press_status 
-5773 6fe0c89c fetch 1 ,mem_matrix_public_gpio 
-5774 c07fd77c beq gpio_disable ,mouse_3io6key_pb_button_check_end 
-5775 20205203 branch mouse_matrix_public_gpio_reset 
-
-mouse_retransmit_select_device_by_pb_button:
-5776 6fe0c89d fetch 1 ,mem_config_select_device_button_gpio 
-5777 c17f8000 rtneq gpio_disable 
-5778 2040576d call mouse_select_device_by_pb_button_check 
-5779 1a227e00 copy rega ,pdata 
-577a c28357a4 bbit1 mouse_pb_key ,mouse_select_device_button_down + 2 
-577b 20205797 branch mouse_select_device_button_up 
-
-mouse_3io6key_pb_button_check_end:
-577c 6848c89d fetcht 1 ,mem_config_select_device_button_gpio 
-577d 20404f0a call device_gpio_config_input_pu 
-
-mouse_select_device_by_pb_button_exit:
-577e 1a227e00 copy rega ,pdata 
-577f c28357a2 bbit1 mouse_pb_key ,mouse_select_device_button_down 
-5780 20205797 branch mouse_select_device_button_up 
-
-mouse_pb_button_check:
-5781 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
-5782 c296d78d bbit1 mouse_enable_pb_button_connect_gnd ,mouse_pb_button_connect_gnd 
-5783 6fe0ca0d fetch 1 ,mem_mouse_pbkey_press_status 
-5784 1fe22600 copy pdata ,regc 
-5785 6fe0c89c fetch 1 ,mem_matrix_public_gpio 
-5786 c07fd242 beq gpio_disable ,mouse_3io6key_check 
-5787 6fe0ca13 fetch 1 ,mem_mouse_ghost_flag 
-5788 243a578a nbranch mouse_select_device_by_pb_button_end ,blank 
-5789 2020578f branch mouse_pb_button_connect_matrix 
-
-mouse_select_device_by_pb_button_end:
-578a 70473400 jam pb_button_state_up ,mem_select_device_button_statue 
-578b 704a0d00 jam 0 ,mem_mouse_pbkey_press_status 
-578c 20600000 rtn 
-
-mouse_pb_button_connect_gnd:
-578d 6fe0ca0d fetch 1 ,mem_mouse_pbkey_press_status 
-578e 20205236 branch mouse_check_key_connect_gnd 
-
-mouse_pb_button_connect_matrix:
-578f 20406ee0 call gpio_get_bit 
-5790 6848c89c fetcht 1 ,mem_matrix_public_gpio 
-5791 2020d78d branch mouse_pb_button_connect_gnd ,true 
-5792 6848c89c fetcht 1 ,mem_matrix_public_gpio 
-5793 20406ef1 call gpio_out_active 
-5794 6848c89d fetcht 1 ,mem_config_select_device_button_gpio 
-5795 6fe0ca0d fetch 1 ,mem_mouse_pbkey_press_status 
-5796 20205236 branch mouse_check_key_connect_gnd 
-
-mouse_select_device_button_up:
-5797 6fe0c734 fetch 1 ,mem_select_device_button_statue 
-5798 c1000000 rtneq pb_button_state_up 
-5799 70473400 jam pb_button_state_up ,mem_select_device_button_statue 
-579a 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
-579b c39a0000 rtnbit1 mouse_enable_pb_button_short_press_enter_discovery 
-579c 6fe0c731 fetch 1 ,mem_bt_discovery_count 
-579d 1fe67c14 sub pdata ,20 ,null 
-579e 244157f6 ncall mouse_ready_reconnection_by_button ,positive 
-579f 6fe0c502 fetch 1 ,mem_ui_button_timeout 
-57a0 67e0c731 store 1 ,mem_bt_discovery_count 
-57a1 20600000 rtn 
-
-mouse_select_device_button_down:
-57a2 204057ae call mouse_select_device_ghost_check 
-57a3 20740000 rtn user 
-57a4 6fe0c734 fetch 1 ,mem_select_device_button_statue 
-57a5 c1008000 rtneq pb_button_state_down 
-57a6 70473401 jam pb_button_state_down ,mem_select_device_button_statue 
-57a7 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
-57a8 c29a54b2 bbit1 mouse_enable_pb_button_short_press_enter_discovery ,mouse_long_button_bt_discovery 
-57a9 6fe0c720 fetch 1 ,mem_device_direct_timer 
-57aa 207a0000 rtn blank 
-57ab 6fe0c653 fetch 1 ,mem_device_direct_timeout 
-57ac 67e0c720 store 1 ,mem_device_direct_timer 
-57ad 20600000 rtn 
-
-mouse_select_device_ghost_check:
-57ae 78547c00 disable user 
-57af 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
-57b0 c3968000 rtnbit1 mouse_enable_pb_button_connect_gnd 
-
-mouse_ghost_key_value_check:
-57b1 6fe0ca07 fetch 1 ,mem_mouse_lkey_press_status 
-57b2 207a0000 rtn blank 
-57b3 6fe0ca08 fetch 1 ,mem_mouse_rkey_press_status 
-57b4 207a0000 rtn blank 
-57b5 6fe0ca09 fetch 1 ,mem_mouse_mkey_press_status 
-57b6 207a0000 rtn blank 
-57b7 20207dbc branch enable_user 
-
-mouse_check_select_device_by_switch:
-57b8 44cec013 bpatch patch13_5 ,mem_patch13 
-57b9 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
-57ba c4150000 rtnbit0 mouse_enable_select_device_by_switch_gpio 
-57bb c30b57bf bbit0 mouse_enable_switch_gpio_connect_vin ,mouse_switch_gpio_connect_gnd_check 
-
-mouse_switch_gpio_connect_vin_check:
-57bc 204057c2 call mouse_switch_gpio_connect_vin 
-57bd 6fe0c665 fetch 1 ,mem_device_switch_gpio 
-57be 20205258 branch mouse_gpio_config_pu_check 
-
-mouse_switch_gpio_connect_gnd_check:
-57bf 204057c8 call mouse_switch_gpio_connect_gnd 
-57c0 6fe0c665 fetch 1 ,mem_device_switch_gpio 
-57c1 2020525c branch mouse_gpio_config_pd_check 
-
-mouse_switch_gpio_connect_vin:
-57c2 6fe0c665 fetch 1 ,mem_device_switch_gpio 
-57c3 2040525c call mouse_gpio_config_pd_check 
-57c4 6848c665 fetcht 1 ,mem_device_switch_gpio 
-57c5 20406ee0 call gpio_get_bit 
-57c6 2020d7ce branch mouse_select_btdevice ,true 
-57c7 202057d2 branch mouse_select_24gdevice 
-
-mouse_switch_gpio_connect_gnd:
-57c8 6fe0c665 fetch 1 ,mem_device_switch_gpio 
-57c9 20405258 call mouse_gpio_config_pu_check 
-57ca 6848c665 fetcht 1 ,mem_device_switch_gpio 
-57cb 20406ee0 call gpio_get_bit 
-57cc 2020d7d2 branch mouse_select_24gdevice ,true 
-57cd 202057ce branch mouse_select_btdevice 
-
-mouse_select_btdevice:
-57ce 6fe0c678 fetch 1 ,mem_device_flag 
-57cf c1008000 rtneq mode_bt_device1 
-57d0 70467801 jam mode_bt_device1 ,mem_device_flag 
-57d1 202057d5 branch mouse_select_device_set 
-
-mouse_select_24gdevice:
-57d2 6fe0c678 fetch 1 ,mem_device_flag 
-57d3 c1000000 rtneq mode_24g_device 
-57d4 70467800 jam mode_24g_device ,mem_device_flag 
-
-mouse_select_device_set:
-57d5 204057f0 call mouse_select_device_stop_set 
-57d6 20205801 branch mouse_soft_reset 
-
-mouse_check_select_device_by_switch_once:
-57d7 44cf4013 bpatch patch13_6 ,mem_patch13 
-57d8 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
-57d9 c4150000 rtnbit0 mouse_enable_select_device_by_switch_gpio 
-57da c30b57de bbit0 mouse_enable_switch_gpio_connect_vin ,mouse_switch_gpio_connect_gnd_check_once 
-
-mouse_switch_gpio_connect_vin_check_once:
-57db 204057e1 call mouse_switch_gpio_connect_vin_once 
-57dc 6fe0c665 fetch 1 ,mem_device_switch_gpio 
-57dd 20205258 branch mouse_gpio_config_pu_check 
-
-mouse_switch_gpio_connect_gnd_check_once:
-57de 204057e7 call mouse_switch_gpio_connect_gnd_once 
-57df 6fe0c665 fetch 1 ,mem_device_switch_gpio 
-57e0 2020525c branch mouse_gpio_config_pd_check 
-
-mouse_switch_gpio_connect_vin_once:
-57e1 6fe0c665 fetch 1 ,mem_device_switch_gpio 
-57e2 2040525c call mouse_gpio_config_pd_check 
-57e3 6848c665 fetcht 1 ,mem_device_switch_gpio 
-57e4 20406ee0 call gpio_get_bit 
-57e5 2020d7f2 branch mouse_check_select_btdevice ,true 
-57e6 202057ed branch mouse_check_select_24g_device 
-
-mouse_switch_gpio_connect_gnd_once:
-57e7 6fe0c665 fetch 1 ,mem_device_switch_gpio 
-57e8 20405258 call mouse_gpio_config_pu_check 
-57e9 6848c665 fetcht 1 ,mem_device_switch_gpio 
-57ea 20406ee0 call gpio_get_bit 
-57eb 2020d7ed branch mouse_check_select_24g_device ,true 
-57ec 202057f2 branch mouse_check_select_btdevice 
-
-mouse_check_select_24g_device:
-57ed 6fe0c678 fetch 1 ,mem_device_flag 
-57ee c1000000 rtneq mode_24g_device 
-57ef 70467800 jam mode_24g_device ,mem_device_flag 
-
-mouse_select_device_stop_set:
-57f0 20405936 call mouse_24g_stop 
-57f1 202053c3 branch mouse_stop_bluetooth_mode 
-
-mouse_check_select_btdevice:
-57f2 6fe0c678 fetch 1 ,mem_device_flag 
-57f3 c1008000 rtneq mode_bt_device1 
-57f4 70467801 jam mode_bt_device1 ,mem_device_flag 
-57f5 202057f0 branch mouse_select_device_stop_set 
-
-mouse_ready_reconnection_by_button:
-57f6 44cfc013 bpatch patch13_7 ,mem_patch13 
-57f7 6fe0c716 fetch 1 ,mem_device_number 
-57f8 c1008000 rtneq 1 
-57f9 20405803 call mouse_select_device_number 
-57fa 6048c678 storet 1 ,mem_device_flag 
-
-mouse_store_device_number_before_reset:
-57fb 20405818 call mouse_select_device_enable 
-57fc 204053c3 call mouse_stop_bluetooth_mode 
-57fd 20403745 call app_evt_button_long_pressed 
-57fe 2040581a call mouse_select_device_disable 
-57ff 70475201 jam 1 ,mem_device_need_soft_reset 
-5800 20205571 branch mouse_store_device_info_delay 
-
-mouse_soft_reset:
-5801 20405818 call mouse_select_device_enable 
-5802 20206c99 branch soft_reset_chip 
-
-mouse_select_device_number:
-5803 6848c678 fetcht 1 ,mem_device_flag 
-5804 18408401 increase 1 ,temp 
-5805 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
-5806 c287d80b bbit1 mouse_enable_24g ,mouse_select_device_number_24g 
-5807 18467c02 sub temp ,2 ,null 
-5808 20610000 rtn positive 
-
-mouse_select_device_count_clean_bt:
-5809 d8400001 arg 1 ,temp 
-580a 20600000 rtn 
-
-mouse_select_device_number_24g:
-580b 6fe0c716 fetch 1 ,mem_device_number 
-580c 1fe0ffff increase -1 ,pdata 
-580d 98467c00 isub temp ,null 
-580e 20610000 rtn positive 
-
-mouse_select_device_count_clean_24g:
-580f d8400000 arg 0 ,temp 
-5810 20600000 rtn 
-
-mouse_store_device_number2eeprom:
-5811 d8400001 arg 1 ,temp 
-5812 da204678 arg mem_device_flag ,rega 
-5813 da400000 arg 0 ,regb 
-5814 20206cc9 branch iicd_write_protect_eep_data 
-
-mouse_bt_button_check:
-5815 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
-5816 c41a0000 rtnbit0 mouse_enable_pb_button_short_press_enter_discovery 
-5817 2020576b branch mouse_select_device_by_pb_button 
-
-mouse_select_device_enable:
-5818 d8e00000 arg mouse_select_device_flag ,queue 
-5819 2020582e branch mouse_enable_function_flag 
-
-mouse_select_device_disable:
-581a d8e00000 arg mouse_select_device_flag ,queue 
-581b 20205832 branch mouse_disable_function_flag 
-
-mouse_bt_cannel_reconn_enable:
-581c d8e00003 arg mouse_bt_cannel_reconn_flag ,queue 
-581d 2020582e branch mouse_enable_function_flag 
-
-mouse_bt_cannel_reconn_disable:
-581e d8e00003 arg mouse_bt_cannel_reconn_flag ,queue 
-581f 20205832 branch mouse_disable_function_flag 
-
-mouse_bt_discovery_button_down_enable:
-5820 d8e00005 arg mouse_bt_discovery_button_down_flag ,queue 
-5821 2020582e branch mouse_enable_function_flag 
-
-mouse_bt_discovery_button_down_disable:
-5822 d8e00005 arg mouse_bt_discovery_button_down_flag ,queue 
-5823 20205832 branch mouse_disable_function_flag 
-
-mouse_adc_read_enable:
-5824 d8e00013 arg mouse_enable_adc ,queue 
-5825 2020582e branch mouse_enable_function_flag 
-
-mouse_24g_set_250hz:
-5826 d8e00018 arg mouse_enable_24g_250hz ,queue 
-5827 2020582e branch mouse_enable_function_flag 
-
-mouse_24g_search_dongle_enable:
-5828 d8e0000d arg mouse_enable_24g_search_dongle ,queue 
-5829 2020582e branch mouse_enable_function_flag 
-
-mouse_16m_enable:
-582a d8e0000b arg mouse_enable_16m ,queue 
-582b 2020582e branch mouse_enable_function_flag 
-
-mouse_dpi_4level_enable:
-582c d8e0001c arg mouse_enable_dpi_level_4 ,queue 
-582d 2020582e branch mouse_enable_function_flag 
-
-mouse_enable_function_flag:
-582e 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
-582f f9207e00 qset1 pdata 
-5830 67e4470e store mouse_flag_len ,mem_mouse_flag 
-5831 20600000 rtn 
-
-mouse_disable_function_flag:
-5832 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
-5833 f93ffe00 qset0 pdata 
-5834 67e4470e store mouse_flag_len ,mem_mouse_flag 
-5835 20600000 rtn 
-
-mouse_polling_device:
-5836 44d04014 bpatch patch14_0 ,mem_patch14 
-5837 6fe0c73f fetch 1 ,mem_reconn_times 
-5838 1fe0ffff increase -1 ,pdata 
-5839 67e0c73f store 1 ,mem_reconn_times 
-583a 6848c678 fetcht 1 ,mem_device_flag 
-583b 18467c01 sub temp ,1 ,null 
-583c 2442d803 ncall mouse_select_device_number ,zero 
-583d 6048c678 storet 1 ,mem_device_flag 
-583e 20405811 call mouse_store_device_number2eeprom 
-583f 204067c1 call hid_device_before_store_reconn_info 
-5840 20204e09 branch mouse_start_reconnect_device 
-
-mouse_drawing_optima:
-5841 44d0c014 bpatch patch14_1 ,mem_patch14 
-5842 6fe0c9fa fetch 1 ,mem_config_sensor_type 
-5843 c1018000 rtneq p3212 
-5844 c1058000 rtneq ka8g2 
-5845 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
-5846 c41c0000 rtnbit0 mouse_enable_smoother 
-5847 6fe2465d fetch 4 ,mem_mouse_x 
-5848 207a0000 rtn blank 
-5849 204058e6 call mouse_data_abs_check 
-584a 58000003 setarg 0x03 
-584b 204058dc call mouse_pdata_greater_than_check 
-584c 205a58d8 call mouse_disable_asm ,blank 
-584d 245a58da ncall mouse_enable_asm ,blank 
-584e 58000002 setarg 0x02 
-584f 204058e1 call mouse_data_less_than_check 
-5850 205a58d8 call mouse_disable_asm ,blank 
-5851 6fe0c8fe fetch 1 ,mem_mouse_asm_flag 
-5852 c000d858 beq 1 ,mouse_drawing_optima_modify 
-
-mouse_drawing_optima_init:
-5853 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
-5854 c41c0000 rtnbit0 mouse_enable_smoother 
-5855 df200005 arg 5 ,loopcnt 
-5856 d8a048fe arg mem_mouse_asm_flag ,contw 
-5857 20207ca3 branch clear_mem 
-
-mouse_drawing_optima_modify:
-5858 2040586c call mouse_drawing_optima_xy_offset_modify 
-5859 6fe148ff fetch 2 ,mem_mouse_x_pre 
-585a 67e106e9 store 2 ,mem_data_pre 
-585b 6fe1465d fetch 2 ,mem_mouse_x 
-585c 67e106eb store 2 ,mem_data_current 
-585d 204058a2 call mouse_drawing_optima_data_x 
-585e 6fe106e9 fetch 2 ,mem_data_pre 
-585f 67e148ff store 2 ,mem_mouse_x_pre 
-5860 6fe106eb fetch 2 ,mem_data_current 
-5861 67e1465d store 2 ,mem_mouse_x 
-5862 6fe14901 fetch 2 ,mem_mouse_y_pre 
-5863 67e106e9 store 2 ,mem_data_pre 
-5864 6fe1465f fetch 2 ,mem_mouse_y 
-5865 67e106eb store 2 ,mem_data_current 
-5866 204058aa call mouse_drawing_optima_data_y 
-5867 6fe106e9 fetch 2 ,mem_data_pre 
-5868 67e14901 store 2 ,mem_mouse_y_pre 
-5869 6fe106eb fetch 2 ,mem_data_current 
-
-mouse_data_y_store:
-586a 67e1465f store 2 ,mem_mouse_y 
-586b 20600000 rtn 
-
-mouse_drawing_optima_xy_offset_modify:
-586c 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
-586d c41c8000 rtnbit0 mouse_enable_xy_offset 
-586e 44d14014 bpatch patch14_2 ,mem_patch14 
-586f 6fe148ff fetch 2 ,mem_mouse_x_pre 
-5870 67e106f0 store 2 ,mem_data_value 
-5871 2040587f call mouse_pre_xy_data_judge 
-5872 67e148ff store 2 ,mem_mouse_x_pre 
-5873 6fe1465d fetch 2 ,mem_mouse_x 
-5874 67e106f0 store 2 ,mem_data_value 
-5875 2040588d call mouse_current_xy_data_judge 
-5876 67e1465d store 2 ,mem_mouse_x 
-5877 6fe14901 fetch 2 ,mem_mouse_y_pre 
-5878 67e106f0 store 2 ,mem_data_value 
-5879 2040587f call mouse_pre_xy_data_judge 
-587a 67e14901 store 2 ,mem_mouse_y_pre 
-587b 6fe1465f fetch 2 ,mem_mouse_y 
-587c 67e106f0 store 2 ,mem_data_value 
-587d 2040588d call mouse_current_xy_data_judge 
-587e 2020586a branch mouse_data_y_store 
-
-mouse_pre_xy_data_judge:
-587f 6fe086f1 fetch 1 ,mem_data_value + 1 
-5880 203a5882 branch mouse_pre_xy_pdata_offset ,blank 
-5881 20205887 branch mouse_pre_xy_ndata_offset 
-
-mouse_pre_xy_pdata_offset:
-5882 6fe086f0 fetch 1 ,mem_data_value 
-5883 2040589a call mouse_pre_xy_get_0_4_times 
-5884 67e086f0 store 1 ,mem_data_value 
-
-mouse_xy_data_offset_new:
-5885 6fe106f0 fetch 2 ,mem_data_value 
-5886 20600000 rtn 
-
-mouse_pre_xy_ndata_offset:
-5887 6fe086f0 fetch 1 ,mem_data_value 
-5888 204058d4 call mouse_pdata_invert 
-5889 2040589a call mouse_pre_xy_get_0_4_times 
-588a 205a7dca call disable_blank ,blank 
-588b 204058d0 call mouse_pdata_get_new_value 
-588c 20205885 branch mouse_xy_data_offset_new 
-
-mouse_current_xy_data_judge:
-588d 6fe086f1 fetch 1 ,mem_data_value + 1 
-588e 203a5890 branch mouse_current_xy_pdata_offset ,blank 
-588f 20205894 branch mouse_current_xy_ndata_offset 
-
-mouse_current_xy_pdata_offset:
-5890 6fe086f0 fetch 1 ,mem_data_value 
-5891 2040589d call mouse_current_xy_get_0_6_times 
-5892 67e086f0 store 1 ,mem_data_value 
-5893 20205885 branch mouse_xy_data_offset_new 
-
-mouse_current_xy_ndata_offset:
-5894 6fe086f0 fetch 1 ,mem_data_value 
-5895 204058d4 call mouse_pdata_invert 
-5896 2040589d call mouse_current_xy_get_0_6_times 
-5897 205a7dca call disable_blank ,blank 
-5898 204058d0 call mouse_pdata_get_new_value 
-5899 20205885 branch mouse_xy_data_offset_new 
-
-mouse_pre_xy_get_0_4_times:
-589a 1feffe04 mul32 pdata ,4 ,pdata 
-589b 1fe6fc05 div pdata ,5 
-589c 2020589f branch mouse_div_end 
-
-mouse_current_xy_get_0_6_times:
-589d 1feffe0c mul32 pdata ,12 ,pdata 
-589e 1fe6fc0a div pdata ,10 
-
-mouse_div_end:
-589f 20407d64 call wait_div_end 
-58a0 1807fe00 quotient pdata 
-58a1 20600000 rtn 
-
-mouse_drawing_optima_data_x:
-58a2 6fe106e9 fetch 2 ,mem_data_pre 
-58a3 684906eb fetcht 2 ,mem_data_current 
-58a4 9840fe00 iadd temp ,pdata 
-58a5 6848c903 fetcht 1 ,mem_mouse_data_xtemp 
-58a6 9840fe00 iadd temp ,pdata 
-58a7 1fe10401 and pdata ,0x01 ,temp 
-58a8 6048c903 storet 1 ,mem_mouse_data_xtemp 
-58a9 202058b2 branch mouse_drawing_optima_data 
-
-mouse_drawing_optima_data_y:
-58aa 6fe106e9 fetch 2 ,mem_data_pre 
-58ab 684906eb fetcht 2 ,mem_data_current 
-58ac 9840fe00 iadd temp ,pdata 
-58ad 6848c904 fetcht 1 ,mem_mouse_data_ytemp 
-58ae 9840fe00 iadd temp ,pdata 
-58af 1fe10401 and pdata ,0x01 ,temp 
-58b0 6048c904 storet 1 ,mem_mouse_data_ytemp 
-58b1 202058b2 branch mouse_drawing_optima_data 
-
-mouse_drawing_optima_data:
-58b2 67e186ed store 3 ,mem_data_sum 
-58b3 2feffe10 isolate1 16 ,pdata 
-58b4 2020d8bc branch mouse_data_sum_overflow ,true 
-58b5 6fe086ee fetch 1 ,mem_data_sum + 1 
-58b6 c07fd8c3 beq 0xff ,mouse_data_sum_n 
-58b7 6fe086ed fetch 1 ,mem_data_sum 
-
-mouse_data_store_pre:
-58b8 1fe37e00 rshift pdata ,pdata 
-58b9 67e106e9 store 2 ,mem_data_pre 
-58ba 67e106eb store 2 ,mem_data_current 
-58bb 20600000 rtn 
-
-mouse_data_sum_overflow:
-58bc 6fe086ee fetch 1 ,mem_data_sum + 1 
-58bd c00058c0 beq 0 ,mouse_data_sum_overflow_p 
-58be 6fe186ed fetch 3 ,mem_data_sum 
-58bf 202058b8 branch mouse_data_store_pre 
-
-mouse_data_sum_overflow_p:
-58c0 7006ef00 jam 0 ,mem_data_sum + 2 
-58c1 6fe086ed fetch 1 ,mem_data_sum 
-58c2 202058b8 branch mouse_data_store_pre 
-
-mouse_data_sum_n:
-58c3 6fe086ed fetch 1 ,mem_data_sum 
-58c4 204058ce call mouse_pdata_get_half 
-58c5 67e086e9 store 1 ,mem_data_pre 
-58c6 67e086eb store 1 ,mem_data_current 
-58c7 203a58cc branch mouse_data_zero ,blank 
-58c8 580000ff setarg 0xff 
-
-mouse_data_set_direction:
-58c9 67e086ea store 1 ,mem_data_pre + 1 
-58ca 67e086ec store 1 ,mem_data_current + 1 
-58cb 20600000 rtn 
-
-mouse_data_zero:
-58cc 58000000 setarg 0 
-58cd 202058c9 branch mouse_data_set_direction 
-
-mouse_pdata_get_half:
-58ce 204058d4 call mouse_pdata_invert 
-58cf 1fe37e00 rshift pdata ,pdata 
-
-mouse_pdata_get_new_value:
-58d0 204058d5 call mouse_rega_in_out 
-58d1 1fe67e00 sub pdata ,0 ,pdata 
-58d2 67e086f0 store 1 ,mem_data_value 
-58d3 20600000 rtn 
-
-mouse_pdata_invert:
-58d4 1fe67e00 sub pdata ,0 ,pdata 
-
-mouse_rega_in_out:
-58d5 67e08662 store 1 ,mem_rega 
-58d6 6fe08662 fetch 1 ,mem_rega 
-58d7 20600000 rtn 
-
-mouse_disable_asm:
-58d8 7048fe00 jam 0 ,mem_mouse_asm_flag 
-58d9 20600000 rtn 
-
-mouse_enable_asm:
-58da 7048fe01 jam 1 ,mem_mouse_asm_flag 
-58db 20600000 rtn 
-
-mouse_pdata_greater_than_check:
-58dc 9a267c00 isub rega ,null 
-58dd 24217dca nbranch disable_blank ,positive 
-58de 9a467c00 isub regb ,null 
-58df 24217dca nbranch disable_blank ,positive 
-58e0 20207dcc branch enable_blank 
-
-mouse_data_less_than_check:
-58e1 9a267c00 isub rega ,null 
-58e2 24610000 nrtn positive 
-58e3 9a467c00 isub regb ,null 
-58e4 24610000 nrtn positive 
-58e5 20207dcc branch enable_blank 
-
-mouse_data_abs_check:
-58e6 6fe1465d fetch 2 ,mem_mouse_x 
-58e7 204058ed call mouse_data_abs 
-58e8 1fe22200 copy pdata ,rega 
-58e9 6fe1465f fetch 2 ,mem_mouse_y 
-58ea 204058ed call mouse_data_abs 
-58eb 1fe22400 copy pdata ,regb 
-58ec 20600000 rtn 
-
-mouse_data_abs:
-58ed 67e106eb store 2 ,mem_data_current 
-58ee 6fe086ec fetch 1 ,mem_data_current + 1 
-58ef c07fd8f3 beq 0xff ,mouse_data_reversal 
-58f0 6fe086eb fetch 1 ,mem_data_current 
-
-mouse_data_abs_store:
-58f1 1fe17eff and_into 0xff ,pdata 
-58f2 20600000 rtn 
-
-mouse_data_reversal:
-58f3 6fe106eb fetch 2 ,mem_data_current 
-58f4 1fe67e00 sub pdata ,0 ,pdata 
-58f5 202058f1 branch mouse_data_abs_store 
-
-mouse_24g_long_sleep_param_update_timer:
-58f6 da604636 arg mem_24g_long_sleep_param_update_timer ,regc 
-58f7 da4058f9 arg mouse_24g_long_sleep_normal_param ,regb 
-58f8 20203755 branch timer_single_step 
-
-mouse_24g_long_sleep_normal_param:
-58f9 6fe2462a fetch 4 ,mem_24g_long_sleep_set1 
-58fa 67e245c6 store 4 ,mem_24g_enter_hibernate 
-58fb 2020552c branch mouse_long_mult_init 
-
-mouse_24g_long_sleep_set:
-58fc 6fe0c738 fetch 1 ,mem_24g_long_sleep_set_level 
-58fd c0005904 beq 0x00 ,mouse_24g_long_sleep_set_30ms 
-58fe c000d906 beq 0x01 ,mouse_24g_long_sleep_set_50ms 
-58ff c0015901 beq 0x02 ,mouse_24g_long_sleep_set_80ms 
-5900 c001d908 beq 0x03 ,mouse_24g_long_sleep_set_100ms 
-
-mouse_24g_long_sleep_set_80ms:
-5901 580ea600 setarg 0x0ea600 
-
-mouse_24g_long_sleep_set_end:
-5902 67e2462a store 4 ,mem_24g_long_sleep_set1 
-5903 20600000 rtn 
-
-mouse_24g_long_sleep_set_30ms:
-5904 5805e740 setarg 0x05e740 
-5905 20205902 branch mouse_24g_long_sleep_set_end 
-
-mouse_24g_long_sleep_set_50ms:
-5906 580927c0 setarg 0x0927c0 
-5907 20205902 branch mouse_24g_long_sleep_set_end 
-
-mouse_24g_long_sleep_set_100ms:
-5908 58124f80 setarg 0x124f80 
-5909 20205902 branch mouse_24g_long_sleep_set_end 
-
-mouse_24g_hibernate_set:
-590a 44d1c014 bpatch patch14_3 ,mem_patch14 
-590b 704ac400 jam 0 ,mem_mouse_pair_flag 
-590c 70461700 jam 0 ,mem_24g_attempt_fail_flag 
-590d 20403620 call g24_transmit_next_packet 
-590e 5fffffff setarg -1 
-590f 67e445c6 store 8 ,mem_24g_enter_hibernate 
-5910 58000000 setarg 0 
-5911 67e3c65c store 7 ,mem_mouse_key 
-5912 70473701 jam 1 ,mem_24g_shutdown_flag 
-5913 20405303 call mouse_sensor_powerdown 
-5914 20404e42 call mouse_setgpio_hibernate 
-5915 20205af7 branch mouse_24g_long_sleep 
-
-mouse_wakeup_24g:
-5916 44d24014 bpatch patch14_4 ,mem_patch14 
-5917 6fe0c737 fetch 1 ,mem_24g_shutdown_flag 
-5918 245a591b ncall mouse_wakeup_24g_from_long_sleep ,blank 
-5919 70473700 jam 0 ,mem_24g_shutdown_flag 
-591a 20600000 rtn 
-
-mouse_wakeup_24g_from_long_sleep:
-591b 704ac401 jam 1 ,mem_mouse_pair_flag 
-591c 20405263 call mouse_init_sensor_wakeup 
-591d 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
-591e c41e0000 rtnbit0 mouse_enable_wheel_wake_up_cancel 
-
-mouse_wheel_gpio_init:
-591f 6848c668 fetcht 1 ,mem_whee_a_data_gpio 
-5920 20404f0a call device_gpio_config_input_pu 
-5921 6848c669 fetcht 1 ,mem_whee_b_data_gpio 
-5922 20204f0a branch device_gpio_config_input_pu 
-
-mouse_24g_transmit_start:
-5923 20405927 call mouse_24g_fast_conn_mode_check 
-5924 6fe0c737 fetch 1 ,mem_24g_shutdown_flag 
-5925 243a5b02 nbranch mouse_24g_short_sleep ,blank 
-5926 202035e8 branch g24_transmit_start_next 
-
-mouse_24g_fast_conn_mode_check:
-5927 6fe245ff fetch 4 ,mem_24g_receiver_addr 
-5928 684a45fb fetcht 4 ,mem_24g_fast_conn_addr 
-5929 98467c00 isub temp ,null 
-592a 2022d92d branch mouse_soft_agc_enable ,zero 
-
-mouse_soft_agc_disable:
-592b 704143ff jam 0xff ,mem_gain_fix 
-592c 20600000 rtn 
-
-mouse_soft_agc_enable:
-592d 70414300 jam 0 ,mem_gain_fix 
-592e 704141aa jam tx_power_factory ,mem_tx_power 
-592f 20600000 rtn 
-
-device_store_normal_tx_power:
-5930 6fe0c141 fetch 1 ,mem_tx_power 
-5931 67e0c656 store 1 ,mem_device_normal_tx_power 
-5932 20600000 rtn 
-
-device_fetch_normal_tx_power:
-5933 6fe0c656 fetch 1 ,mem_device_normal_tx_power 
-5934 67e0c141 store 1 ,mem_tx_power 
-5935 20600000 rtn 
-
-mouse_24g_stop:
-5936 793f8026 set0 mark_24g ,mark 
-5937 70461300 jam state_24g_stop ,mem_24g_conn_sm 
-5938 d8e00001 arg mouse_24g_pairing_flag ,queue 
-5939 20205832 branch mouse_disable_function_flag 
-
-mouse_24g_start_mode:
-593a 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
-593b c307d948 bbit0 mouse_enable_24g ,mouse_24g_mode_setup_error 
-593c 20405a69 call mouse_device_24g_pair_led_config 
-593d 20404e14 call mouse_wakeup_from_power_check 
-593e 20345988 branch mouse_24g_reconn_dongle_start ,user 
-593f 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
-5940 c298594d bbit1 mouse_enable_auto_24g_paring ,mouse_24g_reconn_general_dongle 
-5941 c318d94d bbit0 mouse_enable_24g_power_on_pairing ,mouse_24g_reconn_general_dongle 
-5942 204051a7 call mouse_key_check_once 
-5943 1a217e07 and rega ,0x07 ,pdata 
-5944 6848cabe fetcht 1 ,mem_mouse_commbination_key_24g 
-5945 98467c00 isub temp ,null 
-5946 2022d965 branch mouse_24g_start_pair_mode ,zero 
-5947 2020594d branch mouse_24g_reconn_general_dongle 
-
-mouse_24g_mode_setup_error:
-5948 6fe0c73f fetch 1 ,mem_reconn_times 
-5949 243a5836 nbranch mouse_polling_device ,blank 
-594a 20600000 rtn 
-
-mouse_24g_first_start_auto_pair_mode:
-594b 20404e14 call mouse_wakeup_from_power_check 
-594c 20345956 branch mouse_24g_first_start_reconn ,user 
-
-mouse_24g_reconn_general_dongle:
-594d 70467800 jam mode_24g_device ,mem_device_flag 
-594e 6fe1471a fetch 2 ,mem_device_24g_power_on_fast_conn_timer 
-594f 67e145f5 store 2 ,mem_24g_reconn_timeout 
-5950 7045f901 jam fast_conn_and_receiver ,mem_24g_reconn_type 
-5951 2020350a branch g24_reconn_start 
-
-mouse_24g_start_auto_pair:
-5952 6fe145ed fetch 2 ,mem_24g_pair_timeout_init 
-5953 67e145f5 store 2 ,mem_24g_reconn_timeout 
-5954 7045f904 jam pair_and_3_0_addr ,mem_24g_reconn_type 
-5955 2020350a branch g24_reconn_start 
-
-mouse_24g_first_start_reconn:
-5956 6fe0c678 fetch 1 ,mem_device_flag 
-5957 c0005988 beq mode_24g_device ,mouse_24g_reconn_dongle_start 
-5958 204053c1 call mouse_bluetooth_fast_conn_disable 
-
-mouse_24g_first_bluetooth_reconnect:
-5959 20405936 call mouse_24g_stop 
-595a 70467801 jam mode_bt_device1 ,mem_device_flag 
-595b 204067d5 call hid_device_select_reconn_device 
-595c 20204dfa branch mouse_le_fast_conn_judge 
-
-mouse_24g_first_bb_event_reconn_timeout:
-595d 20404e14 call mouse_wakeup_from_power_check 
-595e 20344e35 branch mouse_app_enter_hibernate ,user 
-595f 20205544 branch mouse_start_discovery 
-
-mouse_24g_first_store_reconn_info:
-5960 20404e14 call mouse_wakeup_from_power_check 
-5961 20740000 rtn user 
-5962 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
-5963 c29f5571 bbit1 mouse_enable_24g_first_auto_pairing ,mouse_store_device_info_delay 
-5964 20600000 rtn 
-
-mouse_24g_start_pair_mode:
-5965 20405a69 call mouse_device_24g_pair_led_config 
-5966 7045f900 jam 0 ,mem_24g_reconn_type 
-5967 d8e00001 arg mouse_24g_pairing_flag ,queue 
-5968 2040582e call mouse_enable_function_flag 
-5969 58000000 setarg 0 
-596a 67e145f5 store 2 ,mem_24g_reconn_timeout 
-596b 20405562 call mouse_stop_discovery 
-
-mouse_24g_pair_mode_check:
-596c 7045a001 jam type_ms ,mem_24g_data_type 
-596d 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
-596e c30a326f bbit0 mouse_enable_keyboard ,g24_pair_start 
-596f 7045a002 jam type_kb ,mem_24g_data_type 
-5970 2020326f branch g24_pair_start 
-
-mouse_24g_attempt_fail:
-5971 2040592b call mouse_soft_agc_disable 
-5972 20405933 call device_fetch_normal_tx_power 
-5973 6fe0c617 fetch 1 ,mem_24g_attempt_fail_flag 
-5974 243a590a nbranch mouse_24g_hibernate_set ,blank 
-5975 6fe0c5f9 fetch 1 ,mem_24g_reconn_type 
-5976 c0015980 beq fast_conn_and_3_0_addr ,mouse_24g_fast_conn_attempt_fail 
-5977 c000d980 beq fast_conn_and_receiver ,mouse_24g_fast_conn_attempt_fail 
-5978 c002598c beq pair_and_3_0_addr ,mouse_24g_auto_pair_attempt_fail 
-5979 c001d991 beq receiver_and_3_0_addr ,mouse_reconn_dongle_attempt_fail 
-
-mouse_24g_attempt_fail_enter_hibernate:
-597a 20405936 call mouse_24g_stop 
-597b 6fe0c73f fetch 1 ,mem_reconn_times 
-597c 243a5836 nbranch mouse_polling_device ,blank 
-597d 6fe0c678 fetch 1 ,mem_device_flag 
-597e c0004e35 beq mode_24g_device ,mouse_app_enter_hibernate 
-597f 20600000 rtn 
-
-mouse_24g_fast_conn_attempt_fail:
-5980 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
-5981 c29f5952 bbit1 mouse_enable_24g_first_auto_pairing ,mouse_24g_start_auto_pair 
-5982 c2985952 bbit1 mouse_enable_auto_24g_paring ,mouse_24g_start_auto_pair 
-5983 c31d5988 bbit0 mouse_enable_24g_auto_pair_nerver_been_paired ,mouse_24g_reconn_dongle_start 
-5984 6fe246a3 fetch 4 ,mem_device_24g_addr 
-5985 684a46f8 fetcht 4 ,mem_device_compare_addr 
-5986 98467c00 isub temp ,null 
-5987 2022d965 branch mouse_24g_start_pair_mode ,zero 
-
-mouse_24g_reconn_dongle_start:
-5988 6fe145f3 fetch 2 ,mem_24g_reconn_timeout_init 
-5989 67e145f5 store 2 ,mem_24g_reconn_timeout 
-598a 7045f903 jam receiver_and_3_0_addr ,mem_24g_reconn_type 
-598b 2020350a branch g24_reconn_start 
-
-mouse_24g_auto_pair_attempt_fail:
-598c 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
-598d c31f597a bbit0 mouse_enable_24g_first_auto_pairing ,mouse_24g_attempt_fail_enter_hibernate 
-598e 6fe0c716 fetch 1 ,mem_device_number 
-598f c000d97a beq 1 ,mouse_24g_attempt_fail_enter_hibernate 
-5990 20205959 branch mouse_24g_first_bluetooth_reconnect 
-
-mouse_reconn_dongle_attempt_fail:
-5991 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
-5992 c31f597a bbit0 mouse_enable_24g_first_auto_pairing ,mouse_24g_attempt_fail_enter_hibernate 
-5993 c288d97a bbit1 mouse_enable_eeprom ,mouse_24g_attempt_fail_enter_hibernate 
-5994 c288597a bbit1 mouse_enable_flash ,mouse_24g_attempt_fail_enter_hibernate 
-5995 c289597a bbit1 mouse_enable_otp ,mouse_24g_attempt_fail_enter_hibernate 
-5996 20205952 branch mouse_24g_start_auto_pair 
-
-mouse_24g_attempt_success:
-5997 6fe245a6 fetch 4 ,mem_24g_addr 
-5998 67e245ff store 4 ,mem_24g_receiver_addr 
-5999 67e246a3 store 4 ,mem_device_24g_addr 
-599a 20403530 call g24_ch_syncword_crc8_init 
-599b 20405535 call mouse_no_data_timer_init 
-599c 20405a62 call mouse_device_poweron_led_config 
-599d 2040538d call mouse_init_sensor_reset 
-599e 70473d00 jam 0 ,mem_mouse_long_mult_flag 
-599f 70461300 jam 0 ,mem_24g_conn_sm 
-59a0 7045f900 jam 0 ,mem_24g_reconn_type 
-59a1 6fe245ff fetch 4 ,mem_24g_receiver_addr 
-59a2 684a45fb fetcht 4 ,mem_24g_fast_conn_addr 
-59a3 98467c00 isub temp ,null 
-59a4 20628000 rtn zero 
-59a5 2040592b call mouse_soft_agc_disable 
-59a6 20405933 call device_fetch_normal_tx_power 
-59a7 20205960 branch mouse_24g_first_store_reconn_info 
-
-mouse_24g_pairing_complete:
-59a8 2040592b call mouse_soft_agc_disable 
-59a9 20405933 call device_fetch_normal_tx_power 
-59aa 2040538d call mouse_init_sensor_reset 
-59ab 2040539e call mouse_read_sensor_common 
-59ac 20405a62 call mouse_device_poweron_led_config 
-59ad 20405535 call mouse_no_data_timer_init 
-59ae d8e00001 arg mouse_24g_pairing_flag ,queue 
-59af 20405832 call mouse_disable_function_flag 
-59b0 58000000 setarg 0 
-59b1 67e145ef store 2 ,mem_24g_pair_timeout 
-59b2 67e145f5 store 2 ,mem_24g_reconn_timeout 
-59b3 67e0c613 store 1 ,mem_24g_conn_sm 
-59b4 67e0c8fd store 1 ,mem_mouse_move_flag 
-59b5 67e0c5f9 store 1 ,mem_24g_reconn_type 
-59b6 6fe245a6 fetch 4 ,mem_24g_addr 
-59b7 67e245ff store 4 ,mem_24g_receiver_addr 
-59b8 67e246a3 store 4 ,mem_device_24g_addr 
-59b9 20205571 branch mouse_store_device_info_delay 
-
-mouse_24g_short_sleep_clear_wake:
-59ba 20407de6 call clear_wake 
-59bb 202023e1 branch lpm_write_gpio_wakeup 
-
-mouse_24g_package_data:
-59bc 44d2c014 bpatch patch14_5 ,mem_patch14 
-59bd c6930000 rtnmark0 mark_24g 
-59be 20404f26 call mouse_motion 
-59bf 24740000 nrtn user 
-59c0 6fe0c73b fetch 1 ,mem_mouse_24g_long_sleep_flag 
-59c1 70473b00 jam 0 ,mem_mouse_24g_long_sleep_flag 
-59c2 245a59ba ncall mouse_24g_short_sleep_clear_wake ,blank 
-59c3 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
-59c4 c30a59c7 bbit0 mouse_enable_keyboard ,mouse_24g_mouse_package_data 
-59c5 6fe0c72b fetch 1 ,mem_customer_key 
-59c6 243a59dc nbranch mouse_24g_keyboard_package_data ,blank 
-
-mouse_24g_mouse_package_data:
-59c7 2040538e call mouse_data_xy_release 
-59c8 6fe0c5a0 fetch 1 ,mem_24g_data_type 
-59c9 c280d9d6 bbit1 1 ,mouse_24g_mouse_package_data_now 
-59ca 6848c531 fetcht 1 ,mem_24g_txbuf + 1 
-59cb 6fe0c65c fetch 1 ,mem_mouse_key 
-59cc 9841fe00 ior temp ,pdata 
-59cd 67e0c65c store 1 ,mem_mouse_key 
-59ce 6848c536 fetcht 1 ,mem_24g_txbuf + 6 
-59cf 6fe0c661 fetch 1 ,mem_mouse_z 
-59d0 9840fe00 iadd temp ,pdata 
-59d1 67e0c661 store 1 ,mem_mouse_z 
-59d2 6848c537 fetcht 1 ,mem_24g_txbuf + 7 
-59d3 6fe0c662 fetch 1 ,mem_mouse_tz 
-59d4 9840fe00 iadd temp ,pdata 
-59d5 67e0c662 store 1 ,mem_mouse_tz 
-
-mouse_24g_mouse_package_data_now:
-59d6 7045a001 jam type_ms ,mem_24g_data_type 
-59d7 da200007 arg 7 ,rega 
-59d8 da40465c arg mem_mouse_key ,regb 
-59d9 6fe14661 fetch 2 ,mem_mouse_z 
-59da 207a0000 rtn blank 
-59db 202036bb branch g24_transmit_by_interrupt_enable 
-
-mouse_24g_keyboard_package_data:
-59dc 7045a002 jam type_kb ,mem_24g_data_type 
-59dd da200009 arg 9 ,rega 
-59de 20206852 branch hid_device_24g_keyboard_package_data_set 
-
-mouse_g24_retransmit:
-59df 6fe0c752 fetch 1 ,mem_device_need_soft_reset 
-59e0 247a0000 nrtn blank 
-59e1 204059e3 call mouse_g24_retransmit_100ms_timer 
-59e2 2020363b branch g24_retransmit0 
-
-mouse_g24_retransmit_100ms_timer:
-59e3 d8e0000c arg 12 ,queue 
-59e4 20407cf1 call timer_check 
-59e5 247a0000 nrtn blank 
-
-mouse_g24_retransmit_100ms_timer_next:
-59e6 20405776 call mouse_retransmit_select_device_by_pb_button 
-59e7 204054c9 call mouse_retransmit_commbination_key_check 
-59e8 204059ed call mouse_dpi_check_once 
-59e9 20405050 call mouse_dpi_key_check_long_press 
-
-mouse_g24_retransmit_100ms_timer_init:
-59ea d8e0000c arg 12 ,queue 
-59eb 580000a0 setarg 160 
-59ec 20207ce3 branch timer_init 
-
-mouse_dpi_check_once:
-59ed 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
-59ee c4140000 rtnbit0 mouse_enable_select_device_by_dpi_button 
-59ef 20204fdb branch mouse_dpi_check 
-
-mouse_24g_before_lpm_sleep:
-59f0 20406f4b call lpm_puchk_set_check 
-59f1 202068c4 branch hid_device_before_lpm_set 
-
-mouse_logo_led_on_timer:
-59f2 6fe0c8a1 fetch 1 ,mem_mouse_logo_led_gpio 
-59f3 c17f8000 rtneq gpio_disable 
-59f4 6fe14741 fetch 2 ,mem_device_no_data_timer 
-59f5 207a0000 rtn blank 
-59f6 6fe1471e fetch 2 ,mem_device_no_data_timeout 
-59f7 68494741 fetcht 2 ,mem_device_no_data_timer 
-59f8 98460400 isub temp ,temp 
-59f9 6fe148bb fetch 2 ,mem_mouse_logo_led_on_time_init 
-59fa 98467e00 isub temp ,pdata 
-59fb 202159fe branch mouse_logo_led_on ,positive 
-
-mouse_logo_led_off:
-59fc 6848c8a1 fetcht 1 ,mem_mouse_logo_led_gpio 
-59fd 20205ab6 branch mouse_led_off 
-
-mouse_logo_led_on:
-59fe 6848c8a1 fetcht 1 ,mem_mouse_logo_led_gpio 
-59ff 20205ab5 branch mouse_led_on 
-
-mouse_dpi_led_blink_delay_timer:
-5a00 da6048bd arg mem_mouse_dpi_led_delay_count ,regc 
-5a01 da405a03 arg mouse_dpi_led_blink_init ,regb 
-5a02 20203755 branch timer_single_step 
-
-mouse_dpi_led_blink_init:
-5a03 44d34014 bpatch patch14_6 ,mem_patch14 
-5a04 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
-5a05 c28e5a0b bbit1 mouse_enable_dpi_level_4 ,mouse_dpi_led_blink_set_4_level 
-
-mouse_dpi_led_blink_set_3_level:
-5a06 6fe0c6a2 fetch 1 ,mem_mouse_dpi 
-5a07 c0005a13 beq mouse_dpi_level1 ,mouse_dpi_level_2_blink 
-5a08 c000da15 beq mouse_dpi_level2 ,mouse_dpi_level_3_blink 
-5a09 c0015a11 beq mouse_dpi_level3 ,mouse_dpi_level_1_blink 
-5a0a 20600000 rtn 
-
-mouse_dpi_led_blink_set_4_level:
-5a0b 6fe0c6a2 fetch 1 ,mem_mouse_dpi 
-5a0c c0005a15 beq mouse_dpi_level1 ,mouse_dpi_level_3_blink 
-5a0d c000da17 beq mouse_dpi_level2 ,mouse_dpi_level_4_blink 
-5a0e c0015a11 beq mouse_dpi_level3 ,mouse_dpi_level_1_blink 
-5a0f c001da13 beq mouse_dpi_level4 ,mouse_dpi_level_2_blink 
-5a10 20600000 rtn 
-
-mouse_dpi_level_1_blink:
-5a11 58000002 setarg 2 
-5a12 20205a19 branch mouse_multi_dpi_led_blink_enable 
-
-mouse_dpi_level_2_blink:
-5a13 58000004 setarg 4 
-5a14 20205a19 branch mouse_multi_dpi_led_blink_enable 
-
-mouse_dpi_level_3_blink:
-5a15 58000006 setarg 6 
-5a16 20205a19 branch mouse_multi_dpi_led_blink_enable 
-
-mouse_dpi_level_4_blink:
-5a17 58000008 setarg 8 
-5a18 20205a19 branch mouse_multi_dpi_led_blink_enable 
-
-mouse_multi_dpi_led_blink_enable:
-5a19 67e0c8b8 store 1 ,mem_mouse_multi_led_blink_count 
-5a1a 7048ab04 jam 4 ,mem_mouse_multi_led_blink_type 
-5a1b 20405a59 call mouse_multi_dpi_led_blink_timer_init 
-5a1c 7048a901 jam multi_led_blink ,mem_mouse_multi_led_type 
-5a1d 20205a66 branch mouse_multi_led_enable 
-
-mouse_dpi_led_blink_delay:
-5a1e 6fe0cac4 fetch 1 ,mem_mouse_pair_flag 
-5a1f 207a0000 rtn blank 
-5a20 6fe0c8be fetch 1 ,mem_mouse_dpi_led_delay_count_init 
-5a21 203a5a03 branch mouse_dpi_led_blink_init ,blank 
-5a22 67e0c8bd store 1 ,mem_mouse_dpi_led_delay_count 
-5a23 20600000 rtn 
-
-mouse_check_dpi_blink:
-5a24 78547c00 disable user 
-5a25 6fe0c8ab fetch 1 ,mem_mouse_multi_led_blink_type 
-5a26 1fe67c04 sub pdata ,4 ,null 
-5a27 24628000 nrtn zero 
-5a28 20207dbc branch enable_user 
-
-mouse_low_voltage_led_timer:
-5a29 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
-5a2a c4118000 rtnbit0 mouse_enable_low_led 
-5a2b c4020000 rtnbit0 mouse_low_voltage_flag 
-5a2c 6fe0cac4 fetch 1 ,mem_mouse_pair_flag 
-5a2d 207a0000 rtn blank 
-5a2e 20405a24 call mouse_check_dpi_blink 
-5a2f 20740000 rtn user 
-5a30 6fe0c8ba fetch 1 ,mem_mouse_multi_low_led_blink_count 
-5a31 203a5a47 branch mouse_low_led_blink_count_init_judge ,blank 
-
-mouse_low_led_blink_timer:
-5a32 6848c64d fetcht 1 ,mem_adc_low_volatage_led_timer_count 
-5a33 18408401 increase 1 ,temp 
-5a34 6048c64d storet 1 ,mem_adc_low_volatage_led_timer_count 
-5a35 6fe0c8b4 fetch 1 ,mem_mouse_low_led_blink_timer 
-5a36 98467c00 isub temp ,null 
-5a37 24415a3f ncall mouse_low_led_timer_count_clean ,positive 
-5a38 6fe0c8b5 fetch 1 ,mem_mouse_low_led_blink_half_timer 
-5a39 98467c00 isub temp ,null 
-5a3a 24215a43 nbranch mouse_low_voltage_led_off_judge ,positive 
-
-mouse_low_voltage_led_on_judge:
-5a3b 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
-5a3c c2925aaa bbit1 mouse_enable_low_for_led ,mouse_device_led_on 
-
-mouse_low_voltage_led_on:
-5a3d 6848c8a5 fetcht 1 ,mem_mouse_low_voltage_alarm_gpio 
-5a3e 20205ab5 branch mouse_led_on 
-
-mouse_low_led_timer_count_clean:
-5a3f 70464d01 jam 1 ,mem_adc_low_volatage_led_timer_count 
-5a40 6fe0c8ba fetch 1 ,mem_mouse_multi_low_led_blink_count 
-5a41 1fe0ffff increase -1 ,pdata 
-5a42 67e0c8ba store 1 ,mem_mouse_multi_low_led_blink_count 
-
-mouse_low_voltage_led_off_judge:
-5a43 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
-5a44 c2925abc bbit1 mouse_enable_low_for_led ,mouse_device_led_off 
-
-mouse_low_voltage_led_off:
-5a45 6848c8a5 fetcht 1 ,mem_mouse_low_voltage_alarm_gpio 
-5a46 20205ab6 branch mouse_led_off 
-
-mouse_low_led_blink_count_init_judge:
-5a47 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
-5a48 c2915a43 bbit1 mouse_enable_low_led_blink_limit ,mouse_low_voltage_led_off_judge 
-5a49 20405a52 call mouse_multi_low_led_blink_count_init 
-5a4a 20205a32 branch mouse_low_led_blink_timer 
-
-mouse_device_multi_led_parm_init:
-5a4b 7048a800 jam 0 ,mem_mouse_multi_led_blink_enable 
-5a4c 20405ace call mouse_device_multi_led_all_off 
-5a4d 7048ab00 jam 0 ,mem_mouse_multi_led_blink_type 
-5a4e 6fe0c8b4 fetch 1 ,mem_mouse_low_led_blink_timer 
-5a4f 1fe37e00 rshift pdata ,pdata 
-5a50 67e0c8b5 store 1 ,mem_mouse_low_led_blink_half_timer 
-5a51 20600000 rtn 
-
-mouse_multi_low_led_blink_count_init:
-5a52 6fe0c8b9 fetch 1 ,mem_mouse_multi_lowled_blink_count_init 
-5a53 67e0c8ba store 1 ,mem_mouse_multi_low_led_blink_count 
-5a54 20600000 rtn 
-
-mouse_multi_led_blink_timer_init:
-5a55 6fe0c8ab fetch 1 ,mem_mouse_multi_led_blink_type 
-5a56 c000da5c beq 1 ,mouse_device_24g_led_blink_timer_init 
-5a57 c0015a5e beq 2 ,mouse_device_le_discovery_led_blink_timer_init 
-5a58 c001da60 beq 3 ,mouse_device_le_reconn_led_blink_timer_init 
-
-mouse_multi_dpi_led_blink_timer_init:
-5a59 6fe0c8b2 fetch 1 ,mem_mouse_dpi_led_blink_timer_init 
-
-mouse_store_multi_led_blink_timer:
-5a5a 67e0c8b3 store 1 ,mem_mouse_multi_led_blink_timer 
-5a5b 20600000 rtn 
-
-mouse_device_24g_led_blink_timer_init:
-5a5c 6fe0c8af fetch 1 ,mem_mouse_multi_24gled_blink_timer_init 
-5a5d 20205a5a branch mouse_store_multi_led_blink_timer 
-
-mouse_device_le_discovery_led_blink_timer_init:
-5a5e 6fe0c8b0 fetch 1 ,mem_mouse_multi_le_discovery_blink_timer_init 
-5a5f 20205a5a branch mouse_store_multi_led_blink_timer 
-
-mouse_device_le_reconn_led_blink_timer_init:
-5a60 6fe0c8b1 fetch 1 ,mem_mouse_multi_le_reconn_blink_timer_init 
-5a61 20205a5a branch mouse_store_multi_led_blink_timer 
-
-mouse_device_poweron_led_config:
-5a62 44d3c014 bpatch patch14_7 ,mem_patch14 
-5a63 6fe0c8ad fetch 1 ,mem_mouse_multi_led_powon_timer_init 
-5a64 67e0c8ae store 1 ,mem_mouse_multi_led_powon_timer 
-5a65 7048a900 jam multi_led_on ,mem_mouse_multi_led_type 
-
-mouse_multi_led_enable:
-5a66 7048aa00 jam off ,mem_mouse_multi_led_state 
-5a67 7048a801 jam on ,mem_mouse_multi_led_blink_enable 
-5a68 20600000 rtn 
-
-mouse_device_24g_pair_led_config:
-5a69 44d44015 bpatch patch15_0 ,mem_patch15 
-5a6a 20405a7c call mouse_multi_led_blink_enable_init 
-5a6b 7048ab01 jam 1 ,mem_mouse_multi_led_blink_type 
-5a6c 6fe0c8ac fetch 1 ,mem_mouse_le_reconn_blink_limit 
-5a6d 207a0000 rtn blank 
-5a6e 6fe0c8b6 fetch 1 ,mem_mouse_multi_24gled_blink_count_init 
-5a6f 20205a78 branch mouse_device_led_blink_count_init 
-
-mouse_device_le_reconn_led_config:
-5a70 4769c03a bpatchx patch3a_3 ,mem_patch3a 
-5a71 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
-5a72 c4108000 rtnbit0 mouse_enable_bt_reconn_led_effect 
-5a73 20405a7c call mouse_multi_led_blink_enable_init 
-5a74 7048ab03 jam 3 ,mem_mouse_multi_led_blink_type 
-5a75 6fe0c8ac fetch 1 ,mem_mouse_le_reconn_blink_limit 
-5a76 207a0000 rtn blank 
-5a77 6fe0c8b7 fetch 1 ,mem_mouse_multi_le_reconn_blink_count_init 
-
-mouse_device_led_blink_count_init:
-5a78 67e0c8b8 store 1 ,mem_mouse_multi_led_blink_count 
-5a79 20600000 rtn 
-
-mouse_device_discovery_led_config:
-5a7a 7048ac00 jam 0 ,mem_mouse_le_reconn_blink_limit 
-5a7b 7048ab02 jam 2 ,mem_mouse_multi_led_blink_type 
-
-mouse_multi_led_blink_enable_init:
-5a7c 476a403a bpatchx patch3a_4 ,mem_patch3a 
-5a7d 7048b30a jam 0x0a ,mem_mouse_multi_led_blink_timer 
-5a7e 7048a801 jam 1 ,mem_mouse_multi_led_blink_enable 
-5a7f 7048a901 jam multi_led_blink ,mem_mouse_multi_led_type 
-5a80 20205aa9 branch mouse_device_multi_led_on 
-
-mouse_led_multi_timer:
-5a81 6fe0c8a8 fetch 1 ,mem_mouse_multi_led_blink_enable 
-5a82 207a0000 rtn blank 
-5a83 6fe0c8a9 fetch 1 ,mem_mouse_multi_led_type 
-5a84 c000da8e beq multi_led_blink ,mouse_multi_led_type_blink 
-
-mouse_device_multi_led_type_on:
-5a85 6fe0c8ae fetch 1 ,mem_mouse_multi_led_powon_timer 
-5a86 203a5a8a branch mouse_device_poweron_led_off ,blank 
-5a87 1fe0ffff increase -1 ,pdata 
-5a88 67e0c8ae store 1 ,mem_mouse_multi_led_powon_timer 
-5a89 20205aaa branch mouse_device_led_on 
-
-mouse_device_poweron_led_off:
-5a8a 7048a800 jam 0 ,mem_mouse_multi_led_blink_enable 
-5a8b 704ac401 jam 1 ,mem_mouse_pair_flag 
-5a8c 20405a52 call mouse_multi_low_led_blink_count_init 
-5a8d 20205abc branch mouse_device_led_off 
-
-mouse_multi_led_type_blink:
-5a8e 44d4c015 bpatch patch15_1 ,mem_patch15 
-5a8f 6fe0c8ab fetch 1 ,mem_mouse_multi_led_blink_type 
-5a90 207a0000 rtn blank 
-5a91 c0025a96 beq 4 ,mouse_device_led_blink_limit 
-5a92 20205a93 branch mouse_device_led_blink_judge 
-
-mouse_device_led_blink_judge:
-5a93 6fe0c8ac fetch 1 ,mem_mouse_le_reconn_blink_limit 
-5a94 c000da96 beq 1 ,mouse_device_led_blink_limit 
-5a95 20205a98 branch mouse_multi_led_type_blink_next 
-
-mouse_device_led_blink_limit:
-5a96 6fe0c8b8 fetch 1 ,mem_mouse_multi_led_blink_count 
-5a97 203a5ab7 branch mouse_multi_led_off_judge ,blank 
-
-mouse_multi_led_type_blink_next:
-5a98 da6048b3 arg mem_mouse_multi_led_blink_timer ,regc 
-5a99 da405a9b arg mouse_multi_led_type_blink_start ,regb 
-5a9a 20203755 branch timer_single_step 
-
-mouse_multi_led_type_blink_start:
-5a9b 6fe0c8ab fetch 1 ,mem_mouse_multi_led_blink_type 
-5a9c c0025aa3 beq 4 ,mouse_multi_led_blink_count_decrease 
-5a9d 6fe0c8ac fetch 1 ,mem_mouse_le_reconn_blink_limit 
-5a9e c000daa3 beq 1 ,mouse_multi_led_blink_count_decrease 
-
-mouse_multi_led_blink:
-5a9f 20405a55 call mouse_multi_led_blink_timer_init 
-5aa0 6fe0c8aa fetch 1 ,mem_mouse_multi_led_state 
-5aa1 c000dab9 beq on ,mouse_multi_led_off_judge_next 
-5aa2 20205aa7 branch mouse_multi_led_on_judge 
-
-mouse_multi_led_blink_count_decrease:
-5aa3 6fe0c8b8 fetch 1 ,mem_mouse_multi_led_blink_count 
-5aa4 1fe0ffff increase -1 ,pdata 
-5aa5 67e0c8b8 store 1 ,mem_mouse_multi_led_blink_count 
-5aa6 20205a9f branch mouse_multi_led_blink 
-
-mouse_multi_led_on_judge:
-5aa7 6fe0c8ab fetch 1 ,mem_mouse_multi_led_blink_type 
-5aa8 c0025ad8 beq 4 ,mouse_multi_dpi_led_on_judge 
-
-mouse_device_multi_led_on:
-5aa9 7048aa01 jam on ,mem_mouse_multi_led_state 
-
-mouse_device_led_on:
-5aaa 44d54015 bpatch patch15_2 ,mem_patch15 
-5aab 6fe0c678 fetch 1 ,mem_device_flag 
-5aac c0005ab0 beq mode_24g_device ,mouse_device_24g_led_on 
-5aad c000dab2 beq mode_bt_device1 ,mouse_device_bt1_led_on 
-5aae c0015ab4 beq mode_bt_device2 ,mouse_device_bt2_led_on 
-5aaf 20600000 rtn 
-
-mouse_device_24g_led_on:
-5ab0 6848c8a2 fetcht 1 ,mem_mouse_1io2led_multi_24gled 
-5ab1 20205ab5 branch mouse_led_on 
-
-mouse_device_bt1_led_on:
-5ab2 6848c8a3 fetcht 1 ,mem_mouse_1io2led_multi_bt1led 
-5ab3 20205ab5 branch mouse_led_on 
-
-mouse_device_bt2_led_on:
-5ab4 6848c8a4 fetcht 1 ,mem_mouse_1io2led_multi_bt2led 
-
-mouse_led_on:
-5ab5 20206ef1 branch gpio_out_active 
-
-mouse_led_off:
-5ab6 20206eed branch gpio_out_inactive 
-
-mouse_multi_led_off_judge:
-5ab7 7048a800 jam 0 ,mem_mouse_multi_led_blink_enable 
-5ab8 7048ab00 jam 0 ,mem_mouse_multi_led_blink_type 
-
-mouse_multi_led_off_judge_next:
-5ab9 6fe0c8ab fetch 1 ,mem_mouse_multi_led_blink_type 
-5aba c0025ad3 beq 4 ,mouse_multi_dpi_led_off_judge 
-
-mouse_device_multi_led_off:
-5abb 7048aa00 jam off ,mem_mouse_multi_led_state 
-
-mouse_device_led_off:
-5abc 44d5c015 bpatch patch15_3 ,mem_patch15 
-5abd 6fe0c678 fetch 1 ,mem_device_flag 
-5abe c0005ac2 beq mode_24g_device ,mouse_device_24g_led_off 
-5abf c000dac6 beq mode_bt_device1 ,mouse_device_bt1_led_off 
-5ac0 c0015aca beq mode_bt_device2 ,mouse_device_bt2_led_off 
-5ac1 20600000 rtn 
-
-mouse_device_24g_led_off:
-5ac2 6848c8a2 fetcht 1 ,mem_mouse_1io2led_multi_24gled 
-5ac3 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
-5ac4 c3105ab6 bbit0 mouse_enable_1io2led ,mouse_led_off 
-5ac5 20206f05 branch gpio_set_analog 
-
-mouse_device_bt1_led_off:
-5ac6 6848c8a3 fetcht 1 ,mem_mouse_1io2led_multi_bt1led 
-5ac7 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
-5ac8 c3105ab6 bbit0 mouse_enable_1io2led ,mouse_led_off 
-5ac9 20206f05 branch gpio_set_analog 
-
-mouse_device_bt2_led_off:
-5aca 6848c8a4 fetcht 1 ,mem_mouse_1io2led_multi_bt2led 
-5acb 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
-5acc c3105ab6 bbit0 mouse_enable_1io2led ,mouse_led_off 
-5acd 20206f05 branch gpio_set_analog 
-
-mouse_device_multi_led_all_off:
-5ace 20405ac2 call mouse_device_24g_led_off 
-5acf 20405ac6 call mouse_device_bt1_led_off 
-5ad0 20405aca call mouse_device_bt2_led_off 
-5ad1 20405a43 call mouse_low_voltage_led_off_judge 
-5ad2 20205ad3 branch mouse_multi_dpi_led_off_judge 
-
-mouse_multi_dpi_led_off_judge:
-5ad3 7048aa00 jam off ,mem_mouse_multi_led_state 
-5ad4 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
-5ad5 c292dabb bbit1 mouse_enable_dpi_for_led ,mouse_device_multi_led_off 
-
-mouse_multi_dpi_led_off:
-5ad6 6848c8a6 fetcht 1 ,mem_mouse_dpi_gpio 
-5ad7 20205ab6 branch mouse_led_off 
-
-mouse_multi_dpi_led_on_judge:
-5ad8 7048aa01 jam on ,mem_mouse_multi_led_state 
-5ad9 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
-5ada c292daa9 bbit1 mouse_enable_dpi_for_led ,mouse_device_multi_led_on 
-
-mouse_multi_dpi_led_on:
-5adb 6848c8a6 fetcht 1 ,mem_mouse_dpi_gpio 
-5adc 20205ab5 branch mouse_led_on 
-
-mouse_low_voltage_led_no_enter_lpm:
-5add 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
-5ade c4020000 rtnbit0 mouse_low_voltage_flag 
-5adf 6fe0c64d fetch 1 ,mem_adc_low_volatage_led_timer_count 
-5ae0 6848c8b5 fetcht 1 ,mem_mouse_low_led_blink_half_timer 
-5ae1 1fe67c02 sub pdata ,temp ,null 
-5ae2 20215ae9 branch mouse_lpm_mode_clear ,positive 
-
-mouse_low_voltage_led_no_enter_lpm_next:
-5ae3 6fe0c678 fetch 1 ,mem_device_flag 
-5ae4 c0005ae6 beq mode_24g_device ,g24_transmit_by_interrupt_exit_check 
-5ae5 20206820 branch hid_device_enable_lpm 
-
-g24_transmit_by_interrupt_exit_check:
-5ae6 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
-5ae7 c38c0000 rtnbit1 mouse_enable_24g_250hz 
-5ae8 202036aa branch g24_transmit_by_interrupt_exit 
-
-mouse_lpm_mode_clear:
-5ae9 6fe0c678 fetch 1 ,mem_device_flag 
-5aea c00036bb beq mode_24g_device ,g24_transmit_by_interrupt_enable 
-5aeb 20206822 branch hid_device_disable_lpm 
-
-mouse_store_signal_rssi:
-5aec 6fe08009 fetch 1 ,mem_rssi 
-5aed 202035a3 branch rssi_signal 
-
-mouse_le_transmit:
-5aee 20405aec call mouse_store_signal_rssi 
-5aef 202036c8 branch power_ctrl_start 
-
-mouse_set_lpm_mult:
-5af0 6fe14500 fetch 2 ,mem_ui_state_map 
-5af1 c4048000 rtnbit0 ui_state_ble_connected 
-
-mouse_le_set_lpm_mult:
-5af2 6fe0c882 fetch 1 ,mem_le_connect_status_flag 
-5af3 2fe00603 compare 3 ,pdata ,3 
-5af4 2420fdca nbranch disable_blank ,true 
-5af5 204037a0 call app_lpm_mult_enable 
-5af6 20207dcc branch enable_blank 
-
-mouse_24g_long_sleep:
-5af7 44d64015 bpatch patch15_4 ,mem_patch15 
-5af8 20403694 call g24_lpm_wait 
-5af9 24740000 nrtn user 
-5afa 70473b01 jam 1 ,mem_mouse_24g_long_sleep_flag 
-5afb 2040369e call g24_setgpio_lpm_before 
-5afc 7048f100 jam 0 ,mem_mouse_24g_sleep_miss 
-5afd 20405b7f call mouse_24g_send_time_long_wake 
-5afe 6fe0c737 fetch 1 ,mem_24g_shutdown_flag 
-5aff 245a4e42 ncall mouse_setgpio_hibernate ,blank 
-5b00 6fe445c6 fetch 8 ,mem_24g_enter_hibernate 
-5b01 202035fa branch g24_long_seep2 
-
-mouse_24g_short_sleep:
-5b02 6fe0c8fa fetch 1 ,mem_mouse_sleep_deal_type 
-5b03 203a35ee branch g24_short_sleep ,blank 
-5b04 20403694 call g24_lpm_wait 
-5b05 24740000 nrtn user 
-5b06 6fe0c8f1 fetch 1 ,mem_mouse_24g_sleep_miss 
-5b07 7048f100 jam 0 ,mem_mouse_24g_sleep_miss 
-5b08 1fe67c00 sub pdata ,0 ,null 
-5b09 2422db0f nbranch mouse_24g_short_sleep_last_miss ,zero 
-5b0a 68494639 fetcht 2 ,mem_24g_retransmit 
-5b0b 18467c00 sub temp ,0 ,null 
-5b0c 2022db22 branch mouse_24g_short_sleep_default ,zero 
-5b0d 6fe248e6 fetch 4 ,mem_mouse_24g_tx_time_last_delt 
-5b0e 203a5b22 branch mouse_24g_short_sleep_default ,blank 
-
-mouse_24g_short_sleep_last_miss:
-5b0f 684a48f6 fetcht 4 ,mem_mouse_24g_sleep_miss_temp 
-5b10 284ffe1f isolate1 31 ,temp 
-5b11 2020db2e branch mouse_24g_sub_miss_temp ,true 
-5b12 6fe248e6 fetch 4 ,mem_mouse_24g_tx_time_last_delt 
-5b13 9840fe00 iadd temp ,pdata 
-
-mouse_24g_short_sleep_notify:
-5b14 684a48cc fetcht 4 ,mem_mouse_24g_tsniff 
-5b15 98460400 isub temp ,temp 
-5b16 604a48f6 storet 4 ,mem_mouse_24g_sleep_miss_temp 
-5b17 24215b25 nbranch mouse_24g_short_sleep_long ,positive 
-5b18 6fe1c61f fetch 3 ,mem_24g_short_sleep_set 
-5b19 98467e00 isub temp ,pdata 
-5b1a 24215b2c nbranch mouse_24g_short_sleep_2 ,positive 
-5b1b d8400600 arg 0x600 ,temp 
-5b1c 98467c00 isub temp ,null 
-5b1d 24215b2c nbranch mouse_24g_short_sleep_2 ,positive 
-
-mouse_24g_short_sleep2:
-5b1e 7048f0fa jam 250 ,mem_mouse_24g_tx_time_offset 
-
-mouse_24g_short_sleep3:
-5b1f 20407d27 call clk2lpo 
-5b20 604a40a9 storet 4 ,mem_sleep_counter 
-5b21 20202406 branch lpm_sleep 
-
-mouse_24g_short_sleep_default:
-5b22 20405b29 call mouse_24g_miss_temp_clear 
-5b23 6fe1c61f fetch 3 ,mem_24g_short_sleep_set 
-5b24 20205b1e branch mouse_24g_short_sleep2 
-
-mouse_24g_short_sleep_long:
-5b25 18460400 sub temp ,0 ,temp 
-5b26 6fe1c61f fetch 3 ,mem_24g_short_sleep_set 
-5b27 9840fe00 iadd temp ,pdata 
-5b28 20205b1e branch mouse_24g_short_sleep2 
-
-mouse_24g_miss_temp_clear:
-5b29 58000000 setarg 0 
-5b2a 67e248f6 store 4 ,mem_mouse_24g_sleep_miss_temp 
-5b2b 20600000 rtn 
-
-mouse_24g_short_sleep_2:
-5b2c 7048f101 jam 1 ,mem_mouse_24g_sleep_miss 
-5b2d 20600000 rtn 
-
-mouse_24g_sub_miss_temp:
-5b2e dfffffff arg -1 ,pdata 
-5b2f 98465e00 isub temp ,regext 
-5b30 6fe248e6 fetch 4 ,mem_mouse_24g_tx_time_last_delt 
-5b31 9de67e00 isub regext ,pdata 
-5b32 20205b14 branch mouse_24g_short_sleep_notify 
-
-mouse_24g_transmit_callback:
-5b33 20405b35 call mouse_24g_send_time_check 
-5b34 20205916 branch mouse_wakeup_24g 
-
-mouse_24g_send_time_check:
-5b35 6fe0c8fa fetch 1 ,mem_mouse_sleep_deal_type 
-5b36 207a0000 rtn blank 
-5b37 6fe0c62f fetch 1 ,mem_24g_transmit_by_interrupt 
-5b38 c000db7b beq g24_tx_timer_int_enable ,mouse_24g_send_timer_first 
-5b39 6fe0c8df fetch 1 ,mem_mouse_24g_tx_count 
-5b3a 203a5b7b branch mouse_24g_send_timer_first ,blank 
-5b3b 1b227e00 copy clkn ,pdata 
-5b3c 684b48e0 fetcht 6 ,mem_mouse_24g_tx_time_last 
-5b3d 67e348e0 store 6 ,mem_mouse_24g_tx_time_last 
-5b3e 20407d12 call clk_diff_rt 
-5b3f 67e248e6 store 4 ,mem_mouse_24g_tx_time_last_delt 
-5b40 6fe0c8f1 fetch 1 ,mem_mouse_24g_sleep_miss 
-5b41 247a0000 nrtn blank 
-5b42 6fe14639 fetch 2 ,mem_24g_retransmit 
-5b43 247a0000 nrtn blank 
-5b44 6fe248f6 fetch 4 ,mem_mouse_24g_sleep_miss_temp 
-5b45 247a0000 nrtn blank 
-5b46 6fe248e6 fetch 4 ,mem_mouse_24g_tx_time_last_delt 
-5b47 684a48cc fetcht 4 ,mem_mouse_24g_tsniff 
-5b48 18438400 lshift temp ,temp 
-5b49 98467c00 isub temp ,null 
-5b4a 20215b7f branch mouse_24g_send_time_long_wake ,positive 
-5b4b 684ac8ea fetcht 5 ,mem_mouse_24g_tx_time_sum 
-5b4c 9840fe00 iadd temp ,pdata 
-5b4d 67e2c8ea store 5 ,mem_mouse_24g_tx_time_sum 
-5b4e 6848c8df fetcht 1 ,mem_mouse_24g_tx_count 
-5b4f 6fe0c8ef fetch 1 ,mem_mouse_24g_tx_time_sum_count 
-5b50 98467c00 isub temp ,null 
-5b51 2022db55 branch mouse_24g_send_time_check_average ,zero 
-5b52 18408401 increase 1 ,temp 
-5b53 6048c8df storet 1 ,mem_mouse_24g_tx_count 
-5b54 20600000 rtn 
-
-mouse_24g_send_time_check_average:
-5b55 7048df01 jam 1 ,mem_mouse_24g_tx_count 
-5b56 d8400000 arg 0 ,temp 
-5b57 6fe2c8ea fetch 5 ,mem_mouse_24g_tx_time_sum 
-5b58 604ac8ea storet 5 ,mem_mouse_24g_tx_time_sum 
-5b59 6848c8ef fetcht 1 ,mem_mouse_24g_tx_time_sum_count 
-5b5a 9846fc00 idiv temp 
-5b5b 20407d64 call wait_div_end 
-5b5c 1807a200 quotient rega 
-5b5d 6fe248cc fetch 4 ,mem_mouse_24g_tsniff 
-5b5e 6848c8f0 fetcht 1 ,mem_mouse_24g_tx_time_offset 
-5b5f 98460400 isub temp ,temp 
-5b60 1a227e00 copy rega ,pdata 
-5b61 98467e00 isub temp ,pdata 
-5b62 20215b6f branch mouse_24g_send_time_check_average_late ,positive 
-5b63 1fe67e00 sub pdata ,0 ,pdata 
-5b64 1feb7e00 rshift2 pdata ,pdata 
-5b65 6849c61f fetcht 3 ,mem_24g_short_sleep_set 
-5b66 98408400 iadd temp ,temp 
-5b67 44d6c015 bpatch patch15_5 ,mem_patch15 
-5b68 6fe1c8dc fetch 3 ,mem_mouse_24g_short_sleep_set_init 
-5b69 da201800 arg 0x1800 ,rega 
-5b6a 9a20fe00 iadd rega ,pdata 
-5b6b 98467c00 isub temp ,null 
-5b6c 24215b79 nbranch mouse_24g_send_time_check_average_min ,positive 
-
-mouse_24g_short_sleep_storet:
-5b6d 6049c61f storet 3 ,mem_24g_short_sleep_set 
-5b6e 20600000 rtn 
-
-mouse_24g_send_time_check_average_late:
-5b6f 1feb0400 rshift2 pdata ,temp 
-5b70 6fe1c61f fetch 3 ,mem_24g_short_sleep_set 
-5b71 98460400 isub temp ,temp 
-5b72 44d74015 bpatch patch15_6 ,mem_patch15 
-5b73 6fe1c8dc fetch 3 ,mem_mouse_24g_short_sleep_set_init 
-5b74 da201800 arg 0x1800 ,rega 
-5b75 9a267e00 isub rega ,pdata 
-5b76 98467c00 isub temp ,null 
-5b77 20215b79 branch mouse_24g_send_time_check_average_min ,positive 
-5b78 20205b6d branch mouse_24g_short_sleep_storet 
-
-mouse_24g_send_time_check_average_min:
-5b79 67e1c61f store 3 ,mem_24g_short_sleep_set 
-5b7a 20600000 rtn 
-
-mouse_24g_send_timer_first:
-5b7b 7048df01 jam 1 ,mem_mouse_24g_tx_count 
-5b7c 1b227e00 copy clkn ,pdata 
-5b7d 67e348e0 store 6 ,mem_mouse_24g_tx_time_last 
-5b7e 20600000 rtn 
-
-mouse_24g_send_time_long_wake:
-5b7f 58000000 setarg 0 
-5b80 67e0c8df store 1 ,mem_mouse_24g_tx_count 
-5b81 67e2c8ea store 5 ,mem_mouse_24g_tx_time_sum 
-5b82 20600000 rtn 
-
-mouse_usb_check_enable:
-5b83 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
-5b84 c4060000 rtnbit0 mouse_enable_usb 
-5b85 704676a5 jam usb_interface_remove ,mem_usb_vdd_status 
-5b86 20600000 rtn 
-
-mouse_usb_isr:
-5b87 20405b8b call mouse_usb_interface_check 
-5b88 6fe0c676 fetch 1 ,mem_usb_vdd_status 
-5b89 c1ad0000 rtnne usb_interface_insert 
-5b8a 202078f6 branch usb_isr 
-
-mouse_usb_interface_check:
-5b8b 44d7c015 bpatch patch15_7 ,mem_patch15 
-5b8c 6848884a fetcht 1 ,mem_usb_offline_check_gpio 
-5b8d 20406ee0 call gpio_get_bit 
-5b8e 2420dba4 nbranch mouse_usb_mode_disable ,true 
-
-mouse_usb_mode_enable:
-5b8f 6fe0c676 fetch 1 ,mem_usb_vdd_status 
-5b90 c12d0000 rtneq usb_interface_insert 
-5b91 7046765a jam usb_interface_insert ,mem_usb_vdd_status 
-5b92 58000000 setarg 0 
-5b93 67e145ef store 2 ,mem_24g_pair_timeout 
-5b94 67e145f5 store 2 ,mem_24g_reconn_timeout 
-5b95 70409400 jam 0 ,mem_lpm_mode 
-5b96 2040712c call select_system_clk_12m_dpll 
-5b97 20405936 call mouse_24g_stop 
-5b98 204053c3 call mouse_stop_bluetooth_mode 
-5b99 7855fc00 disable wake 
-5b9a 2040538d call mouse_init_sensor_reset 
-5b9b 58005bd7 setarg mouse_usb_config_param 
-5b9c 67e10837 store 2 ,mem_cb_usb_config 
-5b9d 6fe0ca95 fetch 1 ,mem_usb_tx_interval_retention 
-5b9e 67e08839 store 1 ,mem_usb_tx_interval 
-5b9f d8c04a96 arg mem_usb_vid_pid_retention ,contr 
-5ba0 d8a0083a arg mem_usb_vid_pid ,contw 
-5ba1 df200009 arg 9 ,loopcnt 
-5ba2 20407cdc call memcpy 
-5ba3 20207902 branch usb_init 
-
-mouse_usb_mode_disable:
-5ba4 6fe0c677 fetch 1 ,mem_usb_keyboard_flag 
-5ba5 c1528000 rtneq usb_interface_remove 
-5ba6 704676a5 jam usb_interface_remove ,mem_usb_vdd_status 
-5ba7 7008ec00 jam 0 ,mem_usb_device_enumeration_endflag 
-5ba8 7006e700 jam 0 ,mem_usb_status 
-5ba9 7008de00 jam 0 ,mem_usb_state 
-5baa 6ff10050 fetch 2 ,core_clkoff 
-5bab 79207e0a set1 clock_off_usb ,pdata 
-5bac 67f10050 store 2 ,core_clkoff 
-5bad 70409401 jam 1 ,mem_lpm_mode 
-5bae 2040712c call select_system_clk_12m_dpll 
-5baf 20205801 branch mouse_soft_reset 
-
-mouse_usb_mode:
-5bb0 6ff08c01 fetch 1 ,core_usb_addr 
-5bb1 67e0c675 store 1 ,mem_usb_addr 
-5bb2 c4038000 rtnbit0 7 
-5bb3 20405bc2 call mouse_usb_timer_check 
-5bb4 24740000 nrtn user 
-5bb5 20404f26 call mouse_motion 
-5bb6 24740000 nrtn user 
-5bb7 6ff08c25 fetch 1 ,core_usb_txbusy 
-5bb8 c3810000 rtnbit1 2 
-5bb9 20205bba branch mouse_push_data_to_usb 
-
-mouse_push_data_to_usb:
-5bba 6ff08c01 fetch 1 ,core_usb_addr 
-5bbb c4038000 rtnbit0 7 
-5bbc 44d84016 bpatch patch16_0 ,mem_patch16 
-5bbd 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
-5bbe c30a6856 bbit0 mouse_enable_keyboard ,hid_device_push_mouse_data_to_usb 
-5bbf 6fe0c72b fetch 1 ,mem_customer_key 
-5bc0 c000e85b beq 1 ,hid_device_push_keyboard_data_to_usb 
-5bc1 20206856 branch hid_device_push_mouse_data_to_usb 
-
-mouse_usb_timer_check:
-5bc2 20407dbe call disable_user 
-5bc3 684a474b fetcht 4 ,mem_btclk_sensor 
-5bc4 1c427e00 copy clkn_bt ,pdata 
-5bc5 98467c00 isub temp ,null 
-5bc6 24415bd1 ncall mouse_usb_timer_timeout ,positive 
-5bc7 1fe22400 copy pdata ,regb 
-5bc8 6fe2474b fetch 4 ,mem_btclk_sensor 
-5bc9 6848c674 fetcht 1 ,mem_wire_usb_interval 
-5bca 98408400 iadd temp ,temp 
-5bcb 1a427e00 copy regb ,pdata 
-5bcc 98467c00 isub temp ,null 
-5bcd 24610000 nrtn positive 
-5bce 793ffe1c set0 28 ,pdata 
-5bcf 67e2474b store 4 ,mem_btclk_sensor 
-5bd0 20207dbc branch enable_user 
-
-mouse_usb_timer_timeout:
-5bd1 20628000 rtn zero 
-5bd2 79207e1c set1 28 ,pdata 
-5bd3 20600000 rtn 
-
-mouse_usb_timer_init:
-5bd4 58000000 setarg 0 
-5bd5 67e2474b store 4 ,mem_btclk_sensor 
-5bd6 20600000 rtn 
-
-mouse_usb_config_param:
-5bd7 44d8c016 bpatch patch16_1 ,mem_patch16 
-5bd8 20405be1 call mouse_usb_config_kb_check 
-5bd9 20405bea call mouse_usb_report_rate_set 
-5bda 20405be6 call mouse_usb_config_param_setup 
-
-mouse_usb_device_name_config:
-5bdb 6fe0ca9f fetch 1 ,mem_usb_device_name_retention 
-5bdc 207a0000 rtn blank 
-5bdd d8c04a9f arg mem_usb_device_name_retention ,contr 
-5bde d8a007fb arg mem_string2 ,contw 
-5bdf df20001e arg 30 ,loopcnt 
-5be0 20207cdc branch memcpy 
-
-mouse_usb_config_kb_check:
-5be1 704677c0 jam dongle_kb_bind_otp_offect ,mem_usb_keyboard_flag 
-5be2 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
-5be3 c40a0000 rtnbit0 mouse_enable_keyboard 
-5be4 7046775a jam dongle_kb_bind_success ,mem_usb_keyboard_flag 
-5be5 20600000 rtn 
-
-mouse_usb_config_param_setup:
-5be6 20407956 call usb_tx_interval_config 
-5be7 20403d20 call dongle_usb_vid_pid_config 
-
-mouse_usb_hid_icon_config:
-5be8 6fe0c677 fetch 1 ,mem_usb_keyboard_flag 
-5be9 20203d2a branch dongle_usb_hid_icon_config + 1 
-
-mouse_usb_report_rate_set:
-5bea 20405bd4 call mouse_usb_timer_init 
-5beb 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
-5bec c28edbf1 bbit1 mouse_enable_usb_250 ,mouse_usb_report_rate_set_250hz 
-5bed c28f5bf3 bbit1 mouse_enable_usb_500 ,mouse_usb_report_rate_set_500hz 
-5bee c28fdbf5 bbit1 mouse_enable_usb_1000 ,mouse_usb_report_rate_set_1000hz 
-
-mouse_usb_report_rate_set_125hz:
-5bef 70467420 jam 32 ,mem_wire_usb_interval 
-5bf0 20600000 rtn 
-
-mouse_usb_report_rate_set_250hz:
-5bf1 70467410 jam 16 ,mem_wire_usb_interval 
-5bf2 20600000 rtn 
-
-mouse_usb_report_rate_set_500hz:
-5bf3 70467408 jam 8 ,mem_wire_usb_interval 
-5bf4 20600000 rtn 
-
-mouse_usb_report_rate_set_1000hz:
-5bf5 70467404 jam 4 ,mem_wire_usb_interval 
-5bf6 20600000 rtn 
-
-rec_cb_function:
-5bf7 58005bfa setarg rec_process_idle 
-5bf8 67e143e4 store 2 ,mem_cb_idle_process 
-5bf9 20600000 rtn 
-
-rec_process_idle:
-5bfa 20405bfc call rec_ui_timer_check 
-5bfb 20600000 rtn 
-
-rec_ui_timer_check:
-5bfc 44d94016 bpatch patch16_2 ,mem_patch16 
-5bfd da200000 arg 0 ,rega 
-5bfe 684a49f2 fetcht 4 ,mem_rec_ui_timer_btclk 
-5bff 1c422400 copy clkn_bt ,regb 
-5c00 1a427e00 copy regb ,pdata 
-5c01 98467c00 isub temp ,null 
-5c02 244177f4 ncall ui_timer_timeout ,positive 
-
-rec_ui_timer_check_loop:
-5c03 1a427e00 copy regb ,pdata 
-5c04 18408408 increase 8 ,temp 
-5c05 98467c00 isub temp ,null 
-5c06 24215c0e nbranch rec_ui_timer_check_end ,positive 
-5c07 1a20a201 increase 1 ,rega 
-5c08 1a217e0f and rega ,0x0f ,pdata 
-5c09 243a5c03 nbranch rec_ui_timer_check_loop ,blank 
-5c0a da200000 arg 0 ,rega 
-5c0b 20405c13 call rec_ui_timer_check_send_evt 
-
-rec_ui_timer_init:
-5c0c 644249f2 storer clkn_bt ,4 ,mem_rec_ui_timer_btclk 
-5c0d 20600000 rtn 
-
-rec_ui_timer_check_end:
-5c0e 1a227e00 copy rega ,pdata 
-5c0f 207a0000 rtn blank 
-5c10 184085f8 increase -8 ,temp 
-5c11 793f841c set0 28 ,temp 
-5c12 604a49f2 storet 4 ,mem_rec_ui_timer_btclk 
-
-rec_ui_timer_check_send_evt:
-5c13 67e0c9f6 store 1 ,mem_rec_ui_timer_count 
-
-rec_evt_timer_loop:
-5c14 6fe0c9f6 fetch 1 ,mem_rec_ui_timer_count 
-5c15 207a0000 rtn blank 
-5c16 1fe0ffff increase -1 ,pdata 
-5c17 67e0c9f6 store 1 ,mem_rec_ui_timer_count 
-5c18 6fe149f7 fetch 2 ,mem_rec_cb_timer 
-5c19 20407d7b call callback_func 
-5c1a 20205c14 branch rec_evt_timer_loop 
-
-rec_tscan:
-5c1b 44d9c016 bpatch patch16_3 ,mem_patch16 
-5c1c 6fe0c9fb fetch 1 ,mem_rec_tscan_row_nums 
-5c1d 207a0000 rtn blank 
-5c1e 704a0000 jam 0 ,mem_rec_tscan_col_scanned 
-5c1f 704a1700 jam 0 ,mem_rec_tscan_sequence 
-5c20 20405d0a call rec_gpio_wakeup_disable 
-
-rec_tscan_gnd_process:
-5c21 20405ca3 call rec_tscan_get_gndkey_state 
-5c22 6fe0ca22 fetch 1 ,mem_rec_tscan_gndkey_need_send_flag 
-5c23 247a0000 nrtn blank 
-5c24 20405d1b call rec_tscan_gpio_set_before_lpm 
-5c25 204023e1 call lpm_write_gpio_wakeup 
-
-rec_tscan_process:
-5c26 44da4016 bpatch patch16_4 ,mem_patch16 
-5c27 20405c2c call rec_tscan_col_state_init 
-5c28 20405c32 call rec_tscan_row_state_init 
-5c29 20405c3f call rec_tscan_get_row_state 
-5c2a 20405c77 call rec_tscan_pull_up_current_col_gpio 
-5c2b 20205c7a branch rec_tscan_col_state_next_gpio_check 
-
-rec_tscan_col_state_init:
-5c2c da204a0d arg mem_rec_tscan_col_gpio ,rega 
-5c2d 6fe0ca00 fetch 1 ,mem_rec_tscan_col_scanned 
-5c2e 9a20a200 iadd rega ,rega 
-5c2f 622149fd storer rega ,2 ,mem_rec_tscan_col_gpio_ptr 
-5c30 e8408011 ifetcht 1 ,rega 
-5c31 20206ef1 branch gpio_config_output 
-
-rec_tscan_row_state_init:
-5c32 6fe0c9fb fetch 1 ,mem_rec_tscan_row_nums 
-5c33 207a0000 rtn blank 
-5c34 6848ca00 fetcht 1 ,mem_rec_tscan_col_scanned 
-5c35 98467e00 isub temp ,pdata 
-5c36 98007200 iforce loopcnt 
-5c37 da204a03 arg mem_rec_tscan_row_gpio ,rega 
-5c38 6fe0ca00 fetch 1 ,mem_rec_tscan_col_scanned 
-5c39 9a20a200 iadd rega ,rega 
-
-rec_tscan_row_gpio_config_input_pull_up:
-5c3a efe08011 ifetch 1 ,rega 
-5c3b 20405cf3 call rec_gpio_weak_pullup 
-5c3c 1a20a201 increase 1 ,rega 
-5c3d c2005c3a loop rec_tscan_row_gpio_config_input_pull_up 
-5c3e 20600000 rtn 
-
-rec_tscan_get_row_state:
-5c3f 7049ff00 jam 0 ,mem_rec_tscan_row_scanned 
-5c40 6fe0c9fb fetch 1 ,mem_rec_tscan_row_nums 
-5c41 6848ca00 fetcht 1 ,mem_rec_tscan_col_scanned 
-5c42 98467e00 isub temp ,pdata 
-5c43 67e0ca19 store 1 ,mem_rec_tscan_row_scan_loop_count 
-5c44 da204a03 arg mem_rec_tscan_row_gpio ,rega 
-5c45 6fe0ca00 fetch 1 ,mem_rec_tscan_col_scanned 
-5c46 9a20a200 iadd rega ,rega 
-
-rec_tscan_get_row_state_loop:
-5c47 e8408011 ifetcht 1 ,rega 
-5c48 6048ca6d storet 1 ,mem_rec_gpio_bit_check 
-5c49 20405ce4 call rec_tscan_debounce 
-5c4a 24740000 nrtn user 
-5c4b 2040dc5c call rec_tscan_record_key_coord ,true 
-5c4c 1a20a201 increase 1 ,rega 
-5c4d 6fe0c9ff fetch 1 ,mem_rec_tscan_row_scanned 
-5c4e 1fe0fe01 increase 1 ,pdata 
-5c4f 67e0c9ff store 1 ,mem_rec_tscan_row_scanned 
-5c50 6848ca17 fetcht 1 ,mem_rec_tscan_sequence 
-5c51 18408401 increase 1 ,temp 
-5c52 6048ca17 storet 1 ,mem_rec_tscan_sequence 
-5c53 6848ca19 fetcht 1 ,mem_rec_tscan_row_scan_loop_count 
-5c54 98467c00 isub temp ,null 
-5c55 24215c47 nbranch rec_tscan_get_row_state_loop ,positive 
-5c56 6fe14a01 fetch 2 ,mem_rec_tscan_record_row 
-5c57 207a0000 rtn blank 
-5c58 67e14a67 store 2 ,mem_rec_tscan_record_now 
-5c59 58000000 setarg 0 
-5c5a 67e14a01 store 2 ,mem_rec_tscan_record_row 
-5c5b 20600000 rtn 
-
-rec_tscan_record_key_coord:
-5c5c 62214a65 storer rega ,2 ,mem_rec_tscan_current_gpio_ptr 
-5c5d 6fe0c9ff fetch 1 ,mem_rec_tscan_row_scanned 
-5c5e 1fe20e00 copy pdata ,queue 
-5c5f 6848ca01 fetcht 1 ,mem_rec_tscan_record_row 
-5c60 f9200400 qset1 temp 
-5c61 6048ca01 storet 1 ,mem_rec_tscan_record_row 
-5c62 6fe0ca00 fetch 1 ,mem_rec_tscan_col_scanned 
-5c63 1fe20e00 copy pdata ,queue 
-5c64 6848ca02 fetcht 1 ,mem_rec_tscan_record_col 
-5c65 f9200400 qset1 temp 
-5c66 6048ca02 storet 1 ,mem_rec_tscan_record_col 
-5c67 20405c6a call rec_tscan_combin_key_num_output 
-5c68 6a214a65 fetchr rega ,2 ,mem_rec_tscan_current_gpio_ptr 
-5c69 20600000 rtn 
-
-rec_tscan_combin_key_num_output:
-5c6a 68494a01 fetcht 2 ,mem_rec_tscan_record_row 
-5c6b da204a23 arg mem_rec_tscan_key_nums_list ,rega 
-
-rec_tscan_combin_key_num_loop:
-5c6c efe10011 ifetch 2 ,rega 
-5c6d 207a0000 rtn blank 
-5c6e 98467c00 isub temp ,null 
-5c6f 2042dc72 call rec_tscan_output_combin_key_num ,zero 
-5c70 1a20a202 increase 2 ,rega 
-5c71 20205c6c branch rec_tscan_combin_key_num_loop 
-
-rec_tscan_output_combin_key_num:
-5c72 68e0ca17 fetchr queue ,1 ,mem_rec_tscan_sequence 
-5c73 6fe44a55 fetch 8 ,mem_rec_tscan_key_num_bit 
-5c74 f9207e00 qset1 pdata 
-5c75 67e44a55 store 8 ,mem_rec_tscan_key_num_bit 
-5c76 20600000 rtn 
-
-rec_tscan_pull_up_current_col_gpio:
-5c77 6fe149fd fetch 2 ,mem_rec_tscan_col_gpio_ptr 
-5c78 efe0803f ifetch 1 ,pdata 
-5c79 20205cf3 branch rec_gpio_weak_pullup 
-
-rec_tscan_col_state_next_gpio_check:
-5c7a 6fe0ca00 fetch 1 ,mem_rec_tscan_col_scanned 
-5c7b 1fe0fe01 increase 1 ,pdata 
-5c7c 67e0ca00 store 1 ,mem_rec_tscan_col_scanned 
-5c7d 6848c9fc fetcht 1 ,mem_rec_tscan_col_nums 
-5c7e 98467c00 isub temp ,null 
-5c7f 24215c26 nbranch rec_tscan_process ,positive 
-5c80 6fe14a67 fetch 2 ,mem_rec_tscan_record_now 
-5c81 203a5c8e branch rec_tscan_key_up ,blank 
-
-rec_tscan_key_down:
-5c82 67e14a1c store 2 ,mem_rec_tscan_record_temp 
-5c83 6fe0ca1e fetch 1 ,mem_rec_tscan_key_need_send_flag 
-5c84 243a5ca0 nbranch rec_tscan_key_value_clear ,blank 
-5c85 6fe0ca1b fetch 1 ,mem_rec_tscan_key_state 
-5c86 c1008000 rtneq key_down 
-5c87 704a1b01 jam key_down ,mem_rec_tscan_key_state 
-5c88 704a1e01 jam 1 ,mem_rec_tscan_key_need_send_flag 
-5c89 44dac016 bpatch patch16_5 ,mem_patch16 
-5c8a 20405c9c call rec_tscan_key_num_output 
-5c8b 6fe14500 fetch 2 ,mem_ui_state_map 
-5c8c c3858000 rtnbit1 ui_state_ble_adv 
-5c8d 20205db7 branch rec_led_start_on 
-
-rec_tscan_key_up:
-5c8e 6fe0ca1b fetch 1 ,mem_rec_tscan_key_state 
-5c8f c1000000 rtneq key_up 
-5c90 704a1b00 jam key_up ,mem_rec_tscan_key_state 
-5c91 6fe14500 fetch 2 ,mem_ui_state_map 
-5c92 c285dc96 bbit1 ui_state_ble_adv ,rec_tscan_key_up_send 
-5c93 6fe08da0 fetch 1 ,mem_rec_nec_learn_state 
-5c94 243a5c96 nbranch rec_tscan_key_up_send ,blank 
-5c95 20405db9 call rec_led_start_off 
-
-rec_tscan_key_up_send:
-5c96 58000000 setarg 0 
-5c97 67e44a55 store 8 ,mem_rec_tscan_key_num_bit 
-5c98 67e0ca1e store 1 ,mem_rec_tscan_key_need_send_flag 
-
-rec_tscan_key_up_config:
-5c99 704a1f00 jam 0 ,mem_rec_tscan_current_key_num 
-5c9a da604bef arg mem_rec_key_release_le ,regc 
-5c9b 2020618e branch push_buffer_in_queue 
-
-rec_tscan_key_num_output:
-5c9c 20405d4c call rec_tscan_key_num_check 
-
-rec_tscan_record_init:
-5c9d 58000000 setarg 0 
-5c9e 67e14a1c store 2 ,mem_rec_tscan_record_temp 
-5c9f 20600000 rtn 
-
-rec_tscan_key_value_clear:
-5ca0 58000000 setarg 0 
-5ca1 67e14a67 store 2 ,mem_rec_tscan_record_now 
-5ca2 20600000 rtn 
-
-rec_tscan_get_gndkey_state:
-5ca3 da200000 arg 0 ,rega 
-5ca4 da400000 arg 0 ,regb 
-5ca5 18007000 force 0 ,regext_index 
-5ca6 6fe0ca18 fetch 1 ,mem_rec_tscan_gpio_nums 
-5ca7 98007200 iforce loopcnt 
-5ca8 da604a0d arg mem_rec_tscan_col_gpio ,regc 
-
-rec_tscan_get_gndkey_loop:
-5ca9 20405d0b call rec_save_regc 
-5caa 20405d10 call rec_save_rega 
-5cab efe08013 ifetch 1 ,regc 
-5cac 20405cf3 call rec_gpio_weak_pullup 
-5cad 20405d12 call rec_rescue_rega 
-5cae 20405d0d call rec_rescue_regc 
-5caf e8408013 ifetcht 1 ,regc 
-5cb0 6048ca6d storet 1 ,mem_rec_gpio_bit_check 
-5cb1 20405ce4 call rec_tscan_debounce 
-5cb2 24740000 nrtn user 
-5cb3 1a420e00 copy regb ,queue 
-5cb4 2040dcdc call rec_tscan_store_gndkey_press_state ,true 
-5cb5 2440dcde ncall rec_tscan_store_gndkey_release_state ,true 
-5cb6 1a60a601 increase 1 ,regc 
-5cb7 1a40a401 increase 1 ,regb 
-5cb8 c2005ca9 loop rec_tscan_get_gndkey_loop 
-5cb9 1a227e00 copy rega ,pdata 
-5cba 203a5cc5 branch rec_tscan_gndkey_up ,blank 
-
-rec_tscan_gndkey_down:
-5cbb 67e0ca21 store 1 ,mem_rec_tscan_gndkey_record_temp 
-5cbc 6fe0ca1a fetch 1 ,mem_rec_tscan_gndkey_state 
-5cbd c1008000 rtneq key_down 
-5cbe 704a1a01 jam key_down ,mem_rec_tscan_gndkey_state 
-5cbf 704a2201 jam 1 ,mem_rec_tscan_gndkey_need_send_flag 
-5cc0 44db4016 bpatch patch16_6 ,mem_patch16 
-5cc1 20405ccf call rec_tscan_gndkey_num_output 
-5cc2 6fe14500 fetch 2 ,mem_ui_state_map 
-5cc3 c3858000 rtnbit1 ui_state_ble_adv 
-5cc4 20205db7 branch rec_led_start_on 
-
-rec_tscan_gndkey_up:
-5cc5 6fe0ca1a fetch 1 ,mem_rec_tscan_gndkey_state 
-5cc6 c1000000 rtneq key_up 
-5cc7 704a1a00 jam key_up ,mem_rec_tscan_gndkey_state 
-5cc8 6fe14500 fetch 2 ,mem_ui_state_map 
-5cc9 c285dccd bbit1 ui_state_ble_adv ,rec_tscan_gndkey_up_send 
-5cca 6fe08da0 fetch 1 ,mem_rec_nec_learn_state 
-5ccb 243a5ccd nbranch rec_tscan_gndkey_up_send ,blank 
-5ccc 20405db9 call rec_led_start_off 
-
-rec_tscan_gndkey_up_send:
-5ccd 704a2200 jam 0 ,mem_rec_tscan_gndkey_need_send_flag 
-5cce 20205c99 branch rec_tscan_key_up_config 
-
-rec_tscan_gndkey_num_output:
-5ccf 20405cd2 call rec_tscan_gndkey_num_check 
-
-rec_tscan_gndkey_record_param_init:
-5cd0 704a2100 jam 0 ,mem_rec_tscan_gndkey_record_temp 
-5cd1 20600000 rtn 
-
-rec_tscan_gndkey_num_check:
-5cd2 6848ca21 fetcht 1 ,mem_rec_tscan_gndkey_record_temp 
-5cd3 da204a4b arg mem_rec_tscan_gndkey_nums_list ,rega 
-5cd4 da400000 arg 0 ,regb 
-
-rec_tscan_gndkey_num_loop:
-5cd5 efe08011 ifetch 1 ,rega 
-5cd6 207a0000 rtn blank 
-5cd7 98467c00 isub temp ,null 
-5cd8 2022dd3f branch rec_tscan_output_gndkey_num ,zero 
-5cd9 1a20a201 increase 1 ,rega 
-5cda 1a40a401 increase 1 ,regb 
-5cdb 20205cd5 branch rec_tscan_gndkey_num_loop 
-
-rec_tscan_store_gndkey_press_state:
-5cdc f9202200 qset1 rega 
-5cdd 20600000 rtn 
-
-rec_tscan_store_gndkey_release_state:
-5cde f93fa200 qset0 rega 
-5cdf 20600000 rtn 
-
-rec_gpio_bit_first_set:
-5ce0 704a6b01 jam 1 ,mem_rec_gpio_bit_first 
-5ce1 20600000 rtn 
-
-rec_gpio_bit_second_set:
-5ce2 704a6c01 jam 1 ,mem_rec_gpio_bit_second 
-5ce3 20600000 rtn 
-
-rec_tscan_debounce:
-5ce4 20407dbe call disable_user 
-5ce5 704a6b00 jam 0 ,mem_rec_gpio_bit_first 
-5ce6 704a6c00 jam 0 ,mem_rec_gpio_bit_second 
-5ce7 6848ca6d fetcht 1 ,mem_rec_gpio_bit_check 
-5ce8 20406ee0 call gpio_get_bit 
-5ce9 2040dce0 call rec_gpio_bit_first_set ,true 
-5cea 200004b0 nop 1200 
-5ceb 6848ca6d fetcht 1 ,mem_rec_gpio_bit_check 
-5cec 20406ee0 call gpio_get_bit 
-5ced 2040dce2 call rec_gpio_bit_second_set ,true 
-5cee 6fe0ca6b fetch 1 ,mem_rec_gpio_bit_first 
-5cef 6848ca6c fetcht 1 ,mem_rec_gpio_bit_second 
-5cf0 98467c00 isub temp ,null 
-5cf1 24628000 nrtn zero 
-5cf2 20207dbc branch enable_user 
-
-rec_gpio_weak_pullup:
-5cf3 67e0ca6e store 1 ,mem_rec_gpio_for_wake_pullup 
-5cf4 20405d07 call rec_gpio_set_input 
-5cf5 6fe0ca6e fetch 1 ,mem_rec_gpio_for_wake_pullup 
-
-rec_gpio_set_lpm_weak_pullup:
-5cf6 da600001 arg 0x01 ,regc 
-5cf7 1fe6fc02 div pdata ,2 
-5cf8 20407d64 call wait_div_end 
-5cf9 18078400 quotient temp 
-5cfa 18077e00 remainder pdata 
-5cfb 245a5d05 ncall rec_gpio_set_0x10_regc ,blank 
-5cfc 18427e00 copy temp ,pdata 
-5cfd d8a0814d arg core_gpio_wakeup_cfg ,contw 
-5cfe 37d98200 until null ,lpo_edge 
-5cff 37d98200 until null ,lpo_edge 
-5d00 98a08a00 iadd contw ,contw 
-5d01 efe08005 ifetch 1 ,contw 
-5d02 9a61fe00 ior regc ,pdata 
-5d03 e7e08005 istore 1 ,contw 
-5d04 202023c4 branch lpm_write_wait 
-
-rec_gpio_set_0x10_regc:
-5d05 da600010 arg 0x10 ,regc 
-5d06 20600000 rtn 
-
-rec_gpio_set_input:
-5d07 1fe1fe80 or pdata ,0x80 ,pdata 
-5d08 d8400000 arg gpcfg_input ,temp 
-5d09 20206f1c branch gpio_config_function 
-
-rec_gpio_wakeup_disable:
-5d0a 20206f4e branch lpm_config_puchk_disable 
-
-rec_save_regc:
-5d0b 1a627e00 copy regc ,pdata 
-5d0c 20205d15 branch rec_save_reg 
-
-rec_rescue_regc:
-5d0d 20405d18 call rec_rescue_reg 
-5d0e 1fe22600 copy pdata ,regc 
-5d0f 20600000 rtn 
-
-rec_save_rega:
-5d10 1a227e00 copy rega ,pdata 
-5d11 20205d15 branch rec_save_reg 
-
-rec_rescue_rega:
-5d12 20405d18 call rec_rescue_reg 
-5d13 1fe22200 copy pdata ,rega 
-5d14 20600000 rtn 
-
-rec_save_reg:
-5d15 1f00f001 increase 1 ,regext_index 
-5d16 1fe25e00 copy pdata ,regext 
-5d17 20600000 rtn 
-
-rec_rescue_reg:
-5d18 1de27e00 copy regext ,pdata 
-5d19 1f00f1ff increase -1 ,regext_index 
-5d1a 20600000 rtn 
-
-rec_tscan_gpio_set_before_lpm:
-5d1b 20405d21 call rec_tscan_gpio_config_high_impedance 
-5d1c 20405d24 call rec_tscan_gpio_config_tri_angle_wakeup 
-5d1d 20405d0a call rec_gpio_wakeup_disable 
-
-rec_gpio_wakeup_enable:
-5d1e 580000f0 setarg 0xf0 
-5d1f 67f08141 store 1 ,core_puwakeup 
-5d20 202023c4 branch lpm_write_wait 
-
-rec_tscan_gpio_config_high_impedance:
-5d21 6fe0ca18 fetch 1 ,mem_rec_tscan_gpio_nums 
-5d22 da204a0d arg mem_rec_tscan_col_gpio ,rega 
-5d23 20205d28 branch rec_gpio_config_high_impedance 
-
-rec_tscan_gpio_config_tri_angle_wakeup:
-5d24 6a40ca20 fetchr regb ,1 ,mem_rec_gpio_wakeup_source 
-5d25 6fe0ca18 fetch 1 ,mem_rec_tscan_gpio_nums 
-5d26 da204a0d arg mem_rec_tscan_col_gpio ,rega 
-5d27 20205d2e branch rec_gpio_wakeup_config 
-
-rec_gpio_config_high_impedance:
-5d28 1fe27200 copy pdata ,loopcnt 
-
-rec_high_impedance_loop:
-5d29 e8408011 ifetcht 1 ,rega 
-5d2a 20406f0b call gpio_set_high_impedance 
-5d2b 1a20a201 increase 1 ,rega 
-5d2c c2005d29 loop rec_high_impedance_loop 
-5d2d 20600000 rtn 
-
-rec_gpio_wakeup_config:
-5d2e 1fe27200 copy pdata ,loopcnt 
-
-rec_gpio_wakeup_config_loop:
-5d2f e8408011 ifetcht 1 ,rega 
-5d30 18437e00 rshift temp ,pdata 
-5d31 d8a00016 arg mem_gpio_wakeup_cfg ,contw 
-5d32 98a08a00 iadd contw ,contw 
-5d33 20405d3a call rec_gpio_wakeup_addr_search 
-5d34 e8408005 ifetcht 1 ,contw 
-5d35 9841fe00 ior temp ,pdata 
-5d36 e7e08005 istore 1 ,contw 
-5d37 1a20a201 increase 1 ,rega 
-5d38 c2005d2f loop rec_gpio_wakeup_config_loop 
-5d39 20600000 rtn 
-
-rec_gpio_wakeup_addr_search:
-5d3a 1a427e00 copy regb ,pdata 
-5d3b 284c0000 isolate0 0 ,temp 
-5d3c 20608000 rtn true 
-5d3d 1ff27e00 lshift4 pdata ,pdata 
-5d3e 20600000 rtn 
-
-rec_tscan_output_gndkey_num:
-5d3f 44dbc016 bpatch patch16_7 ,mem_patch16 
-5d40 1a427e00 copy regb ,pdata 
-5d41 6848cc07 fetcht 1 ,mem_rec_gnd_key_offset 
-5d42 9840fe00 iadd temp ,pdata 
-
-rec_tscan_output_key_map:
-5d43 da604bf2 arg mem_rec_key_map ,regc 
-5d44 9a60a600 iadd regc ,regc 
-5d45 efe08013 ifetch 1 ,regc 
-5d46 67e0ca1f store 1 ,mem_rec_tscan_current_key_num 
-5d47 1fe0ffff increase -1 ,pdata 
-5d48 1feffe03 mul32 pdata ,max_queue_unit ,pdata 
-5d49 da604bb0 arg mem_rec_key_press_le ,regc 
-5d4a 9a60a600 iadd regc ,regc 
-5d4b 20205d59 branch rec_push_buffer_in_queue 
-
-rec_tscan_key_num_check:
-5d4c 68494a1c fetcht 2 ,mem_rec_tscan_record_temp 
-5d4d da204a23 arg mem_rec_tscan_key_nums_list ,rega 
-5d4e da400000 arg 0 ,regb 
-
-rec_tscan_key_num_loop:
-5d4f efe10011 ifetch 2 ,rega 
-5d50 207a0000 rtn blank 
-5d51 98467c00 isub temp ,null 
-5d52 2022dd56 branch rec_tscan_output_key_num ,zero 
-5d53 1a20a202 increase 2 ,rega 
-5d54 1a40a401 increase 1 ,regb 
-5d55 20205d4f branch rec_tscan_key_num_loop 
-
-rec_tscan_output_key_num:
-5d56 44dc4017 bpatch patch17_0 ,mem_patch17 
-5d57 1a427e00 copy regb ,pdata 
-5d58 20205d43 branch rec_tscan_output_key_map 
-
-rec_push_buffer_in_queue:
-5d59 44dcc017 bpatch patch17_1 ,mem_patch17 
-5d5a 6fe0cc0b fetch 1 ,mem_rec_le_connect_state 
-5d5b 243a5d5e nbranch rec_puch_buffer_in_queue_check ,blank 
-
-rec_push_buffer_in_queue_end:
-5d5c 20405d61 call rec_key_type_select 
-5d5d 2020618e branch push_buffer_in_queue 
-
-rec_puch_buffer_in_queue_check:
-5d5e 6fe0cc09 fetch 1 ,mem_rec_le_enable_notify 
-5d5f 207a0000 rtn blank 
-5d60 20205d5c branch rec_push_buffer_in_queue_end 
-
-rec_key_type_select:
-5d61 efe08013 ifetch 1 ,regc 
-5d62 1a60a601 increase 1 ,regc 
-5d63 c0005d68 beq keypad_type_consumer ,rec_set_key_type_consumer 
-5d64 c000dd6a beq keypad_type_mouse ,rec_set_key_type_mouse 
-5d65 c0015d6c beq keypad_type_keypad ,rec_set_key_type_keypad 
-5d66 c001dd6e beq keypad_type_nec ,rec_set_key_type_nec 
-5d67 20600000 rtn 
-
-rec_set_key_type_consumer:
-5d68 704a6f00 jam keypad_type_consumer ,mem_rec_keypad_type 
-5d69 20600000 rtn 
-
-rec_set_key_type_mouse:
-5d6a 704a6f01 jam keypad_type_mouse ,mem_rec_keypad_type 
-5d6b 20600000 rtn 
-
-rec_set_key_type_keypad:
-5d6c 704a6f02 jam keypad_type_keypad ,mem_rec_keypad_type 
-5d6d 20600000 rtn 
-
-rec_set_key_type_nec:
-5d6e 704a6f03 jam keypad_type_nec ,mem_rec_keypad_type 
-5d6f 20600000 rtn 
-
-rec_tscan_key_send:
-5d70 44dd4017 bpatch patch17_2 ,mem_patch17 
-5d71 204061a2 call queue_pop_one_byte 
-5d72 24740000 nrtn user 
-5d73 67e0cc08 store 1 ,mem_rec_keypad_fun 
-5d74 6fe0ca1f fetch 1 ,mem_rec_tscan_current_key_num 
-5d75 205a5e05 call rec_nec_disable ,blank 
-
-rec_tscan_send_keypad:
-5d76 6fe14500 fetch 2 ,mem_ui_state_map 
-5d77 c304dd7e bbit0 ui_state_ble_connected ,rec_send_nec_keypad 
-5d78 6fe0ca6f fetch 1 ,mem_rec_keypad_type 
-5d79 c0005d88 beq keypad_type_consumer ,rec_le_send_consumer 
-5d7a c000dd9c beq keypad_type_mouse ,rec_le_send_mouse 
-5d7b c0015da9 beq keypad_type_keypad ,rec_le_send_keyboard 
-5d7c c001dd7e beq keypad_type_nec ,rec_send_nec_keypad 
-5d7d 20600000 rtn 
-
-rec_send_nec_keypad:
-5d7e 6fe0ca1f fetch 1 ,mem_rec_tscan_current_key_num 
-5d7f c0005e05 beq 0x00 ,rec_nec_disable 
-5d80 6fe0cc08 fetch 1 ,mem_rec_keypad_fun 
-5d81 1fe0ffff pincrease -1 
-5d82 1feffe03 mul32 pdata ,3 ,pdata 
-5d83 d8404b80 arg mem_rec_key_nec_value_list ,temp 
-5d84 98408c00 iadd temp ,contr 
-5d85 efe10006 ifetch 2 ,contr 
-5d86 e8408006 ifetcht 1 ,contr 
-5d87 20205e01 branch rec_nec_6122_start 
-
-rec_le_send_consumer:
-5d88 20402a06 call le_fifo_check_nearly_full 
-5d89 247a0000 nrtn blank 
-5d8a 6fe0cc08 fetch 1 ,mem_rec_keypad_fun 
-5d8b 1fe0ffff pincrease -1 
-5d8c 1feffe03 mul32 pdata ,3 ,pdata 
-5d8d d8404b10 arg mem_rec_key_consumer_value_list ,temp 
-5d8e 98408c00 iadd temp ,contr 
-5d8f df200003 arg 3 ,loopcnt 
-5d90 d8a0064e arg mem_pdatatemp ,contw 
-5d91 20407cdc call memcpy 
-5d92 704c0a03 jam 3 ,mem_rec_le_data_len 
-5d93 68494c0e fetcht 2 ,mem_rec_report_id2_handle 
-
-rec_le_send_data:
-5d94 6fe0cc09 fetch 1 ,mem_rec_le_enable_notify 
-5d95 207a0000 rtn blank 
-5d96 6a20cc0a fetchr rega ,1 ,mem_rec_le_data_len 
-5d97 20402dcc call le_att_malloc_tx_notify 
-5d98 6848cc0a fetcht 1 ,mem_rec_le_data_len 
-5d99 18427200 copy temp ,loopcnt 
-5d9a d8c0064e arg mem_pdatatemp ,contr 
-5d9b 20207cdc branch memcpy 
-
-rec_le_send_mouse:
-5d9c 20402a06 call le_fifo_check_nearly_full 
-5d9d 247a0000 nrtn blank 
-5d9e 6fe0cc08 fetch 1 ,mem_rec_keypad_fun 
-5d9f 1fe0ffff pincrease -1 
-5da0 1feffe04 mul32 pdata ,4 ,pdata 
-5da1 d8404b40 arg mem_rec_key_mouse_value_list ,temp 
-5da2 98408c00 iadd temp ,contr 
-5da3 df200004 arg 4 ,loopcnt 
-5da4 d8a0064e arg mem_pdatatemp ,contw 
-5da5 20407cdc call memcpy 
-5da6 704c0a04 jam 4 ,mem_rec_le_data_len 
-5da7 68494c12 fetcht 2 ,mem_rec_report_id4_handle 
-5da8 20205d94 branch rec_le_send_data 
-
-rec_le_send_keyboard:
-5da9 20402a06 call le_fifo_check_nearly_full 
-5daa 247a0000 nrtn blank 
-5dab 6fe0cc08 fetch 1 ,mem_rec_keypad_fun 
-5dac 1fe0ffff pincrease -1 
-5dad 1feffe0a mul32 pdata ,10 ,pdata 
-5dae d8404a70 arg mem_rec_key_keyboard_value_list ,temp 
-5daf 98408c00 iadd temp ,contr 
-5db0 efe10006 ifetch 2 ,contr 
-
-rec_le_fill_standard_key_data:
-5db1 df200008 arg 8 ,loopcnt 
-5db2 d8a0064e arg mem_pdatatemp ,contw 
-5db3 20407cdc call memcpy 
-5db4 704c0a08 jam 8 ,mem_rec_le_data_len 
-5db5 68494c0c fetcht 2 ,mem_rec_report_id1_handle 
-5db6 20205d94 branch rec_le_send_data 
-
-rec_led_start_on:
-5db7 da200000 arg 0 ,rega 
-5db8 202077a8 branch ui_led_on_global 
-
-rec_led_start_off:
-5db9 da200000 arg 0 ,rega 
-5dba 202077ad branch ui_led_off_global 
-
-rec_nec_send_userdata_6122:
-5dbb 67e10d96 store 2 ,mem_rec_nec_usercode 
-5dbc 60488d98 storet 1 ,mem_rec_nec_datacode 
-5dbd 18007000 force 0 ,regext_index 
-5dbe 20405dcd call rec_nec_init_6122 
-5dbf 20405dd9 call rec_nec_send_boot_6122 
-5dc0 6fe08d96 fetch 1 ,mem_rec_nec_usercode 
-5dc1 20405de5 call rec_nec_send_byte_6122 
-5dc2 6fe08d97 fetch 1 ,mem_rec_nec_usercode + 1 
-5dc3 20405de5 call rec_nec_send_byte_6122 
-5dc4 6fe08d98 fetch 1 ,mem_rec_nec_datacode 
-5dc5 20405de5 call rec_nec_send_byte_6122 
-5dc6 6fe08d98 fetch 1 ,mem_rec_nec_datacode 
-5dc7 1fe47e00 invert pdata ,pdata 
-5dc8 20405de5 call rec_nec_send_byte_6122 
-5dc9 5800023a setarg 570 
-5dca 20405dde call rec_nec_carrier 
-5dcb 58000001 setarg 1 
-5dcc 20205ddc branch rec_nec_empty 
-
-rec_nec_init_6122:
-5dcd 58000000 setarg 0 
-5dce 204070bc call pwm_init + 3 
-5dcf 20407103 call pwm_disable 
-5dd0 20405dd3 call rec_pwm_duty_cycle_set 
-5dd1 6fe0ce33 fetch 1 ,mem_rec_nec_send_gpio 
-5dd2 20207100 branch pwm_enable 
-
-rec_pwm_duty_cycle_set:
-5dd3 da20009d arg 157 ,rega 
-5dd4 da40009d arg 157 ,regb 
-5dd5 dfe00000 arg 0 ,pdata 
-5dd6 204070de call pwm_duty_cycle_set 
-5dd7 70809a00 jam 0 ,core_pwm_en 
-5dd8 20600000 rtn 
-
-rec_nec_send_boot_6122:
-5dd9 58002328 setarg 9000 
-5dda 20405dde call rec_nec_carrier 
-5ddb 58001194 setarg 4500 
-
-rec_nec_empty:
-5ddc 70809a00 jam 0 ,core_pwm_en 
-5ddd 20205de0 branch rec_nec_delay_us 
-
-rec_nec_carrier:
-5dde 70809a01 jam 1 ,core_pwm_en 
-5ddf 20205de0 branch rec_nec_delay_us 
-
-rec_nec_delay_us:
-5de0 207a0000 rtn blank 
-
-rec_nec_delay_us_loop:
-5de1 1fe0ffff increase -1 ,pdata 
-5de2 20000008 nop 8 
-5de3 243a5de1 nbranch rec_nec_delay_us_loop ,blank 
-5de4 20600000 rtn 
-
-rec_nec_send_byte_6122:
-5de5 df200008 arg 8 ,loopcnt 
-
-rec_nec_send_byte_loop_6122:
-5de6 20405d15 call rec_save_reg 
-5de7 20405dec call rec_nec_send_bit_6122 
-5de8 20405d18 call rec_rescue_reg 
-5de9 1fe37e00 rshift pdata ,pdata 
-5dea c2005de6 loop rec_nec_send_byte_loop_6122 
-5deb 20600000 rtn 
-
-rec_nec_send_bit_6122:
-5dec c3005def bbit0 0 ,rec_nec_send_bit0_6122 
-5ded c2805df2 bbit1 0 ,rec_nec_send_bit1_6122 
-5dee 20600000 rtn 
-
-rec_nec_send_bit0_6122:
-5def da20023a arg 570 ,rega 
-5df0 da400226 arg 550 ,regb 
-5df1 20205df5 branch rec_nec_send_bit 
-
-rec_nec_send_bit1_6122:
-5df2 da20023a arg 570 ,rega 
-5df3 da400690 arg 1680 ,regb 
-5df4 20205df5 branch rec_nec_send_bit 
-
-rec_nec_send_bit:
-5df5 1a227e00 copy rega ,pdata 
-5df6 20405dde call rec_nec_carrier 
-5df7 1a427e00 copy regb ,pdata 
-5df8 20205ddc branch rec_nec_empty 
-
-rec_nec_send_repeat_6122:
-5df9 58002328 setarg 9000 
-5dfa 20405dde call rec_nec_carrier 
-5dfb 580008ca setarg 2250 
-5dfc 20405ddc call rec_nec_empty 
-5dfd 58000230 setarg 560 
-5dfe 20405dde call rec_nec_carrier 
-5dff 58000001 setarg 1 
-5e00 20205ddc branch rec_nec_empty 
-
-rec_nec_6122_start:
-5e01 20405dbb call rec_nec_send_userdata_6122 
-5e02 20405e0c call rec_nec_send_repeat_6122_timer_init 
-5e03 700d9410 jam 16 ,mem_rec_nec_timer 
-5e04 20600000 rtn 
-
-rec_nec_disable:
-5e05 20405e10 call rec_nec_send_repeat_6122_timer_clear 
-
-rec_nec_6122_stop:
-5e06 20407103 call pwm_disable 
-
-rec_nec_io_disable:
-5e07 6fe0ce33 fetch 1 ,mem_rec_nec_send_gpio 
-
-rec_gpio_config_output_low:
-5e08 d840003e arg gpcfg_output_low ,temp 
-5e09 20206f1d branch gpio_config_function_int 
-
-rec_gpio_config_output_high:
-5e0a d840003f arg gpcfg_output_high ,temp 
-5e0b 20206f1d branch gpio_config_function_int 
-
-rec_nec_send_repeat_6122_timer_init:
-5e0c 5800002b setarg 43 
-
-rec_nec_timer_set:
-5e0d 67e08d95 store 1 ,mem_rec_nec_timeout 
-5e0e 67e08d94 store 1 ,mem_rec_nec_timer 
-5e0f 20600000 rtn 
-
-rec_nec_send_repeat_6122_timer_clear:
-5e10 58000000 setarg 0 
-5e11 20205e0d branch rec_nec_timer_set 
-
-rec_nec_rx_num:
-5e12 6ff10120 fetch 2 ,core_nec_wptr 
-5e13 68590066 fetcht 2 ,core_nec_rptr 
-5e14 98467e00 isub temp ,pdata 
-5e15 24215e17 nbranch rec_nec_rptr_big_wptr ,positive 
-5e16 20600000 rtn 
-
-rec_nec_rptr_big_wptr:
-5e17 68590120 fetcht 2 ,core_nec_wptr 
-5e18 6ff10066 fetch 2 ,core_nec_rptr 
-5e19 98460400 isub temp ,temp 
-5e1a 58000100 setarg nec_store_buf_size 
-5e1b 98467e00 isub temp ,pdata 
-5e1c 20600000 rtn 
-
-rec_nec_receive_data:
-5e1d 6ff10066 fetch 2 ,core_nec_rptr 
-5e1e e841803f ifetcht 3 ,pdata 
-5e1f 60488dd2 storet 1 ,mem_rec_nec_receive_data0 
-5e20 184c8400 rshift8 temp ,temp 
-5e21 60488dd3 storet 1 ,mem_rec_nec_receive_data1 
-5e22 184c8400 rshift8 temp ,temp 
-5e23 60488dd4 storet 1 ,mem_rec_nec_receive_data2 
-5e24 6fe08dd2 fetch 1 ,mem_rec_nec_receive_data0 
-5e25 1fe17e80 and_into 0x80 ,pdata 
-5e26 c0c05e28 bne 0x80 ,rec_nec_receive_one_data 
-5e27 20205e33 branch rec_nec_receive_two_data 
-
-rec_nec_receive_one_data:
-5e28 6fe08dd2 fetch 1 ,mem_rec_nec_receive_data0 
-5e29 67e08dd5 store 1 ,mem_rec_nec_receive_data 
-5e2a 6ff10066 fetch 2 ,core_nec_rptr 
-5e2b 68590064 fetcht 2 ,core_nec_end_addr 
-5e2c 98467e00 isub temp ,pdata 
-5e2d 20215e5b branch rec_nec_rptr_reset ,positive 
-5e2e 6ff10066 fetch 2 ,core_nec_rptr 
-5e2f 1fe0fe01 increase 1 ,pdata 
-5e30 67f10066 store 2 ,core_nec_rptr 
-5e31 700dd801 jam 1 ,mem_rec_nec_data 
-5e32 20600000 rtn 
-
-rec_nec_receive_two_data:
-5e33 6fe08dd4 fetch 1 ,mem_rec_nec_receive_data2 
-5e34 1fe17e80 and_into 0x80 ,pdata 
-5e35 c0405e46 beq 0x80 ,rec_nec_receive_three_data 
-5e36 6fe08dd3 fetch 1 ,mem_rec_nec_receive_data1 
-5e37 1fed7e00 lshift8 pdata ,pdata 
-5e38 1fe37e00 rshift pdata ,pdata 
-5e39 68488dd2 fetcht 1 ,mem_rec_nec_receive_data0 
-5e3a 1841047f and_into 0x7f ,temp 
-5e3b 9841fe00 ior temp ,pdata 
-5e3c 67e10dd5 store 2 ,mem_rec_nec_receive_data 
-5e3d 6ff10066 fetch 2 ,core_nec_rptr 
-5e3e 68590064 fetcht 2 ,core_nec_end_addr 
-5e3f 98467e00 isub temp ,pdata 
-5e40 20215e5b branch rec_nec_rptr_reset ,positive 
-5e41 6ff10066 fetch 2 ,core_nec_rptr 
-5e42 1fe0fe02 increase 2 ,pdata 
-5e43 67f10066 store 2 ,core_nec_rptr 
-5e44 700dd802 jam 2 ,mem_rec_nec_data 
-5e45 20600000 rtn 
-
-rec_nec_receive_three_data:
-5e46 6fe08dd4 fetch 1 ,mem_rec_nec_receive_data2 
-5e47 1fe17e7f and_into 0x7f ,pdata 
-5e48 1ff07e00 lshift16 pdata ,pdata 
-5e49 1fe32200 rshift pdata ,rega 
-5e4a 6fe08dd3 fetch 1 ,mem_rec_nec_receive_data1 
-5e4b 1fed7e00 lshift8 pdata ,pdata 
-5e4c 1fe37e00 rshift pdata ,pdata 
-5e4d 68488dd2 fetcht 1 ,mem_rec_nec_receive_data0 
-5e4e 1841047f and_into 0x7f ,temp 
-5e4f 9841fe00 ior temp ,pdata 
-5e50 9a21fe00 ior rega ,pdata 
-5e51 67e18dd5 store 3 ,mem_rec_nec_receive_data 
-5e52 6ff10066 fetch 2 ,core_nec_rptr 
-5e53 68590064 fetcht 2 ,core_nec_end_addr 
-5e54 98467e00 isub temp ,pdata 
-5e55 20215e5b branch rec_nec_rptr_reset ,positive 
-5e56 6ff10066 fetch 2 ,core_nec_rptr 
-5e57 1fe0fe03 increase 3 ,pdata 
-5e58 67f10066 store 2 ,core_nec_rptr 
-5e59 700dd803 jam 3 ,mem_rec_nec_data 
-5e5a 20600000 rtn 
-
-rec_nec_rptr_reset:
-5e5b d8400a88 arg mem_rec_nec_rx_start ,temp 
-5e5c 9840fe00 iadd temp ,pdata 
-5e5d 67f10066 store 2 ,core_nec_rptr 
-5e5e 20600000 rtn 
-
-rec_nec_receiver_init_wtr:
-5e5f 58000b88 setarg mem_rec_nec_rx_store_start 
-5e60 67e10dcc store 2 ,mem_rec_nec_store_sptr 
-5e61 67e10dd0 store 2 ,mem_rec_nec_store_wptr 
-5e62 20600000 rtn 
-
-rec_nec_carry_time:
-5e63 20405e6c call rec_nec_carry_store 
-5e64 6fe08dd5 fetch 1 ,mem_rec_nec_receive_data 
-5e65 68490ddc fetcht 2 ,mem_rec_nec_carry_time 
-5e66 9840fe00 iadd temp ,pdata 
-5e67 67e10ddc store 2 ,mem_rec_nec_carry_time 
-5e68 58000000 setarg 0 
-5e69 67e18dd5 store 3 ,mem_rec_nec_receive_data 
-5e6a 67e08dd8 store 1 ,mem_rec_nec_data 
-5e6b 20600000 rtn 
-
-rec_nec_carry_store:
-5e6c 6fe08db7 fetch 1 ,mem_rec_period_cal_count 
-5e6d 1fe67c14 sub pdata ,20 ,null 
-5e6e 20628000 rtn zero 
-5e6f 1fe0fe01 increase 1 ,pdata 
-5e70 67e08db7 store 1 ,mem_rec_period_cal_count 
-5e71 6fe08dd5 fetch 1 ,mem_rec_nec_receive_data 
-5e72 68490db5 fetcht 2 ,mem_rec_period_cal_ptr 
-5e73 e7e08002 istore 1 ,temp 
-5e74 18408401 increase 1 ,temp 
-5e75 60490db5 storet 2 ,mem_rec_period_cal_ptr 
-5e76 20600000 rtn 
-
-rec_nec_receive_run_time:
-5e77 6ff20100 fetch 4 ,core_clkn 
-5e78 684a0dde fetcht 4 ,mem_rec_nec_learn_stime 
-5e79 98467e00 isub temp ,pdata 
-5e7a 20600000 rtn 
-
-rec_nec_receive_timeout:
-5e7b 684a0de6 fetcht 4 ,mem_rec_nec_learn_outtime 
-5e7c 98467c00 isub temp ,null 
-5e7d 20600000 rtn 
-
-rec_nec_update_timeout:
-5e7e 6ff20100 fetch 4 ,core_clkn 
-5e7f 67e20dde store 4 ,mem_rec_nec_learn_stime 
-5e80 5800026c setarg 620 
-5e81 67e20de6 store 4 ,mem_rec_nec_learn_outtime 
-5e82 20600000 rtn 
-
-rec_nec_learn_analysis:
-5e83 6fe08d93 fetch 1 ,mem_rec_nec_rx_count 
-5e84 207a0000 rtn blank 
-5e85 1feffe04 mul32 pdata ,4 ,pdata 
-5e86 1fe0fff6 increase -10 ,pdata 
-5e87 1fe27200 copy pdata ,loopcnt 
-5e88 67e08c90 store 1 ,mem_rec_nec_rx_len 
-5e89 d8c00b88 arg mem_rec_nec_rx_store_start ,contr 
-5e8a 18c08c06 increase 6 ,contr 
-5e8b d8a00c93 arg mem_rec_nec_rx_data ,contw 
-5e8c 20207cdc branch memcpy 
-
-rec_audio_adpcm_encode:
-5e8d 704db528 jam 40 ,mem_rec_ad_in_numsamples1 
-5e8e 6fe14df2 fetch 2 ,mem_rec_adc_dma_rptr 
-5e8f 67e14db6 store 2 ,mem_rec_ad_in_ptr1 
-5e90 58000a24 setarg mem_rec_adpcm 
-5e91 67e14db8 store 2 ,mem_rec_ad_out_ptr1 
-
-rec_adpcm_encode:
-5e92 6fe24dad fetch 4 ,mem_rec_ad_state_valpred1 
-5e93 67e24dc0 store 4 ,mem_rec_ad_valpred1 
-5e94 6fe24db1 fetch 4 ,mem_rec_ad_state_index1 
-5e95 67e24dc4 store 4 ,mem_rec_ad_index1 
-5e96 6fe0cdc4 fetch 1 ,mem_rec_ad_index1 
-5e97 1febfe00 lshift2 pdata ,pdata 
-5e98 d8404c49 arg mem_rec_ad_stepsizetable1 ,temp 
-5e99 98408400 iadd temp ,temp 
-5e9a efe20002 ifetch 4 ,temp 
-5e9b 67e24dbc store 4 ,mem_rec_ad_step1 
-5e9c 704dd001 jam 1 ,mem_rec_ad_bufferstep1 
-
-rec_adpcm_encode_loop:
-5e9d 20405f3c call rec_adpcm_get_val_from_inp 
-5e9e 6fe24dd1 fetch 4 ,mem_rec_ad_val1 
-5e9f 684a4dc0 fetcht 4 ,mem_rec_ad_valpred1 
-5ea0 98467e00 isub temp ,pdata 
-5ea1 67e24dd9 store 4 ,mem_rec_ad_diff1 
-5ea2 20405ed7 call rec_adpcm_encode_cal_delta 
-5ea3 20405ede call rec_adpcm_set_diff_by_sign 
-5ea4 704dbb00 jam 0 ,mem_rec_ad_delta1 
-5ea5 6fe24dbc fetch 4 ,mem_rec_ad_step1 
-5ea6 1fe97e00 rshift3 pdata ,pdata 
-5ea7 67e24dc8 store 4 ,mem_rec_ad_vpdiff1 
-5ea8 20405ee5 call rec_check_diff_big_step1 
-5ea9 6fe24dbc fetch 4 ,mem_rec_ad_step1 
-5eaa 1fe37e00 rshift pdata ,pdata 
-5eab 67e24dbc store 4 ,mem_rec_ad_step1 
-5eac 20405ef3 call rec_check_diff_big_step2 
-5ead 6fe24dbc fetch 4 ,mem_rec_ad_step1 
-5eae 1fe37e00 rshift pdata ,pdata 
-5eaf 67e24dbc store 4 ,mem_rec_ad_step1 
-5eb0 20405efb call rec_check_diff_big_step3 
-5eb1 20405f03 call rec_check_sign_deal1 
-5eb2 20405f0e call rec_adpcm_check_valpred_more_32767 
-5eb3 6fe0cdbb fetch 1 ,mem_rec_ad_delta1 
-5eb4 6848cdba fetcht 1 ,mem_rec_ad_sign1 
-5eb5 9841fe00 ior temp ,pdata 
-5eb6 67e0cdbb store 1 ,mem_rec_ad_delta1 
-5eb7 6fe0cdbb fetch 1 ,mem_rec_ad_delta1 
-5eb8 d8404c39 arg mem_rec_ad_indextable1 ,temp 
-5eb9 98408400 iadd temp ,temp 
-5eba efe08002 ifetch 1 ,temp 
-5ebb 20405f49 call rec_char_2_int32 
-5ebc 684a4dc4 fetcht 4 ,mem_rec_ad_index1 
-5ebd 9840fe00 iadd temp ,pdata 
-5ebe 67e24dc4 store 4 ,mem_rec_ad_index1 
-5ebf 20405f1b call rec_adpcm_check_index_less_0 
-5ec0 20405f20 call rec_adpcm_check_index_big_88 
-5ec1 6fe24dc4 fetch 4 ,mem_rec_ad_index1 
-5ec2 1febfe00 lshift2 pdata ,pdata 
-5ec3 d8404c49 arg mem_rec_ad_stepsizetable1 ,temp 
-5ec4 98408400 iadd temp ,temp 
-5ec5 efe20002 ifetch 4 ,temp 
-5ec6 67e24dbc store 4 ,mem_rec_ad_step1 
-5ec7 20405f2a call rec_adpcm_check_bufferstep 
-5ec8 6fe0cdd0 fetch 1 ,mem_rec_ad_bufferstep1 
-5ec9 d8400001 arg 0x01 ,temp 
-5eca 9842fe00 ixor temp ,pdata 
-5ecb 67e0cdd0 store 1 ,mem_rec_ad_bufferstep1 
-5ecc 6fe0cdb5 fetch 1 ,mem_rec_ad_in_numsamples1 
-5ecd 1fe0ffff increase -1 ,pdata 
-5ece 67e0cdb5 store 1 ,mem_rec_ad_in_numsamples1 
-5ecf 243a5e9d nbranch rec_adpcm_encode_loop ,blank 
-5ed0 6fe0cdd0 fetch 1 ,mem_rec_ad_bufferstep1 
-5ed1 205a5f3a call rec_adpcm_set_bufferstep_to_outp ,blank 
-5ed2 6fe24dc0 fetch 4 ,mem_rec_ad_valpred1 
-5ed3 67e24dad store 4 ,mem_rec_ad_state_valpred1 
-5ed4 6fe24dc4 fetch 4 ,mem_rec_ad_index1 
-5ed5 67e24db1 store 4 ,mem_rec_ad_state_index1 
-5ed6 20600000 rtn 
-
-rec_adpcm_encode_cal_delta:
-5ed7 6fe24dd9 fetch 4 ,mem_rec_ad_diff1 
-5ed8 c28fdedc bbit1 31 ,rec_adpcm_encode_cal_smaller_zero 
-5ed9 58000000 setarg 0 
-
-rec_adpcm_encode_store_sign1:
-5eda 67e0cdba store 1 ,mem_rec_ad_sign1 
-5edb 20600000 rtn 
-
-rec_adpcm_encode_cal_smaller_zero:
-5edc 58000008 setarg 8 
-5edd 20205eda branch rec_adpcm_encode_store_sign1 
-
-rec_adpcm_set_diff_by_sign:
-5ede 6fe0cdba fetch 1 ,mem_rec_ad_sign1 
-5edf 243a5ee1 nbranch rec_adpcm_diff_negation ,blank 
-5ee0 20600000 rtn 
-
-rec_adpcm_diff_negation:
-5ee1 6fe24dd9 fetch 4 ,mem_rec_ad_diff1 
-5ee2 1fe67e00 sub pdata ,0 ,pdata 
-5ee3 67e24dd9 store 4 ,mem_rec_ad_diff1 
-5ee4 20600000 rtn 
-
-rec_check_diff_big_step1:
-5ee5 6fe24dd9 fetch 4 ,mem_rec_ad_diff1 
-5ee6 684a4dbc fetcht 4 ,mem_rec_ad_step1 
-5ee7 98467e00 isub temp ,pdata 
-5ee8 c38f8000 rtnbit1 31 
-5ee9 704dbb04 jam 4 ,mem_rec_ad_delta1 
-
-rec_check_diff_big_common:
-5eea 6fe24dd9 fetch 4 ,mem_rec_ad_diff1 
-5eeb 684a4dbc fetcht 4 ,mem_rec_ad_step1 
-5eec 98467e00 isub temp ,pdata 
-5eed 67e24dd9 store 4 ,mem_rec_ad_diff1 
-
-rec_check_diff_big_common_next:
-5eee 6fe24dc8 fetch 4 ,mem_rec_ad_vpdiff1 
-5eef 684a4dbc fetcht 4 ,mem_rec_ad_step1 
-5ef0 9840fe00 iadd temp ,pdata 
-5ef1 67e24dc8 store 4 ,mem_rec_ad_vpdiff1 
-5ef2 20600000 rtn 
-
-rec_check_diff_big_step2:
-5ef3 6fe24dd9 fetch 4 ,mem_rec_ad_diff1 
-5ef4 684a4dbc fetcht 4 ,mem_rec_ad_step1 
-5ef5 98467e00 isub temp ,pdata 
-5ef6 c38f8000 rtnbit1 31 
-5ef7 6fe0cdbb fetch 1 ,mem_rec_ad_delta1 
-5ef8 1fe1fe02 or pdata ,2 ,pdata 
-5ef9 67e0cdbb store 1 ,mem_rec_ad_delta1 
-5efa 20205eea branch rec_check_diff_big_common 
-
-rec_check_diff_big_step3:
-5efb 6fe24dd9 fetch 4 ,mem_rec_ad_diff1 
-5efc 684a4dbc fetcht 4 ,mem_rec_ad_step1 
-5efd 98467e00 isub temp ,pdata 
-5efe c38f8000 rtnbit1 31 
-5eff 6fe0cdbb fetch 1 ,mem_rec_ad_delta1 
-5f00 1fe1fe01 or pdata ,1 ,pdata 
-5f01 67e0cdbb store 1 ,mem_rec_ad_delta1 
-5f02 20205eee branch rec_check_diff_big_common_next 
-
-rec_check_sign_deal1:
-5f03 6fe0cdba fetch 1 ,mem_rec_ad_sign1 
-5f04 203a5f0a branch rec_valpred_add_vpdiff ,blank 
-
-rec_valpred_sub_vpdiff:
-5f05 6fe24dc0 fetch 4 ,mem_rec_ad_valpred1 
-5f06 684a4dc8 fetcht 4 ,mem_rec_ad_vpdiff1 
-5f07 98467e00 isub temp ,pdata 
-
-rec_valpred1_store:
-5f08 67e24dc0 store 4 ,mem_rec_ad_valpred1 
-5f09 20600000 rtn 
-
-rec_valpred_add_vpdiff:
-5f0a 6fe24dc0 fetch 4 ,mem_rec_ad_valpred1 
-5f0b 684a4dc8 fetcht 4 ,mem_rec_ad_vpdiff1 
-5f0c 9840fe00 iadd temp ,pdata 
-5f0d 20205f08 branch rec_valpred1_store 
-
-rec_adpcm_check_valpred_more_32767:
-5f0e 6fe24dc0 fetch 4 ,mem_rec_ad_valpred1 
-5f0f d8407fff arg 32767 ,temp 
-5f10 98467e00 isub temp ,pdata 
-5f11 c30fdf17 bbit0 31 ,rec_adpcm_valpred_more_32767 
-
-rec_adpcm_check_valpred_less_f32767:
-5f12 6fe24dc0 fetch 4 ,mem_rec_ad_valpred1 
-5f13 d85f8001 arg -32767 ,temp 
-5f14 98467e00 isub temp ,pdata 
-5f15 c28fdf19 bbit1 31 ,rec_adpcm_valpred_less_f32767 
-5f16 20600000 rtn 
-
-rec_adpcm_valpred_more_32767:
-5f17 58007fff setarg 32767 
-5f18 20205f08 branch rec_valpred1_store 
-
-rec_adpcm_valpred_less_f32767:
-5f19 5fff8001 setarg -32767 
-5f1a 20205f08 branch rec_valpred1_store 
-
-rec_adpcm_check_index_less_0:
-5f1b 6fe24dc4 fetch 4 ,mem_rec_ad_index1 
-5f1c d8400000 arg 0 ,temp 
-5f1d 98467e00 isub temp ,pdata 
-5f1e c28fdf25 bbit1 31 ,rec_adpcm_set_0_index 
-5f1f 20600000 rtn 
-
-rec_adpcm_check_index_big_88:
-5f20 6fe24dc4 fetch 4 ,mem_rec_ad_index1 
-5f21 d8400058 arg 88 ,temp 
-5f22 98467e00 isub temp ,pdata 
-5f23 c30fdf28 bbit0 31 ,rec_adpcm_set_88_index 
-5f24 20600000 rtn 
-
-rec_adpcm_set_0_index:
-5f25 58000000 setarg 0 
-
-rec_adpcm_store_index1:
-5f26 67e24dc4 store 4 ,mem_rec_ad_index1 
-5f27 20600000 rtn 
-
-rec_adpcm_set_88_index:
-5f28 58000058 setarg 88 
-5f29 20205f26 branch rec_adpcm_store_index1 
-
-rec_adpcm_check_bufferstep:
-5f2a 6fe0cdd0 fetch 1 ,mem_rec_ad_bufferstep1 
-5f2b 203a5f30 branch rec_adpcm_bufferstep_eque_0 ,blank 
-
-rec_adpcm_bufferstep_neque_0:
-5f2c 6fe0cdbb fetch 1 ,mem_rec_ad_delta1 
-5f2d 1fe17e0f and pdata ,0x0f ,pdata 
-5f2e 67e24dd5 store 4 ,mem_rec_ad_outputbuffer1 
-5f2f 20600000 rtn 
-
-rec_adpcm_bufferstep_eque_0:
-5f30 6fe0cdbb fetch 1 ,mem_rec_ad_delta1 
-5f31 1ff27e00 lshift4 ,pdata ,pdata 
-5f32 1fe17ef0 and pdata ,0xf0 ,pdata 
-5f33 684a4dd5 fetcht 4 ,mem_rec_ad_outputbuffer1 
-5f34 9841fe00 ior temp ,pdata 
-
-rec_adpcm_bufferstep_increase_out_ptr1:
-5f35 68494db8 fetcht 2 ,mem_rec_ad_out_ptr1 
-5f36 e7e08002 istore 1 ,temp 
-5f37 18408401 increase 1 ,temp 
-5f38 60494db8 storet 2 ,mem_rec_ad_out_ptr1 
-5f39 20600000 rtn 
-
-rec_adpcm_set_bufferstep_to_outp:
-5f3a 6fe24dd5 fetch 4 ,mem_rec_ad_outputbuffer1 
-5f3b 20205f35 branch rec_adpcm_bufferstep_increase_out_ptr1 
-
-rec_adpcm_get_val_from_inp:
-5f3c 68494db6 fetcht 2 ,mem_rec_ad_in_ptr1 
-5f3d efe10002 ifetch 2 ,temp 
-5f3e 18408402 increase 2 ,temp 
-5f3f 60494db6 storet 2 ,mem_rec_ad_in_ptr1 
-5f40 20405f43 call rec_int16_2_int32 
-5f41 67e24dd1 store 4 ,mem_rec_ad_val1 
-5f42 20600000 rtn 
-
-rec_int16_2_int32:
-5f43 c287df45 bbit1 15 ,rec_int16_2_int32_less_0 
-5f44 20600000 rtn 
-
-rec_int16_2_int32_less_0:
-5f45 d840ffff arg 0xffff ,temp 
-5f46 18500400 lshift16 temp ,temp 
-
-rec_calca_ixor:
-5f47 9842fe00 ixor temp ,pdata 
-5f48 20600000 rtn 
-
-rec_char_2_int32:
-5f49 c283df4b bbit1 7 ,rec_char_2_int32_less_0 
-5f4a 20600000 rtn 
-
-rec_char_2_int32_less_0:
-5f4b d85fffff arg 0xffffff ,temp 
-5f4c 184d0400 lshift8 temp ,temp 
-5f4d 20205f47 branch rec_calca_ixor 
-
-rec_voice_notify_apk:
-5f4e da200014 arg 20 ,rega 
-5f4f 68494df4 fetcht 2 ,mem_rec_voice_notify_apk_handle 
-
-rec_le_notify_data:
-5f50 20402dcc call le_att_malloc_tx_notify 
-5f51 d8c04dde arg mem_rec_voice_notify ,contr 
-5f52 df200014 arg 20 ,loopcnt 
-5f53 20207cdc branch memcpy 
-
-rec_voice_start_apk:
-5f54 70064e01 jam 0x01 ,mem_pdatatemp 
-
-rec_voice_notify_apk_data:
-5f55 704c0a01 jam 1 ,mem_rec_le_data_len 
-5f56 68494df8 fetcht 2 ,mem_rec_control_notify_apk_handle 
-5f57 20205d94 branch rec_le_send_data 
-
-rec_voice_end_apk:
-5f58 70064e00 jam 0x00 ,mem_pdatatemp 
-5f59 20205f55 branch rec_voice_notify_apk_data 
-
-rec_voice_notify_box:
-5f5a da200014 arg 20 ,rega 
-5f5b 68494df6 fetcht 2 ,mem_rec_voice_notify_box_handle 
-5f5c 20205f50 branch rec_le_notify_data 
-
-rec_voice_start_box:
-5f5d 58000221 setarg 0x221 
-
-rec_voice_notify_box_data:
-5f5e 67e1864e store 3 ,mem_pdatatemp 
-5f5f 704c0a03 jam 3 ,mem_rec_le_data_len 
-5f60 68494dfa fetcht 2 ,mem_rec_control_notify_box_handle 
-5f61 20205d94 branch rec_le_send_data 
-
-rec_voice_end_box:
-5f62 5800cccc setarg 0xcccc 
-5f63 20205f5e branch rec_voice_notify_box_data 
-
-rec_ota_process:
-5f64 44ddc017 bpatch patch17_3 ,mem_patch17 
-5f65 1a220c00 copy rega ,contr 
-5f66 efe08006 ifetch 1 ,contr 
-5f67 c1dd0000 rtnne ota_command 
-5f68 efe08006 ifetch 1 ,contr 
-5f69 67e0ce51 store 1 ,mem_rec_ota_notify_opcode 
-5f6a c0085f77 beq ota_portocol_version_request ,rec_ota_parse_protocol_version_req 
-5f6b c008df7f beq ota_buck_size_request ,rec_ota_parse_buck_size_req 
-5f6c c00adf86 beq ota_start_request ,rec_ota_parse_start_req 
-5f6d c00b5fb2 beq ota_data_write_cmd ,rec_ota_parse_data_write_cmd 
-5f6e c00bdfbf beq ota_data_write_request ,rec_ota_prep_data_write_rsp 
-5f6f c00c5fcd beq ota_end_request ,rec_ota_parse_end_req 
-
-rec_ota_init:
-5f70 5fffffff setarg -1 
-5f71 67e14e35 store 2 ,mem_rec_ota_write_index 
-5f72 58000000 setarg 0 
-5f73 67e24e43 store 4 ,mem_rec_ota_total_sum 
-5f74 67e14e37 store 2 ,mem_rec_ota_write_length 
-5f75 704e5200 jam ota_result_success ,mem_rec_ota_notify_result 
-5f76 20600000 rtn 
-
-rec_ota_parse_protocol_version_req:
-5f77 da200005 arg 5 ,rega 
-5f78 20405fc4 call rec_ota_tx_notify_success 
-5f79 6fe14e48 fetch 2 ,mem_rec_ota_version 
-5f7a e7e10005 istore 2 ,contw 
-5f7b 704e6501 jam ota_le_conn_param_update_enable ,mem_rec_ota_le_conn_param_update 
-5f7c 6fe44e5c fetch 8 ,mem_rec_ota_le_conn_update_param 
-5f7d 67e442d5 store 8 ,mem_le_interval_min 
-5f7e 20202e71 branch le_l2cap_tx_update_req 
-
-rec_ota_parse_buck_size_req:
-5f7f da200007 arg 7 ,rega 
-5f80 20405fc4 call rec_ota_tx_notify_success 
-5f81 6fe14e4a fetch 2 ,mem_rec_ota_buck_size 
-5f82 e7e10005 istore 2 ,contw 
-5f83 6fe14e4c fetch 2 ,mem_rec_ota_packet_max_len 
-5f84 e7e10005 istore 2 ,contw 
-5f85 20600000 rtn 
-
-rec_ota_parse_start_req:
-5f86 efe08006 ifetch 1 ,contr 
-5f87 67e0ce47 store 1 ,mem_rec_ota_update_flash_mode 
-5f88 c0005f92 beq ota_update_flash_normal ,rec_ota_parse_start_req_update_normal 
-
-rec_ota_tx_flashmode_not_support:
-5f89 da200004 arg 4 ,rega 
-5f8a 704e5203 jam ota_result_flashmode_not_support ,mem_rec_ota_notify_result 
-5f8b 20405fc5 call rec_ota_tx_notify_common 
-5f8c 6fe0ce47 fetch 1 ,mem_rec_ota_update_flash_mode 
-5f8d 20207dce branch istore_1_contw_rtn 
-
-rec_ota_tx_start_req_success:
-5f8e da200004 arg 4 ,rega 
-5f8f 20405fc4 call rec_ota_tx_notify_success 
-5f90 6fe0ce47 fetch 1 ,mem_rec_ota_update_flash_mode 
-5f91 20207dce branch istore_1_contw_rtn 
-
-rec_ota_parse_start_req_update_normal:
-5f92 20405f8e call rec_ota_tx_start_req_success 
-5f93 20405f70 call rec_ota_init 
-5f94 58000000 setarg 0 
-5f95 67e1ce6b store 3 ,mem_rec_ota_flash_offset_addr 
-5f96 704e6601 jam 1 ,mem_rec_ota_enable 
-5f97 58000000 setarg 0 
-5f98 d8400010 arg 0x10 ,temp 
-5f99 da200c8c arg mem_rec_ota_flash_buf ,rega 
-5f9a 20406c43 call spid_read_flash 
-5f9b 20405fa8 call rec_ota_set_flash_start_addr 
-5f9c 6a21ce68 fetchr rega ,3 ,mem_rec_ota_flash_base_addr 
-5f9d df200009 arg 9 ,loopcnt 
-
-rec_erase_num_sector_flash:
-5f9e 18007000 force 0 ,regext_index 
-
-rec_erase_num_sector_flash_loop:
-5f9f 2040608e call rec_spi_wait_flash 
-5fa0 6221c430 storer rega ,3 ,mem_spi_write_addr 
-5fa1 2040609f call rec_save_loopcnt_rega 
-5fa2 20406bee call spid_flash_erase_sector 
-5fa3 204060a1 call rec_rescue_rega_loopcnt 
-5fa4 58001000 setarg 4096 
-5fa5 9a20a200 iadd rega ,rega 
-5fa6 c2005f9f loop rec_erase_num_sector_flash_loop 
-5fa7 20600000 rtn 
-
-rec_ota_set_flash_start_addr:
-5fa8 4778c03e bpatchx patch3e_1 ,mem_patch3e 
-5fa9 6849ce75 fetcht 3 ,mem_rec_code_b_flash_addr 
-5faa 6049ce68 storet 3 ,mem_rec_ota_flash_base_addr 
-5fab 6049ce40 storet 3 ,mem_rec_ota_write_flash_addr_start 
-5fac 6fe08c8c fetch 1 ,mem_rec_ota_flash_buf 
-5fad c1300000 rtneq 0x60 
-5fae 6849ce72 fetcht 3 ,mem_rec_code_a_flash_addr 
-5faf 6049ce68 storet 3 ,mem_rec_ota_flash_base_addr 
-5fb0 6049ce40 storet 3 ,mem_rec_ota_write_flash_addr_start 
-5fb1 20600000 rtn 
-
-rec_ota_parse_data_write_cmd:
-
-rec_ota_parse_data_write_req:
-
-rec_ota_parse_data_write_data_store:
-5fb2 68494337 fetcht 2 ,mem_le_l2cap_size 
-5fb3 184085f8 increase -8 ,temp 
-5fb4 6fe14e37 fetch 2 ,mem_rec_ota_write_length 
-5fb5 9840fe00 iadd temp ,pdata 
-5fb6 67e14e37 store 2 ,mem_rec_ota_write_length 
-5fb7 18427200 copy temp ,loopcnt 
-5fb8 1a220c00 copy rega ,contr 
-5fb9 18c08c05 increase 5 ,contr 
-5fba 20406052 call rec_queue_ota_push 
-5fbb 6fe14e35 fetch 2 ,mem_rec_ota_write_index 
-5fbc 1fe0fe01 increase 1 ,pdata 
-5fbd 67e14e35 store 2 ,mem_rec_ota_write_index 
-5fbe 20600000 rtn 
-
-rec_ota_prep_data_write_rsp:
-5fbf 20405fb2 call rec_ota_parse_data_write_req 
-5fc0 704e5200 jam ota_result_success ,mem_rec_ota_notify_result 
-5fc1 704e5117 jam ota_data_write_request ,mem_rec_ota_notify_opcode 
-5fc2 da200003 arg 3 ,rega 
-5fc3 20205fc5 branch rec_ota_tx_notify_common 
-
-rec_ota_tx_notify_success:
-5fc4 704e5200 jam ota_result_success ,mem_rec_ota_notify_result 
-
-rec_ota_tx_notify_common:
-5fc5 68494e4f fetcht 2 ,mem_rec_ota_notify_handle 
-5fc6 20402dcc call le_att_malloc_tx_notify 
-5fc7 580000ab setarg ota_event 
-5fc8 e7e08005 istore 1 ,contw 
-5fc9 6fe0ce52 fetch 1 ,mem_rec_ota_notify_result 
-5fca e7e08005 istore 1 ,contw 
-5fcb 6fe0ce51 fetch 1 ,mem_rec_ota_notify_opcode 
-5fcc 20207dce branch istore_1_contw_rtn 
-
-rec_ota_parse_end_req:
-5fcd 18007000 force 0 ,regext_index 
-5fce 20406097 call rec_save_contr 
-5fcf 20405ff2 call rec_ota_data2flash_remain 
-5fd0 704e6600 jam 0 ,mem_rec_ota_enable 
-5fd1 58000000 setarg 0 
-5fd2 67e1ce6b store 3 ,mem_rec_ota_flash_offset_addr 
-5fd3 67e24e43 store 4 ,mem_rec_ota_total_sum 
-5fd4 20406007 call rec_ota_sum_all 
-5fd5 20406099 call rec_rescue_contr 
-5fd6 18c08c01 increase 1 ,contr 
-5fd7 efe20006 ifetch 4 ,contr 
-5fd8 67e2064e store 4 ,mem_pdatatemp 
-5fd9 efe20006 ifetch 4 ,contr 
-5fda 67e20652 store 4 ,mem_pdatatemp + 4 
-5fdb 6fe2064e fetch 4 ,mem_pdatatemp 
-5fdc 684a4e37 fetcht 4 ,mem_rec_ota_write_length 
-5fdd 98467c00 isub temp ,null 
-5fde 2422dfee nbranch rec_ota_tx_length_error ,zero 
-5fdf 6fe24e43 fetch 4 ,mem_rec_ota_total_sum 
-5fe0 684a0652 fetcht 4 ,mem_pdatatemp + 4 
-5fe1 98467c00 isub temp ,null 
-5fe2 2422dff0 nbranch rec_ota_result_error_write_flash ,zero 
-5fe3 20406070 call rec_ota_updata_head 
-5fe4 704e6402 jam 2 ,mem_rec_ota_reset_timeout 
-
-rec_ota_tx_end_req_return:
-5fe5 da20000c arg 0x0c ,rega 
-5fe6 20405fc5 call rec_ota_tx_notify_common 
-5fe7 6fe0ce47 fetch 1 ,mem_rec_ota_update_flash_mode 
-5fe8 e7e08005 istore 1 ,contw 
-5fe9 6fe24e37 fetch 4 ,mem_rec_ota_write_length 
-5fea e7e20005 istore 4 ,contw 
-5feb 6fe24e43 fetch 4 ,mem_rec_ota_total_sum 
-5fec e7e20005 istore 4 ,contw 
-5fed 20600000 rtn 
-
-rec_ota_tx_length_error:
-5fee 704e5205 jam ota_result_length_error ,mem_rec_ota_notify_result 
-5fef 20205fe5 branch rec_ota_tx_end_req_return 
-
-rec_ota_result_error_write_flash:
-5ff0 704e5207 jam ota_result_write_flash_error ,mem_rec_ota_notify_result 
-5ff1 20600000 rtn 
-
-rec_ota_data2flash_remain:
-5ff2 6fe0ce66 fetch 1 ,mem_rec_ota_enable 
-5ff3 207a0000 rtn blank 
-5ff4 20406001 call rec_ota_queue_count_256 
-5ff5 20610000 rtn positive 
-5ff6 68494e6e fetcht 2 ,mem_rec_queue_ota_count 
-5ff7 204060a7 call rec_save_temp 
-5ff8 18427200 copy temp ,loopcnt 
-5ff9 d8a00c8c arg mem_rec_ota_flash_buf ,contw 
-5ffa 20406061 call rec_queue_ota_pop 
-5ffb 2040608e call rec_spi_wait_flash 
-5ffc 204060a9 call rec_rescue_temp 
-5ffd 204060a7 call rec_save_temp 
-5ffe 20406041 call rec_ota_data2flash 
-5fff 204060a9 call rec_rescue_temp 
-6000 2020603d branch rec_ota_increase_flash_offset_addr 
-
-rec_ota_queue_count_256:
-6001 6fe14e6e fetch 2 ,mem_rec_queue_ota_count 
-6002 d8400100 arg 256 ,temp 
-6003 98467c00 isub temp ,null 
-6004 20600000 rtn 
-
-rec_ota_sum_page:
-6005 df200100 arg 0x100 ,loopcnt 
-6006 20206017 branch rec_ota_sum 
-
-rec_ota_sum_all:
-6007 6fe14e37 fetch 2 ,mem_rec_ota_write_length 
-6008 68494e6b fetcht 2 ,mem_rec_ota_flash_offset_addr 
-6009 98467e00 isub temp ,pdata 
-600a 20628000 rtn zero 
-600b 20405d15 call rec_save_reg 
-600c 2040601d call rec_ota_data_from_flash_len 
-600d 20405d18 call rec_rescue_reg 
-600e 20406013 call rec_ota_sum_len 
-600f 6fe24e43 fetch 4 ,mem_rec_ota_total_sum 
-6010 9840fe00 iadd temp ,pdata 
-6011 67e24e43 store 4 ,mem_rec_ota_total_sum 
-6012 20206007 branch rec_ota_sum_all 
-
-rec_ota_sum_len:
-6013 d8400100 arg 0x100 ,temp 
-6014 98467c00 isub temp ,null 
-6015 20216005 branch rec_ota_sum_page ,positive 
-6016 1fe27200 copy pdata ,loopcnt 
-
-rec_ota_sum:
-6017 d8c00c8c arg mem_rec_ota_flash_buf ,contr 
-6018 d8400000 arg 0 ,temp 
-
-rec_ota_sum_loop:
-6019 efe08006 ifetch 1 ,contr 
-601a 98408400 iadd temp ,temp 
-601b c2006019 loop rec_ota_sum_loop 
-601c 20600000 rtn 
-
-rec_ota_data_from_flash_len:
-601d d8400100 arg 0x100 ,temp 
-601e 98467c00 isub temp ,null 
-601f 2021602b branch rec_ota_data_from_flash_page ,positive 
-6020 20405d15 call rec_save_reg 
-6021 1fe27200 copy pdata ,loopcnt 
-6022 20406026 call rec_ota_data_from_flash 
-6023 20405d18 call rec_rescue_reg 
-6024 1fe20400 copy pdata ,temp 
-6025 2020603d branch rec_ota_increase_flash_offset_addr 
-
-rec_ota_data_from_flash:
-6026 6fe1ce68 fetch 3 ,mem_rec_ota_flash_base_addr 
-6027 6a41ce6b fetchr regb ,3 ,mem_rec_ota_flash_offset_addr 
-6028 9a40fe00 iadd regb ,pdata 
-6029 da200c8c arg mem_rec_ota_flash_buf ,rega 
-602a 20206c43 branch spid_read_flash 
-
-rec_ota_data_from_flash_page:
-602b d8400100 arg 0x100 ,temp 
-602c 20406026 call rec_ota_data_from_flash 
-602d d8400100 arg 0x100 ,temp 
-602e 2020603d branch rec_ota_increase_flash_offset_addr 
-
-rec_ota_polling:
-602f 6fe0ce66 fetch 1 ,mem_rec_ota_enable 
-6030 245a6032 ncall rec_ota_data2flash_page ,blank 
-6031 20600000 rtn 
-
-rec_ota_data2flash_page:
-6032 6fe0ce66 fetch 1 ,mem_rec_ota_enable 
-6033 207a0000 rtn blank 
-6034 20406001 call rec_ota_queue_count_256 
-6035 24610000 nrtn positive 
-6036 df200100 arg 256 ,loopcnt 
-6037 d8a00c8c arg mem_rec_ota_flash_buf ,contw 
-6038 20406061 call rec_queue_ota_pop 
-6039 2040608e call rec_spi_wait_flash 
-603a d8400100 arg 256 ,temp 
-603b 20406041 call rec_ota_data2flash 
-603c d8400100 arg 256 ,temp 
-
-rec_ota_increase_flash_offset_addr:
-603d 6fe14e6b fetch 2 ,mem_rec_ota_flash_offset_addr 
-603e 9840fe00 iadd temp ,pdata 
-603f 67e14e6b store 2 ,mem_rec_ota_flash_offset_addr 
-6040 20600000 rtn 
-
-rec_ota_data2flash:
-6041 6fe1ce68 fetch 3 ,mem_rec_ota_flash_base_addr 
-6042 6a41ce6b fetchr regb ,3 ,mem_rec_ota_flash_offset_addr 
-6043 9a40fe00 iadd regb ,pdata 
-6044 da200c8c arg mem_rec_ota_flash_buf ,rega 
-6045 20206c29 branch spid_write_flash_data 
-
-rec_queue_ota_init:
-6046 580006ef setarg mem_rec_queue_ota_buf 
-6047 68494e70 fetcht 2 ,mem_rec_ota_queue_size 
-
-rec_queue_init_config:
-6048 184085ff increase -1 ,temp 
-6049 1fe20a00 copy pdata ,contw 
-604a 18a08bf8 increase -8 ,contw 
-604b e7e10005 istore 2 ,contw 
-604c 9840fe00 iadd temp ,pdata 
-604d e7e10005 istore 2 ,contw 
-604e 98467e00 isub temp ,pdata 
-604f e7e10005 istore 2 ,contw 
-6050 e7e10005 istore 2 ,contw 
-6051 20600000 rtn 
-
-rec_queue_ota_push:
-6052 20406097 call rec_save_contr 
-6053 44de4017 bpatch patch17_4 ,mem_patch17 
-6054 6fe14e6e fetch 2 ,mem_rec_queue_ota_count 
-6055 9f20fe00 iadd loopcnt ,pdata 
-6056 67e14e6e store 2 ,mem_rec_queue_ota_count 
-6057 580006ef setarg mem_rec_queue_ota_buf 
-6058 204060ac call rec_queue_enter_config 
-6059 20406099 call rec_rescue_contr 
-605a 204060c0 call rec_enter_queue 
-605b 6fe14e6e fetch 2 ,mem_rec_queue_ota_count 
-605c 68494e70 fetcht 2 ,mem_rec_ota_queue_size 
-605d 98467c00 isub temp ,null 
-605e 20416060 call rec_queue_ota_data_loss ,positive 
-605f 20600000 rtn 
-
-rec_queue_ota_data_loss:
-6060 20600000 rtn 
-
-rec_queue_ota_pop:
-6061 2040609b call rec_save_contw 
-6062 6fe14e6e fetch 2 ,mem_rec_queue_ota_count 
-6063 9f267e00 isub loopcnt ,pdata 
-6064 67e14e6e store 2 ,mem_rec_queue_ota_count 
-6065 580006ef setarg mem_rec_queue_ota_buf 
-6066 204060b6 call rec_queue_out_config 
-6067 2040609d call rec_rescue_contw 
-
-rec_out_queue:
-6068 18627e00 copy contu ,pdata 
-6069 98467c00 isub temp ,null 
-606a 2022a33e branch assert ,zero 
-
-rec_out_queue_loop:
-606b efe08003 ifetch 1 ,contru 
-606c e7e08005 istore 1 ,contw 
-606d c200606b loop rec_out_queue_loop 
-606e e0610011 istorer contru ,2 ,rega 
-606f 20600000 rtn 
-
-rec_ota_updata_head:
-6070 20406079 call rec_ota_read_head 
-6071 58000000 setarg 0 
-6072 20406085 call rec_spid_flash_erase_page 
-
-rec_ota_write_head_check:
-6073 44dec017 bpatch patch17_5 ,mem_patch17 
-6074 6fe08c8c fetch 1 ,mem_rec_ota_flash_buf 
-6075 c030607d beq 0x60 ,rec_ota_write_head_b 
-6076 c0786077 beq 0xf0 ,rec_ota_write_head_a 
-
-rec_ota_write_head_a:
-6077 6fe1ce72 fetch 3 ,mem_rec_code_a_flash_addr 
-6078 2020607e branch rec_ota_write_head 
-
-rec_ota_read_head:
-6079 58000000 setarg 0 
-607a d8400100 arg 0x100 ,temp 
-607b da200c8c arg mem_rec_ota_flash_buf ,rega 
-607c 20206c43 branch spid_read_flash 
-
-rec_ota_write_head_b:
-607d 6fe1ce75 fetch 3 ,mem_rec_code_b_flash_addr 
-
-rec_ota_write_head:
-607e 1fe0fe02 increase 2 ,pdata 
-607f 1ff0fe00 byteswap pdata ,pdata 
-6080 67e10c8c store 2 ,mem_rec_ota_flash_buf 
-6081 d8400100 arg 0x100 ,temp 
-6082 da200c8c arg mem_rec_ota_flash_buf ,rega 
-6083 58000000 setarg 0 
-6084 20206c29 branch spid_write_flash_data 
-
-rec_spid_flash_erase_page:
-6085 67e1c430 store 3 ,mem_spi_write_addr 
-6086 2040608e call rec_spi_wait_flash 
-6087 20406c16 call spid_init_flash 
-6088 20406c1c call spid_unlock_flash 
-6089 da2001bc arg mem_spid_tbuf ,rega 
-608a 70808204 jam 4 ,core_spid_txlen 
-608b 6fe1c430 fetch 3 ,mem_spi_write_addr 
-608c d8400081 arg flash_command_page_erase ,temp 
-608d 20206c36 branch spid_write_flash_common 
-
-rec_spi_wait_flash:
-608e 580001bc setarg mem_spid_tbuf 
-608f 67f10084 store 2 ,core_spid_txaddr 
-6090 580001c1 setarg mem_spid_rbuf 
-6091 67f10086 store 2 ,core_spid_rxaddr 
-6092 70808300 jam 0 ,core_spid_txlen + 1 
-6093 58000005 setarg flash_read_satus 
-6094 20406bcd call spid_read_reg 
-6095 c280608e bbit1 flash_status_wip ,rec_spi_wait_flash 
-6096 20600000 rtn 
-
-rec_save_contr:
-6097 18c27e00 copy contr ,pdata 
-6098 20205d15 branch rec_save_reg 
-
-rec_rescue_contr:
-6099 20405d18 call rec_rescue_reg 
-609a 20207c6a branch get_contr_end 
-
-rec_save_contw:
-609b 18a27e00 copy contw ,pdata 
-609c 20205d15 branch rec_save_reg 
-
-rec_rescue_contw:
-609d 20405d18 call rec_rescue_reg 
-609e 20207c67 branch get_contw_end 
-
-rec_save_loopcnt_rega:
-609f 204060a5 call rec_save_loopcnt 
-60a0 20205d10 branch rec_save_rega 
-
-rec_rescue_rega_loopcnt:
-60a1 20405d12 call rec_rescue_rega 
-
-rec_rescue_loopcnt:
-60a2 20405d18 call rec_rescue_reg 
-60a3 1fe27200 copy pdata ,loopcnt 
-60a4 20600000 rtn 
-
-rec_save_loopcnt:
-60a5 1f227e00 copy loopcnt ,pdata 
-60a6 20205d15 branch rec_save_reg 
-
-rec_save_temp:
-60a7 18427e00 copy temp ,pdata 
-60a8 20205d15 branch rec_save_reg 
-
-rec_rescue_temp:
-60a9 20405d18 call rec_rescue_reg 
-60aa 1fe20400 copy pdata ,temp 
-60ab 20600000 rtn 
-
-rec_queue_enter_config:
-60ac 1fe0fff8 increase -8 ,pdata 
-60ad e941003f ifetchr contus ,2 ,pdata 
-60ae 1fe0fe02 increase 2 ,pdata 
-60af ea01003f ifetchr contue ,2 ,pdata 
-60b0 1fe0fe02 increase 2 ,pdata 
-60b1 e841003f ifetchr temp ,2 ,pdata 
-60b2 1fe0fe02 increase 2 ,pdata 
-60b3 e861003f ifetchr contu ,2 ,pdata 
-60b4 1fe22200 copy pdata ,rega 
-60b5 20600000 rtn 
-
-rec_queue_out_config:
-60b6 1fe0fff8 increase -8 ,pdata 
-60b7 e941003f ifetchr contus ,2 ,pdata 
-60b8 1fe0fe02 increase 2 ,pdata 
-60b9 ea01003f ifetchr contue ,2 ,pdata 
-60ba 1fe0fe02 increase 2 ,pdata 
-60bb e861003f ifetchr contu ,2 ,pdata 
-60bc 1fe22200 copy pdata ,rega 
-60bd 1fe0fe02 increase 2 ,pdata 
-60be e841003f ifetchr temp ,2 ,pdata 
-60bf 20600000 rtn 
-
-rec_enter_queue:
-
-rec_enter_queue_loop:
-60c0 efe08006 ifetch 1 ,contr 
-60c1 e7e08003 istore 1 ,contwu 
-60c2 c20060c0 loop rec_enter_queue_loop 
-60c3 e0610011 istorer contwu ,2 ,rega 
-60c4 18627e00 copy contwu ,pdata 
-60c5 98467c00 isub temp ,null 
-60c6 2022a33e branch assert ,zero 
-60c7 20600000 rtn 
-
-shutter_init:
-60c8 20407384 call enable_authrom 
-60c9 20758000 rtn wake 
-60ca 58006143 setarg shutter_process_idle 
-60cb 67e143e4 store 2 ,mem_cb_idle_process 
-60cc 580060f3 setarg shutter_process_bb_event 
-60cd 67e143e6 store 2 ,mem_cb_bb_event_process 
-60ce 580061a7 setarg ble_shutter_receive_data 
-60cf 67e143e8 store 2 ,mem_cb_att_write 
-60d0 5800612a setarg shutter_le_bb_event_timer 
-60d1 67e143ec store 2 ,mem_cb_event_timer 
-60d2 58006182 setarg shutter_key_change 
-60d3 67e1453b store 2 ,mem_cb_shutter_keycan 
-60d4 204060dc call shutter_common_init 
-60d5 44df4017 bpatch patch17_6 ,mem_patch17 
-60d6 204061b3 call shutter_load_buffer_config_form_datarom 
-
-shutter_power_switch:
-60d7 6fe0c531 fetch 1 ,mem_shutter_hard_soft_switch_case 
-60d8 c00060ea beq hard_switch ,shutter_hart_swtich_power_on 
-60d9 6fe0c532 fetch 1 ,mem_shutter_soft_switch_button_gpio 
-60da 67e0c503 store 1 ,mem_ui_button_gpio 
-60db 202061be branch ui_soft_swtich_init 
-
-shutter_common_init:
-60dc 58006147 setarg shutter_le_before_hibernate 
-60dd 67e143de store 2 ,mem_cb_before_hibernate 
-60de 58006145 setarg shutter_process_lpm_before 
-60df 67e143e0 store 2 ,mem_cb_before_lpm 
-60e0 5800615d setarg shutter_soft_swtich_power_on 
-60e1 67e14536 store 2 ,mem_shutter_soft_switch_poweron_callback_function 
-60e2 580061b7 setarg shutter_soft_swtich_power_off 
-60e3 67e14538 store 2 ,mem_shutter_soft_switch_poweroff_callback_function 
-60e4 70416007 jam 7 ,mem_version 
-60e5 20402948 call le_modified_name_adv 
-60e6 204061aa call shutter_init_param 
-60e7 2040705b call keyscan_key_init 
-60e8 2040789d call queue_init 
-60e9 2020779a branch ui_led_init_global 
-
-shutter_hart_swtich_power_on:
-60ea 704503ff jam ui_button_gpio_disable ,mem_ui_button_gpio 
-60eb 70453301 jam ss_state_power_on ,mem_shutter_soft_switch_power_state 
-60ec 2020615d branch shutter_start_reconnect 
-
-shutter_le_scale_lpm_lock:
-60ed 6fe0c533 fetch 1 ,mem_shutter_soft_switch_power_state 
-60ee c001377d beq ss_state_power_off ,app_get_lpm_wake_lock 
-60ef 20406945 call l2cap_malloc_get_full_map 
-60f0 6fe0c458 fetch 1 ,mem_used_map 
-60f1 243a377d nbranch app_get_lpm_wake_lock ,blank 
-60f2 2020377f branch app_put_lpm_wake_lock 
-
-shutter_process_bb_event:
-60f3 1a627e00 copy regc ,pdata 
-60f4 c00a60fc beq bt_evt_le_connected ,ble_shutter_process_baseband_connect 
-60f5 c00ae100 beq bt_evt_le_disconnected ,ble_shutter_process_baseband_disconnect 
-60f6 c01fe103 beq bt_evt_le_reconnect_complete ,ble_shutter_process_reconnect_complete 
-60f7 c020610b beq bt_evt_le_parse_conn_papa_update_rsp ,ble_shutter_process_parse_connect_parameter_update_response 
-60f8 c00861d3 beq bt_evt_button_long_pressed ,ui_soft_switch_botton_long_press 
-60f9 c0166111 beq bt_evt_button_down ,shutter_process_soft_swtich_button_down 
-60fa c016e11c beq bt_evt_button_up ,shutter_process_soft_swtich_button_up 
-60fb 20600000 rtn 
-
-ble_shutter_process_baseband_connect:
-60fc 2040614a call shutter_stop_bluetooth_discovery 
-60fd 58000000 setarg 0 
-60fe 67e1450f store 2 ,mem_ble_shutter_reconn_timer 
-60ff 2020379a branch app_led_off 
-
-ble_shutter_process_baseband_disconnect:
-6100 2040789d call queue_init 
-6101 70450800 jam 0 ,mem_ble_shutter_enable_notify 
-6102 2020615d branch shutter_start_reconnect 
-
-ble_shutter_process_reconnect_complete:
-6103 2040789d call queue_init 
-6104 70450801 jam 1 ,mem_ble_shutter_enable_notify 
-6105 204065b3 call shutter_dy_check_iphone 
-6106 204037a0 call app_lpm_mult_enable 
-6107 243a632b nbranch ble_parameter_updata_response_ios ,blank 
-6108 6fe44ecb fetch 8 ,mem_ble_shutter_dy_interval_min_android 
-6109 67e442d5 store 8 ,mem_le_interval_min 
-610a 20202e71 branch le_l2cap_tx_update_req 
-
-ble_shutter_process_parse_connect_parameter_update_response:
-610b 6fe14340 fetch 2 ,mem_le_l2cap_signaling_conn_param_update_rsp_result 
-610c c1000000 rtneq ble_signaling_connect_parameter_update_accepted 
-610d 6fe44521 fetch 8 ,mem_ble_shutter_interval_min_new 
-610e 207a0000 rtn blank 
-610f 67e442d5 store 8 ,mem_le_interval_min 
-6110 20202e71 branch le_l2cap_tx_update_req 
-
-shutter_process_soft_swtich_button_down:
-6111 6fe0c531 fetch 1 ,mem_shutter_hard_soft_switch_case 
-6112 c1000000 rtneq hard_switch 
-6113 6fe0c533 fetch 1 ,mem_shutter_soft_switch_power_state 
-6114 c1808000 rtnne ss_state_power_on 
-6115 20406117 call shutter_store_currenct_led_state 
-6116 20203798 branch app_led_on 
-
-shutter_store_currenct_led_state:
-6117 70469c01 jam 1 ,mem_shutter_soft_swtich_botton_down 
-6118 df20000b arg 11 ,loopcnt 
-6119 d8a0469d arg mem_shutter_soft_swtich_led_struct_temp ,contw 
-611a d8c04686 arg mem_shutter_led_struct_app_led ,contr 
-611b 20207cdc branch memcpy 
-
-shutter_process_soft_swtich_button_up:
-611c 6fe0c531 fetch 1 ,mem_shutter_hard_soft_switch_case 
-611d c1000000 rtneq hard_switch 
-611e 6fe0c533 fetch 1 ,mem_shutter_soft_switch_power_state 
-611f c000e121 beq ss_state_power_on ,shutter_load_currenct_led_state 
-6120 202061cf branch ui_soft_switch_botton_up 
-
-shutter_load_currenct_led_state:
-6121 6fe0c69c fetch 1 ,mem_shutter_soft_swtich_botton_down 
-6122 c1808000 rtnne 1 
-6123 70469c00 jam 0 ,mem_shutter_soft_swtich_botton_down 
-6124 6fe14500 fetch 2 ,mem_ui_state_map 
-6125 c284b79a bbit1 ui_state_ble_connected ,app_led_off 
-6126 df20000b arg 11 ,loopcnt 
-6127 d8c0469d arg mem_shutter_soft_swtich_led_struct_temp ,contr 
-6128 d8a04686 arg mem_shutter_led_struct_app_led ,contw 
-6129 20207cdc branch memcpy 
-
-shutter_le_bb_event_timer:
-612a 2040612d call shutter_check_sleep_timer 
-612b 20406134 call shutter_check_power_off_timer 
-612c 2020613e branch ble_shutter_reconn_timer 
-
-shutter_check_sleep_timer:
-612d da60452f arg mem_shutter_sleep_timer ,regc 
-612e da406130 arg shutter_sleep_timeout ,regb 
-612f 2020375c branch timer_single_step_2b 
-
-shutter_sleep_timeout:
-6130 70453302 jam ss_state_power_off ,mem_shutter_soft_switch_power_state 
-6131 2040379a call app_led_off 
-6132 2040616b call shutter_disconnect_current_connection 
-6133 202061bb branch shutter_wait_power_off 
-
-shutter_check_power_off_timer:
-6134 da6046a9 arg mem_shutter_power_off_timer ,regc 
-6135 da406137 arg shutter_check_power_off_timeout ,regb 
-6136 20203755 branch timer_single_step 
-
-shutter_check_power_off_timeout:
-6137 6fe14500 fetch 2 ,mem_ui_state_map 
-6138 c284e1bb bbit1 ui_state_ble_connected ,shutter_wait_power_off 
-6139 6fe0c686 fetch 1 ,mem_shutter_led_struct_app_led_type 
-613a c000e1bb beq ui_led_state_blink_start ,shutter_wait_power_off 
-613b c00261bb beq ui_led_state_blink_lighting ,shutter_wait_power_off 
-613c c002e1bb beq ui_led_state_blink_darking ,shutter_wait_power_off 
-613d 2020379c branch app_enter_hibernate 
-
-ble_shutter_reconn_timer:
-613e 6fe0c533 fetch 1 ,mem_shutter_soft_switch_power_state 
-613f c1808000 rtnne ss_state_power_on 
-6140 da60450f arg mem_ble_shutter_reconn_timer ,regc 
-6141 da40614e arg shutter_start_bluetooth_discovery ,regb 
-6142 2020375c branch timer_single_step_2b 
-
-shutter_process_idle:
-6143 20406193 call shutter_send_data_to_master 
-6144 2020708b branch keyscan_key_process 
-
-shutter_process_lpm_before:
-6145 20406f32 call gpio_set_before_lpm 
-6146 2020707f branch keyscan_process_lpm_before 
-
-shutter_le_before_hibernate:
-6147 704503ff jam ui_button_gpio_disable ,mem_ui_button_gpio 
-6148 20406f32 call gpio_set_before_lpm 
-6149 20207388 branch disable_authrom 
-
-shutter_stop_bluetooth_discovery:
-
-ble_shutter_stop_bluetooth_discovery:
-614a 6fe1452b fetch 2 ,mem_ble_shutter_connect_timeout 
-614b 67e1452d store 2 ,mem_shutter_sleep_timeout 
-614c 67e1452f store 2 ,mem_shutter_sleep_timer 
-614d 2020378a branch app_ble_stop_adv 
-
-shutter_start_bluetooth_discovery:
-614e 6fe0c533 fetch 1 ,mem_shutter_soft_switch_power_state 
-614f c1808000 rtnne ss_state_power_on 
-
-ble_shutter_start_discovery:
-6150 6fe14500 fetch 2 ,mem_ui_state_map 
-6151 c3848000 rtnbit1 ui_state_ble_connected 
-6152 6fe14529 fetch 2 ,mem_ble_shutter_discovery_timeout 
-6153 67e1452d store 2 ,mem_shutter_sleep_timeout 
-6154 67e1452f store 2 ,mem_shutter_sleep_timer 
-6155 6fe1450b fetch 2 ,mem_ble_shutter_discovery_adv_interval 
-6156 204061e4 call shutter_ble_adv_interval_set 
-6157 20403796 call app_led_start_blink 
-6158 6fe24515 fetch 4 ,mem_ble_shutter_discovery_blink_on_time 
-6159 67e24689 store 4 ,mem_shutter_led_struct_app_led_on_time 
-615a 6fe14500 fetch 2 ,mem_ui_state_map 
-615b c3858000 rtnbit1 ui_state_ble_adv 
-615c 2020378c branch app_ble_start_adv 
-
-shutter_soft_swtich_power_on:
-
-shutter_start_reconnect:
-615d 6fe0c533 fetch 1 ,mem_shutter_soft_switch_power_state 
-615e c1808000 rtnne ss_state_power_on 
-
-ble_shutter_start_reconnect:
-615f 6fe1450f fetch 2 ,mem_ble_shutter_reconn_timer 
-6160 6849450d fetcht 2 ,mem_ble_shutter_reconn_timeout 
-6161 6049450f storet 2 ,mem_ble_shutter_reconn_timer 
-6162 247a0000 nrtn blank 
-6163 6fe14509 fetch 2 ,mem_ble_shutter_reconn_adv_interval 
-6164 204061e4 call shutter_ble_adv_interval_set 
-6165 20403796 call app_led_start_blink 
-6166 6fe24511 fetch 4 ,mem_ble_shutter_reconn_blink_on_time 
-6167 67e24689 store 4 ,mem_shutter_led_struct_app_led_on_time 
-6168 6fe14500 fetch 2 ,mem_ui_state_map 
-6169 c3858000 rtnbit1 ui_state_ble_adv 
-616a 2020378c branch app_ble_start_adv 
-
-shutter_disconnect_current_connection:
-616b 6fe14500 fetch 2 ,mem_ui_state_map 
-616c c284b794 bbit1 ui_state_ble_connected ,app_ble_disconnect 
-616d 2020614a branch shutter_stop_bluetooth_discovery 
-
-shutter_check_data_enable:
-616e 20407dbe call disable_user 
-616f 6fe14500 fetch 2 ,mem_ui_state_map 
-6170 c284e172 bbit1 ui_state_ble_connected ,shutter_check_ble_data_enable 
-6171 20600000 rtn 
-
-shutter_check_ble_data_enable:
-6172 6fe0c508 fetch 1 ,mem_ble_shutter_enable_notify 
-6173 207a0000 rtn blank 
-6174 20207dbc branch enable_user 
-
-shutter_check_bluetooth_conn:
-6175 20407dbe call disable_user 
-6176 6fe14500 fetch 2 ,mem_ui_state_map 
-6177 c3848000 rtnbit1 ui_state_ble_connected 
-6178 20207dbc branch enable_user 
-
-shutter_change_bluetooth_status_bt_disconn:
-
-ble_shutter_change_bluetooth_status_bt_disconn:
-6179 2020615d branch shutter_start_reconnect 
-
-shutter_check_send_data:
-617a 78567c00 disable user2 
-617b 6fe1452d fetch 2 ,mem_shutter_sleep_timeout 
-617c 67e1452f store 2 ,mem_shutter_sleep_timer 
-617d 20406175 call shutter_check_bluetooth_conn 
-617e 20346179 branch shutter_change_bluetooth_status_bt_disconn ,user 
-617f 2040616e call shutter_check_data_enable 
-6180 24740000 nrtn user 
-6181 20207dc0 branch enable_user2 
-
-shutter_key_change:
-6182 2040617a call shutter_check_send_data 
-6183 24760000 nrtn user2 
-6184 1a227e00 deposit rega 
-6185 203a6189 branch shutter_key_release ,blank 
-
-shutter_key_press:
-6186 20403798 call app_led_on 
-6187 da60453f arg mem_key0_press ,regc 
-6188 2020618b branch push_queue_press_or_release 
-
-shutter_key_release:
-6189 2040379a call app_led_off 
-618a da60454e arg mem_key0_release ,regc 
-
-push_queue_press_or_release:
-618b dfe00005 arg max_queue_num ,pdata 
-618c 98effe00 imul32 queue ,pdata 
-618d 9a60a600 iadd regc ,regc 
-
-push_buffer_in_queue:
-618e efe08013 ifetch 1 ,regc 
-618f 207a0000 rtn blank 
-6190 2040619f call queue_push_one_byte 
-6191 1a60a601 increase 1 ,regc 
-6192 2020618e branch push_buffer_in_queue 
-
-shutter_send_data_to_master:
-6193 6fe14500 fetch 2 ,mem_ui_state_map 
-6194 c284e196 bbit1 ui_state_ble_connected ,pop_queue_to_ble_data 
-6195 20600000 rtn 
-
-pop_queue_to_ble_data:
-6196 20402a06 call le_fifo_check_nearly_full 
-6197 247a0000 nrtn blank 
-6198 204061a2 call queue_pop_one_byte 
-6199 24740000 nrtn user 
-619a 1fe0ffff pincrease -1 
-619b 1feffe05 mul32 pdata ,shutter_ble_data_buffer ,pdata 
-619c d840455d arg mem_ble_data_buffer1 ,temp 
-619d 98408c00 iadd temp ,contr 
-619e 202061e8 branch le_send_notify_from_list 
-
-queue_push_one_byte:
-619f 67e0864e store 1 ,mem_pdatatemp 
-61a0 da20064e arg mem_pdatatemp ,rega 
-61a1 202078a2 branch queue_push 
-
-queue_pop_one_byte:
-61a2 da20064e arg mem_pdatatemp ,rega 
-61a3 204078ba call queue_pop 
-61a4 24740000 nrtn user 
-61a5 6fe0864e fetch 1 ,mem_pdatatemp 
-61a6 20600000 rtn 
-
-ble_shutter_receive_data:
-61a7 6fe1439c fetch 2 ,mem_le_att_handle 
-61a8 c00c6103 beq gatt_keyboard_write_handle ,ble_shutter_process_reconnect_complete 
-61a9 20600000 rtn 
-
-shutter_init_param:
-61aa 7046a802 jam 0x02 ,mem_shutter_power_off_timeout 
-61ab 58200008 setarg 0x00200008 
-61ac 67e24519 store 4 ,mem_ble_shutter_interval_min 
-61ad 592c0005 setarg 0x012c0005 
-61ae e7e20005 istore 4 ,contw 
-61af 7042e317 jam 0x17 ,mem_le_local_mtu 
-61b0 5800001b setarg 0x1b 
-61b1 67e14334 store 2 ,mem_le_pairing_handle 
-61b2 20202a1f branch le_set_fixed_ltk_justwork 
-
-shutter_load_buffer_config_form_datarom:
-61b3 df200028 arg ble_key_value_list_size ,loopcnt 
-61b4 d8a0455d arg mem_ble_data_buffer1 ,contw 
-61b5 d8c097bd arg ble_shutter_key_value_list_addr ,contr 
-61b6 20207cce branch memcpy_fast 
-
-shutter_soft_swtich_power_off:
-61b7 da200000 arg 0 ,rega 
-61b8 da604691 arg mem_shutter_power_off_led_style ,regc 
-61b9 204077b8 call ui_led_set_style_global 
-61ba 2040616b call shutter_disconnect_current_connection 
-
-shutter_wait_power_off:
-61bb 6fe0c6a8 fetch 1 ,mem_shutter_power_off_timeout 
-61bc 67e0c6a9 store 1 ,mem_shutter_power_off_timer 
-61bd 20600000 rtn 
-
-ui_soft_swtich_init:
-61be 58000000 setarg ss_state_power_up 
-61bf 204061ca call ui_soft_swtich_init_power_on_time 
-61c0 7044fb01 jam ui_button_state_up ,mem_ui_button_last_state 
-61c1 20407764 call ui_button_init 
-61c2 2040776e call ui_button_polling 
-
-ui_soft_switch_first_power_on:
-61c3 6fe0c6af fetch 1 ,mem_shutter_soft_switch_first_power_on 
-61c4 203a61c7 branch ui_soft_swtich_init_next ,blank 
-61c5 6ff08132 fetch 1 ,core_lpm_isogate 
-61c6 c28261d6 bbit1 cold_wake ,ui_soft_switch_power_on 
-
-ui_soft_swtich_init_next:
-61c7 6fe14500 fetch 2 ,mem_ui_state_map 
-61c8 c3860000 rtnbit1 ui_state_btn_down 
-61c9 2020379c branch app_enter_hibernate 
-
-ui_soft_swtich_init_power_on_time:
-61ca 68494447 fetcht 2 ,mem_power_param_ptr 
-61cb e7e08002 istore 1 ,temp 
-61cc efe08005 ifetch 1 ,contw 
-61cd 67e0c502 store 1 ,mem_ui_button_timeout 
-61ce 20600000 rtn 
-
-ui_soft_switch_botton_up:
-61cf 6fe14447 fetch 2 ,mem_power_param_ptr 
-61d0 efe0803f ifetch 1 ,pdata 
-61d1 c1800000 rtnne ss_state_power_up 
-61d2 2020379c branch app_enter_hibernate 
-
-ui_soft_switch_botton_long_press:
-61d3 68494447 fetcht 2 ,mem_power_param_ptr 
-61d4 efe08002 ifetch 1 ,temp 
-61d5 c000e1de beq ss_state_power_on ,ui_soft_switch_power_off 
-
-ui_soft_switch_power_on:
-61d6 58000001 setarg ss_state_power_on 
-61d7 68494447 fetcht 2 ,mem_power_param_ptr 
-61d8 e7e08002 istore 1 ,temp 
-61d9 18408c02 add temp ,ss_power_off_time ,contr 
-61da efe08006 ifetch 1 ,contr 
-61db e7e08002 istore 1 ,mem_ui_button_timeout 
-61dc efe10006 ifetch 2 ,contr 
-61dd 20207d7b branch callback_func 
-
-ui_soft_switch_power_off:
-61de 58000002 setarg ss_state_power_off 
-61df 204061ca call ui_soft_swtich_init_power_on_time 
-61e0 18408c05 add temp ,ss_power_off_cb ,contr 
-61e1 efe10006 ifetch 2 ,contr 
-61e2 203a379c branch app_enter_hibernate ,blank 
-61e3 20207d7b branch callback_func 
-
-shutter_ble_adv_interval_set:
-61e4 67e140a4 store 2 ,mem_lpm_interval 
-61e5 1fe0fffc increase -4 ,pdata 
-61e6 67e1438d store 2 ,mem_le_adv_interval 
-61e7 20600000 rtn 
-
-le_send_notify_from_list:
-61e8 efe08006 ifetch 1 ,contr 
-61e9 1fe22200 copy pdata ,rega 
-61ea e8410006 ifetcht 2 ,contr 
-61eb 20407c6f call store_contr 
-61ec 20402dcc call le_att_malloc_tx_notify 
-61ed 1a227200 copy rega ,loopcnt 
-61ee 20407c69 call get_contr 
-61ef 20207cdc branch memcpy 
-
-shutter_le_uuid_table_conf:
-61f0 58009684 setarg ble_shutter_gatt_list_addr 
-61f1 67e142f9 store 2 ,mem_ui_le_uuid_table 
-61f2 20600000 rtn 
-
-shutter_default_init:
-61f3 6fe146aa fetch 2 ,mem_shutter_key_conf0_temp 
-61f4 67e1453d store 2 ,mem_shutter_key_conf0 
-61f5 6fe0c6ac fetch 1 ,mem_shutter_led_struct_app_led_gpio_temp 
-61f6 67e0c688 store 1 ,mem_shutter_led_struct_app_led_gpio 
-61f7 67e0c693 store 1 ,mem_shutter_power_off_led_style_gpio 
-61f8 6fe0c6ad fetch 1 ,mem_shutter_hard_soft_switch_case_temp 
-61f9 67e0c531 store 1 ,mem_shutter_hard_soft_switch_case 
-61fa 6fe0c6ae fetch 1 ,mem_shutter_soft_switch_button_gpio_temp 
-61fb 67e0c532 store 1 ,mem_shutter_soft_switch_button_gpio 
-61fc 58000002 setarg 0x0002 
-61fd 67e1453f store 2 ,mem_key0_press 
-61fe 58000001 setarg 0x0001 
-61ff 67e14544 store 2 ,mem_key1_press 
-6200 58000006 setarg 0x0006 
-6201 67e1454e store 2 ,mem_key0_release 
-6202 67e14553 store 2 ,mem_key1_release 
-6203 58004533 setarg mem_shutter_soft_switch_power_state 
-6204 67e14447 store 2 ,mem_power_param_ptr 
-6205 58201400 setarg 0x201400 
-6206 67e1c533 store 3 ,mem_shutter_soft_switch_power_state 
-6207 70409401 jam 0x01 ,mem_lpm_mode 
-6208 58000100 setarg 0x0100 
-6209 67e140a4 store 2 ,mem_lpm_interval 
-620a 7040a608 jam 0x08 ,mem_lpm_overhead 
-620b 7040c005 jam 0x05 ,mem_lpm_mult 
-620c 7040c102 jam 0x02 ,mem_lpm_mult_timeout 
-620d 58000096 setarg 0x0096 
-620e 67e14511 store 2 ,mem_ble_shutter_reconn_blink_on_time 
-620f e7e10005 istore 2 ,contw 
-6210 58000296 setarg 0x0296 
-6211 67e14515 store 2 ,mem_ble_shutter_discovery_blink_on_time 
-6212 e7e10005 istore 2 ,contw 
-6213 38000010 setsect 0 ,0x10 
-6214 38048008 setsect 1 ,0x8008 
-6215 380ac000 setsect 2 ,0x2c000 
-6216 380c0004 setsect 3 ,0x04 
-6217 67e44521 store 8 ,mem_ble_shutter_interval_min_new 
-6218 70450501 jam 0x01 ,mem_ui_led_struct_num 
-6219 58004686 setarg mem_shutter_led_struct_app_led 
-621a 67e14506 store 2 ,mem_ui_led_struct_ptr 
-621b 58000000 setarg 0x0000 
-621c 67e14686 store 2 ,mem_shutter_led_struct_app_led 
-621d 380001a0 setsect 0 ,0x1a0 
-621e 38040068 setsect 1 ,0x68 
-621f 38080000 setsect 2 ,0x00 
-6220 380c0000 setsect 3 ,0x00 
-6221 67e44689 store 8 ,mem_shutter_led_struct_app_led_on_time 
-6222 58000301 setarg 0x0301 
-6223 67e14691 store 2 ,mem_shutter_power_off_led_style 
-6224 380001a0 setsect 0 ,0x1a0 
-6225 380400e8 setsect 1 ,0xe8 
-6226 38080000 setsect 2 ,0x00 
-6227 380c0000 setsect 3 ,0x00 
-6228 67e44694 store 8 ,mem_shutter_power_off_led_style_on_time 
-6229 5800000e setarg 0x000e 
-622a 67e14509 store 2 ,mem_ble_shutter_reconn_adv_interval 
-622b 58000140 setarg 0x0140 
-622c 67e1450b store 2 ,mem_ble_shutter_discovery_adv_interval 
-622d 67e1438d store 2 ,mem_le_adv_interval 
-622e 58000050 setarg 0x0050 
-622f 67e1450d store 2 ,mem_ble_shutter_reconn_timeout 
-6230 70439707 jam 0x07 ,mem_le_adv_channel_map 
-6231 70438c00 jam 0x00 ,mem_le_adv_enable 
-6232 380000fb setsect 0 ,0xfb 
-6233 3806c212 setsect 1 ,0x2c212 
-6234 3808800f setsect 2 ,0x800f 
-6235 380c0021 setsect 3 ,0x21 
-6236 67e443c4 store 8 ,mem_local_rx_max_octets 
-6237 38000bb8 setsect 0 ,0x0bb8 
-6238 380402ee setsect 1 ,0x02ee 
-6239 67e24529 store 4 ,mem_ble_shutter_discovery_timeout 
-623a 580045b7 setarg mem_queue_each_size 
-623b 67e14404 store 2 ,mem_queue_ptr 
-623c 58002001 setarg 0x2001 
-623d 67e145b7 store 2 ,mem_queue_each_size 
-623e 70434c1f jam 0x1f ,mem_le_adv_data_len 
-623f 38010102 setsect 0 ,0x10102 
-6240 380480c1 setsect 1 ,0x80c1 
-6241 38098120 setsect 2 ,0x18120 
-6242 380c640c setsect 3 ,0x640c 
-6243 67e4c34d store 9 ,mem_le_adv_data 
-6244 380003c1 setsect 0 ,0x3c1 
-6245 e7e10005 istore 2 ,contw 
-6246 70436c1f jam 0x1f ,mem_le_scan_data_len 
-6247 3802090d setsect 0 ,0x2090d 
-6248 38074c15 setsect 1 ,0x34c15 
-6249 380a8532 setsect 2 ,0x28532 
-624a 380dd1d5 setsect 3 ,0x1d1d5 
-624b 67e4c36d store 9 ,mem_le_scan_data 
-624c 38026574 setsect 0 ,0x26574 
-624d 3804001c setsect 1 ,0x1c 
-624e e7e18005 istore 3 ,contw 
-624f 5800453a setarg mem_shutter_keyscan 
-6250 67e14443 store 2 ,mem_keyscan_ptr 
-6251 70453a02 jam 0x02 ,mem_shutter_key_num 
-6252 580045dc setarg mem_shutter_nv_data 
-6253 67e14401 store 2 ,mem_nv_data_ptr 
-6254 70440305 jam 0x05 ,mem_nv_data_number 
-6255 6fe0c6b0 fetch 1 ,mem_shutter_dy_conf 
-6256 c00061f0 beq shutter_type ,shutter_le_uuid_table_conf 
-6257 c000e283 beq shutter_dy_type ,shutter_dy_le_uuid_table_conf 
-6258 20600000 rtn 
-
-shutter_dy_6_key_conf:
-6259 6fe34eab fetch shutter_six_key ,mem_shutter_dy_key_conf 
-625a 67e3453d store shutter_six_key ,mem_shutter_key_conf0 
-625b 70453a06 jam shutter_six_key ,mem_shutter_key_num 
-625c 5800453a setarg mem_shutter_key_num 
-625d 67e14443 store 2 ,mem_keyscan_ptr 
-625e 20600000 rtn 
-
-shutter_dy_7_key_conf:
-625f 6fe3ceab fetch shutter_seven_key ,mem_shutter_dy_key_conf 
-6260 67e3c53d store shutter_seven_key ,mem_shutter_key_conf0 
-6261 70453a07 jam shutter_seven_key ,mem_shutter_key_num 
-6262 5800453a setarg mem_shutter_key_num 
-6263 67e14443 store 2 ,mem_keyscan_ptr 
-6264 20600000 rtn 
-
-shutter_dy_8_key_conf:
-6265 6fe44eab fetch shutter_eight_key ,mem_shutter_dy_key_conf 
-6266 67e4453d store shutter_eight_key ,mem_shutter_key_conf0 
-6267 70453a08 jam shutter_eight_key ,mem_shutter_key_num 
-6268 5800453a setarg mem_shutter_key_num 
-6269 67e14443 store 2 ,mem_keyscan_ptr 
-626a 20600000 rtn 
-
-shutter_dy_key_conf:
-626b 6fe0ceaa fetch 1 ,mem_shutter_key_num_conf 
-626c c0036259 beq shutter_six_key ,shutter_dy_6_key_conf 
-626d c003e25f beq shutter_seven_key ,shutter_dy_7_key_conf 
-626e c0046265 beq shutter_eight_key ,shutter_dy_8_key_conf 
-626f 20600000 rtn 
-
-shutter_dy_adv_conf:
-6270 44dfc017 bpatch patch17_7 ,mem_patch17 
-6271 6fe44edb fetch 8 ,mem_shutter_ble_discovery_time_conf 
-6272 67e44529 store 8 ,mem_ble_shutter_discovery_timeout 
-6273 58000096 setarg 0x0096 
-6274 67e1450d store 2 ,mem_ble_shutter_reconn_timeout 
-6275 6fe3cee5 fetch 7 ,mem_shutter_led_on_light_dark_led_conf 
-6276 67e3c686 store 7 ,mem_shutter_led_struct_app_led 
-6277 6fe3ceec fetch 7 ,mem_shutter_led_off_light_dark_led_conf 
-6278 67e3c691 store 7 ,mem_shutter_power_off_led_style 
-6279 6fe24ef3 fetch 4 ,mem_shutter_reconn_blink_on_time_conf 
-627a 67e24511 store 4 ,mem_ble_shutter_reconn_blink_on_time 
-627b 6fe24ef7 fetch 4 ,mem_shutter_discovery_blink_on_time_conf 
-627c 67e24515 store 4 ,mem_ble_shutter_discovery_blink_on_time 
-627d 5800000e setarg 0x000e 
-627e 67e14509 store 2 ,mem_ble_shutter_reconn_adv_interval 
-627f 58000140 setarg 0x0140 
-6280 67e1450b store 2 ,mem_ble_shutter_discovery_adv_interval 
-6281 67e1438d store 2 ,mem_le_adv_interval 
-6282 20600000 rtn 
-
-shutter_dy_le_uuid_table_conf:
-6283 580047a7 setarg mem_shutter_le_uuid_sup 
-6284 67e142f9 store 2 ,mem_ui_le_uuid_table 
-6285 20600000 rtn 
-
-shutter_dy_init:
-6286 20407384 call enable_authrom 
-6287 20758000 rtn wake 
-6288 2040626b call shutter_dy_key_conf 
-6289 20406270 call shutter_dy_adv_conf 
-628a 580062c1 setarg shutter_dy_process_idle 
-628b 67e143e4 store 2 ,mem_cb_idle_process 
-628c 5800631a setarg shutter_dy_process_bb_event 
-628d 67e143e6 store 2 ,mem_cb_bb_event_process 
-628e 58006548 setarg ble_shutter_dy_receive_data 
-628f 67e143e8 store 2 ,mem_cb_att_write 
-6290 580062f2 setarg shutter_dy_le_bb_event_timer 
-6291 67e143ec store 2 ,mem_cb_event_timer 
-6292 5800634d setarg shutter_dy_key_change 
-6293 67e1453b store 2 ,mem_cb_shutter_keycan 
-6294 580062ab setarg shutter_dy_le_before_hibernate 
-6295 67e143de store 2 ,mem_cb_before_hibernate 
-6296 580062a9 setarg shutter_dy_process_lpm_before 
-6297 67e143e0 store 2 ,mem_cb_before_lpm 
-6298 5800615d setarg shutter_soft_swtich_power_on 
-6299 67e14536 store 2 ,mem_shutter_soft_switch_poweron_callback_function 
-629a 580061b7 setarg shutter_soft_swtich_power_off 
-629b 67e14538 store 2 ,mem_shutter_soft_switch_poweroff_callback_function 
-629c 70416007 jam 7 ,mem_version 
-629d 20402948 call le_modified_name_adv 
-629e 204061aa call shutter_init_param 
-629f 2040705b call keyscan_key_init 
-62a0 2040789d call queue_init 
-62a1 2040779a call ui_led_init_global 
-62a2 6fe14f12 fetch 2 ,mem_shutter_le_pairing_handle 
-62a3 67e14334 store 2 ,mem_le_pairing_handle 
-62a4 6fe44521 fetch 8 ,mem_ble_shutter_interval_min_new 
-62a5 67e44519 store 8 ,mem_ble_shutter_interval_min 
-62a6 204062cb call shutter_dy_iphone_every_move_max_set 
-62a7 44e04018 bpatch patch18_0 ,mem_patch18 
-62a8 202060d7 branch shutter_power_switch 
-
-shutter_dy_process_lpm_before:
-62a9 20406f32 call gpio_set_before_lpm 
-62aa 2020707f branch keyscan_process_lpm_before 
-
-shutter_dy_le_before_hibernate:
-62ab 704503ff jam ui_button_gpio_disable ,mem_ui_button_gpio 
-62ac 20406f32 call gpio_set_before_lpm 
-62ad 204062af call dy_set_key_gpio_before_hiernate 
-62ae 20207388 branch disable_authrom 
-
-dy_set_key_gpio_before_hiernate:
-62af 6fe0c6ad fetch 1 ,mem_shutter_hard_soft_switch_case_temp 
-62b0 207a0000 rtn blank 
-62b1 6fe0ceaa fetch 1 ,mem_shutter_key_num_conf 
-62b2 1fe27200 copy pdata ,loopcnt 
-62b3 da20453d arg mem_shutter_key_conf0 ,rega 
-
-dy_set_key_gpio_loop:
-62b4 efe08011 ifetch 1 ,rega 
-62b5 6848c6ae fetcht 1 ,mem_shutter_soft_switch_button_gpio_temp 
-62b6 98467c00 isub temp ,null 
-62b7 2022e2bc branch dy_set_key_gpio_loop_end ,zero 
-62b8 1fe67cff sub pdata ,0xff ,null 
-62b9 2022e2bc branch dy_set_key_gpio_loop_end ,zero 
-62ba 1fe20400 copy pdata ,temp 
-62bb 204062bf call dy_shutter_gpio_config_input_pd 
-
-dy_set_key_gpio_loop_end:
-62bc 1a20a201 increase 1 ,rega 
-62bd c20062b4 loop dy_set_key_gpio_loop 
-62be 20600000 rtn 
-
-dy_shutter_gpio_config_input_pd:
-62bf 79200407 set1 gpio_active_bit ,temp 
-62c0 20206ed7 branch gpio_config_input 
-
-shutter_dy_process_idle:
-62c1 204062d8 call shutter_dy_shutter_send_data_to_master 
-62c2 d8e00009 arg key_scan_timer ,queue 
-62c3 20407cf1 call timer_check 
-62c4 247a0000 nrtn blank 
-62c5 58000020 setarg 0x20 
-62c6 d8e00009 arg key_scan_timer ,queue 
-62c7 20407ce3 call timer_init 
-62c8 78547c00 disable user 
-62c9 2040707f call keyscan_process_lpm_before 
-62ca 202063b7 branch shutter_dy_keyscan_key_process 
-
-shutter_dy_iphone_every_move_max_set:
-62cb 5800002b setarg 0x2b 
-62cc 1feffe0a mul32 pdata ,every_payload_len ,pdata 
-62cd d8404c4b arg mem_shutter_mousekey_value_list ,temp 
-62ce 9840a200 iadd temp ,rega 
-62cf 1a20a203 increase 3 ,rega 
-62d0 d8400fff arg iphone_once_max_move_value ,temp 
-62d1 e0408011 istoret 1 ,rega 
-62d2 1a20a20b increase 11 ,rega 
-62d3 dfe00fff arg 0xfff ,pdata 
-62d4 98467e00 isub temp ,pdata 
-62d5 1ff27e00 lshift4 pdata ,pdata 
-62d6 e7e10011 istore 2 ,rega 
-62d7 20600000 rtn 
-
-shutter_dy_shutter_send_data_to_master:
-62d8 6fe14500 fetch 2 ,mem_ui_state_map 
-62d9 c284e2dd bbit1 ui_state_ble_connected ,shutter_dy_pop_queue_to_ble_data 
-62da d8a045b9 arg mem_queue_curr_num ,contw 
-62db df200023 arg 35 ,loopcnt 
-62dc 20207ca3 branch clear_mem 
-
-shutter_dy_pop_queue_to_ble_data:
-62dd 20402a06 call le_fifo_check_nearly_full 
-62de 247a0000 nrtn blank 
-62df 204078ea call queue_empty 
-62e0 207a0000 rtn blank 
-62e1 684a4959 fetcht 4 ,mem_key_send_clk 
-62e2 1c427e00 copy clkn_bt ,pdata 
-62e3 98460400 isub temp ,temp 
-62e4 20628000 rtn zero 
-62e5 242162e9 nbranch shutter_dy_pop_queue_to_ble_data2 ,positive 
-62e6 6fe0c958 fetch 1 ,mem_send_data_delay 
-62e7 98467c00 isub temp ,null 
-62e8 20610000 rtn positive 
-
-shutter_dy_pop_queue_to_ble_data2:
-62e9 1c427e00 copy clkn_bt ,pdata 
-62ea 67e24959 store 4 ,mem_key_send_clk 
-62eb 204061a2 call queue_pop_one_byte 
-62ec 24740000 nrtn user 
-62ed 1fe0ffff pincrease -1 
-62ee 1feffe0a mul32 pdata ,10 ,pdata 
-62ef d8404c4b arg mem_shutter_mousekey_value_list ,temp 
-62f0 98408c00 iadd temp ,contr 
-62f1 202061e8 branch le_send_notify_from_list 
-
-shutter_dy_le_bb_event_timer:
-62f2 204066d9 call shutter_dy_shutter_1s_timer 
-62f3 204065ef call shutter_dy_link_key_loop_timer 
-62f4 204065dd call shutter_dy_long_key_volume_timer 
-62f5 204062f9 call shutter_dy_iphone_move_mid_timer 
-62f6 2040630e call shutter_dy_clear_key_state_timer 
-62f7 2040612d call shutter_check_sleep_timer 
-62f8 20206314 branch shutter_dy_check_power_off_timer 
-
-shutter_dy_iphone_move_mid_timer:
-62f9 da604e88 arg mem_shutter_move_mid_timer ,regc 
-62fa da4062fc arg shutter_dy_iphone_move_mid_timeout ,regb 
-62fb 20203755 branch timer_single_step 
-
-shutter_dy_iphone_move_mid_timeout:
-62fc 204078ea call queue_empty 
-62fd 247a0000 nrtn blank 
-62fe 6fe146bf fetch 2 ,mem_key_value_xmem 
-62ff 247a0000 nrtn blank 
-
-shutter_dy_iphone_move_mid:
-6300 204065b3 call shutter_dy_check_iphone 
-6301 207a0000 rtn blank 
-6302 18e27e00 copy queue ,pdata 
-6303 2fe00e04 compare 0x04 ,pdata ,0x07 
-6304 2020e30a branch shutter_dy_iphone_up_mid ,true 
-6305 18e27e00 copy queue ,pdata 
-6306 2fe00e01 compare 0x01 ,pdata ,0x07 
-6307 2020e30c branch shutter_dy_iphone_like_mid ,true 
-6308 da604e7d arg mem_shutter_iphone_move_mid ,regc 
-6309 2020618e branch push_buffer_in_queue 
-
-shutter_dy_iphone_up_mid:
-630a da604e96 arg mem_shutter_iphone_up_mid ,regc 
-630b 2020618e branch push_buffer_in_queue 
-
-shutter_dy_iphone_like_mid:
-630c da604ea0 arg mem_shutter_iphone_like_mid ,regc 
-630d 2020618e branch push_buffer_in_queue 
-
-shutter_dy_clear_key_state_timer:
-630e da604c48 arg mem_shutter_like_timeout ,regc 
-630f da406311 arg shutter_dy_clear_key_state_timeout ,regb 
-6310 20203755 branch timer_single_step 
-
-shutter_dy_clear_key_state_timeout:
-6311 df20000a arg shutter_key_conf_sate_bytes ,loopcnt 
-6312 d8a04967 arg mem_shutter_key_state1 ,contw 
-6313 20207ca3 branch clear_mem 
-
-shutter_dy_check_power_off_timer:
-6314 da6046a9 arg mem_shutter_power_off_timer ,regc 
-6315 da406317 arg shutter_dy_check_power_off_timeout ,regb 
-6316 20203755 branch timer_single_step 
-
-shutter_dy_check_power_off_timeout:
-6317 6fe14500 fetch 2 ,mem_ui_state_map 
-6318 c284e1bb bbit1 ui_state_ble_connected ,shutter_wait_power_off 
-6319 2020379c branch app_enter_hibernate 
-
-shutter_dy_process_bb_event:
-631a 1a627e00 copy regc ,pdata 
-631b c00a633c beq bt_evt_le_connected ,ble_shutter_dy_process_baseband_connect 
-631c c00ae337 beq bt_evt_le_disconnected ,ble_shutter_dy_process_baseband_disconnect 
-631d c018e32e beq bt_evt_le_pairing_success ,ble_shutter_dy_pairing_success 
-631e c0206322 beq bt_evt_le_parse_conn_papa_update_rsp ,ble_dy_shutter_process_parse_connect_parameter_update_response 
-631f c1200000 rtneq bt_evt_le_parse_conn_papa_update_rsp 
-6320 c019654b beq bt_evt_le_start_enc ,shutter_dy_le_find_service_hand_by_uuid 
-6321 202060f3 branch shutter_process_bb_event 
-
-ble_dy_shutter_process_parse_connect_parameter_update_response:
-6322 6fe14340 fetch 2 ,mem_le_l2cap_signaling_conn_param_update_rsp_result 
-6323 c1000000 rtneq ble_signaling_connect_parameter_update_accepted 
-6324 6fe44521 fetch 8 ,mem_ble_shutter_interval_min_new 
-6325 207a0000 rtn blank 
-6326 204065b3 call shutter_dy_check_iphone 
-6327 243a632b nbranch ble_parameter_updata_response_ios ,blank 
-6328 6fe44ecb fetch 8 ,mem_ble_shutter_dy_interval_min_android 
-6329 67e442d5 store 8 ,mem_le_interval_min 
-632a 20202e71 branch le_l2cap_tx_update_req 
-
-ble_parameter_updata_response_ios:
-632b 6fe44ed3 fetch 8 ,mem_ble_shutter_dy_interval_min_ios 
-632c 67e442d5 store 8 ,mem_le_interval_min 
-632d 20202e71 branch le_l2cap_tx_update_req 
-
-ble_shutter_dy_pairing_success:
-632e 704e8901 jam 1 ,mem_shutter_pairing_success 
-632f 20406606 call shutter_dy_clear_move_config 
-6330 6fe14eff fetch 2 ,mem_android_initial_move_x 
-6331 67e14e75 store 2 ,mem_shutter_move_data_x 
-6332 68494f01 fetcht 2 ,mem_android_initial_move_y 
-6333 58000fff setarg 0xfff 
-6334 98467e00 isub temp ,pdata 
-6335 67e14e77 store 2 ,mem_shutter_move_data_y 
-6336 20600000 rtn 
-
-ble_shutter_dy_process_baseband_disconnect:
-6337 704e7200 jam 0 ,mem_shutter_le_conned 
-6338 704e8900 jam 0 ,mem_shutter_pairing_success 
-6339 204063f6 call shutter_dy_move_mode_disable 
-633a 20406348 call shutter_dy_over_clear 
-633b 20206100 branch ble_shutter_process_baseband_disconnect 
-
-ble_shutter_dy_process_baseband_connect:
-633c 1c427e00 copy clkn_bt ,pdata 
-633d 67e24959 store 4 ,mem_key_send_clk 
-633e 204065ac call shutter_dy_remote_not_iphone 
-633f 202060fc branch ble_shutter_process_baseband_connect 
-
-shutter_dy_check_send_data:
-6340 78567c00 disable user2 
-6341 6fe1452d fetch 2 ,mem_shutter_sleep_timeout 
-6342 67e1452f store 2 ,mem_shutter_sleep_timer 
-6343 20406175 call shutter_check_bluetooth_conn 
-6344 20346179 branch shutter_change_bluetooth_status_bt_disconn ,user 
-6345 2040616e call shutter_check_data_enable 
-6346 24740000 nrtn user 
-6347 20207dc0 branch enable_user2 
-
-shutter_dy_over_clear:
-6348 704e8c00 jam 0 ,mem_last_press_key_value 
-6349 20600000 rtn 
-
-shutter_dy_key_value_filter:
-634a 18e27e00 copy queue ,pdata 
-634b c1808000 rtnne shutter_like_key_num 
-634c 20206354 branch shutter_dy_key_press_next 
-
-shutter_dy_key_change:
-634d 20406340 call shutter_dy_check_send_data 
-634e 24760000 nrtn user2 
-634f 1a227e00 deposit rega 
-6350 203a637f branch shutter_dy_shutter_key_release ,blank 
-
-shutter_dy_key_press:
-6351 44e0c018 bpatch patch18_1 ,mem_patch18 
-6352 6fe0cf2a fetch 1 ,mem_shutter_link_loop_flag 
-6353 243a634a nbranch shutter_dy_key_value_filter ,blank 
-
-shutter_dy_key_press_next:
-6354 704c4901 jam 1 ,mem_shutter_key_pressed 
-6355 20403798 call app_led_on 
-6356 20406374 call shutter_dy_key_press_clk 
-6357 204063a9 call shutter_dy_jude_queue_size 
-6358 20216348 branch shutter_dy_over_clear ,positive 
-6359 18e27e00 copy queue ,pdata 
-635a 6848ce8c fetcht 1 ,mem_last_press_key_value 
-635b 98467c00 isub temp ,null 
-635c 2442e36e ncall shutter_dy_iphone_check_move_mid ,zero 
-635d 18e27e00 copy queue ,pdata 
-635e 67e0ce8c store 1 ,mem_last_press_key_value 
-635f 6848ce8f fetcht 1 ,mem_move_mode_key_index 
-6360 98467c00 isub temp ,null 
-6361 2022e36c branch shutter_dy_key_move_to_specify_location ,zero 
-6362 6fe0ce90 fetch 1 ,mem_move_mode_trigger_enable 
-6363 243a6367 nbranch shutter_dy_move_set ,blank 
-
-shutter_dy_page_set:
-6364 204065b5 call shutter_dy_le_get_press_ptr 
-6365 dfe0000a arg max_queue_new_press ,pdata 
-6366 202063a2 branch shutter_dy_push_queue_press_or_release 
-
-shutter_dy_move_set:
-6367 20406602 call shutter_dy_jude_clear_move_config 
-6368 18e27e00 copy queue ,pdata 
-6369 c000e364 beq shutter_like_key_num ,shutter_dy_page_set 
-636a 2040648c call shutter_dy_check_move_data 
-636b 2020643d branch shutter_dy_move_to_specify_location 
-
-shutter_dy_key_move_to_specify_location:
-636c 704e8d01 jam 1 ,mem_shutter_first_move 
-636d 2020643d branch shutter_dy_move_to_specify_location 
-
-shutter_dy_iphone_check_move_mid:
-636e 44e14018 bpatch patch18_2 ,mem_patch18 
-636f 6fe0ce90 fetch 1 ,mem_move_mode_trigger_enable 
-6370 203a6300 branch shutter_dy_iphone_move_mid ,blank 
-6371 18e27e00 copy queue ,pdata 
-6372 c000e300 beq shutter_like_key_num ,shutter_dy_iphone_move_mid 
-6373 20600000 rtn 
-
-shutter_dy_key_press_clk:
-6374 dfe0000a arg shutter_key_conf_sate_bytes ,pdata 
-6375 98effe00 imul32 queue ,pdata 
-6376 da60495d arg mem_shutter_key_state0 ,regc 
-6377 9a60a600 iadd regc ,regc 
-6378 1c427e00 copy clkn_bt ,pdata 
-6379 e7e20013 istore key_state_press_clk_length ,regc 
-637a 1a60a604 increase key_state_press_count_offset ,regc 
-637b efe08013 ifetch 1 ,regc 
-637c 1fe0fe01 increase 1 ,pdata 
-637d e7e08013 istore 1 ,regc 
-637e 20600000 rtn 
-
-shutter_dy_shutter_key_release:
-637f 44e1c018 bpatch patch18_3 ,mem_patch18 
-6380 6fe0ce90 fetch 1 ,mem_move_mode_trigger_enable 
-6381 205a6393 call shutter_dy_key_release_led ,blank 
-
-shutter_dy_shutter_key_release_time:
-6382 dfe0000a arg shutter_key_conf_sate_bytes ,pdata 
-6383 98effe00 imul32 queue ,pdata 
-6384 da60495d arg mem_shutter_key_state0 ,regc 
-6385 9a60a600 iadd regc ,regc 
-6386 e8420013 ifetcht 4 ,regc 
-6387 18467c00 sub temp ,0 ,null 
-6388 20628000 rtn zero 
-6389 1c427e00 copy clkn_bt ,pdata 
-638a 98460400 isub temp ,temp 
-638b 244177f4 ncall ui_timer_timeout ,positive 
-638c 1a608c09 add regc ,key_state_longpress_offset ,contr 
-638d efe08006 ifetch 1 ,contr 
-638e 243a63ae nbranch shutter_dy_push_queue_long_release ,blank 
-638f 1a60a605 increase key_state_release_clk_offset ,regc 
-6390 1c427e00 copy clkn_bt ,pdata 
-6391 e7e20013 istore key_state_release_clk_length ,regc 
-6392 20600000 rtn 
-
-shutter_dy_key_release_led:
-6393 6fe0cf2a fetch 1 ,mem_shutter_link_loop_flag 
-6394 243a3798 nbranch app_led_on ,blank 
-6395 2020379a branch app_led_off 
-
-shutter_dy_push_queue_release:
-6396 1a608c04 add regc ,4 ,contr 
-6397 efe08006 ifetch 1 ,contr 
-6398 20206399 branch shutter_dy_push_queue_release1 
-
-shutter_dy_push_queue_release1:
-6399 204063b4 call shutter_clear_dy_key_state 
-639a 6fe0ce90 fetch 1 ,mem_move_mode_trigger_enable 
-639b 243a63a5 nbranch shutter_dy_move_mode_queue_release ,blank 
-
-shutter_dy_push_queue_release1_next:
-639c 204063a9 call shutter_dy_jude_queue_size 
-639d 20216348 branch shutter_dy_over_clear ,positive 
-639e 204065bb call shutter_dy_le_get_release_ptr 
-639f 18e27e00 copy queue ,pdata 
-63a0 c001e5c3 beq shutter_photo_key_num ,shutter_dy_le_get_release_ptr_volume 
-63a1 dfe0000f arg max_queue_num_release ,pdata 
-
-shutter_dy_push_queue_press_or_release:
-63a2 98effe00 imul32 queue ,pdata 
-63a3 9a60a600 iadd regc ,regc 
-63a4 2020618e branch push_buffer_in_queue 
-
-shutter_dy_move_mode_queue_release:
-63a5 18e27e00 copy queue ,pdata 
-63a6 c000e39c beq shutter_like_key_num ,shutter_dy_push_queue_release1_next 
-63a7 c001e39c beq shutter_photo_key_num ,shutter_dy_push_queue_release1_next 
-63a8 20600000 rtn 
-
-shutter_dy_jude_queue_size:
-63a9 204078f2 call queue_get_size 
-63aa e8408006 ifetcht 1 ,contr 
-63ab 98467e00 isub temp ,pdata 
-63ac 1fe67c0a sub pdata ,max_queue_new_press ,null 
-63ad 20600000 rtn 
-
-shutter_dy_push_queue_long_release:
-63ae 704e8701 jam 1 ,mem_shutter_long_key_released_flag 
-63af 204063b4 call shutter_clear_dy_key_state 
-63b0 204065ec call shutter_dy_clear_volume_timer 
-63b1 da604ab3 arg mem_key0_long_release ,regc 
-63b2 dfe00003 arg max_queue_num_long_release ,pdata 
-63b3 202063a2 branch shutter_dy_push_queue_press_or_release 
-
-shutter_clear_dy_key_state:
-63b4 df20000a arg shutter_key_conf_sate_bytes ,loopcnt 
-63b5 1a620a00 copy regc ,contw 
-63b6 20207ca3 branch clear_mem 
-
-shutter_dy_keyscan_key_process:
-63b7 6fe146bf fetch 2 ,mem_key_value_xmem 
-63b8 67e14445 store 2 ,mem_key_value_retention 
-63b9 20406407 call shutter_dy_keyscan_key_process_next 
-63ba 6fe14445 fetch 2 ,mem_key_value_retention 
-63bb 67e146bf store 2 ,mem_key_value_xmem 
-63bc d8e00000 arg 0 ,queue 
-63bd 6fe0c53a fetch 1 ,mem_shutter_key_num 
-63be 1fe27200 copy pdata ,loopcnt 
-63bf da60495d arg mem_shutter_key_state0 ,regc 
-
-shutter_dy_keyscan_key_check_release_loop:
-63c0 1f227e00 copy loopcnt ,pdata 
-63c1 67e10656 store 2 ,mem_temp 
-63c2 1a627e00 copy regc ,pdata 
-63c3 67e1066a store 2 ,mem_regc 
-63c4 18e27e00 copy queue ,pdata 
-63c5 67e10658 store 2 ,mem_temp + 2 
-63c6 204063fd call shutter_dy_keyscan_key_check_release 
-63c7 6fe1066a fetch 2 ,mem_regc 
-63c8 1fe22600 copy pdata ,regc 
-63c9 6fe10658 fetch 2 ,mem_temp + 2 
-63ca 1fe20e00 copy pdata ,queue 
-63cb 204063d4 call shutter_dy_keyscan_key_check_long_press 
-63cc 6fe10658 fetch 2 ,mem_temp + 2 
-63cd 1fe08e01 add pdata ,1 ,queue 
-63ce 6fe1066a fetch 2 ,mem_regc 
-63cf 1fe0a60a add pdata ,shutter_key_conf_sate_bytes ,regc 
-63d0 6fe10656 fetch 2 ,mem_temp 
-63d1 1fe27200 copy pdata ,loopcnt 
-63d2 c20063c0 loop shutter_dy_keyscan_key_check_release_loop 
-63d3 20600000 rtn 
-
-shutter_dy_keyscan_key_check_long_press:
-63d4 efe20013 ifetch key_state_press_clk_length ,regc 
-63d5 207a0000 rtn blank 
-63d6 1fe20400 copy pdata ,temp 
-63d7 1c427e00 copy clkn_bt ,pdata 
-63d8 98460400 isub temp ,temp 
-63d9 24610000 nrtn positive 
-63da 580009c4 setarg 2500 
-63db 98467c00 isub temp ,null 
-63dc 20610000 rtn positive 
-63dd 1c427e00 copy clkn_bt ,pdata 
-63de e7e20013 istore 4 ,regc 
-63df 1a60a609 increase key_state_longpress_offset ,regc 
-63e0 58000001 setarg 1 
-63e1 e7e08013 istore key_state_longpress_length ,regc 
-63e2 6fe0ce87 fetch 1 ,mem_shutter_long_key_released_flag 
-63e3 207a0000 rtn blank 
-63e4 704e8700 jam 0 ,mem_shutter_long_key_released_flag 
-63e5 44e24018 bpatch patch18_4 ,mem_patch18 
-63e6 204065d8 call shutter_dy_long_key_function 
-63e7 6fe0ce8e fetch 1 ,mem_move_mode_set 
-63e8 c00063eb beq move_combine_key ,shutter_dy_key_long_press_set_key_normal 
-63e9 c000e3ee beq move_single_key ,shutter_dy_key_long_press_set_move_trigger 
-63ea 20600000 rtn 
-
-shutter_dy_key_long_press_set_key_normal:
-63eb 204063f8 call shutter_dy_long_press_android_or_ios 
-63ec dfe00003 arg max_queue_num_long ,pdata 
-63ed 202063a2 branch shutter_dy_push_queue_press_or_release 
-
-shutter_dy_key_long_press_set_move_trigger:
-63ee 18e27e00 copy queue ,pdata 
-63ef 6848ce8f fetcht 1 ,mem_move_mode_key_index 
-63f0 98467c00 isub temp ,null 
-63f1 2422e3eb nbranch shutter_dy_key_long_press_set_key_normal ,zero 
-63f2 6fe0ce90 fetch 1 ,mem_move_mode_trigger_enable 
-63f3 79407e00 setflip 0 ,pdata 
-63f4 67e0ce90 store 1 ,mem_move_mode_trigger_enable 
-63f5 247a0000 nrtn blank 
-
-shutter_dy_move_mode_disable:
-63f6 704e9000 jam 0 ,mem_move_mode_trigger_enable 
-63f7 2020379a branch app_led_off 
-
-shutter_dy_long_press_android_or_ios:
-63f8 da604a98 arg mem_key0_long_press ,regc 
-63f9 204065b3 call shutter_dy_check_iphone 
-63fa 207a0000 rtn blank 
-63fb da604bfd arg mem_key0_long_press_i ,regc 
-63fc 20600000 rtn 
-
-shutter_dy_keyscan_key_check_release:
-63fd 1a60a405 add regc ,key_state_release_clk_offset ,regb 
-63fe efe20012 ifetch key_state_release_clk_length ,regb 
-63ff 207a0000 rtn blank 
-6400 1fe20400 copy pdata ,temp 
-6401 1c427e00 copy clkn_bt ,pdata 
-6402 98460400 isub temp ,temp 
-6403 244177f4 ncall ui_timer_timeout ,positive 
-6404 580003e8 setarg 1000 
-6405 98467c00 isub temp ,null 
-6406 20206396 branch shutter_dy_push_queue_release 
-
-shutter_dy_keyscan_key_process_next:
-6407 6fe14443 fetch 2 ,mem_key_num_ptr 
-6408 efe0803f ifetch 1 ,pdata 
-6409 207a0000 rtn blank 
-640a 58000000 setarg 0 
-640b 67e106cf store 2 ,mem_key_value_temp 
-640c 20407067 call keyscan_scan_key 
-640d 24347793 nbranch lpm_button_clean_wake_lock ,user 
-640e 20407791 call lpm_button_get_wake_lock 
-640f 78547c00 disable user 
-6410 6fe0c38c fetch 1 ,mem_le_adv_enable 
-6411 247a0000 nrtn blank 
-6412 44e2c018 bpatch patch18_5 ,mem_patch18 
-6413 6fe0ce8e fetch 1 ,mem_move_mode_set 
-6414 c000e418 beq move_single_key ,shutter_dy_skip_check_combine_key 
-6415 20406472 call shutter_dy_check_combine_key_release 
-6416 20406425 call shutter_dy_check_combine_key 
-6417 20740000 rtn user 
-
-shutter_dy_skip_check_combine_key:
-6418 2040641e call shutter_dy_single_key_led 
-6419 6fe106cf fetch 2 ,mem_key_value_temp 
-641a 67e106d6 store 2 ,mem_key_value_temp4 
-641b 7006d800 jam 0 ,mem_key_value_temp6 
-641c 18000e00 force 0 ,queue 
-641d 2020709f branch keyscan_key_lp1 
-
-shutter_dy_single_key_led:
-641e 6fe0ce8c fetch 1 ,mem_last_press_key_value 
-641f 6848ce8f fetcht 1 ,mem_move_mode_key_index 
-6420 98467c00 isub temp ,null 
-6421 2022b798 branch app_led_on ,zero 
-6422 6fe0ce90 fetch 1 ,mem_move_mode_trigger_enable 
-6423 243a379a nbranch app_led_off ,blank 
-6424 20600000 rtn 
-
-shutter_dy_check_combine_key:
-6425 d8e00000 arg 0 ,queue 
-
-shutter_dy_check_combine_key_loop:
-6426 da404ace arg mem_combine_key0 ,regb 
-6427 dfe00002 arg 2 ,pdata 
-6428 98effe00 imul32 queue ,pdata 
-6429 9a40a400 iadd regb ,regb 
-642a efe10012 ifetch 2 ,regb 
-642b 207a0000 rtn blank 
-642c 684906cf fetcht 2 ,mem_key_value_temp 
-642d 9842fc00 ixor temp ,null 
-642e 2022e431 branch shutter_dy_check_combine_key_parse ,zero 
-642f 18e08e01 increase 1 ,queue 
-6430 20206426 branch shutter_dy_check_combine_key_loop 
-
-shutter_dy_check_combine_key_parse:
-6431 67e14ada store 2 ,mem_combine_key_state0 
-6432 20403798 call app_led_on 
-6433 da604adc arg mem_combine_key0_press ,regc 
-6434 dfe0000a arg max_queue_num_combinekey ,pdata 
-6435 98effe00 imul32 queue ,pdata 
-6436 9a60a600 iadd regc ,regc 
-6437 20406439 call shutter_dy_push_buffer_in_queue 
-6438 2020647d branch shutter_dy_combine_key_enableuser 
-
-shutter_dy_push_buffer_in_queue:
-6439 20406602 call shutter_dy_jude_clear_move_config 
-643a efe08013 ifetch 1 ,regc 
-643b 207a0000 rtn blank 
-643c 2040648c call shutter_dy_check_move_data 
-
-shutter_dy_move_to_specify_location:
-643d 20406602 call shutter_dy_jude_clear_move_config 
-643e 204065b3 call shutter_dy_check_iphone 
-643f 243a6444 nbranch shutter_dy_move_ios_to_specify_location ,blank 
-6440 dfe0001c arg 0x1c ,pdata 
-6441 2040619f call queue_push_one_byte 
-6442 dfe0001d arg 0x1d ,pdata 
-6443 2020619f branch queue_push_one_byte 
-
-shutter_dy_move_ios_to_specify_location:
-6444 20406453 call shutter_dy_move_down_left_corner 
-6445 2040645e call shutter_dy_move_x_max 
-6446 20406468 call shutter_dy_move_y_max 
-6447 dfe00029 arg 0x29 ,pdata 
-6448 2020619f branch queue_push_one_byte 
-
-shutter_dy_move_down_left_corner_count_set:
-6449 6848ce71 fetcht 1 ,mem_shutter_back_count 
-644a 204065b3 call shutter_dy_check_iphone 
-644b 207a0000 rtn blank 
-644c 6848ce74 fetcht 1 ,mem_shutter_iphone_beyond_y_count 
-644d 18408401 increase 1 ,temp 
-644e 6fe0ce8d fetch 1 ,mem_shutter_first_move 
-644f 207a0000 rtn blank 
-6450 6848ce71 fetcht 1 ,mem_shutter_back_count 
-6451 704e8d00 jam 0 ,mem_shutter_first_move 
-6452 20600000 rtn 
-
-shutter_dy_move_down_left_corner:
-6453 20406449 call shutter_dy_move_down_left_corner_count_set 
-6454 18427e00 copy temp ,pdata 
-6455 207a0000 rtn blank 
-6456 67e0ce7a store 1 ,mem_shutter_back_count_cache 
-
-shutter_dy_move_down_left_corner_loop:
-6457 dfe0002b arg 0x2b ,pdata 
-6458 2040619f call queue_push_one_byte 
-6459 6fe0ce7a fetch 1 ,mem_shutter_back_count_cache 
-645a 1fe0ffff increase -1 ,pdata 
-645b 67e0ce7a store 1 ,mem_shutter_back_count_cache 
-645c 207a0000 rtn blank 
-645d 20206457 branch shutter_dy_move_down_left_corner_loop 
-
-shutter_dy_move_x_max:
-645e 6fe0ce73 fetch 1 ,mem_shutter_iphone_beyond_x_count 
-645f 207a0000 rtn blank 
-6460 67e0ce7b store 1 ,mem_shutter_iphone_beyond_x_cache 
-
-shutter_dy_move_x_max_number:
-6461 dfe0002c arg 0x2c ,pdata 
-6462 2040619f call queue_push_one_byte 
-6463 6fe0ce7b fetch 1 ,mem_shutter_iphone_beyond_x_cache 
-6464 1fe0ffff increase -1 ,pdata 
-6465 67e0ce7b store 1 ,mem_shutter_iphone_beyond_x_cache 
-6466 207a0000 rtn blank 
-6467 20206461 branch shutter_dy_move_x_max_number 
-
-shutter_dy_move_y_max:
-6468 6fe0ce74 fetch 1 ,mem_shutter_iphone_beyond_y_count 
-6469 207a0000 rtn blank 
-646a 67e0ce7c store 1 ,mem_shutter_iphone_beyond_y_cache 
-
-shutter_dy_move_y_max_number:
-646b dfe0002d arg 0x2d ,pdata 
-646c 2040619f call queue_push_one_byte 
-646d 6fe0ce7c fetch 1 ,mem_shutter_iphone_beyond_y_cache 
-646e 1fe0ffff increase -1 ,pdata 
-646f 67e0ce7c store 1 ,mem_shutter_iphone_beyond_y_cache 
-6470 207a0000 rtn blank 
-6471 2020646b branch shutter_dy_move_y_max_number 
-
-shutter_dy_check_combine_key_release:
-6472 6fe14ada fetch 2 ,mem_combine_key_state0 
-6473 207a0000 rtn blank 
-6474 684906cf fetcht 2 ,mem_key_value_temp 
-6475 18467c00 sub temp ,0 ,null 
-6476 2022e480 branch shutter_dy_check_combine_key_release_all ,zero 
-6477 98467c00 isub temp ,null 
-6478 20628000 rtn zero 
-6479 60494ada storet 2 ,mem_combine_key_state0 
-647a 6fe14e8a fetch 2 ,mem_combine_key_release_value 
-647b 98467c00 isub temp ,null 
-647c 2042b79a call app_led_off ,zero 
-
-shutter_dy_combine_key_enableuser:
-647d 6fe106cf fetch 2 ,mem_key_value_temp 
-647e 67e14445 store 2 ,mem_key_value_retention 
-647f 20207dbc branch enable_user 
-
-shutter_dy_check_combine_key_release_all:
-6480 704e8701 jam 1 ,mem_shutter_long_key_released_flag 
-6481 2040379a call app_led_off 
-6482 da604b18 arg mem_combine_key_release ,regc 
-6483 20406439 call shutter_dy_push_buffer_in_queue 
-6484 58000000 setarg 0 
-6485 67e14ada store 2 ,mem_combine_key_state0 
-6486 7046b132 jam 50 ,mem_shutter_1s_timer 
-6487 2040647d call shutter_dy_combine_key_enableuser 
-6488 6fe0c53a fetch 1 ,mem_shutter_key_num 
-6489 1feff20a mul32 pdata ,shutter_key_conf_sate_bytes ,loopcnt 
-648a d8a0495d arg mem_shutter_key_state0 ,contw 
-648b 20207ca3 branch clear_mem 
-
-shutter_dy_check_move_data:
-648c 44e34018 bpatch patch18_6 ,mem_patch18 
-648d 6fe0ce8e fetch 1 ,mem_move_mode_set 
-648e c000e491 beq move_single_key ,shutter_dy_check_move_data_single_key 
-648f c0006497 beq move_combine_key ,shutter_dy_check_move_data_combine_key 
-6490 20600000 rtn 
-
-shutter_dy_check_move_data_single_key:
-6491 18e27e00 copy queue ,pdata 
-6492 c002e4c0 beq shutter_left_key_num ,shutter_dy_move_left 
-6493 c0006507 beq shutter_right_key_num ,shutter_dy_move_right 
-6494 c002650f beq shutter_up_key_num ,shutter_dy_move_up 
-6495 c0016539 beq shutter_down_key_num ,shutter_dy_move_down 
-6496 20600000 rtn 
-
-shutter_dy_check_move_data_combine_key:
-6497 efe08013 ifetch 1 ,regc 
-6498 c000e4c0 beq 0x01 ,shutter_dy_move_left 
-6499 c0016507 beq 0x02 ,shutter_dy_move_right 
-649a c001e50f beq 0x03 ,shutter_dy_move_up 
-649b c0026539 beq 0x04 ,shutter_dy_move_down 
-649c c002e49e beq 0x05 ,shutter_dy_get_move_data 
-649d 20600000 rtn 
-
-shutter_dy_get_move_data:
-649e 204065b3 call shutter_dy_check_iphone 
-649f 243a64a8 nbranch shutter_dy_get_move_data_iphone ,blank 
-64a0 5800001b setarg 0x1b 
-64a1 1feffe0a mul32 pdata ,every_payload_len ,pdata 
-64a2 d8404c4b arg mem_shutter_mousekey_value_list ,temp 
-64a3 98408a00 iadd temp ,contw 
-64a4 18a08a05 increase 5 ,contw 
-64a5 6fe24b22 fetch 4 ,mem_shutter_move_data 
-64a6 e7e20005 istore 4 ,contw 
-64a7 20600000 rtn 
-
-shutter_dy_get_move_data_iphone:
-64a8 58000029 setarg 0x29 
-64a9 1feffe0a mul32 pdata ,every_payload_len ,pdata 
-64aa d8404c4b arg mem_shutter_mousekey_value_list ,temp 
-64ab 98408a00 iadd temp ,contw 
-64ac 18a08a03 increase 3 ,contw 
-64ad 6fe14e75 fetch 2 ,mem_shutter_move_data_x 
-64ae e7e18005 istore 3 ,contw 
-64af 18a08a07 increase 7 ,contw 
-64b0 6fe14e77 fetch 2 ,mem_shutter_move_data_y 
-64b1 1ff27e00 lshift4 pdata ,pdata 
-64b2 1fed7e00 lshift8 pdata ,pdata 
-64b3 e7e18005 istore 3 ,contw 
-64b4 20600000 rtn 
-
-shutter_dy_move_x_empty_check:
-64b5 6fe0ce73 fetch 1 ,mem_shutter_iphone_beyond_x_count 
-64b6 207a0000 rtn blank 
-64b7 1fe0ffff increase -1 ,pdata 
-64b8 67e0ce73 store 1 ,mem_shutter_iphone_beyond_x_count 
-64b9 dfe00fff arg iphone_once_max_move_value ,pdata 
-64ba 20600000 rtn 
-
-shutter_dy_every_move_size_set:
-64bb d8400055 arg android_every_move_size ,temp 
-64bc 204065b3 call shutter_dy_check_iphone 
-64bd 207a0000 rtn blank 
-64be d8400007 arg iphone_every_move_size ,temp 
-64bf 20600000 rtn 
-
-shutter_dy_move_left:
-64c0 204064bb call shutter_dy_every_move_size_set 
-64c1 6fe14e75 fetch 2 ,mem_shutter_move_data_x 
-64c2 98467c00 isub temp ,null 
-64c3 244164b5 ncall shutter_dy_move_x_empty_check ,positive 
-64c4 24610000 nrtn positive 
-64c5 98467e00 isub temp ,pdata 
-
-shutter_dy_move_store_x:
-64c6 67e14e75 store 2 ,mem_shutter_move_data_x 
-
-shutter_dy_move_data_store:
-64c7 44e3c018 bpatch patch18_7 ,mem_patch18 
-64c8 204065b3 call shutter_dy_check_iphone 
-64c9 203a64e2 branch shutter_dy_move_android_data_store ,blank 
-64ca 6fe14e75 fetch 2 ,mem_shutter_move_data_x 
-64cb 68494e77 fetcht 2 ,mem_shutter_move_data_y 
-64cc 184d0400 lshift8 temp ,temp 
-64cd 18520400 lshift4 temp ,temp 
-64ce 9840fe00 iadd temp ,pdata 
-64cf 67e1cb22 store 3 ,mem_shutter_move_data 
-64d0 204064d2 call shutter_dy_get_ios_move_data 
-64d1 202064da branch shutter_dy_move_ios_release_data 
-
-shutter_dy_get_ios_move_data:
-64d2 58000028 setarg 0x28 
-64d3 1feffe0a mul32 pdata ,every_payload_len ,pdata 
-64d4 d8404c4b arg mem_shutter_mousekey_value_list ,temp 
-64d5 98408a00 iadd temp ,contw 
-64d6 18a08a03 increase 3 ,contw 
-64d7 6fe1cb22 fetch 3 ,mem_shutter_move_data 
-64d8 e7e18005 istore 3 ,contw 
-64d9 20600000 rtn 
-
-shutter_dy_move_ios_release_data:
-64da 58000029 setarg 0x29 
-64db 1feffe0a mul32 pdata ,every_payload_len ,pdata 
-64dc d8404c4b arg mem_shutter_mousekey_value_list ,temp 
-64dd 98408a00 iadd temp ,contw 
-64de 18a08a03 increase 3 ,contw 
-64df 6fe1cb22 fetch 3 ,mem_shutter_move_data 
-64e0 e7e18005 istore 3 ,contw 
-64e1 20600000 rtn 
-
-shutter_dy_move_android_data_store:
-64e2 6fe14e75 fetch 2 ,mem_shutter_move_data_x 
-64e3 68494e77 fetcht 2 ,mem_shutter_move_data_y 
-64e4 18500400 lshift16 temp ,temp 
-64e5 9840fe00 iadd temp ,pdata 
-64e6 67e24b22 store 4 ,mem_shutter_move_data 
-64e7 204064e9 call shutter_dy_move_android_release_data 
-64e8 202064f1 branch shutter_dy_data_android_xy_data 
-
-shutter_dy_move_android_release_data:
-64e9 5800001b setarg 0x1b 
-64ea 1feffe0a mul32 pdata ,every_payload_len ,pdata 
-64eb d8404c4b arg mem_shutter_mousekey_value_list ,temp 
-64ec 98408a00 iadd temp ,contw 
-64ed 18a08a05 increase 5 ,contw 
-64ee 6fe24b22 fetch 4 ,mem_shutter_move_data 
-64ef e7e20005 istore 4 ,contw 
-64f0 20600000 rtn 
-
-shutter_dy_data_android_xy_data:
-64f1 5800001c setarg 0x1c 
-64f2 1feffe0a mul32 pdata ,every_payload_len ,pdata 
-64f3 d8404c4b arg mem_shutter_mousekey_value_list ,temp 
-64f4 98408a00 iadd temp ,contw 
-64f5 18a08a05 increase 5 ,contw 
-64f6 6fe24b22 fetch 4 ,mem_shutter_move_data 
-64f7 e7e20005 istore 4 ,contw 
-64f8 20600000 rtn 
-
-shutter_dy_move_x_check_max:
-64f9 6fe14e75 fetch 2 ,mem_shutter_move_data_x 
-64fa d8400fff arg iphone_once_max_move_value ,temp 
-64fb 98460400 isub temp ,temp 
-64fc 24610000 nrtn positive 
-64fd 18427e00 copy temp ,pdata 
-64fe 6848ce73 fetcht 1 ,mem_shutter_iphone_beyond_x_count 
-64ff 18467c03 sub temp ,0x03 ,null 
-6500 2022e504 branch shutter_dy_clear_move_x ,zero 
-6501 18408401 increase 1 ,temp 
-6502 6048ce73 storet 1 ,mem_shutter_iphone_beyond_x_count 
-6503 202064c6 branch shutter_dy_move_store_x 
-
-shutter_dy_clear_move_x:
-6504 704e7300 jam 0 ,mem_shutter_iphone_beyond_x_count 
-6505 dfe00000 arg 0 ,pdata 
-6506 202064c6 branch shutter_dy_move_store_x 
-
-shutter_dy_move_right:
-6507 204065b3 call shutter_dy_check_iphone 
-6508 245a64f9 ncall shutter_dy_move_x_check_max ,blank 
-6509 204064bb call shutter_dy_every_move_size_set 
-650a 6fe14e75 fetch 2 ,mem_shutter_move_data_x 
-
-shutter_dy_move_right_next:
-650b 9840fe00 iadd temp ,pdata 
-650c d8400fff arg 0xfff ,temp 
-650d 20407d6e call ceiling 
-650e 202064c6 branch shutter_dy_move_store_x 
-
-shutter_dy_move_up:
-650f 204065b3 call shutter_dy_check_iphone 
-6510 203a6523 branch shutter_dy_dnroid_up_check_y ,blank 
-
-shutter_dy_move_y_check_max:
-6511 204064bb call shutter_dy_every_move_size_set 
-6512 6fe14e77 fetch 2 ,mem_shutter_move_data_y 
-6513 98467e00 isub temp ,pdata 
-6514 67e14e77 store 2 ,mem_shutter_move_data_y 
-6515 68494e77 fetcht 2 ,mem_shutter_move_data_y 
-6516 58000fff setarg 0xfff 
-6517 98467e00 isub temp ,pdata 
-6518 d8400fff arg iphone_once_max_move_value ,temp 
-6519 98460400 isub temp ,temp 
-651a 242164c7 nbranch shutter_dy_move_data_store ,positive 
-651b 58000fff setarg 0xfff 
-651c 98467e00 isub temp ,pdata 
-651d 6848ce74 fetcht 1 ,mem_shutter_iphone_beyond_y_count 
-651e 18467c05 sub temp ,0x05 ,null 
-651f 2022e52a branch shutter_dy_clear_move_y ,zero 
-6520 18408401 increase 1 ,temp 
-6521 6048ce74 storet 1 ,mem_shutter_iphone_beyond_y_count 
-6522 20206537 branch shutter_dy_move_store_y 
-
-shutter_dy_dnroid_up_check_y:
-6523 204064bb call shutter_dy_every_move_size_set 
-6524 6fe14e77 fetch 2 ,mem_shutter_move_data_y 
-6525 98467c00 isub temp ,null 
-6526 24610000 nrtn positive 
-6527 98467e00 isub temp ,pdata 
-6528 67e14e77 store 2 ,mem_shutter_move_data_y 
-6529 202064c7 branch shutter_dy_move_data_store 
-
-shutter_dy_clear_move_y:
-652a 704e7400 jam 0 ,mem_shutter_iphone_beyond_y_count 
-
-shutter_dy_android_move_y_empty_check:
-652b 58000fff setarg 0xfff 
-652c 20206537 branch shutter_dy_move_store_y 
-
-shutter_dy_move_y_empty_check:
-652d 204065b3 call shutter_dy_check_iphone 
-652e 203a652b branch shutter_dy_android_move_y_empty_check ,blank 
-652f 6fe0ce74 fetch 1 ,mem_shutter_iphone_beyond_y_count 
-6530 203a652b branch shutter_dy_android_move_y_empty_check ,blank 
-6531 1fe0ffff increase -1 ,pdata 
-6532 67e0ce74 store 1 ,mem_shutter_iphone_beyond_y_count 
-6533 5800ffff setarg 0xffff 
-6534 d8400fff arg iphone_once_max_move_value ,temp 
-6535 98467e00 isub temp ,pdata 
-6536 9a20fe00 iadd rega ,pdata 
-
-shutter_dy_move_store_y:
-6537 67e14e77 store 2 ,mem_shutter_move_data_y 
-6538 202064c7 branch shutter_dy_move_data_store 
-
-shutter_dy_move_down:
-6539 204065b3 call shutter_dy_check_iphone 
-653a 203a6542 branch shutter_dy_move_android_down ,blank 
-
-shutter_dy_move_down_next:
-653b 204064bb call shutter_dy_every_move_size_set 
-653c 6fe14e77 fetch 2 ,mem_shutter_move_data_y 
-653d 9840fe00 iadd temp ,pdata 
-653e d8400fff arg 0xfff ,temp 
-653f 98462200 isub temp ,rega 
-6540 2041652d call shutter_dy_move_y_empty_check ,positive 
-6541 20206537 branch shutter_dy_move_store_y 
-
-shutter_dy_move_android_down:
-6542 204064bb call shutter_dy_every_move_size_set 
-6543 6fe14e77 fetch 2 ,mem_shutter_move_data_y 
-6544 9840fe00 iadd temp ,pdata 
-6545 d8400fff arg 0xfff ,temp 
-6546 20407d6e call ceiling 
-6547 20206537 branch shutter_dy_move_store_y 
-
-ble_shutter_dy_receive_data:
-6548 6fe1439c fetch 2 ,mem_le_att_handle 
-6549 c0126103 beq gatt_keyboard_write_handle_new ,ble_shutter_process_reconnect_complete 
-654a 20600000 rtn 
-
-shutter_dy_le_find_service_hand_by_uuid:
-654b da200017 arg 23 ,rega 
-654c da400004 arg le_l2cap_cid_att ,regb 
-654d 204029d9 call le_fifo_malloc_tx_l2cap 
-654e 58000006 setarg attop_find_by_type_value_request 
-654f e7e08005 istore 1 ,contw 
-6550 58000001 setarg 0x0001 
-6551 e7e10005 istore 2 ,contw 
-6552 5800ffff setarg 0xffff 
-6553 e7e10005 istore 2 ,contw 
-6554 58002800 setarg 0x2800 
-6555 e7e10005 istore 2 ,contw 
-6556 d8c04947 arg mem_dy_le_search_service_uuid ,contr 
-6557 20207c91 branch memcpy16 
-
-shutter_dy_le_parse_att:
-6558 44e44019 bpatch patch19_0 ,mem_patch19 
-6559 1a220c00 copy rega ,contr 
-655a efe18006 ifetch 3 ,contr 
-655b 67e1c39b store 3 ,mem_le_att_opcode 
-655c c003e587 beq attop_find_by_type_value_response ,shutter_dy_le_parse_att_find_by_type_value_rsp 
-655d c000e5a8 beq attop_error_response ,shutter_dy_le_parse_error_rsp 
-655e c0056577 beq attop_read_request ,shutter_dy_le_parse_att_read_request 
-655f c0066561 beq attop_read_blob_request ,shutter_dy_le_parse_att_read_blob_request 
-6560 20202b76 branch le_parse_att2 
-
-shutter_dy_le_parse_att_read_blob_request:
-6561 efe10006 ifetch 2 ,contr 
-6562 67e10693 store 2 ,mem_le_att_offset 
-6563 98002200 iforce rega 
-6564 6849439c fetcht 2 ,mem_le_att_handle 
-6565 6fe14334 fetch 2 ,mem_le_pairing_handle 
-6566 98467c00 isub temp ,null 
-6567 2422ad2e nbranch le_send_att_read_blob_response ,zero 
-6568 204065b3 call shutter_dy_check_iphone 
-6569 243a656c nbranch shutter_dy_le_parse_att_read_blob_request_ios ,blank 
-656a 68494943 fetcht 2 ,mem_shutter_le_map_len_android 
-656b 2020656d branch shutter_dy_le_parse_att_read_blob_request2 
-
-shutter_dy_le_parse_att_read_blob_request_ios:
-656c 68494945 fetcht 2 ,mem_shutter_le_map_len_ios 
-
-shutter_dy_le_parse_att_read_blob_request2:
-656d d8c046c1 arg mem_shutter_le_hid_map ,contr 
-656e 20407c6f call store_contr 
-656f 18427e00 copy temp ,pdata 
-6570 9a267e00 isub rega ,pdata 
-6571 24212de1 nbranch le_send_att_error_response_notfound ,positive 
-6572 1fe0fe01 increase 1 ,pdata 
-6573 1fe67c17 sub pdata ,23 ,null 
-6574 20212d37 branch le_send_att_read_blob_response_less ,positive 
-6575 18007e17 force 23 ,pdata 
-6576 20202d37 branch le_send_att_read_blob_response_less 
-
-shutter_dy_le_parse_att_read_request:
-6577 6849439c fetcht 2 ,mem_le_att_handle 
-6578 6fe0c323 fetch 1 ,mem_le_configuration 
-6579 c281e57b bbit1 bit_ble_read_auth ,shutter_dy_le_send_att_read_response_check_auth 
-657a 20202cfb branch le_send_att_read_response 
-
-shutter_dy_le_send_att_read_response_check_auth:
-657b 6fe14334 fetch 2 ,mem_le_pairing_handle 
-657c 98467c00 isub temp ,null 
-657d 2422acfb nbranch le_send_att_read_response ,zero 
-657e 20402da5 call le_check_encrypt_state 
-657f 24346581 nbranch shutter_dy_le_send_att_read_response ,user 
-6580 20202d24 branch le_send_att_read_response_error_insufficient_auth 
-
-shutter_dy_le_send_att_read_response:
-6581 6fe14334 fetch 2 ,mem_le_pairing_handle 
-6582 98467c00 isub temp ,null 
-6583 2422acfb nbranch le_send_att_read_response ,zero 
-6584 d8c046c1 arg mem_shutter_le_hid_map ,contr 
-6585 18007e17 force 23 ,pdata 
-6586 20202d0b branch le_send_att_read_response_less 
-
-shutter_dy_le_parse_att_find_by_type_value_rsp:
-
-shutter_dy_le_remote_iphone:
-6587 44e4c019 bpatch patch19_1 ,mem_patch19 
-6588 704e7105 jam 5 ,mem_shutter_back_count 
-6589 70495701 jam 1 ,mem_iphone_flag 
-658a 704e7901 jam 1 ,mem_last_shutter_le_iphone_flag 
-658b 704958f0 jam 240 ,mem_send_data_delay 
-658c 704e880a jam 10 ,mem_shutter_move_mid_timer 
-658d 704e8d01 jam 1 ,mem_shutter_first_move 
-658e 20406642 call shutter_dy_load_move_config_info 
-658f 6fe0ce89 fetch 1 ,mem_shutter_pairing_success 
-6590 207a0000 rtn blank 
-6591 20406606 call shutter_dy_clear_move_config 
-6592 d8400fff arg iphone_once_max_move_value ,temp 
-6593 6fe14f03 fetch 2 ,mem_iphone_initial_move_x 
-6594 da204e75 arg mem_shutter_move_data_x ,rega 
-6595 da404e73 arg mem_shutter_iphone_beyond_x_count ,regb 
-6596 204065a1 call shutter_dy_iphone_move_initial_set 
-6597 d8400fff arg iphone_once_max_move_value ,temp 
-6598 6fe14f05 fetch 2 ,mem_iphone_initial_move_y 
-6599 da204e77 arg mem_shutter_move_data_y ,rega 
-659a da404e74 arg mem_shutter_iphone_beyond_y_count ,regb 
-659b 204065a1 call shutter_dy_iphone_move_initial_set 
-659c 58000fff setarg 0xfff 
-659d 68494e77 fetcht 2 ,mem_shutter_move_data_y 
-659e 98467e00 isub temp ,pdata 
-659f 67e14e77 store 2 ,mem_shutter_move_data_y 
-65a0 20600000 rtn 
-
-shutter_dy_iphone_move_initial_set:
-65a1 9846fc00 idiv temp 
-65a2 20407d64 call wait_div_end 
-65a3 1807fe00 quotient pdata 
-65a4 18070400 remainder temp 
-65a5 e7e08012 istore 1 ,regb 
-65a6 e0410011 istoret 2 ,rega 
-65a7 20600000 rtn 
-
-shutter_dy_le_parse_error_rsp:
-65a8 18c08dfe increase -2 ,contr 
-65a9 efe08006 ifetch 1 ,contr 
-65aa c00365b1 beq attop_find_by_type_value_request ,shutter_dy_not_iphone_read_conf 
-65ab 20600000 rtn 
-
-shutter_dy_remote_not_iphone:
-65ac 704e7101 jam 1 ,mem_shutter_back_count 
-65ad 70495700 jam 0 ,mem_iphone_flag 
-65ae 704e7900 jam 0 ,mem_last_shutter_le_iphone_flag 
-65af 7049580a jam 10 ,mem_send_data_delay 
-65b0 20600000 rtn 
-
-shutter_dy_not_iphone_read_conf:
-65b1 204065ac call shutter_dy_remote_not_iphone 
-65b2 20206642 branch shutter_dy_load_move_config_info 
-
-shutter_dy_check_iphone:
-65b3 6fe0c957 fetch 1 ,mem_iphone_flag 
-65b4 20600000 rtn 
-
-shutter_dy_le_get_press_ptr:
-65b5 da6049b7 arg mem_dy_key0_press ,regc 
-65b6 204065b3 call shutter_dy_check_iphone 
-65b7 207a0000 rtn blank 
-65b8 70495878 jam 120 ,mem_send_data_delay 
-65b9 da604b26 arg mem_key0_press_i ,regc 
-65ba 20600000 rtn 
-
-shutter_dy_le_get_release_ptr:
-
-shutter_dy_le_get_release_ptr_set:
-65bb da604a11 arg mem_key0_release_new ,regc 
-65bc 204065b3 call shutter_dy_check_iphone 
-65bd 207a0000 rtn blank 
-65be da604b76 arg mem_key0_release_new_i ,regc 
-65bf 7049580c jam 12 ,mem_send_data_delay 
-65c0 18e27e00 copy queue ,pdata 
-65c1 c1008000 rtneq shutter_like_key_num 
-65c2 20600000 rtn 
-
-shutter_dy_le_get_release_ptr_volume:
-65c3 44e54019 bpatch patch19_2 ,mem_patch19 
-65c4 6fe0cc47 fetch 1 ,mem_key3_press_count 
-65c5 79407e00 setflip 0 ,pdata 
-65c6 67e0cc47 store 1 ,mem_key3_press_count 
-65c7 c00065cc beq 0 ,shutter_dy_le_get_release_ptr_set_volume_inc 
-65c8 c000e5ca beq 1 ,shutter_dy_le_get_release_ptr_set_volume_dec 
-65c9 20600000 rtn 
-
-shutter_dy_le_get_release_ptr_set_volume_dec:
-65ca 204065d3 call shutter_dy_le_get_vol_dec_ptr 
-65cb 2020618e branch push_buffer_in_queue 
-
-shutter_dy_le_get_release_ptr_set_volume_inc:
-65cc 204065ce call shutter_dy_le_get_vol_inc_ptr 
-65cd 2020618e branch push_buffer_in_queue 
-
-shutter_dy_le_get_vol_inc_ptr:
-65ce da604a3e arg mem_key3_release_new ,regc 
-65cf 204065b3 call shutter_dy_check_iphone 
-65d0 207a0000 rtn blank 
-65d1 da604ba3 arg mem_key3_release_new_i ,regc 
-65d2 20600000 rtn 
-
-shutter_dy_le_get_vol_dec_ptr:
-65d3 da604c33 arg mem_key3_release_new_t ,regc 
-65d4 204065b3 call shutter_dy_check_iphone 
-65d5 207a0000 rtn blank 
-65d6 da604c3d arg mem_key3_release_new_i_t ,regc 
-65d7 20600000 rtn 
-
-shutter_dy_long_key_function:
-65d8 18e27e00 copy queue ,pdata 
-65d9 c000e5fa beq shutter_like_key_num ,shutter_dy_link_key_long_press 
-65da c00165e8 beq shutter_down_key_num ,shutter_dy_loop_send_volume_dec_page 
-65db c00265e4 beq shutter_up_key_num ,shutter_dy_loop_send_volume_inc_page 
-65dc 20600000 rtn 
-
-shutter_dy_long_key_volume_timer:
-65dd da604f18 arg mem_shutter_volume_timer ,regc 
-65de da4065e0 arg shutter_dy_long_key_volume_timeout ,regb 
-65df 20203755 branch timer_single_step 
-
-shutter_dy_long_key_volume_timeout:
-65e0 704f1804 jam 4 ,mem_shutter_volume_timer 
-65e1 6fe0cc47 fetch 1 ,mem_key3_press_count 
-65e2 203a65e4 branch shutter_dy_loop_send_volume_inc_page ,blank 
-65e3 202065e8 branch shutter_dy_loop_send_volume_dec_page 
-
-shutter_dy_loop_send_volume_inc_page:
-65e4 704c4700 jam 0 ,mem_key3_press_count 
-65e5 704f1804 jam 4 ,mem_shutter_volume_timer 
-65e6 da604aa4 arg mem_key4_long_press ,regc 
-65e7 2020618e branch push_buffer_in_queue 
-
-shutter_dy_loop_send_volume_dec_page:
-65e8 704c4701 jam 1 ,mem_key3_press_count 
-65e9 704f1804 jam 4 ,mem_shutter_volume_timer 
-65ea da604a9e arg mem_key2_long_press ,regc 
-65eb 2020618e branch push_buffer_in_queue 
-
-shutter_dy_clear_volume_timer:
-65ec 704c4700 jam 0 ,mem_key3_press_count 
-65ed 704f1800 jam 0 ,mem_shutter_volume_timer 
-65ee 20600000 rtn 
-
-shutter_dy_link_key_loop_timer:
-65ef da604f19 arg mem_shutter_link_timer ,regc 
-65f0 da4065f2 arg shutter_dy_link_key_loop_timeout ,regb 
-65f1 20203755 branch timer_single_step 
-
-shutter_dy_link_key_loop_timeout:
-65f2 704f1902 jam 2 ,mem_shutter_link_timer 
-65f3 204065f5 call shutter_dy_link_data_android_or_ios 
-65f4 2020618e branch push_buffer_in_queue 
-
-shutter_dy_link_data_android_or_ios:
-65f5 da604f1a arg mem_shutter_link_data ,regc 
-65f6 204065b3 call shutter_dy_check_iphone 
-65f7 207a0000 rtn blank 
-65f8 da604f22 arg mem_shutter_link_data_i ,regc 
-65f9 20600000 rtn 
-
-shutter_dy_link_key_long_press:
-65fa 6fe0cf2a fetch 1 ,mem_shutter_link_loop_flag 
-65fb 243a65ff nbranch shutter_dy_clear_link_key_timer ,blank 
-65fc 704f2a01 jam 1 ,mem_shutter_link_loop_flag 
-65fd 704f1902 jam 2 ,mem_shutter_link_timer 
-65fe 20600000 rtn 
-
-shutter_dy_clear_link_key_timer:
-65ff 704f2a00 jam 0 ,mem_shutter_link_loop_flag 
-6600 704f1900 jam 0 ,mem_shutter_link_timer 
-6601 20600000 rtn 
-
-shutter_dy_jude_clear_move_config:
-6602 6fe0ce72 fetch 1 ,mem_shutter_le_conned 
-6603 247a0000 nrtn blank 
-6604 704e7201 jam 1 ,mem_shutter_le_conned 
-6605 202064c7 branch shutter_dy_move_data_store 
-
-shutter_dy_clear_move_config:
-6606 58000000 setarg 0 
-6607 67e3ce73 store 7 ,mem_move_config 
-6608 20600000 rtn 
-
-shutter_dy_write_otp_convert_data:
-6609 204065b3 call shutter_dy_check_iphone 
-660a c000e611 beq 0x01 ,shutter_dy_store_ios_config_data 
-660b c0006623 beq 0x00 ,shutter_dy_store_android_config 
-660c 20600000 rtn 
-
-shutter_dy_read_otp_convert_data:
-660d 6fe0cf0b fetch 1 ,mem_otp_last_shutter_le_iphone_flag 
-660e c000e62a beq 0x01 ,shutter_dy_get_ios_config 
-660f c000663c beq 0x00 ,shutter_dy_get_android_config 
-6610 20600000 rtn 
-
-shutter_dy_store_ios_config_data:
-6611 6fe0ce73 fetch 1 ,mem_shutter_iphone_beyond_x_count 
-6612 1fefffff mul32 pdata ,iphone_once_max_move_value ,pdata 
-6613 1fe20400 copy pdata ,temp 
-6614 6fe14e75 fetch 2 ,mem_shutter_move_data_x 
-6615 9840fe00 iadd temp ,pdata 
-6616 67e14f07 store 2 ,mem_otp_shutter_move_data_x 
-6617 6fe0ce74 fetch 1 ,mem_shutter_iphone_beyond_y_count 
-6618 1fefffff mul32 pdata ,iphone_once_max_move_value ,pdata 
-6619 1fe20400 copy pdata ,temp 
-661a 6fe14e77 fetch 2 ,mem_shutter_move_data_y 
-661b 1fe22200 copy pdata ,rega 
-661c 58000fff setarg 0xfff 
-661d 9a267e00 isub rega ,pdata 
-661e 9840fe00 iadd temp ,pdata 
-661f 67e14f09 store 2 ,mem_otp_shutter_move_data_y 
-6620 204065b3 call shutter_dy_check_iphone 
-6621 67e0cf0b store 1 ,mem_otp_last_shutter_le_iphone_flag 
-6622 20600000 rtn 
-
-shutter_dy_store_android_config:
-6623 6fe14e75 fetch 2 ,mem_shutter_move_data_x 
-6624 67e14f07 store 2 ,mem_otp_shutter_move_data_x 
-6625 6fe14e77 fetch 2 ,mem_shutter_move_data_y 
-6626 67e14f09 store 2 ,mem_otp_shutter_move_data_y 
-6627 204065b3 call shutter_dy_check_iphone 
-6628 67e0cf0b store 1 ,mem_otp_last_shutter_le_iphone_flag 
-6629 20600000 rtn 
-
-shutter_dy_get_ios_config:
-662a 6fe14f07 fetch 2 ,mem_otp_shutter_move_data_x 
-662b 1fe6fdff div pdata ,iphone_once_max_move_value 
-662c 20407d64 call wait_div_end 
-662d 1807fe00 quotient pdata 
-662e 18070400 remainder temp 
-662f 67e0ce73 store 1 ,mem_shutter_iphone_beyond_x_count 
-6630 18427e00 copy temp ,pdata 
-6631 67e14e75 store 2 ,mem_shutter_move_data_x 
-6632 6fe14f09 fetch 2 ,mem_otp_shutter_move_data_y 
-6633 1fe6fdff div pdata ,iphone_once_max_move_value 
-6634 20407d64 call wait_div_end 
-6635 1807fe00 quotient pdata 
-6636 18070400 remainder temp 
-6637 67e0ce74 store 1 ,mem_shutter_iphone_beyond_y_count 
-6638 58000fff setarg 0xfff 
-6639 98467e00 isub temp ,pdata 
-663a 67e14e77 store 2 ,mem_shutter_move_data_y 
-663b 20600000 rtn 
-
-shutter_dy_get_android_config:
-663c 6fe14f07 fetch 2 ,mem_otp_shutter_move_data_x 
-663d 67e14e75 store 2 ,mem_shutter_move_data_x 
-663e 6fe14f09 fetch 2 ,mem_otp_shutter_move_data_y 
-663f 67e14e77 store 2 ,mem_shutter_move_data_y 
-6640 20600000 rtn 
-
-shutter_dy_store_move_config_info:
-6641 202066bd branch shutter_dy_campare_effective_addr_write_otp 
-
-shutter_dy_load_move_config_info:
-6642 202066a4 branch shutter_dy_campare_effective_addr_read_otp 
-
-shutter_dy_shutter_uart_config_loop:
-6643 20406665 call shutter_dy_update_read_check_addr 
-6644 6fe14f0e fetch 2 ,mem_otp_read_offset_addr 
-6645 204066d0 call shutter_dy_shutter_read_move_config_from_otp_addr 
-6646 704f1600 jam 0 ,mem_shutter_first_read_flag 
-6647 6fe2cf07 fetch 5 ,mem_otp_move_config 
-6648 704f1700 jam 0 ,mem_shutter_valid_data_flag 
-6649 704f1400 jam 0 ,mem_shutter_temp_count 
-664a 20406669 call shutter_dy_campare_otp_data 
-664b 6fe0cf14 fetch 1 ,mem_shutter_temp_count 
-664c c1000000 rtneq 0 
-664d 20206643 branch shutter_dy_shutter_uart_config_loop 
-
-shutter_dy_shutter_get_first_read_addr:
-664e 6fe14efb fetch 2 ,mem_shutter_efuse_start_offset 
-664f 1fe0fffb increase -5 ,pdata 
-6650 67e14f0e store 2 ,mem_otp_read_offset_addr 
-6651 20600000 rtn 
-
-shutter_dy_shutter_next_read_addr:
-6652 6fe14f0e fetch 2 ,mem_otp_read_offset_addr 
-6653 1fe0fffb increase -5 ,pdata 
-6654 67e14f0e store 2 ,mem_otp_read_offset_addr 
-6655 20600000 rtn 
-
-shutter_dy_shutter_last_read_addr:
-6656 6fe14f0e fetch 2 ,mem_otp_read_offset_addr 
-6657 1fe0fe05 pincrease 5 
-6658 67e14f0e store 2 ,mem_otp_read_offset_addr 
-6659 20600000 rtn 
-
-shutter_dy_shutter_read_ios_android_addr:
-665a 6fe14f10 fetch 2 ,mem_otp_read_ios_android_addr 
-665b 1fe0fe05 pincrease 5 
-665c 67e14f10 store 2 ,mem_otp_read_ios_android_addr 
-665d 6fe14f10 fetch 2 ,mem_otp_read_ios_android_addr 
-665e 1fe20400 copy pdata ,temp 
-665f 6fe14efb fetch 2 ,mem_shutter_efuse_start_offset 
-6660 98467e00 isub temp ,pdata 
-6661 d8400005 arg shutter_para_total_num ,temp 
-6662 98467c00 isub temp ,null 
-6663 24216689 nbranch shutter_dy_shutter_not_find_ios_or_android ,positive 
-6664 20600000 rtn 
-
-shutter_dy_update_read_check_addr:
-6665 6fe0cf16 fetch 1 ,mem_shutter_first_read_flag 
-6666 c000e64e beq 0x01 ,shutter_dy_shutter_get_first_read_addr 
-6667 c0006652 beq 0x00 ,shutter_dy_shutter_next_read_addr 
-6668 20600000 rtn 
-
-shutter_dy_campare_otp_data:
-6669 da400000 arg 0x0 ,regb 
-666a 1a420400 copy regb ,temp 
-666b 6fe14f07 fetch 2 ,mem_otp_shutter_move_data_x 
-666c a843fe00 icompare 0xffff ,temp 
-666d 2440e679 ncall shutter_dy_set_shutter_valid_data_flag ,true 
-666e da400000 arg 0x0 ,regb 
-666f 1a420400 copy regb ,temp 
-6670 6fe14f09 fetch 2 ,mem_otp_shutter_move_data_y 
-6671 a843fe00 icompare 0xffff ,temp 
-6672 2440e679 ncall shutter_dy_set_shutter_valid_data_flag ,true 
-6673 da400000 arg 0x0 ,regb 
-6674 1a420400 copy regb ,temp 
-6675 6fe0cf0b fetch 1 ,mem_otp_last_shutter_le_iphone_flag 
-6676 a841fe00 icompare 0xff ,temp 
-6677 2440e679 ncall shutter_dy_set_shutter_valid_data_flag ,true 
-6678 20600000 rtn 
-
-shutter_dy_set_shutter_valid_data_flag:
-6679 6fe0cf14 fetch 1 ,mem_shutter_temp_count 
-667a 1fe0fe01 pincrease 1 
-667b 67e0cf14 store 1 ,mem_shutter_temp_count 
-667c 20600000 rtn 
-
-shutter_dy_shutter_judge_ios_or_android:
-667d 704f1401 jam 1 ,mem_shutter_temp_count 
-667e 2040665a call shutter_dy_shutter_read_ios_android_addr 
-667f 6fe14f10 fetch 2 ,mem_otp_read_ios_android_addr 
-6680 204066d0 call shutter_dy_shutter_read_move_config_from_otp_addr 
-6681 204065b3 call shutter_dy_check_iphone 
-6682 1fe20400 copy pdata ,temp 
-6683 6fe0cf0b fetch 1 ,mem_otp_last_shutter_le_iphone_flag 
-6684 a841fe00 icompare 0xff ,temp 
-6685 2040e6a2 call shutter_dy_clear_temp_count ,true 
-6686 6fe0cf14 fetch 1 ,mem_shutter_temp_count 
-6687 c1000000 rtneq 0 
-6688 2020667d branch shutter_dy_shutter_judge_ios_or_android 
-
-shutter_dy_shutter_not_find_ios_or_android:
-6689 44e5c019 bpatch patch19_3 ,mem_patch19 
-668a 204066a2 call shutter_dy_clear_temp_count 
-668b 204065b3 call shutter_dy_check_iphone 
-668c 203a668e branch shutter_dy_shutter_android_save_init_loaction ,blank 
-668d 20206693 branch shutter_dy_shutter_ios_save_init_loaction 
-
-shutter_dy_shutter_android_save_init_loaction:
-668e 6fe14eff fetch 2 ,mem_android_initial_move_x 
-668f 67e14e75 store 2 ,mem_shutter_move_data_x 
-6690 6fe14f01 fetch 2 ,mem_android_initial_move_y 
-6691 67e14e77 store 2 ,mem_shutter_move_data_y 
-6692 20206641 branch shutter_dy_store_move_config_info 
-
-shutter_dy_shutter_ios_save_init_loaction:
-6693 d8400fff arg iphone_once_max_move_value ,temp 
-6694 6fe14f03 fetch 2 ,mem_iphone_initial_move_x 
-6695 da204e75 arg mem_shutter_move_data_x ,rega 
-6696 da404e73 arg mem_shutter_iphone_beyond_x_count ,regb 
-6697 204065a1 call shutter_dy_iphone_move_initial_set 
-6698 d8400fff arg iphone_once_max_move_value ,temp 
-6699 6fe14f05 fetch 2 ,mem_iphone_initial_move_y 
-669a da204e77 arg mem_shutter_move_data_y ,rega 
-669b da404e74 arg mem_shutter_iphone_beyond_y_count ,regb 
-669c 204065a1 call shutter_dy_iphone_move_initial_set 
-669d 58000fff setarg 0xfff 
-669e 68494e77 fetcht 2 ,mem_shutter_move_data_y 
-669f 98467e00 isub temp ,pdata 
-66a0 67e14e77 store 2 ,mem_shutter_move_data_y 
-66a1 20206641 branch shutter_dy_store_move_config_info 
-
-shutter_dy_clear_temp_count:
-66a2 704f1400 jam 0 ,mem_shutter_temp_count 
-66a3 20600000 rtn 
-
-shutter_dy_campare_effective_addr_read_otp:
-66a4 44e64019 bpatch patch19_4 ,mem_patch19 
-66a5 704f1601 jam 1 ,mem_shutter_first_read_flag 
-66a6 20406643 call shutter_dy_shutter_uart_config_loop 
-66a7 6fe14efd fetch 2 ,mem_shutter_efuse_end_offset 
-66a8 1fe20400 copy pdata ,temp 
-66a9 6fe14f0e fetch 2 ,mem_otp_read_offset_addr 
-66aa 98467e00 isub temp ,pdata 
-66ab d8400000 arg 0x0 ,temp 
-66ac 98467c00 isub temp ,null 
-66ad 24610000 nrtn positive 
-66ae 6fe14f0e fetch 2 ,mem_otp_read_offset_addr 
-66af 1fe20400 copy pdata ,temp 
-66b0 6fe14efb fetch 2 ,mem_shutter_efuse_start_offset 
-66b1 1fe0fffb increase -5 ,pdata 
-66b2 98467e00 isub temp ,pdata 
-66b3 6fe14f0e fetch 2 ,mem_otp_read_offset_addr 
-66b4 67e14f10 store 2 ,mem_otp_read_ios_android_addr 
-66b5 2040667d call shutter_dy_shutter_judge_ios_or_android 
-66b6 6fe14f10 fetch 2 ,mem_otp_read_ios_android_addr 
-66b7 2442e6d0 ncall shutter_dy_shutter_read_move_config_from_otp_addr ,zero 
-66b8 704f1400 jam 0 ,mem_shutter_temp_count 
-66b9 20406669 call shutter_dy_campare_otp_data 
-66ba 6fe0cf14 fetch 1 ,mem_shutter_temp_count 
-66bb c1000000 rtneq 0 
-66bc 2020660d branch shutter_dy_read_otp_convert_data 
-
-shutter_dy_campare_effective_addr_write_otp:
-66bd 44e6c019 bpatch patch19_5 ,mem_patch19 
-66be 704f1601 jam 1 ,mem_shutter_first_read_flag 
-66bf 20406643 call shutter_dy_shutter_uart_config_loop 
-66c0 68494efd fetcht 2 ,mem_shutter_efuse_end_offset 
-66c1 6fe14f0e fetch 2 ,mem_otp_read_offset_addr 
-66c2 98467e00 isub temp ,pdata 
-66c3 d8400000 arg 0x0 ,temp 
-66c4 98467c00 isub temp ,null 
-66c5 24610000 nrtn positive 
-66c6 68494f0e fetcht 2 ,mem_otp_read_offset_addr 
-66c7 6fe14efb fetch 2 ,mem_shutter_efuse_start_offset 
-66c8 98467e00 isub temp ,pdata 
-66c9 d8400000 arg 0x0 ,temp 
-66ca 98467c00 isub temp ,null 
-66cb 24610000 nrtn positive 
-66cc 6fe14f0e fetch 2 ,mem_otp_read_offset_addr 
-66cd 67e14f0c store 2 ,mem_otp_write_offset_addr 
-66ce 20406609 call shutter_dy_write_otp_convert_data 
-66cf 202066d5 branch shutter_dy_shutter_write_move_config_to_otp_addr 
-
-shutter_dy_shutter_read_move_config_from_otp_addr:
-66d0 1fe22400 copy pdata ,regb 
-66d1 44e74019 bpatch patch19_6 ,mem_patch19 
-66d2 df200005 arg shutter_para_total_num ,loopcnt 
-66d3 da204f07 arg mem_otp_move_config ,rega 
-66d4 20206b62 branch otp_read_data 
-
-shutter_dy_shutter_write_move_config_to_otp_addr:
-66d5 df200005 arg shutter_para_total_num ,loopcnt 
-66d6 da204f07 arg mem_otp_move_config ,rega 
-66d7 6a414f0c fetchr regb ,2 ,mem_otp_write_offset_addr 
-66d8 20206b33 branch otp_write 
-
-shutter_dy_shutter_1s_timer:
-66d9 da6046b1 arg mem_shutter_1s_timer ,regc 
-66da da406641 arg shutter_dy_store_move_config_info ,regb 
-66db 20203755 branch timer_single_step 
-
-rf_debug_rx_gpio_low:
-66dc 6fe0c456 fetch 1 ,mem_rf_debug_rx_gpio 
-
-rf_debug_gpio_low:
-66dd d840003e arg gpcfg_output_low ,temp 
-66de 20206f1c branch gpio_config_function 
-
-rf_debug_rx_on_line:
-
-rf_debug_rx_gpio_high:
-66df 6fe0c456 fetch 1 ,mem_rf_debug_rx_gpio 
-
-rf_debug_gpio_high:
-66e0 d840003f arg gpcfg_output_high ,temp 
-66e1 20206f1c branch gpio_config_function 
-
-rf_debug_rx_gpio_h_l_h:
-66e2 204066df call rf_debug_rx_gpio_high 
-
-rf_debug_rx_gpio_l_h:
-66e3 204066dc call rf_debug_rx_gpio_low 
-66e4 202066df branch rf_debug_rx_gpio_high 
-
-rf_debug_rx_gpio_l_h_l:
-
-rf_debug_shutdown_radio_line:
-66e5 204066e3 call rf_debug_rx_gpio_l_h 
-
-rf_debug_rx_crc_line:
-66e6 202066dc branch rf_debug_rx_gpio_low 
-
-rf_debug_rx_sync_line:
-66e7 202066e3 branch rf_debug_rx_gpio_l_h 
-
-rf_debug_rx_crc_fail_line:
-66e8 204066e3 call rf_debug_rx_gpio_l_h 
-66e9 202066e5 branch rf_debug_rx_gpio_l_h_l 
-
-rf_debug_rx_match_line:
-
-rf_debug_rx_crc_error_line:
-
-rf_debug_rx_sync_timeout_line:
-66ea 202066dc branch rf_debug_rx_gpio_low 
-
-rf_debug_tx_off_line:
-
-rf_debug_tx_gpio_low:
-66eb 6fe0c457 fetch 1 ,mem_rf_debug_tx_gpio 
-66ec 202066dd branch rf_debug_gpio_low 
-
-rf_debug_tx_on_line:
-
-rf_debug_tx_gpio_high:
-66ed 6fe0c457 fetch 1 ,mem_rf_debug_tx_gpio 
-66ee 202066e0 branch rf_debug_gpio_high 
-
-rf_debug_tx_gpio_l_h_l:
-66ef 204066eb call rf_debug_tx_gpio_low 
-66f0 204066ed call rf_debug_tx_gpio_high 
-66f1 202066eb branch rf_debug_tx_gpio_low 
-
-hci_init:
-66f2 20800000 clear_stack 
-66f3 2040711d call wdt_set_disable 
-66f4 204066fd call hci_init_clksel_xtal 
-66f5 204066ff call hci_init_uart_default_config 
-66f6 20406713 call hci_init_uart_config 
-66f7 2040672f call hci_init_pwm_default_config 
-66f8 20406733 call hci_init_pwm 
-66f9 7006ed01 jam 1 ,mem_hci_command_complete_num_hci_command_packet 
-66fa 7006ea04 jam hci_h4_type_event ,mem_hci_event_head_type 
-
-hci_process_loop:
-66fb 2040673e call hci_process_check_uart_rx 
-66fc 202066fb branch hci_process_loop 
-
-hci_init_clksel_xtal:
-66fd 70804204 jam clksel_xtal ,core_clksel 
-66fe 20600000 rtn 
-
-hci_init_uart_default_config:
-66ff 20406703 call hci_init_uart_default_config_tx 
-6700 20406707 call hci_init_uart_default_config_rx 
-6701 2040670b call hci_init_uart_default_config_rts 
-6702 2020670f branch hci_init_uart_default_config_cts 
-
-hci_init_uart_default_config_tx:
-6703 6fe0c508 fetch 1 ,mem_hci_uart_tx_gpio 
-6704 247a0000 nrtn blank 
-6705 70450807 jam hci_uart_tx_gpio_num ,mem_hci_uart_tx_gpio 
-6706 20600000 rtn 
-
-hci_init_uart_default_config_rx:
-6707 6fe0c509 fetch 1 ,mem_hci_uart_rx_gpio 
-6708 247a0000 nrtn blank 
-6709 70450906 jam hci_uart_rx_gpio_num ,mem_hci_uart_rx_gpio 
-670a 20600000 rtn 
-
-hci_init_uart_default_config_rts:
-670b 6fe0c50a fetch 1 ,mem_hci_uart_rts_gpio 
-670c 247a0000 nrtn blank 
-670d 70450a09 jam hci_uart_rts_gpio_num ,mem_hci_uart_rts_gpio 
-670e 20600000 rtn 
-
-hci_init_uart_default_config_cts:
-670f 6fe0c50b fetch 1 ,mem_hci_uart_cts_gpio 
-6710 247a0000 nrtn blank 
-6711 70450b0a jam hci_uart_cts_gpio_num ,mem_hci_uart_cts_gpio 
-6712 20600000 rtn 
-
-hci_init_uart_config:
-6713 58000c00 setarg mem_h5rx_buf 
-6714 67e1064e store 2 ,mem_pdatatemp 
-6715 58000eff setarg mem_h5rx_buf_end 
-6716 e7e10005 istore 2 ,contw 
-6717 58000f00 setarg mem_h5tx_buf 
-6718 e7e10005 istore 2 ,contw 
-6719 58000fff setarg mem_h5tx_buf_end 
-671a e7e10005 istore 2 ,contw 
-671b 6fe4064e fetch 8 ,mem_pdatatemp 
-671c 20406d5b call uarta_init_dma_mem 
-671d 20406d75 call uart_clock_select_main_freq_crystal 
-671e d841c200 arg 115200 ,temp 
-671f 20406d68 call uarta_calc_baud_rate_config 
-6720 6fe0c508 fetch 1 ,mem_hci_uart_tx_gpio 
-6721 d8400008 arg gpcfg_uart_txd ,temp 
-6722 20406f1d call gpio_config_function_int 
-6723 6fe0c509 fetch 1 ,mem_hci_uart_rx_gpio 
-6724 d8400049 arg gpcfg_uart_rxd | gpcfg_pullup ,temp 
-6725 20406f1d call gpio_config_function_int 
-6726 6fe0c50a fetch 1 ,mem_hci_uart_rts_gpio 
-6727 d840000a arg gpcfg_uart_rts ,temp 
-6728 20406f1d call gpio_config_function_int 
-6729 6fe0c50b fetch 1 ,mem_hci_uart_cts_gpio 
-672a d840000b arg gpcfg_uart_cts ,temp 
-672b 20406f1d call gpio_config_function_int 
-672c d8400081 arg fun_uart_control_enable | fun_uart_control_setting_rate_baud ,temp 
-672d 60588060 storet 1 ,core_uart_ctrl 
-672e 20207d78 branch clean_xmem 
-
-hci_init_pwm_default_config:
-672f 6fe0c50c fetch 1 ,mem_hci_pwm_12mhz_gpio 
-6730 247a0000 nrtn blank 
-6731 70450c0c jam hci_pmw_12mhz_gpio_num ,mem_hci_pwm_12mhz_gpio 
-6732 20600000 rtn 
-
-hci_init_pwm:
-6733 6fe0c50c fetch 1 ,mem_hci_pwm_12mhz_gpio 
-6734 d8400010 arg gpcfg_pwm_out0 ,temp 
-6735 20406f1d call gpio_config_function_int 
-6736 da200040 arg 0x40 ,rega 
-6737 204070b9 call pwm_init 
-6738 da200000 arg 0 ,rega 
-6739 da400000 arg 0 ,regb 
-673a 58000000 setarg 0 
-673b 204070de call pwm_duty_cycle_set 
-673c d8e00000 arg 0 ,queue 
-673d 20207106 branch pwm_set_select 
-
-hci_process_check_uart_rx:
-673e 6ff10112 fetch 2 ,core_uart_rxitems 
-673f 1fe0a3fc add pdata ,-4 ,rega 
-6740 24610000 nrtn positive 
-6741 20406d89 call uarta_prepare_rx 
-6742 efe08003 ifetch 1 ,contru 
-6743 c000e746 beq hci_h4_type_cmd ,hci_parse_packet_cmd 
-6744 20407c97 call delay_10ms 
-6745 20206d91 branch uarta_clear_current_rx 
-
-hci_parse_packet_cmd:
-6746 efe10003 ifetch 2 ,contru 
-6747 67e106ee store 2 ,mem_hci_opcode 
-6748 d84003ff arg 0x3ff ,temp 
-6749 98410400 iand temp ,temp 
-674a 604906e7 storet 2 ,mem_hci_opcode_ocf 
-674b 1feb7e00 rshift2 pdata ,pdata 
-674c 1fecfe00 rshift8 pdata ,pdata 
-674d 67e086e9 store 1 ,mem_hci_opcode_ogf 
-674e efe08003 ifetch 1 ,contru 
-674f 1fe0ffff pincrease -1 
-6750 9a267c00 isub rega ,null 
-6751 20610000 rtn positive 
-6752 20406754 call hci_parse_complete_packet 
-6753 202067af branch hci_drop_current_packet 
-
-hci_parse_complete_packet:
-6754 6fe086e9 fetch 1 ,mem_hci_opcode_ogf 
-6755 c01fe757 beq hci_ogf_vendor_specific_debug ,hci_parse_packet_cmd_ogf_vendorspecific_debug 
-6756 2020679b branch hci_send_event_command_complete_error_command_nuknown 
-
-hci_parse_packet_cmd_ogf_vendorspecific_debug:
-6757 44e9401a bpatch patch1a_2 ,mem_patch1a 
-6758 6fe086e7 fetch 1 ,mem_hci_opcode_ocf 
-6759 c000679a beq hci_vendor_cmd_reset ,hci_normal_reply 
-675a c000e762 beq hci_vendor_cmd_chipid ,phci_grp_vendor_chipid 
-675b c0016767 beq hci_vendor_cmd_baud ,phci_grp_vendor_baud 
-675c c001e775 beq hci_vendor_cmd_patch ,phci_grp_vendor_patch 
-675d c002677f beq hci_vendor_cmd_patch_done ,phci_grp_vendor_done 
-675e c002e79a beq hci_vendor_cmd_echo ,hci_normal_reply 
-675f c0086790 beq hci_vendor_cmd_mem ,phci_grp_vendor_mem 
-6760 c00a6796 beq hci_vendor_cmd_set_flow_control ,phci_grp_vendor_flow_control 
-6761 2020679a branch hci_normal_reply 
-
-phci_grp_vendor_chipid:
-6762 7006f000 jam command_succeeded ,mem_hci_command_complete_return_parameter 
-6763 6ff10000 fetch 2 ,core_chipid 
-6764 67e106f1 store 2 ,mem_hci_command_complete_return_parameter_chip_id 
-6765 df200003 arg 3 ,loopcnt 
-6766 202067a2 branch hci_send_event_command_complete 
-
-phci_grp_vendor_baud:
-6767 efe10003 ifetch 2 ,contu 
-6768 67f10052 store 2 ,core_uart_baud 
-6769 20600000 rtn 
-
-phci_grp_vendor_patch_common:
-676a efe08003 ifetch 1 ,contu 
-676b 1fe20400 copy pdata ,temp 
-676c 67f08024 store 1 ,core_ucode_low 
-676d efe08003 ifetch 1 ,contu 
-676e 98408400 iadd temp ,temp 
-676f 79207e07 set1 7 ,pdata 
-6770 67f08023 store 1 ,core_ucode_ctrl 
-6771 efe08003 ifetch 1 ,contu 
-6772 98408400 iadd temp ,temp 
-6773 1fe27200 copy pdata ,loopcnt 
-6774 20600000 rtn 
-
-phci_grp_vendor_patch:
-6775 2040676a call phci_grp_vendor_patch_common 
-
-phci_grp_vendor_patch_loop:
-6776 efe08003 ifetch 1 ,contu 
-6777 67f08025 store 1 ,core_ucode_data 
-6778 98408400 iadd temp ,temp 
-6779 c2006776 loop phci_grp_vendor_patch_loop 
-
-phci_grp_vendor_patch_check_sum:
-677a 184104ff and temp ,0xff ,temp 
-677b efe08003 ifetch 1 ,contu 
-677c 98467c00 isub temp ,null 
-677d 2422e78e nbranch phci_grp_vendor_patch_bad ,zero 
-677e 2020679a branch hci_normal_reply 
-
-phci_grp_vendor_done:
-677f df200020 arg 0x20 ,loopcnt 
-6780 d8a04000 arg mem_patch00 ,contw 
-6781 d8400000 arg 0 ,temp 
-
-phci_grp_vendor_done_loop:
-6782 efe08003 ifetch 1 ,contu 
-6783 e7e08005 istore 1 ,contw 
-6784 98408400 iadd temp ,temp 
-6785 c2006782 loop phci_grp_vendor_done_loop 
-6786 184104ff and temp ,0xff ,temp 
-6787 efe08003 ifetch 1 ,contu 
-6788 98467c00 isub temp ,null 
-6789 2422e78e nbranch phci_grp_vendor_patch_bad ,zero 
-678a 70802300 jam 0 ,core_ucode_ctrl 
-678b 2040679a call hci_normal_reply 
-678c 20406da1 call wait_uarttx 
-678d 20202001 branch soft_reset 
-
-phci_grp_vendor_patch_bad:
-678e 70802300 jam 0 ,core_ucode_ctrl 
-678f 2020679b branch hci_send_event_command_complete_error_command_nuknown 
-
-phci_grp_vendor_mem:
-6790 efe08003 ifetch 1 ,contu 
-6791 1fe27200 copy pdata ,loopcnt 
-6792 efe10003 ifetch 2 ,contu 
-6793 1fe20a00 copy pdata ,contw 
-6794 20406dd0 call uart_copy_rx_bytes 
-6795 2020679a branch hci_normal_reply 
-
-phci_grp_vendor_flow_control:
-6796 6ff08060 fetch 1 ,core_uart_ctrl 
-6797 79207e04 set1 bit_uart_control_flow_control ,pdata 
-6798 67f08060 store 1 ,core_uart_ctrl 
-6799 2020679a branch hci_normal_reply 
-
-hci_normal_reply:
-679a 2020679f branch hci_send_event_command_complete_without_payload 
-
-hci_send_event_command_complete_error_command_nuknown:
-679b 7006f001 jam command_unknown ,mem_hci_command_complete_return_parameter 
-679c 202067a0 branch hci_send_event_command_complete_without_payload + 1 
-
-hci_send_event_command_complete_error_command_disallowed:
-679d 7006f00c jam command_disallowed ,mem_hci_command_complete_return_parameter 
-679e 202067a0 branch hci_send_event_command_complete_without_payload + 1 
-
-hci_send_event_command_complete_without_payload:
-679f 7006f000 jam command_succeeded ,mem_hci_command_complete_return_parameter 
-67a0 df200001 arg 1 ,loopcnt 
-67a1 202067a2 branch hci_send_event_command_complete 
-
-hci_send_event_command_complete:
-67a2 7006eb0e jam hci_event_command_complete ,mem_hci_event_head_event_code 
-67a3 1f20fe03 add loopcnt ,3 ,pdata 
-67a4 67e086ec store 1 ,mem_hci_event_para_total_length 
-67a5 204067ab call hci_prepare_send_event 
-67a6 6fe186ed fetch 3 ,mem_hci_command_complete_num_hci_command_packet 
-67a7 e7e18003 istore 3 ,contwu 
-67a8 d8c006f0 arg mem_hci_command_complete_return_parameter ,contr 
-67a9 20406db7 call uart_copy_tx_bytes 
-67aa 20206d97 branch uarta_send_register_pop 
-
-hci_prepare_send_event:
-67ab 20406d95 call uarta_prepare_tx_register_push 
-67ac 6fe186ea fetch 3 ,mem_hci_event_head_type 
-67ad e7e18003 istore 3 ,contwu 
-67ae 20600000 rtn 
-
-hci_drop_current_packet:
-67af 20406d89 call uarta_prepare_rx 
-67b0 18608603 increase 3 ,contru 
-67b1 efe08003 ifetch 1 ,contru 
-67b2 98608600 iadd contru ,contru 
-67b3 20206d8f branch uarta_rxdone 
-
-cmd_exit:
-67b4 70411400 jam 0 ,mem_hci_cmd 
-67b5 20600000 rtn 
-
-hid_device_load_flash_info_check:
-67b6 20406c16 call spid_init_flash 
-67b7 2040565a call mouse_spid_flash_release_form_powerdown 
-67b8 20405654 call mouse_information_flash_parameters 
-67b9 20406c43 call spid_read_flash 
-67ba 20205661 branch mouse_spid_flash_powerdown 
-
-hid_device_store_flash_device_info:
-67bb 20406c16 call spid_init_flash 
-67bc 2040565a call mouse_spid_flash_release_form_powerdown 
-67bd 2040566f call mouse_flash_erase_sector 
-67be 20405654 call mouse_information_flash_parameters 
-67bf 20405672 call mouse_spid_write_flash 
-67c0 20205661 branch mouse_spid_flash_powerdown 
-
-hid_device_before_store_reconn_info:
-67c1 da204679 arg mem_device1_type ,rega 
-67c2 6fe0c678 fetch 1 ,mem_device_flag 
-67c3 1fe0ffff increase -1 ,pdata 
-67c4 1feffe0d mul32 pdata ,13 ,pdata 
-67c5 9a20a200 iadd rega ,rega 
-67c6 6fe08032 fetch 1 ,mem_record_bt_mode 
-67c7 e7e08011 istore 1 ,rega 
-67c8 c01a67ca beq rec_4_mode ,hid_device_store_le_device 
-67c9 20600000 rtn 
-
-hid_device_store_le_device:
-67ca 6fe30178 fetch 6 ,mem_le_plap 
-67cb e7e30005 istore 6 ,contw 
-67cc 6fe342dd fetch 6 ,mem_le_lap 
-67cd e7e30005 istore 6 ,contw 
-67ce 20600000 rtn 
-
-hid_device_load_device_info:
-67cf 44e9c01a bpatch patch1a_3 ,mem_patch1a 
-67d0 204067d5 call hid_device_select_reconn_device 
-67d1 6fe246a3 fetch 4 ,mem_device_24g_addr 
-67d2 67e245ff store 4 ,mem_24g_receiver_addr 
-67d3 67e245a6 store 4 ,mem_24g_addr 
-67d4 20600000 rtn 
-
-hid_device_select_reconn_device:
-67d5 44ea401a bpatch patch1a_4 ,mem_patch1a 
-67d6 da204679 arg mem_device1_type ,rega 
-67d7 6fe0c678 fetch 1 ,mem_device_flag 
-67d8 c1000000 rtneq mode_24g_device 
-67d9 1fe0ffff increase -1 ,pdata 
-67da 1feffe0d mul32 pdata ,13 ,pdata 
-67db 9a20a200 iadd rega ,rega 
-67dc efe08011 ifetch 1 ,rega 
-67dd 67e0c3fc store 1 ,mem_xrecord_mode 
-67de c19a0000 rtnne rec_4_mode 
-
-hid_device_load_le_device:
-67df efe30006 ifetch 6 ,contr 
-67e0 67e34116 store 6 ,mem_hci_plap 
-67e1 efe30006 ifetch 6 ,contr 
-67e2 67e342dd store 6 ,mem_le_lap 
-67e3 20600000 rtn 
-
-hid_device_check_device_addr:
-67e4 6fe08032 fetch 1 ,mem_record_bt_mode 
-67e5 c19a0000 rtnne rec_4_mode 
-
-hid_device_check_le_device_addr:
-67e6 67e0c884 store 1 ,mem_device_addr_temp 
-67e7 6fe30178 fetch 6 ,mem_le_plap 
-
-hid_device_check_bt_device_addr_common:
-67e8 67e34885 store 6 ,mem_device_addr_temp + 1 
-67e9 6fe3c884 fetch 7 ,mem_device_addr_temp 
-67ea d8c04679 arg mem_device1_type ,contr 
-67eb df200003 arg 3 ,loopcnt 
-
-hid_device_check_device_addr_end:
-67ec e8438006 ifetcht 7 ,contr 
-67ed 98467c00 isub temp ,null 
-67ee 2022e7f2 branch hid_device_clean_addr ,zero 
-67ef 18c08c07 increase 7 ,contr 
-67f0 c20067ec loop hid_device_check_device_addr_end 
-67f1 20600000 rtn 
-
-hid_device_clean_addr:
-67f2 18c08dfa increase -6 ,contr 
-67f3 18c20a00 copy contr ,contw 
-67f4 684b4885 fetcht 6 ,mem_device_addr_temp + 1 
-67f5 18408403 increase 3 ,temp 
-67f6 e0430005 istoret 6 ,contw 
-67f7 20600000 rtn 
-
-hid_device_ble_init_address:
-67f8 6fe342dd fetch 6 ,mem_le_lap 
-67f9 67e34680 store 6 ,mem_device1_locall_addr 
-67fa 1fe0ff00 add pdata ,0x0100 ,pdata 
-67fb 67e3468d store 6 ,mem_device2_locall_addr 
-67fc 1fe0ff00 add pdata ,0x0100 ,pdata 
-67fd 67e3469a store 6 ,mem_device3_locall_addr 
-67fe 20600000 rtn 
-
-hid_device_default_parm_init:
-67ff 704503ff jam 0xff ,mem_ui_button_gpio 
-6800 70450500 jam 0 ,mem_ui_led_struct_num 
-6801 6fe14651 fetch 2 ,mem_device_24g_pair_timeout_init 
-6802 67e145ed store 2 ,mem_24g_pair_timeout_init 
-6803 6fe0c654 fetch 1 ,mem_device_24g_reconn_timeout_init 
-6804 67e145f3 store 2 ,mem_24g_reconn_timeout_init 
-6805 6fe2c657 fetch 5 ,mem_rssi_dis_min_24g_init 
-6806 67e2c63f store 5 ,mem_rssi_dis_min_24g 
-6807 6fe0c655 fetch 1 ,mem_device_24g_pair_tx_power 
-6808 67e0c5e8 store 1 ,mem_24g_pair_tx_power 
-6809 6fe0c5d0 fetch 1 ,mem_24g_ch_map_update 
-680a 245a324a ncall g24_chamap_param_update ,blank 
-680b 20600000 rtn 
-
-hid_device_param_common_init:
-680c 7040c103 jam 3 ,mem_lpm_mult_timeout 
-680d 7040a608 jam 8 ,mem_lpm_overhead 
-680e 70473400 jam pb_button_state_up ,mem_select_device_button_statue 
-680f 70473500 jam commbination_key_state_up ,mem_commbination_key_statue 
-6810 58000200 setarg 0x0200 
-6811 67e140a4 store 2 ,mem_lpm_interval 
-6812 7042e317 jam 0x17 ,mem_le_local_mtu 
-6813 7042e517 jam 0x17 ,mem_le_remote_mtu 
-6814 6fe0c678 fetch 1 ,mem_device_flag 
-6815 67e0c717 store 1 ,mem_device_flag_temp 
-6816 6fe1c2e0 fetch 3 ,mem_le_lap + 3 
-6817 67e1c756 store 3 ,mem_device_le_lap_temp 
-6818 58004782 setarg mem_le_tx_buffer0_omemalloc 
-6819 67e14343 store 2 ,mem_ble_l2cap_tx_buff0_ptr 
-681a 58000020 setarg mouse_ble_l2cap_txbuff_size 
-681b 67e14345 store 2 ,mem_ble_l2cap_tx_buff_size_ptr 
-681c 20205930 branch device_store_normal_tx_power 
-
-hid_device_compare_addr_store:
-681d 6049c6f8 storet 3 ,mem_device_compare_addr 
-681e 6049c6fb storet 3 ,mem_device_compare_addr + 3 
-681f 20600000 rtn 
-
-hid_device_enable_lpm:
-6820 70409401 jam 1 ,mem_lpm_mode 
-6821 20600000 rtn 
-
-hid_device_disable_lpm:
-6822 70409400 jam 0 ,mem_lpm_mode 
-6823 20600000 rtn 
-
-hid_device_le_send_empty_packet:
-6824 70472c00 jam 0 ,mem_customer_data_trigger 
-
-hid_device_le_send_package_data:
-6825 44eac01a bpatch patch1a_5 ,mem_patch1a 
-6826 6fe0c72c fetch 1 ,mem_customer_data_trigger 
-6827 205a684b call hid_device_clear_key_data ,blank 
-
-hid_device_le_fill_package_data:
-6828 6fe0c721 fetch 1 ,mem_customer_key_press 
-6829 c000682e beq hid_reportid_key_standard ,hid_device_le_fill_standard_key_data 
-682a c002e833 beq hid_reportid_bit_consumer_key ,hid_device_le_fill_bit_consumer_key_data 
-682b c001e836 beq hid_reportid_consumer_key ,hid_device_le_fill_multimedia_key_data 
-682c c0016839 beq hid_reportid_system_ctrl ,hid_device_le_fill_systemctrl_key_data 
-682d c0044885 beq hid_reportid_n_key_rollover ,keyboard_le_fill_n_key_rollover_key_data 
-
-hid_device_le_fill_standard_key_data:
-682e 6fe0c3cf fetch 1 ,mem_device_option 
-682f c007c88e beq dvc_op_keyboard ,keyboard_le_fill_standard_key_data 
-
-mouse_le_fill_standard_key_data:
-6830 70477308 jam 8 ,mem_le_data_len 
-
-keyoard_le_fill_standard_key_data_send:
-6831 68494774 fetcht 2 ,mem_le_keyboard_handle 
-6832 20206843 branch hid_device_le_fill_data 
-
-hid_device_le_fill_bit_consumer_key_data:
-6833 70477304 jam 4 ,mem_le_data_len 
-6834 68494776 fetcht 2 ,mem_le_multimedia_handle 
-6835 20206843 branch hid_device_le_fill_data 
-
-hid_device_le_fill_multimedia_key_data:
-6836 70477303 jam 3 ,mem_le_data_len 
-6837 68494776 fetcht 2 ,mem_le_multimedia_handle 
-6838 20206843 branch hid_device_le_fill_data 
-
-hid_device_le_fill_systemctrl_key_data:
-6839 70477302 jam 2 ,mem_le_data_len 
-683a 68494778 fetcht 2 ,mem_le_systemctrl_handle 
-683b 20206843 branch hid_device_le_fill_data 
-
-hid_device_send_package_data_check:
-683c 6fe0c72b fetch 1 ,mem_customer_key 
-683d c000e825 beq 1 ,hid_device_le_send_package_data 
-
-hid_device_le_send_mouse_data:
-683e 70477307 jam 7 ,mem_le_data_len 
-683f 6fe3c65c fetch 7 ,mem_mouse_key 
-6840 67e3c722 store 7 ,mem_customer_key_press + 1 
-6841 6849439f fetcht 2 ,mem_le_notify_handle 
-6842 20206843 branch hid_device_le_fill_data 
-
-hid_device_le_fill_data:
-6843 44eb401a bpatch patch1a_6 ,mem_patch1a 
-6844 6fe0c773 fetch 1 ,mem_le_data_len 
-6845 1fe22200 copy pdata ,rega 
-6846 20402dcc call le_att_malloc_tx_notify 
-6847 6848c773 fetcht 1 ,mem_le_data_len 
-6848 18427200 copy temp ,loopcnt 
-6849 d8c04722 arg mem_customer_key_press + 1 ,contr 
-684a 20207cdc branch memcpy 
-
-hid_device_clear_key_data:
-684b df200009 arg 9 ,loopcnt 
-684c d8a04722 arg mem_customer_key_press + 1 ,contw 
-684d 20207ca3 branch clear_mem 
-
-hid_device_copy_key_data:
-684e df20000a arg 10 ,loopcnt 
-684f d8c049fd arg mem_customer_key_press_init ,contr 
-6850 d8a04721 arg mem_customer_key_press ,contw 
-6851 20207cdc branch memcpy 
-
-hid_device_24g_keyboard_package_data_set:
-6852 6fe0c72c fetch 1 ,mem_customer_data_trigger 
-6853 205a684b call hid_device_clear_key_data ,blank 
-6854 da404721 arg mem_customer_key_press ,regb 
-6855 20600000 rtn 
-
-hid_device_push_mouse_data_to_usb:
-6856 58000001 setarg ms_report_id 
-6857 67e088f1 store 1 ,mem_usb_mouse_data 
-6858 6fe3c65c fetch 7 ,mem_mouse_key 
-6859 e7e38005 istore 7 ,contw 
-685a 20203d52 branch dongle_usb_tx_ms_data 
-
-hid_device_push_keyboard_data_to_usb:
-685b 6fe0c72c fetch 1 ,mem_customer_data_trigger 
-685c 205a684b call hid_device_clear_key_data ,blank 
-
-hid_device_push_keyboard_package_data_to_usb:
-685d 44b5c00d bpatch patch0d_3 ,mem_patch0d 
-685e 6fe0c721 fetch 1 ,mem_customer_key_press 
-685f c0006864 beq hid_reportid_key_standard ,hid_device_push_standard_keyboard_data_to_usb 
-6860 c0016869 beq kb_system_conctrl_report_id ,hid_device_push_systemctrl_key_data_to_usb 
-6861 c001e86f beq kb_multikey_report_id ,hid_device_push_multimedia_key_data_to_usb 
-6862 c002e875 beq hid_reportid_bit_consumer_key ,hid_device_push_bit_consumer_key_data_to_usb 
-6863 c0044a15 beq hid_reportid_n_key_rollover ,keyboard_push_n_key_rollover_key_data_to_usb 
-
-hid_device_push_standard_keyboard_data_to_usb:
-6864 20403d61 call dongle_usb_tx_kb_data 
-6865 d8c04722 arg mem_customer_key_press + 1 ,contr 
-6866 d8a00901 arg mem_usb_kb_data ,contw 
-6867 df200009 arg 9 ,loopcnt 
-6868 20207cdc branch memcpy 
-
-hid_device_push_systemctrl_key_data_to_usb:
-6869 7008ea22 jam usb_ep2_systemkey ,mem_usb_ep2_data 
-686a 58000002 setarg kb_system_conctrl_report_id 
-686b 67e08929 store 1 ,mem_usb_kb_system 
-686c 6fe0c722 fetch 1 ,mem_customer_key_press + 1 
-686d e7e08005 istore 1 ,contw 
-686e 20203d53 branch dongle_usb_tx_enable_ep2 
-
-hid_device_push_multimedia_key_data_to_usb:
-686f 7008ea21 jam usb_ep2_multikey ,mem_usb_ep2_data 
-6870 58000003 setarg kb_multikey_report_id 
-6871 67e08921 store 1 ,mem_usb_kb_multikey 
-6872 6fe1c722 fetch 3 ,mem_customer_key_press + 1 
-6873 e7e18005 istore 3 ,contw 
-6874 20203d53 branch dongle_usb_tx_enable_ep2 
-
-hid_device_push_bit_consumer_key_data_to_usb:
-6875 7008ea23 jam usb_ep2_bit_consumer ,mem_usb_ep2_data 
-6876 58000005 setarg kb_bit_consumer_report_id 
-6877 20206871 branch hid_device_push_multimedia_key_data_to_usb + 2 
-
-hid_device_le_parse_att_write_request:
-6878 6fe0c74f fetch 1 ,mem_device_fast_conn_flag 
-6879 c07fad8a beq 0xff ,le_send_att_write_response_check_auth 
-687a 6fe0c74f fetch 1 ,mem_device_fast_conn_flag 
-687b 203a2d8a branch le_send_att_write_response_check_auth ,blank 
-687c 6fe0c882 fetch 1 ,mem_le_connect_status_flag 
-687d c280ad8a bbit1 ll_start_enc_flag ,le_send_att_write_response_check_auth 
-687e 5800001a setarg 0x001a 
-687f 6849439c fetcht 2 ,mem_le_att_handle 
-6880 98467c00 isub temp ,null 
-6881 2422ad8a nbranch le_send_att_write_response_check_auth ,zero 
-6882 20202d24 branch le_send_att_read_response_error_insufficient_auth 
-
-hid_device_24g_search_dongle_init:
-6883 58000000 setarg 0 
-6884 67e1c70a store 3 ,mem_device_search_dongle_action 
-6885 20600000 rtn 
-
-mouse_24g_search_dongle:
-6886 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
-6887 c4068000 rtnbit0 mouse_enable_24g_search_dongle 
-
-hid_device_24g_search_dongle:
-6888 6fe0c73d fetch 1 ,mem_mouse_long_mult_flag 
-6889 207a0000 rtn blank 
-688a 6fe0c619 fetch 1 ,mem_24g_abort_pac 
-688b 207a0000 rtn blank 
-688c 6fe0c707 fetch 1 ,mem_device_search_dongle_interval 
-688d 1fe0fe01 increase 1 ,pdata 
-688e 1fe17e03 and_into 3 ,pdata 
-688f 67e0c707 store 1 ,mem_device_search_dongle_interval 
-6890 247a0000 nrtn blank 
-6891 70470800 jam 0 ,mem_device_search_dongle_ch 
-
-hid_device_24g_search_dongle_loop:
-6892 44ebc01a bpatch patch1a_7 ,mem_patch1a 
-6893 6fe0c708 fetch 1 ,mem_device_search_dongle_ch 
-6894 1fe0fe01 increase 1 ,pdata 
-6895 67e0c708 store 1 ,mem_device_search_dongle_ch 
-6896 1fe67c08 sub pdata ,g24_ch_number ,null 
-6897 2421689e nbranch hid_device_24g_search_dongle_loop_end ,positive 
-6898 20403557 call g24_reconn_data_prep 
-6899 2040362a call g24_transmit_receive_ack 
-689a 242c68a4 nbranch hid_device_24g_search_dongle_loop_retry ,sync 
-689b 2437e8a4 nbranch hid_device_24g_search_dongle_loop_retry ,user3 
-689c 204068bc call hid_device_g24_ackpayload_parse 
-689d 204068b1 call hid_device_24g_search_dongle_success 
-
-hid_device_24g_search_dongle_loop_end:
-689e 20403553 call g24_txbuf_clear 
-689f 6fe0c709 fetch 1 ,mem_device_search_dongle_count 
-68a0 1fe0fe01 increase 1 ,pdata 
-68a1 67e0c709 store 1 ,mem_device_search_dongle_count 
-68a2 c00868a6 beq g24_ch_poll_count ,hid_device_24g_search_dongle_check 
-68a3 20600000 rtn 
-
-hid_device_24g_search_dongle_loop_retry:
-68a4 20403201 call g24_ch 
-68a5 20206892 branch hid_device_24g_search_dongle_loop 
-
-hid_device_24g_search_dongle_check:
-68a6 44ec401b bpatch patch1b_0 ,mem_patch1b 
-68a7 70470900 jam 0 ,mem_device_search_dongle_count 
-68a8 6fe0c70a fetch 1 ,mem_device_search_dongle_action 
-68a9 c3800000 rtnbit1 g24_disconn_state 
-68aa 79207e00 set1 g24_disconn_state ,pdata 
-68ab 67e0c70a store 1 ,mem_device_search_dongle_action 
-68ac 6fe1471c fetch 2 ,mem_device_24g_search_dongle_time_init 
-68ad 67e14741 store 2 ,mem_device_no_data_timer 
-68ae 6fe0c3cf fetch 1 ,mem_device_option 
-68af c0045303 beq dvc_op_mouse ,mouse_sensor_powerdown 
-68b0 20600000 rtn 
-
-hid_device_24g_search_dongle_success:
-68b1 6fe0c619 fetch 1 ,mem_24g_abort_pac 
-68b2 203a6883 branch hid_device_24g_search_dongle_init ,blank 
-68b3 70470900 jam 0 ,mem_device_search_dongle_count 
-68b4 6fe0c70a fetch 1 ,mem_device_search_dongle_action 
-68b5 c4000000 rtnbit0 g24_disconn_state 
-68b6 793ffe00 set0 g24_disconn_state ,pdata 
-68b7 67e0c70a store 1 ,mem_device_search_dongle_action 
-68b8 20405535 call mouse_no_data_timer_init 
-68b9 6fe0c3cf fetch 1 ,mem_device_option 
-68ba c0045263 beq dvc_op_mouse ,mouse_init_sensor_wakeup 
-68bb 20600000 rtn 
-
-hid_device_g24_ackpayload_parse:
-68bc 20403647 call g24_ackpayload_parse 
-68bd 6fe0c50f fetch 1 ,mem_24g_rxbuf + 1 
-68be 2fe1f008 compare 0x08 ,pdata ,0xf8 
-68bf 24608000 nrtn true 
-68c0 6fe0c510 fetch 1 ,mem_24g_rxbuf + 2 
-68c1 c07fd90a beq 0xff ,mouse_24g_hibernate_set 
-68c2 67e0c70d store 1 ,mem_keyboard_led_status 
-68c3 20600000 rtn 
-
-hid_device_before_lpm_set:
-68c4 6fe0c678 fetch 1 ,mem_device_flag 
-68c5 c1800000 rtnne mode_24g_device 
-68c6 6fe0c5e1 fetch 1 ,mem_24g_disable_fec1 
-68c7 207a0000 rtn blank 
-
-hid_device_peripheral_clock_off:
-68c8 70804202 jam 2 ,core_clksel 
-68c9 708130f8 jam 0xf8 ,core_lpm_ctrl 
-68ca 20600000 rtn 
-
-hid_device_cb_fuction:
-68cb 58004f1f setarg mouse_spi_write_flash_cb 
-68cc 67e143f0 store 2 ,mem_cb_spi_flash_write_complate 
-68cd 58005aee setarg mouse_le_transmit 
-68ce 67e143ea store 2 ,mem_cb_ble_transmit 
-68cf 58005af0 setarg mouse_set_lpm_mult 
-68d0 67e143ee store 2 ,mem_cb_bt_set_mult 
-68d1 20600000 rtn 
-
-l2cap_init:
-68d2 2035e8d7 branch l2cap_init_wake ,wake 
-68d3 58004467 setarg mem_l2cap_xmem_end 
-68d4 d8a04458 arg mem_l2cap_xmem_start ,contw 
-68d5 98a67200 isub contw ,loopcnt 
-68d6 20407ca3 call clear_mem 
-
-l2cap_init_wake:
-68d7 20600000 rtn 
-
-check_l2cap_map:
-68d8 d8e00000 arg 0 ,queue 
-68d9 da400000 arg 0 ,regb 
-
-check_l2cap_map_loop:
-68da 18e67c07 sub queue ,7 ,null 
-68db 24610000 nrtn positive 
-68dc aa2fffff qisolate1 rega 
-68dd 2020e8df branch check_l2cap_map_used ,true 
-68de 202068e3 branch check_l2cap_map_used2 
-
-check_l2cap_map_used:
-68df 18427e00 copy temp ,pdata 
-68e0 203a68e3 branch check_l2cap_map_used2 ,blank 
-68e1 f9202400 qset1 regb 
-68e2 184085ff increase -1 ,temp 
-
-check_l2cap_map_used2:
-68e3 18e08e01 increase 1 ,queue 
-68e4 202068da branch check_l2cap_map_loop 
-
-ble_l2cap_malloc:
-68e5 6b014343 fetchr regd ,2 ,mem_ble_l2cap_tx_buff0_ptr 
-68e6 6d614345 fetchr rege ,2 ,mem_ble_l2cap_tx_buff_size_ptr 
-68e7 20407dbe call disable_user 
-68e8 202068e9 branch host_l2cap_malloc 
-
-host_l2cap_malloc:
-68e9 44ed401b bpatch patch1b_2 ,mem_patch1b 
-68ea 20406935 call l2cap_malloc_is_fifo_full 
-68eb 243a233e nbranch assert ,blank 
-68ec 20406945 call l2cap_malloc_get_full_map 
-68ed df200008 arg 8 ,loopcnt 
-
-host_l2cap_malloc_loop:
-68ee 6848c458 fetcht 1 ,mem_used_map 
-68ef 1f260e08 sub loopcnt ,8 ,queue 
-68f0 a84fffff qisolate1 temp 
-68f1 2020e8f6 branch host_l2cap_malloc_next_buffer ,true 
-68f2 204068fd call host_l2cap_malloc_check_buffer_enough 
-68f3 242168f6 nbranch host_l2cap_malloc_next_buffer ,positive 
-68f4 20406913 call host_l2cap_malloc_into_fifo 
-68f5 202068fa branch host_l2cap_malloc_succ 
-
-host_l2cap_malloc_next_buffer:
-68f6 1d627e00 copy rege ,pdata 
-68f7 9b00b000 iadd regd ,regd 
-68f8 c20068ee loop host_l2cap_malloc_loop 
-68f9 2020233e branch assert 
-
-host_l2cap_malloc_succ:
-68fa 1b027e00 copy regd ,pdata 
-68fb 1b020a00 copy regd ,contw 
-68fc 20600000 rtn 
-
-host_l2cap_malloc_check_buffer_enough:
-68fd 44edc01b bpatch patch1b_3 ,mem_patch1b 
-68fe 1f260e08 sub loopcnt ,8 ,queue 
-68ff d8400000 arg 0 ,temp 
-6900 d9600000 arg 0 ,timeup 
-
-host_l2cap_malloc_check_buffer_enough_loop:
-6901 18e27e00 copy queue ,pdata 
-6902 c004690e beq 8 ,host_l2cap_malloc_check_buffer_enough_end 
-6903 6fe0c458 fetch 1 ,mem_used_map 
-6904 afefffff qisolate1 pdata 
-6905 2020e90e branch host_l2cap_malloc_check_buffer_enough_end ,true 
-6906 f9201600 qset1 timeup 
-6907 1d627e00 copy rege ,pdata 
-6908 98408400 iadd temp ,temp 
-6909 18e08e01 increase 1 ,queue 
-690a 1a227e00 copy rega ,pdata 
-690b 98467c00 isub temp ,null 
-690c 2022e90e branch host_l2cap_malloc_check_buffer_enough_end ,zero 
-690d 20216901 branch host_l2cap_malloc_check_buffer_enough_loop ,positive 
-
-host_l2cap_malloc_check_buffer_enough_end:
-690e 18427e00 copy temp ,pdata 
-690f 9a267c00 isub rega ,null 
-6910 24628000 nrtn zero 
-6911 f9201600 qset1 timeup 
-6912 20600000 rtn 
-
-host_l2cap_malloc_into_fifo:
-6913 44ee401b bpatch patch1b_4 ,mem_patch1b 
-6914 20406935 call l2cap_malloc_is_fifo_full 
-6915 243a233e nbranch assert ,blank 
-6916 2040693b call l2cap_malloc_is_fifo_empty 
-6917 203a691c branch host_l2cap_malloc_into_fifo_no_push ,blank 
-6918 6fe4c45c fetch 9 ,mem_tx_fifo1 
-6919 67e4c459 store 9 ,mem_tx_fifo0 
-691a 58000000 setarg 0 
-691b e7e18005 istore 3 ,contw 
-
-host_l2cap_malloc_into_fifo_no_push:
-691c 6160c462 storer timeup ,1 ,mem_tx_fifo3_map 
-691d 63014463 storer regd ,2 ,mem_tx_fifo3_ptr 
-691e 20600000 rtn 
-
-l2cap_malloc_fifo_out:
-691f 44eec01b bpatch patch1b_5 ,mem_patch1b 
-6920 2040693e call l2cap_malloc_fifo_get_first_ptr 
-6921 18c08c01 increase 1 ,contr 
-6922 efe10006 ifetch 2 ,contr 
-6923 20600000 rtn 
-
-l2cap_malloc_free:
-6924 44ef401b bpatch patch1b_6 ,mem_patch1b 
-6925 2040693e call l2cap_malloc_fifo_get_first_ptr 
-6926 18c20a00 copy contr ,contw 
-6927 18c20400 copy contr ,temp 
-6928 58000000 setarg 0 
-6929 e7e18005 istore 3 ,contw 
-692a 20600000 rtn 
-
-l2cap_malloc_discard:
-692b 44efc01b bpatch patch1b_7 ,mem_patch1b 
-692c 2040693b call l2cap_malloc_is_fifo_empty 
-692d 203a233e branch assert ,blank 
-692e 6fe1c45f fetch 3 ,mem_tx_fifo2 
-692f 67e1c462 store 3 ,mem_tx_fifo3 
-6930 6fe1c45c fetch 3 ,mem_tx_fifo1 
-6931 67e1c45f store 3 ,mem_tx_fifo2 
-6932 6fe1c459 fetch 3 ,mem_tx_fifo0 
-6933 67e1c45c store 3 ,mem_tx_fifo1 
-6934 20600000 rtn 
-
-l2cap_malloc_is_fifo_full:
-6935 44f0401c bpatch patch1c_0 ,mem_patch1c 
-6936 6fe1c459 fetch 3 ,mem_tx_fifo0 
-6937 20600000 rtn 
-
-l2cap_malloc_is_fifo_nearly_full:
-6938 44f0c01c bpatch patch1c_1 ,mem_patch1c 
-6939 6fe1c45c fetch 3 ,mem_tx_fifo1 
-693a 20600000 rtn 
-
-l2cap_malloc_is_fifo_empty:
-693b 44f1401c bpatch patch1c_2 ,mem_patch1c 
-693c 6fe1c462 fetch 3 ,mem_tx_fifo3 
-693d 20600000 rtn 
-
-l2cap_malloc_fifo_get_first_ptr:
-693e 2040693b call l2cap_malloc_is_fifo_empty 
-693f 203a6943 branch l2cap_malloc_fifo_get_first_ptr_empty ,blank 
-6940 d8c04459 arg mem_tx_fifo0 ,contr 
-
-l2cap_malloc_free_loop:
-6941 efe18006 ifetch 3 ,contr 
-6942 203a6941 branch l2cap_malloc_free_loop ,blank 
-
-l2cap_malloc_fifo_get_first_ptr_empty:
-6943 18c08dfd increase -3 ,contr 
-6944 20600000 rtn 
-
-l2cap_malloc_get_full_map:
-6945 44f1c01c bpatch patch1c_3 ,mem_patch1c 
-6946 df200004 arg 4 ,loopcnt 
-6947 d8c04459 arg mem_tx_fifo0_map ,contr 
-6948 d8400000 arg 0 ,temp 
-
-l2cap_malloc_get_full_map_loop:
-6949 efe18006 ifetch 3 ,contr 
-694a 1fe17eff and pdata ,0xff ,pdata 
-694b 98418400 ior temp ,temp 
-694c c2006949 loop l2cap_malloc_get_full_map_loop 
-694d 6048c458 storet 1 ,mem_used_map 
-694e 20600000 rtn 
-
-l2cap_lpm_get_wake_lock:
-694f d8e0000c arg wake_lock_l2cap_tx ,queue 
-6950 202024be branch lpm_get_wake_lock 
-
-l2cap_lpm_put_wake_lock:
-6951 d8e0000c arg wake_lock_l2cap_tx ,queue 
-6952 202024c2 branch lpm_put_wake_lock 
-
-twspi_reset:
-6953 44f2c01c bpatch patch1c_5 ,mem_patch1c 
-6954 18467cff sub temp ,ui_button_gpio_disable ,null 
-6955 20628000 rtn zero 
-6956 18427e00 copy temp ,pdata 
-6957 1fe17eff and_into 0xff ,pdata 
-6958 1fe67c0f sub pdata ,gpio_number + -1 ,null 
-6959 24216965 nbranch twspi_reset_ext ,positive 
-695a d8a08070 arg core_gpio_conf ,contw 
-
-twspi_reset_next:
-695b 98a08a00 iadd contw ,contw 
-695c 18a22200 copy contw ,rega 
-695d d840003e arg gpcfg_output_low ,temp 
-695e e0408005 istoret 1 ,contw 
-695f 20406968 call twspi_disable 
-6960 2000001e nop 30 
-6961 1a220a00 copy rega ,contw 
-6962 d840003f arg gpcfg_output_high ,temp 
-6963 e0408005 istoret 1 ,contw 
-6964 2020696c branch twspi_enable 
-
-twspi_reset_ext:
-6965 d8a080d4 arg core_gpio_conf_hi ,contw 
-6966 1fe0fff0 increase -16 ,pdata 
-6967 2020695b branch twspi_reset_next 
-
-twspi_disable:
-6968 6ff08081 fetch 1 ,core_spid_delay 
-6969 1fe17e7f and_into 0x7f ,pdata 
-696a 67f08081 store 1 ,core_spid_delay 
-696b 20600000 rtn 
-
-twspi_enable:
-696c 6ff08081 fetch 1 ,core_spid_delay 
-696d 1fe1fe80 or_into 0x80 ,pdata 
-696e 67f08081 store 1 ,core_spid_delay 
-696f 20600000 rtn 
-
-twspi_write:
-6970 20206bc6 branch spid_write_reg 
-
-twspi_read:
-6971 20206bcd branch spid_read_reg 
-
-aes_disable:
-6972 6ff0806f fetch 1 ,core_bist_ctrl 
-6973 793ffe07 set0 aes_en ,pdata 
-6974 67f0806f store 1 ,core_bist_ctrl 
-6975 20600000 rtn 
-
-read_function_aes:
-6976 2434697a nbranch read_function ,user 
-6977 6ff0806f fetch 1 ,core_bist_ctrl 
-6978 79207e07 set1 aes_en ,pdata 
-6979 67f0806f store 1 ,core_bist_ctrl 
-
-read_function:
-697a 18427c00 copy temp ,null 
-697b 2022e97d branch read_fuction_zero ,zero 
-697c 1a627a00 copy regc ,pc 
-
-read_fuction_zero:
-697d 2fcc0000 isolate0 0 ,null 
-697e 20206ae9 branch set_ucode_status 
-
-get_block_header:
-697f 18000404 force 4 ,temp 
-
-get_block_header0:
-6980 da2001c5 arg mem_ucode_buf ,rega 
-6981 20406972 call aes_disable 
-6982 2040697a call read_function 
-6983 da2055aa arg 0x55aa ,rega 
-6984 6fe101c5 fetch 2 ,mem_ucode_buf 
-6985 e8410006 ifetcht 2 ,contr 
-6986 9a267c00 isub rega ,null 
-6987 20600000 rtn 
-
-read_first_block:
-6988 2054699a call load_aes_reinit ,user 
-6989 d8400002 arg 2 ,temp 
-698a da2043cc arg mem_ucode_ptr ,rega 
-698b 2040697a call read_function 
-698c 6fe143cc fetch 2 ,mem_ucode_ptr 
-
-read_first_block_cont:
-698d 67e101be store 2 ,mem_addr_mi 
-698e 20546990 call get_iv ,user 
-698f 20600000 rtn 
-
-get_iv:
-6990 d8400010 arg 16 ,temp 
-6991 da2001cb arg mem_ucode_keybuf ,rega 
-6992 20406972 call aes_disable 
-6993 2040697a call read_function 
-
-set_iv:
-6994 d8c001cb arg mem_ucode_keybuf ,contr 
-6995 df200010 arg 16 ,loopcnt 
-6996 20407341 call aes_load_data 
-6997 204072c8 call aes_init 
-6998 2040735d call aes_clear_data 
-6999 202072c2 branch do_aes_cbc 
-
-load_aes_reinit:
-699a 70802300 jam 0x0 ,core_ucode_ctrl 
-699b 20406972 call aes_disable 
-699c 2020735d branch aes_clear_data 
-
-load_storage:
-699d 58000000 setarg 0 
-699e 67e10677 store 2 ,mem_queue 
-699f 7856fc00 disable match 
-69a0 2040697f call get_block_header 
-69a1 24628000 nrtn zero 
-69a2 7836fc00 enable match 
-69a3 58008000 setarg 0x8000 
-69a4 67f18022 store 3 ,core_ucode_hi 
-69a5 da208025 arg core_ucode_data ,rega 
-69a6 20406976 call read_function_aes 
-69a7 70802300 jam 0x0 ,core_ucode_ctrl 
-69a8 6fe081bb fetch 1 ,mem_ucode_status 
-69a9 c4000000 rtnbit0 0 
-
-load_storage_loop:
-69aa d8400006 arg 6 ,temp 
-69ab 20406980 call get_block_header0 
-69ac 2422e9ba nbranch load_data_checksum_compare ,zero 
-69ad ea210006 ifetchr rega ,2 ,contr 
-69ae 2040697a call read_function 
-69af 204069b1 call load_data_checksum_calc 
-69b0 202069aa branch load_storage_loop 
-
-load_data_checksum_calc:
-69b1 6fe10677 fetch 2 ,mem_queue 
-69b2 df200006 arg 6 ,loopcnt 
-69b3 d8c001c5 arg mem_ucode_buf ,contr 
-69b4 20407dd0 call cal_sum 
-69b5 6f2101c7 fetchr loopcnt ,2 ,mem_ucode_len 
-69b6 1a220c00 copy rega ,contr 
-69b7 20407dd0 call cal_sum 
-69b8 67e10677 store 2 ,mem_queue 
-69b9 20600000 rtn 
-
-load_data_checksum_compare:
-69ba 6fe081fa fetch 1 ,mem_otp_load_check_sum 
-69bb c02d69c8 beq 0x5a ,load_data_checksum_ok 
-69bc da20aa55 arg 0xaa55 ,rega 
-69bd 6fe101c5 fetch 2 ,mem_ucode_buf 
-69be 9a267c00 isub rega ,null 
-69bf 2422e9ca nbranch load_data_checksum_compare_fail ,zero 
-69c0 da2055aa arg 0x55aa ,rega 
-69c1 6fe101c7 fetch 2 ,mem_ucode_len 
-69c2 9a267c00 isub rega ,null 
-69c3 2422e9ca nbranch load_data_checksum_compare_fail ,zero 
-69c4 6fe101c9 fetch 2 ,mem_sched_addr 
-69c5 68490677 fetcht 2 ,mem_queue 
-69c6 98467c00 isub temp ,null 
-69c7 2422e9ca nbranch load_data_checksum_compare_fail ,zero 
-
-load_data_checksum_ok:
-69c8 7920220f set1 15 ,rega 
-69c9 2020697d branch read_fuction_zero 
-
-load_data_checksum_compare_fail:
-69ca 7001bb00 jam 0 ,mem_ucode_status 
-69cb 20600000 rtn 
-
-loadcode_lock_load_ucode:
-69cc 1fe17eff and pdata ,0xff ,pdata 
-69cd 1ff1fe00 rshift4 pdata ,pdata 
-69ce 67e0c3cf store 1 ,mem_device_option 
-69cf 20206a11 branch loadcode_load_key 
-
-loadcode_lock:
-69d0 6ff10143 fetch 2 ,core_ucode_flag 
-69d1 243a69cc nbranch loadcode_lock_load_ucode ,blank 
-69d2 20406a11 call loadcode_load_key 
-69d3 6fe143cf fetch 2 ,mem_device_option 
-69d4 207a0000 rtn blank 
-69d5 204069d7 call loadcode_set_lock 
-69d6 2020239c branch lpm_write_lock 
-
-loadcode_set_lock:
-69d7 6fe0c3cf fetch 1 ,mem_device_option 
-69d8 207a0000 rtn blank 
-69d9 1fe1040f and pdata ,0xf ,temp 
-69da 6048c3cf storet 1 ,mem_device_option 
-69db 1ff1fe00 rshift4 pdata ,pdata 
-69dc 9842fe00 ixor temp ,pdata 
-69dd c087ebb8 bne 0xf ,app_lpm_mpu_lock_24g_ble 
-69de 20206b7b branch app_lpm_lock_check 
-
-load_otp_hv_vsel:
-69df 6fe081f7 fetch 1 ,mem_otp_hv_sel 
-69e0 245a23c2 ncall lpm_save_sel_hv ,blank 
-69e1 6fe081f8 fetch 1 ,mem_otp_ldo_vsel 
-69e2 207a0000 rtn blank 
-69e3 202023c7 branch lpm_write_io_vsel 
-
-load_otp_set_init:
-69e4 44f3401c bpatch patch1c_6 ,mem_patch1c 
-69e5 24758000 nrtn wake 
-69e6 6fe1415d fetch 2 ,mem_otp_charge_pump_x 
-69e7 207a0000 rtn blank 
-69e8 67e101ed store 2 ,mem_otp_charge_pump 
-69e9 202069fb branch set_otp_config2 
-
-set_otp_config:
-69ea 204069df call load_otp_hv_vsel 
-69eb 6fe201eb fetch 4 ,mem_otp_core_ldo 
-69ec 207a0000 rtn blank 
-69ed 37d98200 until null ,lpo_edge 
-69ee 6ff08136 fetch 1 ,0x8136 
-69ef 1fe17ef0 and pdata ,0xf0 ,pdata 
-69f0 684881eb fetcht 1 ,mem_otp_core_ldo 
-69f1 9841fe00 ior temp ,pdata 
-69f2 67f08136 store 1 ,0x8136 
-69f3 37d98200 until null ,lpo_edge 
-69f4 6ff08138 fetch 1 ,0x8138 
-69f5 1fe17e07 and pdata ,0x7 ,pdata 
-69f6 684881ec fetcht 1 ,mem_otp_verf_bg 
-69f7 18498400 lshift3 temp ,temp 
-69f8 9841fe00 ior temp ,pdata 
-69f9 67f08138 store 1 ,0x8138 
-69fa 37d98200 until null ,lpo_edge 
-
-set_otp_config2:
-69fb 6ff08acb fetch 1 ,0x8acb 
-69fc 1fe17ef0 and pdata ,0xf0 ,pdata 
-69fd 684881ed fetcht 1 ,mem_otp_charge_pump 
-69fe 6048c15d storet 1 ,mem_otp_charge_pump_x 
-69ff 9841fe00 ior temp ,pdata 
-6a00 67f08acb store 1 ,0x8acb 
-6a01 6fe081ee fetch 1 ,mem_otp_dpll_ibais 
-6a02 67e0c15e store 1 ,mem_otp_dpll_ibais_x 
-6a03 2feffe03 isolate1 3 ,pdata 
-6a04 6ff08a06 fetch 1 ,0x8a06 
-6a05 7920fe07 setflag true ,7 ,pdata 
-6a06 67f08a06 store 1 ,0x8a06 
-6a07 6fe081ee fetch 1 ,mem_otp_dpll_ibais 
-6a08 1fe10407 and pdata ,7 ,temp 
-6a09 18520400 lshift4 temp ,temp 
-6a0a 18438400 lshift temp ,temp 
-6a0b 6048c44f storet 1 ,mem_ring_ibias_trim 
-6a0c 6ff08a02 fetch 1 ,0x8a02 
-6a0d 1fe17e1f and pdata ,0x1f ,pdata 
-6a0e 9841fe00 ior temp ,pdata 
-6a0f 67f08a02 store 1 ,0x8a02 
-6a10 20600000 rtn 
-
-loadcode_load_key:
-6a11 78547c00 disable user 
-6a12 6fe0c3ce fetch 1 ,mem_ucode_flag 
-6a13 c4018000 rtnbit0 otp_uflag_aes 
-6a14 20406a67 call loadcode_check_otp_lock 
-6a15 dfe00ff0 arg otp_offset_ucode_key_l ,pdata 
-6a16 9a40a400 iadd regb ,regb 
-6a17 18007210 force 16 ,loopcnt 
-6a18 da2001cb arg mem_ucode_keybuf ,rega 
-6a19 20406b62 call otp_read_data 
-6a1a 70800608 jam otp_key_lock ,core_misc_ctrl 
-6a1b d8c001cb arg mem_ucode_keybuf ,contr 
-6a1c 2040734d call load_key 
-6a1d d8a001cb arg mem_ucode_keybuf ,contw 
-6a1e 20407c9b call memset0_16 
-6a1f 20207dbc branch enable_user 
-
-loadcode:
-6a20 70805025 jam 0x25 ,core_clkoff 
-6a21 20406b28 call enable_otp_read 
-6a22 da400000 arg otp_offset_patch_ptr ,regb 
-6a23 1800720b force 11 ,loopcnt 
-6a24 da2043cc arg mem_ucode_ptr ,rega 
-6a25 20406b63 call otp_read_data1 
-6a26 6ee2c3cc fetchr regf ,5 ,mem_ucode_ptr 
-6a27 6d6343d1 fetchr rege ,6 ,mem_bistfix_val 
-6a28 6fe0c3ce fetch 1 ,mem_ucode_flag 
-6a29 c3026a31 bbit0 otp_uflag_bist ,loadcode_nobist 
-6a2a 70806f07 jam 0x7 ,core_bist_ctrl 
-
-loadcode_bistwait:
-6a2b 6ff0815e fetch 1 ,core_bist_done 
-6a2c c083ea2b bne 7 ,loadcode_bistwait 
-6a2d 6ff08160 fetch 1 ,core_bist_fail 
-6a2e 1ff27e00 lshift4 pdata ,pdata 
-6a2f 67f0806f store 1 ,core_bist_ctrl 
-6a30 20206a34 branch loadcode_otp 
-
-loadcode_nobist:
-6a31 20406adc call set_bistfix 
-6a32 20407d78 call clean_xmem 
-6a33 20407d76 call clean_smem 
-
-loadcode_otp:
-6a34 66e2c3cc storer regf ,5 ,mem_ucode_ptr 
-6a35 656343d1 storer rege ,6 ,mem_bistfix_val 
-6a36 20406a67 call loadcode_check_otp_lock 
-6a37 dfe00fd0 arg otp_offset_adc_param_l ,pdata 
-6a38 9a40a400 iadd regb ,regb 
-6a39 df200020 arg 32 ,loopcnt 
-6a3a da2001db arg mem_otp_temp ,rega 
-6a3b 20406b62 call otp_read_data 
-6a3c 204069ea call set_otp_config 
-6a3d 204069d0 call loadcode_lock 
-6a3e 6fe0c3ce fetch 1 ,mem_ucode_flag 
-6a3f c301ea49 bbit0 otp_uflag_aes ,loadcode_unenc 
-6a40 6848c3d0 fetcht 1 ,mem_peripheral_lock_flag 
-6a41 dfe00000 arg 0 ,pdata 
-6a42 79207e06 set1 otp_not_limit ,pdata 
-6a43 79207e07 set1 otp_limit ,pdata 
-6a44 98412200 iand temp ,rega 
-6a45 1a267c00 sub rega ,0 ,null 
-6a46 2022eaab branch loadcode_error ,zero 
-6a47 9a267c00 isub rega ,null 
-6a48 2022eaab branch loadcode_error ,zero 
-
-loadcode_unenc:
-6a49 70003000 jam 0 ,mem_loadcode_times 
-6a4a da606b0c arg otp_load_code ,regc 
-
-loadcode_otp_loop:
-6a4b 20406a9f call loadcode_timeout 
-6a4c 24216aab nbranch loadcode_error ,positive 
-6a4d 6fe143cc fetch 2 ,mem_ucode_ptr 
-6a4e 203a6a56 branch loadcode_otp_end ,blank 
-6a4f 2040698d call read_first_block_cont 
-6a50 2040699d call load_storage 
-6a51 2436ea56 nbranch loadcode_otp_end ,match 
-6a52 6fe081bb fetch 1 ,mem_ucode_status 
-6a53 2fe00603 compare 3 ,pdata ,3 
-6a54 2420ea4b nbranch loadcode_otp_loop ,true 
-6a55 20406a64 call run_otp_code 
-
-loadcode_otp_end:
-6a56 20406b25 call disable_otp 
-6a57 70003000 jam 0 ,mem_loadcode_times 
-
-loadcode_iic_loop:
-6a58 20406a9f call loadcode_timeout 
-6a59 24216aab nbranch loadcode_error ,positive 
-6a5a 6fe0c3ce fetch 1 ,mem_ucode_flag 
-6a5b c2816a77 bbit1 otp_uflag_skip_eep ,loadcode_spi 
-6a5c 20406a91 call iicd_load_gpio_init 
-6a5d 20406cba call clear_eeprom_size_2k 
-6a5e 20406a99 call loadcode_iic_by_eeprom 
-6a5f 2436ea6e nbranch loadcode_iic_eeprom_2k ,match 
-6a60 6fe081bb fetch 1 ,mem_ucode_status 
-6a61 2fe00603 compare 3 ,pdata ,3 
-6a62 2420ea58 nbranch loadcode_iic_loop ,true 
-6a63 20206a77 branch loadcode_spi 
-
-run_otp_code:
-6a64 580001ff setarg 0x1ff 
-6a65 dfa00000 arg 0 ,pc 
-6a66 20600000 rtn 
-
-loadcode_check_otp_lock:
-6a67 da401000 arg otp_offset_h ,regb 
-6a68 6ff08144 fetch 1 ,core_peripheral_lock 
-6a69 c283ea6c bbit1 otp_limit ,loadcode_otp_lock 
-6a6a 6fe0c3d0 fetch 1 ,mem_peripheral_lock_flag 
-6a6b c4038000 rtnbit0 otp_limit 
-
-loadcode_otp_lock:
-6a6c da400000 arg 0 ,regb 
-6a6d 20600000 rtn 
-
-loadcode_iic_eeprom_2k:
-6a6e 20406cb7 call set_eeprom_size_2k 
-6a6f 6fe0c3ce fetch 1 ,mem_ucode_flag 
-6a70 c2816a77 bbit1 otp_uflag_skip_eep ,loadcode_spi 
-6a71 20406a99 call loadcode_iic_by_eeprom 
-6a72 2436ea77 nbranch loadcode_spi ,match 
-6a73 6fe081bb fetch 1 ,mem_ucode_status 
-6a74 2fe00603 compare 3 ,pdata ,3 
-6a75 2420ea58 nbranch loadcode_iic_loop ,true 
-6a76 20206a87 branch loadcode_hci 
-
-loadcode_spi:
-6a77 70003000 jam 0 ,mem_loadcode_times 
-
-loadcode_spi_loop:
-6a78 20406a9f call loadcode_timeout 
-6a79 24216aab nbranch loadcode_error ,positive 
-6a7a 6fe0c3ce fetch 1 ,mem_ucode_flag 
-6a7b c280ea87 bbit1 otp_uflag_skip_flash ,loadcode_hci 
-6a7c 20406c16 call spid_init_flash 
-6a7d 200000c8 nop 200 
-6a7e 20406c25 call spid_flash_release_form_powerdown 
-6a7f 20000064 nop 100 
-6a80 da606c62 arg spid_load_flash ,regc 
-6a81 20406988 call read_first_block 
-6a82 2040699d call load_storage 
-6a83 2436ea87 nbranch loadcode_hci ,match 
-6a84 6fe081bb fetch 1 ,mem_ucode_status 
-6a85 2fe00603 compare 3 ,pdata ,3 
-6a86 2420ea78 nbranch loadcode_spi_loop ,true 
-
-loadcode_hci:
-6a87 20406a8b call clear_key_buf 
-6a88 6fe0c3ce fetch 1 ,mem_ucode_flag 
-6a89 c4000000 rtnbit0 otp_uflag_hci 
-6a8a 202066f2 branch hci_init 
-
-clear_key_buf:
-6a8b d8a001cb arg mem_ucode_keybuf ,contw 
-6a8c 20407c9b call memset0_16 
-6a8d 18007004 force regidx_key ,regext_index 
-6a8e 2040735e call aes_clear 
-6a8f 70805021 jam 0x21 ,core_clkoff 
-6a90 20600000 rtn 
-
-iicd_load_gpio_init:
-6a91 6fe0c440 fetch 1 ,mem_eeprom_sda_gpio 
-6a92 6848c43f fetcht 1 ,mem_eeprom_scl_gpio 
-6a93 98467c00 isub temp ,null 
-6a94 2422ecb2 nbranch iicd_read_init_pin ,zero 
-
-iicd_load_default_gpio:
-6a95 70443e04 jam 4 ,mem_eeprom_wp_gpio 
-6a96 70443f08 jam 8 ,mem_eeprom_scl_gpio 
-6a97 70444007 jam 7 ,mem_eeprom_sda_gpio 
-6a98 20206cb2 branch iicd_read_init_pin 
-
-loadcode_iic_by_eeprom:
-6a99 58000000 setarg 0x0 
-6a9a 67e101be store 2 ,mem_addr_mi 
-6a9b da606cdd arg iicd_read_eep ,regc 
-6a9c 20406c9b call iic_init_600khz 
-6a9d 20406988 call read_first_block 
-6a9e 2020699d branch load_storage 
-
-loadcode_timeout:
-6a9f 20406aa5 call loadcode_error_delay 
-6aa0 6fe08030 fetch 1 ,mem_loadcode_times 
-6aa1 1fe0fe01 increase 1 ,pdata 
-6aa2 1fe67c03 sub pdata ,3 ,null 
-6aa3 67e08030 store 1 ,mem_loadcode_times 
-6aa4 20600000 rtn 
-
-loadcode_error_delay:
-6aa5 6fe08030 fetch 1 ,mem_loadcode_times 
-6aa6 207a0000 rtn blank 
-6aa7 6fe081f9 fetch 1 ,mem_otp_load_delay 
-6aa8 207a0000 rtn blank 
-6aa9 1fe27200 copy pdata ,loopcnt 
-6aaa 20207c98 branch delay_ms_wait 
-
-loadcode_error:
-6aab 20406a8b call clear_key_buf 
-6aac 20406972 call aes_disable 
-6aad 20407d7e call ice_break 
-6aae 20600000 rtn 
-
-set_bistfix_wake:
-6aaf 20406adc call set_bistfix 
-6ab0 20406ab7 call set_bistfix_wake_xram 
-
-set_bistfix_wake_patchram:
-6ab1 6ff0806f fetch 1 ,core_bist_ctrl 
-6ab2 c4030000 rtnbit0 bist_ctrl_fix_patch_ram 
-6ab3 20406ad1 call set_bistfix_set_patchram_addr 
-6ab4 df200004 arg 4 ,loopcnt 
-6ab5 d8c043d8 arg mem_bistfix_val_patchram ,contr 
-6ab6 20206b07 branch load_ucode_loop 
-
-set_bistfix_wake_xram:
-6ab7 6ff0806f fetch 1 ,core_bist_ctrl 
-6ab8 c4028000 rtnbit0 bist_ctrl_fix_xram 
-6ab9 684943d3 fetcht 2 ,mem_bistfix_addr_x 
-6aba 18490400 rshift3 temp ,temp 
-6abb dfe04000 arg 0x4000 ,pdata 
-6abc 98408a00 iadd temp ,contw 
-6abd 6fe0c3d7 fetch 1 ,mem_bistfix_val_xram 
-6abe 20207dce branch istore_1_contw_rtn 
-
-set_bistfix_save_xram:
-6abf 4779403e bpatchx patch3e_2 ,mem_patch3e 
-6ac0 6ff0806f fetch 1 ,core_bist_ctrl 
-6ac1 c4028000 rtnbit0 bist_ctrl_fix_xram 
-6ac2 6a2143d3 fetchr rega ,2 ,mem_bistfix_addr_x 
-6ac3 1a292200 rshift3 rega ,rega 
-6ac4 dfe04000 arg 0x4000 ,pdata 
-6ac5 9a208c00 iadd rega ,contr 
-6ac6 efe08006 ifetch 1 ,contr 
-6ac7 67e0c3d7 store 1 ,mem_bistfix_val_xram 
-6ac8 20600000 rtn 
-
-set_bistfix_save_patchram:
-6ac9 20758000 rtn wake 
-6aca 6ff0806f fetch 1 ,core_bist_ctrl 
-6acb c4030000 rtnbit0 bist_ctrl_fix_patch_ram 
-6acc 20406ad1 call set_bistfix_set_patchram_addr 
-6acd 2000000a nop 10 
-6ace df200004 arg 4 ,loopcnt 
-6acf d8a043d8 arg mem_bistfix_val_patchram ,contw 
-6ad0 20206afa branch save_ucode_loop 
-
-set_bistfix_set_patchram_addr:
-6ad1 70802200 jam 0 ,core_ucode_hi 
-6ad2 6fe143d5 fetch 2 ,mem_bistfix_addr_patch 
-6ad3 1ff1fe00 rshift4 pdata ,pdata 
-6ad4 1fe37e00 rshift pdata ,pdata 
-6ad5 1ff18400 rshift4 pdata ,temp 
-6ad6 184b0400 rshift2 temp ,temp 
-6ad7 79200407 set1 7 ,temp 
-6ad8 60588023 storet 1 ,core_ucode_ctrl 
-6ad9 1febfe00 lshift2 pdata ,pdata 
-6ada 67f08024 store 1 ,core_ucode_low 
-6adb 20600000 rtn 
-
-set_bistfix:
-6adc 6fe0c3ce fetch 1 ,mem_ucode_flag 
-6add 1fe17ee0 and_into 0xe0 ,pdata 
-6ade 207a0000 rtn blank 
-6adf 1fe37e00 rshift pdata ,pdata 
-6ae0 67f0806f store 1 ,core_bist_ctrl 
-6ae1 58000001 setarg 1 
-6ae2 d8c043d1 arg mem_bistfix_val ,contr 
-
-set_bistfix_loop:
-6ae3 e8410006 ifetcht 2 ,contr 
-6ae4 6059004c storet 2 ,core_lpm_reg 
-6ae5 67f08020 store 1 ,core_set_bistfix 
-6ae6 1fe3fe00 lshift pdata ,pdata 
-6ae7 c301eae3 bbit0 3 ,set_bistfix_loop 
-6ae8 20600000 rtn 
-
-set_ucode_status:
-6ae9 6fe081bb fetch 1 ,mem_ucode_status 
-6aea 1fe3fe00 lshift pdata ,pdata 
-6aeb 7920fe00 setflag true ,0 ,pdata 
-6aec 2a2c000f isolate0 15 ,rega 
-6aed 20608000 rtn true 
-6aee 67e081bb store 1 ,mem_ucode_status 
-6aef 20600000 rtn 
-
-decrypt_code:
-6af0 6ff0806f fetch 1 ,core_bist_ctrl 
-6af1 c4038000 rtnbit0 aes_en 
-6af2 20206af6 branch decrypt_code_skip 
-
-decrypt_code_loop:
-6af3 6ff08128 fetch 1 ,core_dma_status 
-6af4 afefffff qisolate1 pdata 
-6af5 20608000 rtn true 
-
-decrypt_code_skip:
-6af6 6ff08108 fetch 1 ,core_misc_status 
-6af7 c300eaf3 bbit0 1 ,decrypt_code_loop 
-6af8 204072c2 call do_aes_cbc 
-6af9 20206af3 branch decrypt_code_loop 
-
-save_ucode_loop:
-6afa 6ff08025 fetch 1 ,core_ucode_data 
-6afb e7e08005 istore 1 ,contw 
-6afc c2006afa loop save_ucode_loop 
-6afd 70802300 jam 0x0 ,core_ucode_ctrl 
-6afe 20600000 rtn 
-
-load_ucode:
-6aff 6fe140f0 fetch 2 ,mem_patch_ptr 
-6b00 207a0000 rtn blank 
-6b01 70802380 jam 0x80 ,core_ucode_ctrl 
-6b02 70802200 jam 0 ,core_ucode_hi 
-6b03 70802400 jam 0 ,core_ucode_low 
-6b04 684940f2 fetcht 2 ,mem_patch_len 
-6b05 184bf200 lshift2 temp ,loopcnt 
-6b06 98000c00 iforce contr 
-
-load_ucode_loop:
-6b07 efe08006 ifetch 1 ,contr 
-6b08 67f08025 store 1 ,core_ucode_data 
-6b09 c2006b07 loop load_ucode_loop 
-6b0a 70802300 jam 0x0 ,core_ucode_ctrl 
-6b0b 20600000 rtn 
-
-otp_load_code:
-6b0c 18427200 copy temp ,loopcnt 
-6b0d 6fe101be fetch 2 ,mem_addr_mi 
-6b0e 98408400 iadd temp ,temp 
-6b0f 604901be storet 2 ,mem_addr_mi 
-6b10 98002400 iforce regb 
-6b11 1a225c00 copy rega ,nap 
-6b12 70800610 jam init_key ,core_misc_ctrl 
-6b13 20406b62 call otp_read_data 
-6b14 1dc22200 copy nap ,rega 
-6b15 2a2c000f isolate0 15 ,rega 
-6b16 20608000 rtn true 
-6b17 205a7dc8 call enable_true ,blank 
-6b18 20206ae9 branch set_ucode_status 
-
-otp_enable_chgpump25:
-6b19 708ac801 jam 0x1 ,core_chgpump_ctrl 
-6b1a 2000012c nop 300 
-6b1b 708ac805 jam 0x5 ,core_chgpump_ctrl 
-6b1c 20000064 nop 100 
-6b1d 708ac825 jam 0x25 ,core_chgpump_ctrl 
-6b1e 200003e8 nop 1000 
-6b1f 708ac827 jam 0x27 ,core_chgpump_ctrl 
-6b20 2000012c nop 300 
-6b21 20600000 rtn 
-
-otp_enable_chgpump65:
-6b22 20406b19 call otp_enable_chgpump25 
-6b23 708ac83f jam 0x3f ,core_chgpump_ctrl 
-6b24 20600000 rtn 
-
-disable_otp:
-6b25 70804783 jam 0x83 ,core_otp_ctrl 
-
-otp_disable_chgpump:
-6b26 708ac800 jam 0 ,core_chgpump_ctrl 
-6b27 20600000 rtn 
-
-enable_otp_read:
-6b28 20406b19 call otp_enable_chgpump25 
-
-otp_reset:
-6b29 70804782 jam 0x82 ,core_otp_ctrl 
-6b2a 2000000c nop 12 
-6b2b 70804780 jam 0x80 ,core_otp_ctrl 
-6b2c 70804782 jam 0x82 ,core_otp_ctrl 
-6b2d 20000096 nop 150 
-6b2e 20600000 rtn 
-
-otp_set_addr:
-6b2f 1a49a400 lshift3 regb ,regb 
-6b30 62510044 storer regb ,2 ,core_otp_addr 
-6b31 70804600 jam 0 ,core_otp_din 
-6b32 20600000 rtn 
-
-otp_write:
-6b33 44f4c01d bpatch patch1d_1 ,mem_patch1d 
-6b34 20406b22 call otp_enable_chgpump65 
-6b35 20406b2f call otp_set_addr 
-6b36 20406b29 call otp_reset 
-
-otp_program:
-6b37 e8408011 ifetcht 1 ,rega 
-6b38 1a20a201 increase 1 ,rega 
-6b39 18000e00 force 0 ,queue 
-
-otp_program_bit:
-6b3a a84c0000 qisolate0 temp 
-6b3b 2020eb5a branch otp_skip_0 ,true 
-6b3c 6ff08046 fetch 1 ,core_otp_din 
-6b3d 79207e06 set1 6 ,pdata 
-6b3e 79207e07 set1 7 ,pdata 
-6b3f 67f08046 store 1 ,core_otp_din 
-6b40 70804702 jam 0x02 ,core_otp_ctrl 
-6b41 70804782 jam 0x82 ,core_otp_ctrl 
-6b42 793ffe07 set0 7 ,pdata 
-6b43 67f08046 store 1 ,core_otp_din 
-6b44 7080478a jam 0x8a ,core_otp_ctrl 
-6b45 2000000b nop 11 
-6b46 708047ca jam 0xca ,core_otp_ctrl 
-6b47 20000021 nop 33 
-6b48 7080474a jam 0x4a ,core_otp_ctrl 
-6b49 2000002c nop 44 
-6b4a 708047ca jam 0xca ,core_otp_ctrl 
-6b4b 20000016 nop 22 
-6b4c 7080478a jam 0x8a ,core_otp_ctrl 
-6b4d 20000021 nop 33 
-6b4e 70804782 jam 0x82 ,core_otp_ctrl 
-6b4f 20000001 nop 1 
-6b50 70804792 jam 0x92 ,core_otp_ctrl 
-6b51 2000000a nop 10 
-6b52 708047b2 jam 0xb2 ,core_otp_ctrl 
-6b53 6ff08007 fetch 1 ,core_otp_rdata 
-6b54 70804792 jam 0x92 ,core_otp_ctrl 
-6b55 20000001 nop 1 
-6b56 70804782 jam 0x82 ,core_otp_ctrl 
-6b57 20000001 nop 1 
-6b58 afec0000 qisolate0 pdata 
-6b59 2020eb3a branch otp_program_bit ,true 
-
-otp_skip_0:
-6b5a 6ff10044 fetch 2 ,core_otp_addr 
-6b5b 1fe0fe01 increase 1 ,pdata 
-6b5c 67f10044 store 2 ,core_otp_addr 
-6b5d 18e08e01 increase 1 ,queue 
-6b5e 28e01e08 compare 8 ,queue ,0xf 
-6b5f 2420eb3a nbranch otp_program_bit ,true 
-6b60 c2006b37 loop otp_program 
-6b61 20206b26 branch otp_disable_chgpump 
-
-otp_read_data:
-6b62 44f5401d bpatch patch1d_2 ,mem_patch1d 
-
-otp_read_data1:
-6b63 20406b2f call otp_set_addr 
-6b64 708047a2 jam 0xa2 ,core_otp_ctrl 
-6b65 1a40a408 increase 8 ,regb 
-6b66 d8e00000 arg 0 ,queue 
-6b67 5fffffff setarg -1 
-
-otp_read_data_loop:
-6b68 68588007 fetcht 1 ,core_otp_rdata 
-6b69 e0408011 istoret 1 ,rega 
-6b6a 984c7e00 bcrc temp 
-6b6b 70800620 jam shift_key ,core_misc_ctrl 
-6b6c 62510044 storer regb ,2 ,core_otp_addr 
-6b6d 2a2ffe0f isolate1 15 ,rega 
-6b6e 2020eb71 branch otp_read_noinc ,true 
-6b6f 1a20a201 increase 1 ,rega 
-6b70 20206b77 branch otp_read_unenc 
-
-otp_read_noinc:
-6b71 24346b77 nbranch otp_read_unenc ,user 
-6b72 18e08e01 increase 1 ,queue 
-6b73 28e01e00 compare 0 ,queue ,0xf 
-6b74 2420eb77 nbranch otp_read_unenc ,true 
-6b75 204072c2 call do_aes_cbc 
-6b76 70800610 jam init_key ,core_misc_ctrl 
-
-otp_read_unenc:
-6b77 1a40a408 increase 8 ,regb 
-6b78 c2006b68 loop otp_read_data_loop 
-6b79 70804782 jam 0x82 ,core_otp_ctrl 
-6b7a 20600000 rtn 
-
-app_lpm_lock_check:
-6b7b 6fe0c3cf fetch 1 ,mem_device_option 
-6b7c c0056b8c beq dvc_op_module ,app_lpm_module_lock 
-6b7d c0026b90 beq dvc_op_dongle ,app_lpm_dongle_lock 
-6b7e c0046b96 beq dvc_op_mouse ,app_lpm_mouse_lock 
-6b7f c004eba0 beq dvc_op_shutter ,app_lpm_shutter_lock 
-6b80 c0036ba0 beq dvc_op_shutter_dy ,app_lpm_shutter_lock 
-6b81 c0066b8c beq dvc_op_hci_boot ,app_lpm_hciboot_lock 
-6b82 c006eba7 beq dvc_op_remote_car ,app_lpm_car_lock_application_and_ble 
-6b83 c0076ba4 beq dvc_op_car ,app_lpm_car_lock 
-6b84 c007eb89 beq dvc_op_keyboard ,app_lpm_kb_lock 
-6b85 c000ebb0 beq dvc_op_2g4 ,app_lpm_mpu_lock_ble 
-6b86 c0016bb5 beq dvc_op_ble ,app_lpm_mpu_lock_24g 
-6b87 c003eb9c beq dvc_op_mouse_2g4 ,app_lpm_mouse_lock_24g 
-6b88 20206bb8 branch app_lpm_mpu_lock_24g_ble 
-
-app_lpm_kb_lock:
-6b89 dfe04a31 arg module_init ,pdata 
-6b8a d84066d9 arg shutter_dy_shutter_1s_timer ,temp 
-6b8b 20206bad branch app_mpu_s0_lock 
-
-app_lpm_module_lock:
-
-app_lpm_hciboot_lock:
-6b8c dfe037c1 arg car_init ,pdata 
-6b8d d8404a2f arg keyboard_bt_discovery_button_down_disable ,temp 
-6b8e 20406bad call app_mpu_s0_lock 
-6b8f 20206bb5 branch app_lpm_mpu_lock_24g 
-
-app_lpm_dongle_lock:
-6b90 dfe03e8f arg keyboard_softreset_process ,pdata 
-6b91 d84066d9 arg shutter_dy_shutter_1s_timer ,temp 
-6b92 20406bad call app_mpu_s0_lock 
-6b93 dfe037c1 arg car_init ,pdata 
-6b94 d8403cc7 arg remote_car_wakeup_config_loop ,temp 
-6b95 20206bb2 branch app_mpu_s1_lock 
-
-app_lpm_mouse_lock:
-6b96 dfe037c1 arg car_init ,pdata 
-6b97 d8404d0d arg module_set_state ,temp 
-6b98 20406bad call app_mpu_s0_lock 
-6b99 dfe05bf7 arg rec_cb_function ,pdata 
-6b9a d84066d9 arg shutter_dy_shutter_1s_timer ,temp 
-6b9b 20206bb2 branch app_mpu_s1_lock 
-
-app_lpm_mouse_lock_24g:
-6b9c dfe037c1 arg car_init ,pdata 
-6b9d d8404d0d arg module_set_state ,temp 
-6b9e 20406bad call app_mpu_s0_lock 
-6b9f 20206bb0 branch app_lpm_mpu_lock_ble 
-
-app_lpm_shutter_lock:
-6ba0 dfe037c1 arg car_init ,pdata 
-6ba1 d84060c0 arg rec_enter_queue ,temp 
-6ba2 20406bad call app_mpu_s0_lock 
-6ba3 20206bb5 branch app_lpm_mpu_lock_24g 
-
-app_lpm_car_lock:
-6ba4 dfe03cd1 arg dongle_init ,pdata 
-6ba5 d84066d9 arg shutter_dy_shutter_1s_timer ,temp 
-6ba6 20206bad branch app_mpu_s0_lock 
-
-app_lpm_car_lock_application_and_ble:
-6ba7 dfe03cd1 arg dongle_init ,pdata 
-6ba8 d84066d9 arg shutter_dy_shutter_1s_timer ,temp 
-6ba9 20406bad call app_mpu_s0_lock 
-6baa dfe02ae3 arg le_send_adv_ind ,pdata 
-6bab d84030eb arg le_send_ll_one_lenth ,temp 
-6bac 20206bb2 branch app_mpu_s1_lock 
-
-app_mpu_s0_lock:
-6bad 18500400 lshift16 temp ,temp 
-6bae 9841fe00 ior temp ,pdata 
-6baf 202023b1 branch lpm_write_mpu_s0 
-
-app_lpm_mpu_lock_ble:
-6bb0 dfe02b6e arg le_parse_att ,pdata 
-6bb1 d84030eb arg le_send_ll_one_lenth ,temp 
-
-app_mpu_s1_lock:
-6bb2 18500400 lshift16 temp ,temp 
-6bb3 9841fe00 ior temp ,pdata 
-6bb4 202023b8 branch lpm_write_mpu_s1 
-
-app_lpm_mpu_lock_24g:
-6bb5 dfe030f1 arg g24_prep ,pdata 
-6bb6 d84036bf arg g24_factory_check ,temp 
-6bb7 20206bb2 branch app_mpu_s1_lock 
-
-app_lpm_mpu_lock_24g_ble:
-6bb8 20406bb5 call app_lpm_mpu_lock_24g 
-6bb9 dfe02b6e arg le_parse_att ,pdata 
-6bba d84030eb arg le_send_ll_one_lenth ,temp 
-6bbb 20206bad branch app_mpu_s0_lock 
-
-spid_init:
-6bbc 44f5c01d bpatch patch1d_3 ,mem_patch1d 
-
-spid_init_common:
-6bbd 6fe0c3fe fetch 1 ,mem_spi_init_clk 
-6bbe 67f08080 store 1 ,core_spid_ctrl 
-6bbf 6fe0c3ff fetch 1 ,mem_spi_init_delay_time 
-6bc0 67f08081 store 1 ,core_spid_delay 
-6bc1 580001bc setarg mem_spid_tbuf 
-6bc2 67f10084 store 2 ,core_spid_txaddr 
-6bc3 580001c1 setarg mem_spid_rbuf 
-6bc4 67f10086 store 2 ,core_spid_rxaddr 
-6bc5 20206968 branch twspi_disable 
-
-spid_write_reg:
-6bc6 79207e07 set1 7 ,pdata 
-6bc7 67e101bc store 2 ,mem_spid_tbuf 
-6bc8 44f6401d bpatch patch1d_4 ,mem_patch1d 
-6bc9 70808202 jam 2 ,core_spid_txlen 
-6bca 70808800 jam 0 ,core_spid_rxlen 
-6bcb 70800602 jam spid_start ,core_misc_ctrl 
-6bcc 20206bd6 branch wait_spid_done 
-
-spid_read_reg:
-6bcd 18000401 force 1 ,temp 
-
-spid_read_regs:
-6bce 67e081bc store 1 ,mem_spid_tbuf 
-6bcf 44f6c01d bpatch patch1d_5 ,mem_patch1d 
-6bd0 70808201 jam 1 ,core_spid_txlen 
-6bd1 60590088 storet 2 ,core_spid_rxlen 
-6bd2 70800602 jam spid_start ,core_misc_ctrl 
-6bd3 20406bd6 call wait_spid_done 
-6bd4 6fe081c1 fetch 1 ,mem_spid_rbuf 
-6bd5 20600000 rtn 
-
-wait_spid_done:
-6bd6 20000005 nop 5 
-6bd7 6ff08128 fetch 1 ,core_dma_status 
-6bd8 c301ebd6 bbit0 spid_done ,wait_spid_done 
-6bd9 20600000 rtn 
-
-flash_write:
-6bda 78547c00 disable user 
-6bdb 1fe22400 copy pdata ,regb 
-6bdc 6fe0c437 fetch 1 ,mem_spi_write_flash_sm 
-6bdd c1800000 rtnne flash_sm_no_buys 
-6bde 78347c00 enable user 
-6bdf 1a427e00 copy regb ,pdata 
-6be0 20206be8 branch spid_flash_write_start 
-
-flash_write_spi_sm_timer:
-6be1 6fe0c437 fetch 1 ,mem_spi_write_flash_sm 
-6be2 c000ebe8 beq flash_sm_start ,spid_flash_write_start 
-6be3 c0016bee beq flash_sm_erase_sector ,spid_flash_erase_sector 
-6be4 c001ebf6 beq flash_sm_wait_erase_sector ,spid_flash_wait_erase_sector 
-6be5 c0026bfa beq flash_sm_write_data ,spid_flash_write_data 
-6be6 c002ec01 beq flash_sm_wait_write_data ,spid_flash_wait_write_data 
-6be7 20600000 rtn 
-
-spid_flash_write_start:
-6be8 67e1c430 store 3 ,mem_spi_write_addr 
-6be9 1a227e00 copy rega ,pdata 
-6bea 67e14433 store 2 ,mem_spi_write_ptr 
-6beb 60494435 storet 2 ,mem_spi_write_len 
-6bec 70443702 jam flash_sm_erase_sector ,mem_spi_write_flash_sm 
-6bed 20206c16 branch spid_init_flash 
-
-spid_flash_erase_sector:
-6bee 20406c16 call spid_init_flash 
-6bef 70443703 jam flash_sm_wait_erase_sector ,mem_spi_write_flash_sm 
-6bf0 20406c1c call spid_unlock_flash 
-6bf1 da2001bc arg mem_spid_tbuf ,rega 
-6bf2 70808204 jam 4 ,core_spid_txlen 
-6bf3 6fe1c430 fetch 3 ,mem_spi_write_addr 
-6bf4 d8400020 arg flash_command_sector_erase ,temp 
-6bf5 20206c36 branch spid_write_flash_common 
-
-spid_flash_wait_erase_sector:
-6bf6 20406c16 call spid_init_flash 
-6bf7 20406c59 call wait_spid_flash_done 
-6bf8 70443704 jam flash_sm_write_data ,mem_spi_write_flash_sm 
-6bf9 20600000 rtn 
-
-spid_flash_write_data:
-6bfa 44f7401d bpatch patch1d_6 ,mem_patch1d 
-6bfb 20406c16 call spid_init_flash 
-6bfc 70443705 jam flash_sm_wait_write_data ,mem_spi_write_flash_sm 
-6bfd 20406c1c call spid_unlock_flash 
-6bfe 20406c0e call spid_flash_data_preserve 
-6bff 20406c32 call spid_write_flash 
-6c00 20206c09 branch spid_flash_data_recover 
-
-spid_flash_wait_write_data:
-6c01 20406c16 call spid_init_flash 
-6c02 20406c1c call spid_unlock_flash 
-6c03 58000005 setarg flash_read_satus 
-6c04 20406bcd call spid_read_reg 
-6c05 c3800000 rtnbit1 flash_status_wip 
-6c06 70443700 jam flash_sm_no_buys ,mem_spi_write_flash_sm 
-6c07 6fe143f0 fetch 2 ,mem_cb_spi_flash_write_complate 
-6c08 20207d7b branch callback_func 
-
-spid_flash_data_recover:
-6c09 6fe20656 fetch 4 ,mem_temp 
-6c0a 68494433 fetcht 2 ,mem_spi_write_ptr 
-
-spid_flash_data_recover_comm:
-6c0b 184085fc increase -4 ,temp 
-6c0c e7e20002 istore 4 ,temp 
-6c0d 20600000 rtn 
-
-spid_flash_data_preserve:
-6c0e 68494433 fetcht 2 ,mem_spi_write_ptr 
-6c0f 18422200 copy temp ,rega 
-6c10 184085fc increase -4 ,temp 
-6c11 efe20002 ifetch 4 ,temp 
-6c12 67e20656 store 4 ,mem_temp 
-6c13 68494435 fetcht 2 ,mem_spi_write_len 
-6c14 6fe1c430 fetch 3 ,mem_spi_write_addr 
-6c15 20600000 rtn 
-
-spid_init_flash:
-6c16 44f7c01d bpatch patch1d_7 ,mem_patch1d 
-6c17 20406c81 call spi_gpio_init 
-6c18 20406968 call twspi_disable 
-6c19 58000000 setarg 0 
-6c1a 67e201bc store 4 ,mem_spid_tbuf 
-6c1b 20600000 rtn 
-
-spid_unlock_flash:
-6c1c 7001bc06 jam flash_command_write_enable ,mem_spid_tbuf 
-
-spid_sendcmd_common:
-6c1d 58000000 setarg 0 
-6c1e 67f10088 store 2 ,core_spid_rxlen 
-6c1f 58000001 setarg 1 
-6c20 67f10082 store 2 ,core_spid_txlen 
-6c21 580001bc setarg mem_spid_tbuf 
-6c22 67f10084 store 2 ,core_spid_txaddr 
-6c23 70800602 jam spid_start ,core_misc_ctrl 
-6c24 20206bd6 branch wait_spid_done 
-
-spid_flash_release_form_powerdown:
-6c25 7001bcab jam flash_command_release_from_powerdown ,mem_spid_tbuf 
-6c26 20206c1d branch spid_sendcmd_common 
-
-spid_flash_powerdown:
-6c27 7001bcb9 jam flash_command_powerdown ,mem_spid_tbuf 
-6c28 20206c1d branch spid_sendcmd_common 
-
-spid_write_flash_data:
-6c29 67e1864e store 3 ,mem_pdatatemp 
-6c2a 60490656 storet 2 ,mem_temp 
-6c2b 62210662 storer rega ,2 ,mem_rega 
-6c2c 44f8401e bpatch patch1e_0 ,mem_patch1e 
-6c2d 20406c1c call spid_unlock_flash 
-6c2e 6fe1864e fetch 3 ,mem_pdatatemp 
-6c2f 68490656 fetcht 2 ,mem_temp 
-6c30 6a210662 fetchr rega ,2 ,mem_rega 
-6c31 20206c32 branch spid_write_flash 
-
-spid_write_flash:
-6c32 18408404 increase 4 ,temp 
-6c33 60590082 storet 2 ,core_spid_txlen 
-6c34 d8400002 arg flash_command_write_data ,temp 
-6c35 1a20a3fc increase -4 ,rega 
-
-spid_write_flash_common:
-6c36 e0408011 istoret 1 ,rega 
-6c37 1ff10400 rshift16 pdata ,temp 
-6c38 e0408005 istoret 1 ,contw 
-6c39 1fec8400 rshift8 pdata ,temp 
-6c3a e0408005 istoret 1 ,contw 
-6c3b e7e08005 istore 1 ,contw 
-6c3c 1a227e00 deposit rega 
-6c3d 67f10084 store 2 ,core_spid_txaddr 
-6c3e 58000000 setarg 0 
-6c3f 67f10088 store 2 ,core_spid_rxlen 
-6c40 70800602 jam spid_start ,core_misc_ctrl 
-6c41 20406bd6 call wait_spid_done 
-6c42 20206c59 branch wait_spid_flash_done 
-
-spid_read_flash:
-6c43 60590088 storet 2 ,core_spid_rxlen 
-6c44 1ff10400 rshift16 pdata ,temp 
-6c45 604881bd storet 1 ,mem_addr_hi 
-6c46 1fec8400 rshift8 pdata ,temp 
-6c47 604881be storet 1 ,mem_addr_mi 
-6c48 67e081bf store 1 ,mem_addr_lo 
-6c49 58000004 setarg 4 
-6c4a 67f10082 store 2 ,core_spid_txlen 
-6c4b 7001bc03 jam flash_command_read_data ,mem_spid_tbuf 
-6c4c 580001bc setarg mem_spid_tbuf 
-6c4d 67f10084 store 2 ,core_spid_txaddr 
-6c4e 1a227e00 deposit rega 
-6c4f 67f10086 store 2 ,core_spid_rxaddr 
-6c50 6ff08080 fetch 1 ,core_spid_ctrl 
-6c51 2a2c000f isolate0 15 ,rega 
-6c52 7920fe06 setflag true ,6 ,pdata 
-6c53 67f08080 store 1 ,core_spid_ctrl 
-6c54 70800602 jam spid_start ,core_misc_ctrl 
-
-spid_read_flash_wait:
-6c55 6ff08128 fetch 1 ,core_dma_status 
-6c56 c283ec55 bbit1 7 ,spid_read_flash_wait 
-6c57 d8e00003 arg spid_done ,queue 
-6c58 20206bd6 branch wait_spid_done 
-
-wait_spid_flash_done:
-6c59 580007d0 setarg 2000 
-6c5a 20402340 call sleep 
-6c5b 20406c1c call spid_unlock_flash 
-6c5c 580001c1 setarg mem_spid_rbuf 
-6c5d 67f10086 store 2 ,core_spid_rxaddr 
-6c5e 58000005 setarg flash_read_satus 
-6c5f 20406bcd call spid_read_reg 
-6c60 c2806c59 bbit1 flash_status_wip ,wait_spid_flash_done 
-6c61 20600000 rtn 
-
-spid_load_flash:
-6c62 60590088 storet 2 ,core_spid_rxlen 
-6c63 58000004 setarg 4 
-6c64 67f10082 store 2 ,core_spid_txlen 
-6c65 7001bc03 jam 3 ,mem_spid_tbuf 
-6c66 580001bc setarg mem_spid_tbuf 
-6c67 67f10084 store 2 ,core_spid_txaddr 
-6c68 1a227e00 deposit rega 
-6c69 67f10086 store 2 ,core_spid_rxaddr 
-6c6a 6ff08080 fetch 1 ,core_spid_ctrl 
-6c6b 2a2c000f isolate0 15 ,rega 
-6c6c 7920fe06 setflag true ,6 ,pdata 
-6c6d 67f08080 store 1 ,core_spid_ctrl 
-6c6e 70800602 jam spid_start ,core_misc_ctrl 
-
-spi_load_flash_wait:
-6c6f 6ff08128 fetch 1 ,core_dma_status 
-6c70 c283ec6f bbit1 7 ,spi_load_flash_wait 
-6c71 d8e00003 arg spid_done ,queue 
-6c72 20406af0 call decrypt_code 
-6c73 20406bd6 call wait_spid_done 
-6c74 2feffe02 isolate1 spid_crcok ,pdata 
-6c75 20406ae9 call set_ucode_status 
-6c76 6fe081bd fetch 1 ,mem_addr_hi 
-6c77 1ff02400 lshift16 pdata ,regb 
-6c78 6fe101be fetch 2 ,mem_addr_mi 
-6c79 1ff0fe00 byteswap pdata ,pdata 
-6c7a 9a41fe00 ior regb ,pdata 
-6c7b 9840fe00 iadd temp ,pdata 
-6c7c 67e081bf store 1 ,mem_addr_lo 
-6c7d 1fecfe00 rshift8 pdata ,pdata 
-6c7e 1ff0fe00 byteswap pdata ,pdata 
-6c7f 67e101bd store 2 ,mem_addr_hi 
-6c80 20600000 rtn 
-
-spi_gpio_init:
-6c81 6fe0c438 fetch 1 ,mem_spi_cs_gpio 
-6c82 6848c43a fetcht 1 ,mem_spi_so_gpio 
-6c83 98467c00 isub temp ,null 
-6c84 2422ec86 nbranch spi_pin_set ,zero 
-6c85 20406c92 call spi_gpio_default_init 
-
-spi_pin_set:
-6c86 6fe0c438 fetch 1 ,mem_spi_cs_gpio 
-6c87 d8400020 arg gpcfg_spid_ncs ,temp 
-6c88 20406f1d call gpio_config_function_int 
-6c89 6fe0c43b fetch 1 ,mem_spi_sclk_gpio 
-6c8a d8400021 arg gpcfg_spid_sck ,temp 
-6c8b 20406f1d call gpio_config_function_int 
-6c8c 6fe0c439 fetch 1 ,mem_spi_si_gpio 
-6c8d d8400022 arg gpcfg_spid_mosi ,temp 
-6c8e 20406f1d call gpio_config_function_int 
-6c8f 6fe0c43a fetch 1 ,mem_spi_so_gpio 
-6c90 d840001f arg gpcfg_spid_miso ,temp 
-6c91 20206f1d branch gpio_config_function_int 
-
-spi_gpio_default_init:
-6c92 70443801 jam 1 ,mem_spi_cs_gpio 
-6c93 70443903 jam 3 ,mem_spi_si_gpio 
-6c94 70443a00 jam 0 ,mem_spi_so_gpio 
-6c95 70443b02 jam 2 ,mem_spi_sclk_gpio 
-6c96 70443c0b jam 11 ,mem_spi_wp_gpio 
-6c97 70443d0a jam 10 ,mem_spi_hold_gpio 
-6c98 20600000 rtn 
-
-soft_reset_chip:
-6c99 70801001 jam 1 ,core_reset 
-6c9a 20600000 rtn 
-
-iic_init_600khz:
-6c9b 70808b05 jam 5 ,core_iicd_scl_low 
-6c9c 70808c07 jam 7 ,core_iicd_scl_high 
-6c9d 70808d07 jam 7 ,core_iicd_start_setup 
-6c9e 70808e07 jam 7 ,core_iicd_start_hold 
-6c9f 70808f07 jam 7 ,core_iicd_stop_setup 
-6ca0 70809005 jam 5 ,core_iicd_data_setup 
-6ca1 70809100 jam 0 ,core_iicd_data_hold 
-6ca2 20600000 rtn 
-
-iic_init_360khz:
-6ca3 70808b0c jam 12 ,core_iicd_scl_low 
-6ca4 70808c0d jam 13 ,core_iicd_scl_high 
-6ca5 70808d0d jam 13 ,core_iicd_start_setup 
-6ca6 70808e0d jam 13 ,core_iicd_start_hold 
-6ca7 70808f0d jam 13 ,core_iicd_stop_setup 
-6ca8 7080900c jam 12 ,core_iicd_data_setup 
-6ca9 70809100 jam 0 ,core_iicd_data_hold 
-6caa 20600000 rtn 
-
-iicd_init_pin:
-6cab 20406cce call iicd_eeprom_write_enable 
-
-iicd_init_pin_scl_sda:
-6cac 6fe0c43f fetch 1 ,mem_eeprom_scl_gpio 
-6cad d840006c arg gpcfg_iic_scl | gpcfg_pullup ,temp 
-6cae 20406f1d call gpio_config_function_int 
-6caf 6fe0c440 fetch 1 ,mem_eeprom_sda_gpio 
-6cb0 d840006d arg gpcfg_iic_sda | gpcfg_pullup ,temp 
-6cb1 20206f1d branch gpio_config_function_int 
-
-iicd_read_init_pin:
-6cb2 20406cd5 call iicd_eeprom_write_disable 
-6cb3 20206cac branch iicd_init_pin_scl_sda 
-
-wait_iicd_done:
-6cb4 6ff08128 fetch 1 ,core_dma_status 
-6cb5 c302ecb4 bbit0 iicd_done ,wait_iicd_done 
-6cb6 20600000 rtn 
-
-set_eeprom_size_2k:
-6cb7 79200028 set1 mark_eeprom_size ,mark 
-6cb8 7043fd08 jam 0x08 ,mem_eeprom_block_size 
-6cb9 20600000 rtn 
-
-clear_eeprom_size_2k:
-6cba 793f8028 set0 mark_eeprom_size ,mark 
-6cbb 7043fd20 jam 0x20 ,mem_eeprom_block_size 
-6cbc 20600000 rtn 
-
-iicd_read_eep_data_size_2k:
-6cbd 6fe0c3f4 fetch 1 ,mem_eeprom_base 
-6cbe 9a40fe00 iadd regb ,pdata 
-6cbf 67e081be store 1 ,mem_addr_mi 
-6cc0 20206cc4 branch iicd_read_eep_size_2k 
-
-iicd_read_eep_size_2k_lcadcode:
-6cc1 6fe101be fetch 2 ,mem_addr_mi 
-6cc2 1ff0fe00 byteswap pdata ,pdata 
-6cc3 67e081be store 1 ,mem_addr_mi 
-
-iicd_read_eep_size_2k:
-6cc4 58000003 setarg 3 
-6cc5 67f10092 store 2 ,core_iicd_txlen 
-6cc6 7001bda0 jam 0xa0 ,mem_iicd_tbuf 
-6cc7 7001bfa1 jam 0xa1 ,mem_iicd_tbuf + 2 
-6cc8 20206ce3 branch iicd_read_eep_common 
-
-iicd_write_protect_eep_data:
-6cc9 60490656 storet 2 ,mem_temp 
-6cca 20406cce call iicd_eeprom_write_enable 
-6ccb 68490656 fetcht 2 ,mem_temp 
-6ccc 20406cfa call iicd_write_eep_data 
-6ccd 20206cd5 branch iicd_eeprom_write_disable 
-
-iicd_eeprom_write_enable:
-6cce 6fe0c43e fetch 1 ,mem_eeprom_wp_gpio 
-6ccf c17f8000 rtneq gpio_disable 
-6cd0 c3036cd3 bbit0 6 ,iicd_wp_gpio_output_low 
-6cd1 580249f0 setarg 150000 
-6cd2 20402340 call sleep 
-
-iicd_wp_gpio_output_low:
-6cd3 6848c43e fetcht 1 ,mem_eeprom_wp_gpio 
-6cd4 20206ef1 branch gpio_out_active 
-
-iicd_eeprom_write_disable:
-6cd5 6848c43e fetcht 1 ,mem_eeprom_wp_gpio 
-6cd6 20206eed branch gpio_out_inactive 
-
-iicd_read_eep_data:
-6cd7 44f8c01e bpatch patch1e_1 ,mem_patch1e 
-6cd8 c5146cbd bmark1 mark_eeprom_size ,iicd_read_eep_data_size_2k 
-6cd9 6fe143f4 fetch 2 ,mem_eeprom_base 
-
-iicd_read_eep_data_next:
-6cda 9a40fe00 iadd regb ,pdata 
-6cdb 1ff0fe00 byteswap pdata ,pdata 
-6cdc 67e101be store 2 ,mem_addr_mi 
-
-iicd_read_eep:
-6cdd 44f9401e bpatch patch1e_2 ,mem_patch1e 
-6cde c5146cc1 bmark1 mark_eeprom_size ,iicd_read_eep_size_2k_lcadcode 
-6cdf 58000004 setarg 4 
-6ce0 67f10092 store 2 ,core_iicd_txlen 
-6ce1 7001bda0 jam 0xa0 ,mem_iicd_tbuf 
-6ce2 7001c0a1 jam 0xa1 ,mem_iicd_tbuf + 3 
-
-iicd_read_eep_common:
-6ce3 580001bd setarg mem_iicd_tbuf 
-6ce4 67f10094 store 2 ,core_iicd_txaddr 
-6ce5 60590098 storet 2 ,core_iicd_rxlen 
-6ce6 62310096 storer rega ,2 ,core_iicd_rxaddr 
-6ce7 58000002 setarg 2 
-6ce8 2a2c000f isolate0 15 ,rega 
-6ce9 7920fe00 setflag true ,0 ,pdata 
-6cea 67f0808a store 1 ,core_iicd_ctrl 
-6ceb 70800604 jam iicd_start ,core_misc_ctrl 
-6cec d8e00005 arg iicd_done ,queue 
-6ced 20406af0 call decrypt_code 
-6cee 20406cb4 call wait_iicd_done 
-6cef 2feffe04 isolate1 iicd_crcok ,pdata 
-6cf0 20406ae9 call set_ucode_status 
-6cf1 c5146cf5 bmark1 mark_eeprom_size ,iicd_read_eep_load_code_size_2k 
-
-iicd_inc_addr:
-6cf2 6fe101be fetch 2 ,mem_addr_mi 
-6cf3 1ff0fe00 byteswap pdata ,pdata 
-6cf4 20206cf6 branch iicd_set_addr 
-
-iicd_read_eep_load_code_size_2k:
-6cf5 6fe081be fetch 1 ,mem_addr_mi 
-
-iicd_set_addr:
-6cf6 9840fe00 iadd temp ,pdata 
-6cf7 1ff0fe00 byteswap pdata ,pdata 
-6cf8 67e101be store 2 ,mem_addr_mi 
-6cf9 20600000 rtn 
-
-iicd_write_eep_data:
-6cfa 6fe143f4 fetch 2 ,mem_eeprom_base 
-6cfb 9a40fe00 iadd regb ,pdata 
-6cfc 67e1064e store 2 ,mem_pdatatemp 
-6cfd 44f9c01e bpatch patch1e_3 ,mem_patch1e 
-6cfe 60490656 storet 2 ,mem_temp 
-6cff 6221066d storer rega ,2 ,mem_contr 
-
-iicd_write_eep_loop:
-6d00 20406d0f call iicd_eep_transparency 
-6d01 68490666 fetcht 2 ,mem_regb 
-6d02 6a21066d fetchr rega ,2 ,mem_contr 
-6d03 6fe1064e fetch 2 ,mem_pdatatemp 
-6d04 20406d30 call iicd_write_eep 
-6d05 6fe10666 fetch 2 ,mem_regb 
-6d06 6849066d fetcht 2 ,mem_contr 
-6d07 98408400 iadd temp ,temp 
-6d08 6049066d storet 2 ,mem_contr 
-6d09 6849064e fetcht 2 ,mem_pdatatemp 
-6d0a 98408400 iadd temp ,temp 
-6d0b 6049064e storet 2 ,mem_pdatatemp 
-6d0c 6fe10656 fetch 2 ,mem_temp 
-6d0d 243a6d00 nbranch iicd_write_eep_loop ,blank 
-6d0e 20600000 rtn 
-
-iicd_eep_transparency:
-6d0f 44fa401e bpatch patch1e_4 ,mem_patch1e 
-6d10 6fe0c3fd fetch 1 ,mem_eeprom_block_size 
-6d11 1fe0ffff increase -1 ,pdata 
-6d12 6849064e fetcht 2 ,mem_pdatatemp 
-6d13 9841fe00 ior temp ,pdata 
-6d14 1fe0fe01 increase 1 ,pdata 
-6d15 67e1866a store 3 ,mem_regc 
-6d16 6fe10656 fetch 2 ,mem_temp 
-6d17 9840fe00 iadd temp ,pdata 
-6d18 6849866a fetcht 3 ,mem_regc 
-6d19 98467e00 isub temp ,pdata 
-6d1a 24216d21 nbranch iicd_eep_deal_short_packet ,positive 
-6d1b 67e10656 store 2 ,mem_temp 
-6d1c 6fe1866a fetch 3 ,mem_regc 
-6d1d 6849064e fetcht 2 ,mem_pdatatemp 
-6d1e 98467e00 isub temp ,pdata 
-6d1f 67e10666 store 2 ,mem_regb 
-6d20 20600000 rtn 
-
-iicd_eep_deal_short_packet:
-6d21 6fe10656 fetch 2 ,mem_temp 
-6d22 67e10666 store 2 ,mem_regb 
-6d23 58000000 setarg 0 
-6d24 67e10656 store 2 ,mem_temp 
-6d25 20600000 rtn 
-
-iicd_write_eep_size_2k:
-6d26 1a427e00 copy regb ,pdata 
-6d27 18408402 increase 2 ,temp 
-6d28 60590092 storet 2 ,core_iicd_txlen 
-6d29 1a20a3fe increase -2 ,rega 
-6d2a e8418011 ifetcht 3 ,rega 
-6d2b 18422400 copy temp ,regb 
-6d2c d84000a0 arg 0xa0 ,temp 
-6d2d e0408011 istoret 1 ,rega 
-6d2e e7e08005 istore 1 ,contw 
-6d2f 20206d3d branch iicd_write_eep_common 
-
-iicd_write_eep:
-6d30 1fe22400 copy pdata ,regb 
-6d31 44fac01e bpatch patch1e_5 ,mem_patch1e 
-6d32 c5146d26 bmark1 mark_eeprom_size ,iicd_write_eep_size_2k 
-6d33 1a427e00 copy regb ,pdata 
-6d34 18408403 increase 3 ,temp 
-6d35 60590092 storet 2 ,core_iicd_txlen 
-6d36 1a20a3fd increase -3 ,rega 
-6d37 e8418011 ifetcht 3 ,rega 
-6d38 18422400 copy temp ,regb 
-6d39 d84000a0 arg 0xa0 ,temp 
-6d3a e0408011 istoret 1 ,rega 
-6d3b 1ff0fe00 byteswap pdata ,pdata 
-6d3c e7e10005 istore 2 ,contw 
-
-iicd_write_eep_common:
-6d3d 62310094 storer rega ,2 ,core_iicd_txaddr 
-6d3e 58000000 setarg 0 
-6d3f 67f10098 store 2 ,core_iicd_rxlen 
-6d40 70808a01 jam 1 ,core_iicd_ctrl 
-6d41 70800604 jam iicd_start ,core_misc_ctrl 
-6d42 20406cb4 call wait_iicd_done 
-6d43 e2418011 istorer regb ,3 ,rega 
-
-iic_check_eeprom_standby:
-6d44 44fb401e bpatch patch1e_6 ,mem_patch1e 
-6d45 7001c000 jam 0 ,mem_iicd_tbuf + 3 
-
-iic_check_eeprom_standby_wait:
-6d46 58000001 setarg 1 
-6d47 67f10092 store 2 ,core_iicd_txlen 
-6d48 7001bda0 jam 0xa0 ,mem_iicd_tbuf 
-6d49 580001bd setarg mem_iicd_tbuf 
-6d4a 67f10094 store 2 ,core_iicd_txaddr 
-6d4b 58000000 setarg 0 
-6d4c 67f10098 store 2 ,core_iicd_rxlen 
-6d4d 67f10096 store 2 ,core_iicd_rxaddr 
-6d4e 58000003 setarg 3 
-6d4f 67f0808a store 1 ,core_iicd_ctrl 
-6d50 70800604 jam iicd_start ,core_misc_ctrl 
-6d51 20406cb4 call wait_iicd_done 
-6d52 6ff08128 fetch 1 ,core_dma_status 
-6d53 c4030000 rtnbit0 iicd_ack 
-6d54 200005dc nop 1500 
-6d55 6fe081c0 fetch 1 ,mem_iicd_tbuf + 3 
-6d56 1fe0fe01 increase 1 ,pdata 
-6d57 67e081c0 store 1 ,mem_iicd_tbuf + 3 
-6d58 1fe67c28 sub pdata ,40 ,null 
-6d59 24610000 nrtn positive 
-6d5a 20206d46 branch iic_check_eeprom_standby_wait 
-
-uarta_init_dma_mem:
-6d5b 20407dbc call enable_user 
-6d5c 20206d5d branch uart_init_dma_mem 
-
-uart_init_dma_mem:
-6d5d 1ff10400 rshift16 pdata ,temp 
-6d5e 20546d81 call uarta_init_rx ,user 
-6d5f 1fef7e00 rshift32 pdata ,pdata 
-6d60 1ff10400 rshift16 pdata ,temp 
-6d61 20546d7d call uarta_init_tx ,user 
-6d62 6ff10050 fetch 2 ,core_clkoff 
-6d63 793ffe0f set0 clock_off_uart ,pdata 
-6d64 67f10050 store 2 ,core_clkoff 
-6d65 20600000 rtn 
-
-uarta_init_baud_rate:
-6d66 67f10052 store uart_baud_len ,core_uart_baud 
-6d67 20600000 rtn 
-
-uarta_calc_baud_rate_config:
-6d68 20406d6a call uart_calc_baud_rate_config 
-6d69 20206d66 branch uarta_init_baud_rate 
-
-uart_calc_baud_rate_config:
-6d6a 20406d6f call uart_calc_baud_rate_config_choice_uart_clock 
-6d6b 9846fc00 idiv temp 
-6d6c 20407d64 call wait_div_end 
-6d6d 1807fe00 quotient pdata 
-6d6e 20600000 rtn 
-
-uart_calc_baud_rate_config_choice_uart_clock:
-6d6f 6ff08043 fetch 1 ,core_uart_clksel 
-6d70 c3006d73 bbit0 uart_clock_select_bit ,uart_calc_baud_rate_config_choice_uart_clock_crystal 
-6d71 5adc6c00 setarg uart_clock_freq_48m 
-6d72 20600000 rtn 
-
-uart_calc_baud_rate_config_choice_uart_clock_crystal:
-6d73 596e3600 setarg uart_clock_freq_24m 
-6d74 20600000 rtn 
-
-uart_clock_select_main_freq_crystal:
-6d75 6ff08043 fetch 1 ,core_uart_clksel 
-6d76 1fe17efe and pdata ,uart_clock_select_crystal ,pdata 
-6d77 67f08043 store 1 ,core_uart_clksel 
-6d78 20600000 rtn 
-
-uart_clock_select_main_freq_dpll:
-6d79 6ff08043 fetch 1 ,core_uart_clksel 
-6d7a 1fe1fe01 or pdata ,uart_clock_select_dpll ,pdata 
-6d7b 67f08043 store 1 ,core_uart_clksel 
-6d7c 20600000 rtn 
-
-uarta_init_tx:
-6d7d 67f1005a store 2 ,core_uart_tsaddr 
-6d7e 67f1005e store 2 ,core_uart_twptr 
-6d7f 6059005c storet 2 ,core_uart_teaddr 
-6d80 20600000 rtn 
-
-uarta_init_rx:
-6d81 67f10054 store 2 ,core_uart_rsaddr 
-6d82 67f10058 store 2 ,core_uart_rrptr 
-6d83 60590056 storet 2 ,core_uart_readdr 
-6d84 20600000 rtn 
-
-uarta_prepare_tx:
-6d85 6951005a fetchr contus ,2 ,core_uart_tsaddr 
-6d86 6a11005c fetchr contue ,2 ,core_uart_teaddr 
-6d87 6871005e fetchr contu ,2 ,core_uart_twptr 
-6d88 20600000 rtn 
-
-uarta_prepare_rx:
-6d89 69510054 fetchr contus ,2 ,core_uart_rsaddr 
-6d8a 6a110056 fetchr contue ,2 ,core_uart_readdr 
-6d8b 68710058 fetchr contu ,2 ,core_uart_rrptr 
-6d8c 20600000 rtn 
-
-uarta_send:
-6d8d 6071005e storer contu ,2 ,core_uart_twptr 
-6d8e 20600000 rtn 
-
-uarta_rxdone:
-6d8f 60710058 storer contu ,2 ,core_uart_rrptr 
-6d90 20600000 rtn 
-
-uarta_clear_current_rx:
-6d91 20406d89 call uarta_prepare_rx 
-6d92 6ff10112 fetch 2 ,core_uart_rxitems 
-6d93 98608600 iadd contu ,contu 
-6d94 20206d8f branch uarta_rxdone 
-
-uarta_prepare_tx_register_push:
-6d95 20406d99 call uart_register_push 
-6d96 20206d85 branch uarta_prepare_tx 
-
-uarta_send_register_pop:
-6d97 20406d8d call uarta_send 
-6d98 20206d9d branch uart_register_pop 
-
-uart_register_push:
-6d99 60610675 storer contu ,2 ,mem_contu 
-6d9a 61410673 storer contus ,2 ,mem_contue 
-6d9b 62010671 storer contue ,2 ,mem_contus 
-6d9c 20600000 rtn 
-
-uart_register_pop:
-6d9d 68610675 fetchr contu ,2 ,mem_contu 
-6d9e 69410673 fetchr contus ,2 ,mem_contue 
-6d9f 6a010671 fetchr contue ,2 ,mem_contus 
-6da0 20600000 rtn 
-
-wait_uarttx:
-6da1 6ff1010e fetch 2 ,core_uart_txitems 
-6da2 243a6da1 nbranch wait_uarttx ,blank 
-6da3 20600000 rtn 
-
-uart_copy_tx_bytes_fast:
-6da4 1f227e00 deposit loopcnt 
-6da5 207a0000 rtn blank 
-
-uart_copy_tx_bytes_fast_loop:
-6da6 1f20f3f8 increase -8 ,loopcnt 
-6da7 20416db1 call uart_tx_8_bytes ,positive 
-6da8 20628000 rtn zero 
-6da9 20216da6 branch uart_copy_tx_bytes_fast_loop ,positive 
-6daa 1f20f208 increase 8 ,loopcnt 
-
-uart_copy_tx_bytes_fast_loop_four:
-6dab 1f20f3fc increase -4 ,loopcnt 
-6dac 20416db4 call uart_tx_4_bytes ,positive 
-6dad 20628000 rtn zero 
-6dae 20216dab branch uart_copy_tx_bytes_fast_loop_four ,positive 
-6daf 1f20f204 increase 4 ,loopcnt 
-6db0 20206db7 branch uart_copy_tx_bytes 
-
-uart_tx_8_bytes:
-6db1 efe40006 ifetch 8 ,contr 
-6db2 e7e40003 istore 8 ,contu 
-6db3 20600000 rtn 
-
-uart_tx_4_bytes:
-6db4 efe20006 ifetch 4 ,contr 
-6db5 e7e20003 istore 4 ,contu 
-6db6 20600000 rtn 
-
-uart_copy_tx_bytes:
-6db7 1f227e00 deposit loopcnt 
-6db8 207a0000 rtn blank 
-
-uart_copy_tx_bytes_loop:
-6db9 efe08006 ifetch 1 ,contr 
-6dba e7e08003 istore 1 ,contu 
-6dbb c2006db9 loop uart_copy_tx_bytes_loop 
-6dbc 20600000 rtn 
-
-uart_copy_rx_bytes_fast:
-6dbd 1f227e00 deposit loopcnt 
-6dbe 207a0000 rtn blank 
-
-uart_copy_rx_bytes_fast_loop:
-6dbf 1f20f3f8 increase -8 ,loopcnt 
-6dc0 20416dca call uart_rx_8_bytes ,positive 
-6dc1 20628000 rtn zero 
-6dc2 20216dbf branch uart_copy_rx_bytes_fast_loop ,positive 
-6dc3 1f20f208 increase 8 ,loopcnt 
-
-uart_copy_rx_bytes_fast_loop_four:
-6dc4 1f20f3fc increase -4 ,loopcnt 
-6dc5 20416dcd call uart_rx_4_bytes ,positive 
-6dc6 20628000 rtn zero 
-6dc7 20216dc4 branch uart_copy_rx_bytes_fast_loop_four ,positive 
-6dc8 1f20f204 increase 4 ,loopcnt 
-6dc9 20206dd0 branch uart_copy_rx_bytes 
-
-uart_rx_8_bytes:
-6dca efe40003 ifetch 8 ,contu 
-6dcb e7e40005 istore 8 ,contw 
-6dcc 20600000 rtn 
-
-uart_rx_4_bytes:
-6dcd efe20003 ifetch 4 ,contu 
-6dce e7e20005 istore 4 ,contw 
-6dcf 20600000 rtn 
-
-uart_copy_rx_bytes:
-6dd0 1f227e00 deposit loopcnt 
-6dd1 207a0000 rtn blank 
-
-uart_copy_rx_bytes_loop:
-6dd2 efe08003 ifetch 1 ,contu 
-6dd3 e7e08005 istore 1 ,contw 
-6dd4 c2006dd2 loop uart_copy_rx_bytes_loop 
-6dd5 20600000 rtn 
-
-app_store_nvram_event:
-6dd6 70064d3d jam bt_evt_store_nvram ,mem_fifo_temp 
-6dd7 20207819 branch ui_ipc_send_event 
-
-check_51cmd_update_device_record:
-6dd8 44fbc01e bpatch patch1e_7 ,mem_patch1e 
-6dd9 6fe0c403 fetch 1 ,mem_nv_data_number 
-6dda 207a0000 rtn blank 
-6ddb 20406e79 call check_nvram 
-6ddc 2042ee7f call init_device_list ,zero 
-6ddd 20407dc2 call disable_user2 
-6dde 20406e0b call nvram_find_addr_from_bd_list 
-
-write_device_record:
-6ddf 6fe0c403 fetch 1 ,mem_nv_data_number 
-6de0 1fe22600 icopy regc 
-6de1 68494401 fetcht 2 ,mem_nv_data_ptr 
-6de2 60490033 storet 2 ,mem_list_item_ptr 
-
-write_device_loop_find:
-6de3 1a627e00 copy regc ,pdata 
-6de4 203a6dd6 branch app_store_nvram_event ,blank 
-6de5 1a60a7ff increase -1 ,regc 
-6de6 18422200 copy temp ,rega 
-6de7 efe08011 ifetch 1 ,rega 
-6de8 68488031 fetcht 1 ,mem_select_list_item 
-6de9 98467c00 isub temp ,null 
-6dea 2042edf3 call set_index_finded_device ,zero 
-6deb 20216def branch write_device_loop_find0 ,positive 
-6dec efe08011 ifetch 1 ,rega 
-6ded 1fe0fe01 increase 1 ,pdata 
-6dee e7e08011 istore 1 ,rega 
-
-write_device_loop_find0:
-6def 68490033 fetcht 2 ,mem_list_item_ptr 
-6df0 18408422 increase nv_data_len ,temp 
-6df1 60490033 storet 2 ,mem_list_item_ptr 
-6df2 20206de3 branch write_device_loop_find 
-
-set_index_finded_device:
-6df3 58000000 setarg 0 
-6df4 e7e08011 istore 1 ,rega 
-6df5 6fe08032 fetch 1 ,mem_temp_reconn_record 
-6df6 e7e08005 istore 1 ,contw 
-6df7 c099ee00 bne rec_3_mode ,set_index_finded_device_ble_mode 
-
-set_index_find_device_master_addr:
-6df8 efe30006 ifetch 6 ,contr 
-6df9 e7e40005 istore 8 ,contw 
-6dfa 58000000 setarg 0 
-6dfb e7e40005 istore 8 ,contw 
-6dfc 1a420c00 copy regb ,contr 
-
-store_rec_data_common:
-6dfd 20407c91 call memcpy16 
-6dfe 18007c01 force 1 ,null 
-6dff 20600000 rtn 
-
-set_index_finded_device_ble_mode:
-6e00 c01b6e04 beq rec_4_mode_random_resolvable_private_address ,set_index_finded_device_irk 
-6e01 c01bee08 beq rec_4_mode_random_non_resolvable_private_address ,set_index_finded_device_ediv 
-6e02 da40428c arg mem_le_ltk ,regb 
-6e03 20206df8 branch set_index_find_device_master_addr 
-
-set_index_finded_device_irk:
-6e04 d8c0430f arg mem_le_irk ,contr 
-6e05 20407c91 call memcpy16 
-
-store_ble_rec_data_common:
-6e06 d8c0428c arg mem_le_ltk ,contr 
-6e07 20206dfd branch store_rec_data_common 
-
-set_index_finded_device_ediv:
-6e08 d8c04307 arg mem_le_rand ,contr 
-6e09 20407c91 call memcpy16 
-6e0a 20206e06 branch store_ble_rec_data_common 
-
-nvram_find_addr_from_bd_list:
-6e0b 44fc401f bpatch patch1f_0 ,mem_patch1f 
-6e0c 20407dbe call disable_user 
-6e0d 6fe0c403 fetch 1 ,mem_nv_data_number 
-6e0e 207a0000 rtn blank 
-6e0f 6fe14500 fetch 2 ,mem_ui_state_map 
-6e10 c4048000 rtnbit0 ui_state_ble_connected 
-
-find_addr_from_bd_list_ble_mode:
-6e11 6fe0c2cd fetch 1 ,mem_le_conn_peer_addr_type 
-6e12 c0006e26 beq master_public_addr ,find_addr_from_bd_list_public_device_addr 
-6e13 6fe0817d fetch 1 ,mem_le_plap + 5 
-6e14 2fe180c0 compare 0xc0 ,pdata ,0xc0 
-6e15 2020ee19 branch find_addr_from_bd_list_static_addr ,true 
-6e16 2fe18040 compare 0x40 ,pdata ,0xc0 
-6e17 2020ee2b branch find_addr_from_bd_list_random_addr ,true 
-6e18 20206e20 branch find_addr_from_bd_list_random_non_resolvable_private_address_sc_or_legacy 
-
-find_addr_from_bd_list_static_addr:
-6e19 20366e1d branch find_addr_from_bd_list_static_addr_reconnect ,user2 
-6e1a 6fe0c2c4 fetch 1 ,mem_le_preq_init_key_distribution 
-6e1b c300ee26 bbit0 le_initator_irk_bit ,find_addr_from_bd_list_public_device_addr 
-6e1c 20206e20 branch find_addr_from_bd_list_static_addr_sc_or_legacy 
-
-find_addr_from_bd_list_static_addr_reconnect:
-6e1d 20406e26 call find_addr_from_bd_list_public_device_addr 
-6e1e 20740000 rtn user 
-6e1f 20206e20 branch find_addr_from_bd_list_static_addr_sc_or_legacy 
-
-find_addr_from_bd_list_static_addr_sc_or_legacy:
-
-find_addr_from_bd_list_random_non_resolvable_private_address_sc_or_legacy:
-6e20 6fe0c300 fetch 1 ,mem_le_pairing_mode 
-6e21 c283ee23 bbit1 le_pairing_mode_secure_connect_bit ,find_addr_from_bd_list_random_non_resolvable_private_address_sc 
-6e22 20206e29 branch find_addr_from_bd_list_random_non_resolvable_private_address 
-
-find_addr_from_bd_list_static_addr_sc:
-
-find_addr_from_bd_list_random_non_resolvable_private_address_sc:
-6e23 6fe30178 fetch 6 ,mem_le_plap 
-6e24 67e44307 store 8 ,mem_le_rand 
-6e25 20206e29 branch find_addr_from_bd_list_random_non_resolvable_private_address 
-
-find_addr_from_bd_list_public_device_addr:
-6e26 70003235 jam rec_4_mode_static_address ,mem_temp_reconn_record 
-6e27 6fe30178 fetch 6 ,mem_le_plap 
-6e28 20206e2d branch find_addr_from_bd_list_common 
-
-find_addr_from_bd_list_random_non_resolvable_private_address:
-6e29 70003237 jam rec_4_mode_random_non_resolvable_private_address ,mem_temp_reconn_record 
-6e2a 20206e2d branch find_addr_from_bd_list_common 
-
-find_addr_from_bd_list_random_addr:
-6e2b 70003236 jam rec_4_mode_random_resolvable_private_address ,mem_temp_reconn_record 
-6e2c 20206e2d branch find_addr_from_bd_list_common 
-
-find_addr_from_bd_list_common:
-6e2d 44fcc01f bpatch patch1f_1 ,mem_patch1f 
-6e2e 6fe14401 fetch 2 ,mem_nv_data_ptr 
-6e2f e840803f ifetcht 1 ,pdata 
-6e30 1fe0fe01 pincrease 1 
-6e31 67e10033 store 2 ,mem_list_item_ptr 
-6e32 60488031 storet 1 ,mem_select_list_item 
-6e33 6fe0c403 fetch 1 ,mem_nv_data_number 
-6e34 1fe22600 icopy regc 
-
-nvram_find_addr_from_list:
-6e35 6fe10033 fetch 2 ,mem_list_item_ptr 
-6e36 1fe22200 copy pdata ,rega 
-6e37 20406e45 call nvram_find_addr_from_list_compare 
-6e38 20740000 rtn user 
-6e39 68490033 fetcht 2 ,mem_list_item_ptr 
-6e3a 18408422 increase nv_data_len ,temp 
-6e3b 60490033 storet 2 ,mem_list_item_ptr 
-6e3c 184085ff increase -1 ,temp 
-6e3d efe08002 ifetch 1 ,temp 
-6e3e 67e08031 store 1 ,mem_select_list_item 
-6e3f 1a60a7ff increase -1 ,regc 
-6e40 2422ee35 nbranch nvram_find_addr_from_list ,zero 
-6e41 6fe0c403 fetch 1 ,mem_nv_data_number 
-6e42 1fe0ffff pincrease decreased_one 
-6e43 67e08031 store 1 ,mem_select_list_item 
-6e44 20600000 rtn 
-
-nvram_find_addr_from_list_compare:
-6e45 6fe08032 fetch 1 ,mem_temp_reconn_record 
-6e46 c099ee4c bne rec_3_mode ,find_addr_from_list_compare_ble_mode 
-
-find_master_addr_from_list_compare:
-6e47 da400032 arg mem_temp_reconn_record ,regb 
-6e48 df200007 arg 7 ,loopcnt 
-6e49 20407d66 call string_compare 
-6e4a 2022fdbc branch enable_user ,zero 
-6e4b 20600000 rtn 
-
-find_addr_from_list_compare_ble_mode:
-6e4c c01b6e4f beq rec_4_mode_random_resolvable_private_address ,find_irk_form_list_compare 
-6e4d c01bee6a beq rec_4_mode_random_non_resolvable_private_address ,find_ediv_form_list_compare 
-6e4e 20206e47 branch find_master_addr_from_list_compare 
-
-find_irk_form_list_compare:
-6e4f e8408011 ifetcht 1 ,rega 
-6e50 98467c00 isub temp ,null 
-6e51 24628000 nrtn zero 
-6e52 d8a0067f arg mem_le_prand ,contw 
-6e53 df200010 arg 16 ,loopcnt 
-6e54 20407ca3 call clear_mem 
-6e55 6fe1817b fetch 3 ,mem_le_plap + 3 
-6e56 67e1867f store 3 ,mem_le_prand 
-6e57 20406e61 call genernate_master_macaddress 
-6e58 6fe1069c fetch 2 ,mem_le_aes_128 + 13 
-6e59 1ff0fe00 byteswap pdata ,pdata 
-6e5a 1fed0400 lshift8 pdata ,temp 
-6e5b efe08006 ifetch 1 ,contr 
-6e5c 9840fe00 iadd temp ,pdata 
-6e5d 68498178 fetcht 3 ,mem_le_plap 
-6e5e 98467c00 isub temp ,null 
-6e5f 2022fdbc branch enable_user ,zero 
-6e60 20600000 rtn 
-
-genernate_master_macaddress:
-6e61 d8c0067f arg mem_le_prand ,contr 
-6e62 2040734f call load_data128 
-6e63 efe08011 ifetch 1 ,rega 
-6e64 20407350 call load_regext 
-6e65 18006c38 force 0x38 ,aes_ctrl 
-6e66 18006c00 force 0x0 ,aes_ctrl 
-6e67 204072bd call wait_aes 
-6e68 d8a0068f arg mem_le_aes_128 ,contw 
-6e69 20207363 branch store_aes_result 
-
-find_ediv_form_list_compare:
-6e6a e8408011 ifetcht 1 ,rega 
-6e6b 98467c00 isub temp ,null 
-6e6c 24628000 nrtn zero 
-6e6d 18c22200 copy contr ,rega 
-6e6e 18c0a608 add contr ,8 ,regc 
-6e6f da404307 arg mem_le_rand ,regb 
-6e70 df200008 arg 8 ,loopcnt 
-6e71 20407d66 call string_compare 
-6e72 2022fdbc branch enable_user ,zero 
-6e73 1a622200 copy regc ,rega 
-6e74 da40430f arg mem_le_irk ,regb 
-6e75 df200008 arg 8 ,loopcnt 
-6e76 20407d66 call string_compare 
-6e77 2022fdbc branch enable_user ,zero 
-6e78 20600000 rtn 
-
-check_nvram:
-6e79 6fe14401 fetch 2 ,mem_nv_data_ptr 
-6e7a e840803f ifetcht 1 ,pdata 
-6e7b 1fe0fe22 pincrease nv_data_len 
-6e7c efe0803f ifetch 1 ,pdata 
-6e7d 98467c00 isub temp ,null 
-6e7e 20600000 rtn 
-
-init_device_list:
-6e7f 6fe0c403 fetch 1 ,mem_nv_data_number 
-6e80 1fe27200 icopy loopcnt 
-6e81 68494401 fetcht 2 ,mem_nv_data_ptr 
-6e82 58000000 setarg 0 
-
-init_device_list_loop:
-6e83 e7e08002 istore 1 ,temp 
-6e84 18408422 increase nv_data_len ,temp 
-6e85 1fe0fe01 pincrease 1 
-6e86 c2006e83 loop init_device_list_loop 
-6e87 20600000 rtn 
-
-load_device_list_mode_4:
-6e88 20407dc0 call enable_user2 
-6e89 20406e0b call nvram_find_addr_from_bd_list 
-6e8a 24346e93 nbranch clear_ltk_exists ,user 
-6e8b 6fe10033 fetch 2 ,mem_list_item_ptr 
-6e8c 1fe08c01 add pdata ,1 ,contr 
-6e8d d8a0430f arg mem_le_irk ,contw 
-6e8e 20407c91 call memcpy16 
-6e8f d8a0428c arg mem_le_ltk ,contw 
-6e90 20407c91 call memcpy16 
-6e91 70429c01 jam 1 ,mem_ltk_exists 
-6e92 20600000 rtn 
-
-clear_ltk_exists:
-6e93 70429c00 jam 0 ,mem_ltk_exists 
-6e94 20600000 rtn 
-
-eeprom_store_le_reconn_info:
-6e95 70003234 jam rec_4_mode ,mem_record_bt_mode 
-6e96 20206e97 branch eeprom_store_reconn_info 
-
-eeprom_store_reconn_info:
-6e97 6fe0c3cf fetch 1 ,mem_device_option 
-6e98 c0056dd8 beq dvc_op_module ,check_51cmd_update_device_record 
-6e99 c0045569 beq dvc_op_mouse ,mouse_store_remote_bdaddr 
-6e9a c007c8f2 beq dvc_op_keyboard ,keyboard_store_remote_bdaddr 
-6e9b 20600000 rtn 
-
-get_gpio_wakeup_index:
-6e9c 18417e1f and temp ,0x1f ,pdata 
-6e9d 1fe37e00 rshift pdata ,pdata 
-6e9e d8a00016 arg mem_gpio_wakeup_cfg ,contw 
-6e9f 98a08a00 iadd contw ,contw 
-6ea0 de0000f0 arg 0xf0 ,alarm 
-6ea1 284c0000 isolate0 0 ,temp 
-6ea2 20608000 rtn true 
-6ea3 de00000f arg 0xf ,alarm 
-6ea4 20600000 rtn 
-
-gpio_set_wake_by_current_state:
-6ea5 44fd401f bpatch patch1f_2 ,mem_patch1f 
-6ea6 18467cff sub temp ,gpio_disable ,null 
-6ea7 20628000 rtn zero 
-6ea8 79200407 set1 gpio_active_bit ,temp 
-6ea9 20406ee0 call gpio_get_bit 
-6eaa 2420eebc nbranch gpio_set_qdec_mode ,true 
-6eab 7d208407 nsetflag true ,gpio_active_bit ,temp 
-
-gpio_set_wake:
-6eac 44fdc01f bpatch patch1f_3 ,mem_patch1f 
-6ead 18467cff sub temp ,ui_button_gpio_disable ,null 
-6eae 20628000 rtn zero 
-6eaf d9000004 arg 4 ,debug 
-6eb0 284ffe07 isolate1 gpio_active_bit ,temp 
-6eb1 2020eeb3 branch gpio_set_wake_high ,true 
-6eb2 d9000002 arg 2 ,debug 
-
-gpio_set_wake_high:
-6eb3 20406e9c call get_gpio_wakeup_index 
-6eb4 284c0000 isolate0 0 ,temp 
-6eb5 2020eeb7 branch gpio_set_wake_low4bit ,true 
-6eb6 19121000 lshift4 debug ,debug 
-
-gpio_set_wake_low4bit:
-6eb7 efe08005 ifetch 1 ,contw 
-6eb8 9e017e00 iand alarm ,pdata 
-6eb9 9901fe00 ior debug ,pdata 
-6eba e7e08005 istore 1 ,contw 
-6ebb 20600000 rtn 
-
-gpio_set_qdec_mode:
-6ebc 70488c01 jam 1 ,mem_qdec_set_flag 
-6ebd 20406f0b call gpio_set_high_impedance 
-6ebe d9000006 arg 6 ,debug 
-6ebf 20206eb3 branch gpio_set_wake_high 
-
-gpio_set_low_pullup:
-6ec0 44fe401f bpatch patch1f_4 ,mem_patch1f 
-6ec1 18467cff sub temp ,ui_button_gpio_disable ,null 
-6ec2 20628000 rtn zero 
-6ec3 d9000001 arg 1 ,debug 
-6ec4 20406e9c call get_gpio_wakeup_index 
-6ec5 284c0000 isolate0 0 ,temp 
-6ec6 2020eec8 branch gpio_set_low_pullup_low4bit ,true 
-6ec7 19121000 lshift4 debug ,debug 
-
-gpio_set_low_pullup_low4bit:
-6ec8 efe08005 ifetch 1 ,contw 
-6ec9 9e017e00 iand alarm ,pdata 
-6eca 9901fe00 ior debug ,pdata 
-6ecb e7e08005 istore 1 ,contw 
-6ecc 20600000 rtn 
-
-gpio_clr_wake:
-6ecd 44fec01f bpatch patch1f_5 ,mem_patch1f 
-6ece 18467cff sub temp ,ui_button_gpio_disable ,null 
-6ecf 20628000 rtn zero 
-6ed0 20406e9c call get_gpio_wakeup_index 
-6ed1 efe08005 ifetch 1 ,contw 
-6ed2 9e017e00 iand alarm ,pdata 
-6ed3 e7e08005 istore 1 ,contw 
-6ed4 20600000 rtn 
-
-gpio_config_input_nowake:
-6ed5 20406ecd call gpio_clr_wake 
-6ed6 20206eda branch gpio_config_input_without_wake 
-
-gpio_config_input:
-6ed7 18467cff sub temp ,ui_button_gpio_disable ,null 
-6ed8 20628000 rtn zero 
-6ed9 2455eeac ncall gpio_set_wake ,wake 
-
-gpio_config_input_without_wake:
-6eda 20406f10 call gpio_addr 
-6edb 58000000 setarg 0 
-6edc 284ffe07 isolate1 gpio_active_bit ,temp 
-6edd 7d20fe06 nsetflag true ,6 ,pdata 
-6ede 7920fe07 setflag true ,7 ,pdata 
-6edf 20206f09 branch gpio_write 
-
-gpio_get_bit:
-6ee0 44ff401f bpatch patch1f_6 ,mem_patch1f 
-6ee1 d8a0811c arg core_gpio_in ,contw 
-6ee2 18410e07 and temp ,0x07 ,queue 
-6ee3 18497e00 rshift3 temp ,pdata 
-6ee4 1fe17e03 and_into 3 ,pdata 
-6ee5 98a08a00 iadd contw ,contw 
-6ee6 efe08005 ifetch 1 ,contw 
-6ee7 284ffe07 isolate1 gpio_active_bit ,temp 
-6ee8 2020eeeb branch gpio_get_bit_reverse ,true 
-6ee9 afec0000 qisolate0 pdata 
-6eea 20600000 rtn 
-
-gpio_get_bit_reverse:
-6eeb afefffff qisolate1 pdata 
-6eec 20600000 rtn 
-
-gpio_out_inactive:
-6eed 18467cff sub temp ,ui_button_gpio_disable ,null 
-6eee 20628000 rtn zero 
-6eef 2fcffe07 isolate1 gpio_active_bit ,null 
-6ef0 20206ef4 branch gpio_out_flag 
-
-gpio_config_output:
-
-gpio_out_active:
-6ef1 18467cff sub temp ,ui_button_gpio_disable ,null 
-6ef2 20628000 rtn zero 
-6ef3 2fcc0007 isolate0 gpio_active_bit ,null 
-
-gpio_out_flag:
-6ef4 58000000 setarg 0 
-6ef5 7d20fe07 nsetflag true ,gpio_active_bit ,pdata 
-6ef6 98428400 ixor temp ,temp 
-
-gpio_out:
-6ef7 20406f10 call gpio_addr 
-6ef8 5800003f setarg gpcfg_output_high 
-6ef9 284ffe07 isolate1 gpio_active_bit ,temp 
-6efa 7920fe00 setflag true ,0 ,pdata 
-6efb 20206f09 branch gpio_write 
-
-gpio_check_active:
-6efc 18467cff sub temp ,ui_button_gpio_disable ,null 
-6efd 2022fdc6 branch disable_true ,zero 
-6efe 20406f10 call gpio_addr 
-6eff efe08005 ifetch 1 ,contw 
-6f00 c2806f03 bbit1 0 ,gpio_check_active_high 
-6f01 284c0007 isolate0 gpio_active_bit ,temp 
-6f02 20600000 rtn 
-
-gpio_check_active_high:
-6f03 284ffe07 isolate1 gpio_active_bit ,temp 
-6f04 20600000 rtn 
-
-gpio_set_analog:
-6f05 18467cff sub temp ,ui_button_gpio_disable ,null 
-6f06 20628000 rtn zero 
-6f07 20406f10 call gpio_addr 
-6f08 580000c0 setarg gpcfg_no_ie 
-
-gpio_write:
-6f09 e7e08005 istore 1 ,contw 
-6f0a 20600000 rtn 
-
-gpio_set_high_impedance:
-6f0b 18467cff sub temp ,ui_button_gpio_disable ,null 
-6f0c 20628000 rtn zero 
-6f0d 20406f10 call gpio_addr 
-6f0e 58000000 setarg gpcfg_high_impedance 
-6f0f 20206f09 branch gpio_write 
-
-gpio_addr:
-6f10 18417e3f and temp ,0x3f ,pdata 
-6f11 1fe67c0f sub pdata ,gpio_number + -1 ,null 
-6f12 24216f16 nbranch gpio_addr_ext ,positive 
-6f13 d8a08070 arg core_gpio_conf ,contw 
-
-gpio_addr_next:
-6f14 98a08a00 iadd contw ,contw 
-6f15 20600000 rtn 
-
-gpio_addr_ext:
-6f16 d8a080d4 arg core_gpio_conf_hi ,contw 
-6f17 1fe0fff0 increase -16 ,pdata 
-6f18 20206f14 branch gpio_addr_next 
-
-gpio_config_param:
-6f19 1fe104ff and pdata ,0xff ,temp 
-6f1a 1fecfe00 rshift8 pdata ,pdata 
-6f1b 20206f1d branch gpio_config_function_int 
-
-gpio_config_function:
-6f1c c4038000 rtnbit0 gpio_active_bit 
-
-gpio_config_function_int:
-6f1d c17f8000 rtneq gpio_disable 
-6f1e 1fe17e3f and_into 0x3f ,pdata 
-6f1f 1fe67c0f sub pdata ,gpio_number + -1 ,null 
-6f20 24216f25 nbranch gpio_config_function_int_ext ,positive 
-6f21 d8a08070 arg core_gpio_conf ,contw 
-
-gpio_config_function_int_next:
-6f22 98a08a00 iadd contw ,contw 
-6f23 e0408005 istoret 1 ,contw 
-6f24 20600000 rtn 
-
-gpio_config_function_int_ext:
-6f25 d8a080d4 arg core_gpio_conf_hi ,contw 
-6f26 1fe0fff0 increase -16 ,pdata 
-6f27 20206f22 branch gpio_config_function_int_next 
-
-gpio_get_config:
-6f28 1841043f and_into 0x3f ,temp 
-6f29 18467c0f sub temp ,gpio_number + -1 ,null 
-6f2a 24216f2f nbranch gpio_get_config_ext ,positive 
-6f2b 58008070 setarg core_gpio_conf 
-
-gpio_get_config_next:
-6f2c 98408c00 iadd temp ,contr 
-6f2d efe08006 ifetch 1 ,contr 
-6f2e 20600000 rtn 
-
-gpio_get_config_ext:
-6f2f 580080d4 setarg core_gpio_conf_hi 
-6f30 184085f0 increase -16 ,temp 
-6f31 20206f2c branch gpio_get_config_next 
-
-gpio_set_before_lpm:
-6f32 df200010 arg gpio_number ,loopcnt 
-6f33 d8c08070 arg core_gpio_conf ,contr 
-
-setgpio_loop:
-6f34 18c20a00 copy contr ,contw 
-6f35 efe08006 ifetch 1 ,contr 
-6f36 c00fef45 beq gpcfg_spid_miso ,setgpio_pullup 
-6f37 c0106f45 beq gpcfg_spid_ncs ,setgpio_pullup 
-6f38 c010ef45 beq gpcfg_spid_sck ,setgpio_pullup 
-6f39 c0116f45 beq gpcfg_spid_mosi ,setgpio_pullup 
-6f3a c011ef45 beq gpcfg_spid_sdio ,setgpio_pullup 
-6f3b c0166f45 beq gpcfg_iic_scl ,setgpio_pullup 
-6f3c c016ef45 beq gpcfg_iic_sda ,setgpio_pullup 
-6f3d c0006f45 beq gpcfg_input ,setgpio_pullup 
-
-setgpio_loop_end:
-6f3e c2006f34 loop setgpio_loop 
-6f3f dfe080dc arg core_gpio_conf_hi + gpio_number_ext ,pdata 
-6f40 98c67c00 isub contr ,null 
-6f41 20628000 rtn zero 
-
-gpio_set_before_lpm_ext:
-6f42 df200008 arg gpio_number_ext ,loopcnt 
-6f43 d8c080d4 arg core_gpio_conf_hi ,contr 
-6f44 20206f34 branch setgpio_loop 
-
-setgpio_pullup:
-6f45 58000040 setarg gpcfg_pullup 
-6f46 e7e08005 istore 1 ,contw 
-6f47 20206f3e branch setgpio_loop_end 
-
-setgpio_pulldown:
-6f48 58000080 setarg gpcfg_pulldown 
-6f49 e7e08005 istore 1 ,contw 
-6f4a 20206f3e branch setgpio_loop_end 
-
-lpm_puchk_set_check:
-6f4b 6fe0c88c fetch 1 ,mem_qdec_set_flag 
-6f4c 203a6f4e branch lpm_config_puchk_disable ,blank 
-6f4d 20206f51 branch lpm_config_puchk_enable 
-
-lpm_config_puchk_disable:
-6f4e 58000010 setarg 0x10 
-
-lpm_config_puchk_set:
-6f4f 67f08141 store 1 ,core_puwakeup 
-6f50 202023c4 branch lpm_write_wait 
-
-lpm_config_puchk_enable:
-6f51 58000080 setarg 0x80 
-6f52 20206f4f branch lpm_config_puchk_set 
-
-sadc_calibration:
-6f53 44ffc01f bpatch patch1f_7 ,mem_patch1f 
-6f54 20758000 rtn wake 
-6f55 708a0777 jam 0x77 ,core_gpadc_ctrl 
-6f56 708a08c9 jam 0xc9 ,core_gpadc_cfg0 
-6f57 708a0b01 jam 0x01 ,core_gpadc_cfg3 
-6f58 6fe0c41f fetch 1 ,mem_adc_clkdiv 
-6f59 67f080cd store 1 ,core_sadc_clkdiv 
-6f5a 7080cc03 jam 0x03 ,core_sadc_ctrl 
-6f5b 2040700e call sar_adc_read_wait 
-6f5c 68590164 fetcht 2 ,core_sadc_data 
-6f5d 7080cc00 jam 0x00 ,core_sadc_ctrl 
-6f5e 708a08c1 jam 0xc1 ,core_gpadc_cfg0 
-
-sadc_cal_read:
-6f5f df200008 arg 8 ,loopcnt 
-6f60 da204428 arg mem_adc_cal_c0 ,rega 
-6f61 708a0a05 jam 0x05 ,core_gpadc_cfg2 
-
-sadc_cal_read_loop:
-6f62 6ff08a0c fetch 1 ,core_gpadc_status 
-6f63 e7e08011 istore 1 ,rega 
-6f64 1a20a201 increase 1 ,rega 
-6f65 6ff08a0a fetch 1 ,core_gpadc_cfg2 
-6f66 1fe0fe20 increase 0x20 ,pdata 
-6f67 67f08a0a store 1 ,core_gpadc_cfg2 
-6f68 c2006f62 loop sadc_cal_read_loop 
-6f69 708a0700 jam 0x00 ,core_gpadc_ctrl 
-6f6a 20600000 rtn 
-
-sadc_cal_write:
-6f6b 6ff080cc fetch 1 ,core_sadc_ctrl 
-6f6c 79207e01 set1 1 ,pdata 
-6f6d 67f080cc store 1 ,core_sadc_ctrl 
-6f6e df200008 arg 8 ,loopcnt 
-6f6f da204428 arg mem_adc_cal_c0 ,rega 
-6f70 708a0a15 jam 0x15 ,core_gpadc_cfg2 
-
-sadc_cal_write_loop:
-6f71 efe08011 ifetch 1 ,rega 
-6f72 67f08a09 store 1 ,core_gpadc_cfg1 
-6f73 1a20a201 increase 1 ,rega 
-6f74 6ff08a0a fetch 1 ,core_gpadc_cfg2 
-6f75 1fe0fe20 increase 0x20 ,pdata 
-6f76 67f08a0a store 1 ,core_gpadc_cfg2 
-6f77 c2006f71 loop sadc_cal_write_loop 
-6f78 6ff080cc fetch 1 ,core_sadc_ctrl 
-6f79 793ffe01 set0 1 ,pdata 
-6f7a 67f080cc store 1 ,core_sadc_ctrl 
-6f7b 20600000 rtn 
-
-adc_init_data:
-6f7c 47004020 bpatchx patch20_0 ,mem_patch20 
-6f7d 6fe401db fetch 8 ,mem_otp_adc 
-6f7e 207a0000 rtn blank 
-6f7f 67e44406 store 8 ,mem_reference_inter1p8v_2v_adc_io_data 
-6f80 20406b28 call enable_otp_read 
-6f81 20406a67 call loadcode_check_otp_lock 
-6f82 dfe00fc0 arg otp_offset_adc_param_l_c0 ,pdata 
-6f83 9a40a400 iadd regb ,regb 
-6f84 df20000a arg 10 ,loopcnt 
-6f85 da2001db arg mem_otp_temp ,rega 
-6f86 20406b62 call otp_read_data 
-6f87 20406b25 call disable_otp 
-6f88 6fe401db fetch 8 ,mem_otp_temp 
-6f89 207a0000 rtn blank 
-6f8a 67e4440e store 8 ,mem_adc_reference3v_gpio1v_ft_data 
-6f8b efe10006 ifetch 2 ,contr 
-6f8c e7e10005 istore 2 ,contw 
-6f8d 20600000 rtn 
-
-vdd_calculate_by_mode:
-6f8e 4700c020 bpatchx patch20_1 ,mem_patch20 
-6f8f 6fe0c41a fetch 1 ,mem_adc_reference_mode 
-6f90 c000ef93 beq sadc_reference_inter3v ,vdd_reference_inter3v_calculate 
-6f91 c0016fd1 beq sadc_reference_inter1p8v_div2 ,vdd_reference_inter1p8v_calculate 
-6f92 20206f93 branch vdd_reference_inter3v_calculate 
-
-vdd_reference_inter3v_calculate:
-6f93 6fe0c41d fetch 1 ,mem_adc_config_flag 
-6f94 c000ef97 beq adc_config_hvin ,vdd_reference_inter3v_calculate_by_mode_vdcdc 
-6f95 c0016f9e beq adc_config_gpio ,vdd_reference_inter3v_calculate_by_mode_gpio 
-6f96 20600000 rtn 
-
-vdd_reference_inter3v_calculate_by_mode_vdcdc:
-6f97 580003e8 setarg 1000 
-6f98 67e1441b store 2 ,mem_reference_voltage 
-6f99 68494412 fetcht 2 ,mem_adc_reference3v_vdcdc3p6v_ft_data 
-6f9a 6fe14414 fetch 2 ,mem_adc_reference3v_vdcdc4p6v_ft_data 
-6f9b da600e10 arg 3600 ,regc 
-6f9c 2040702a call vdd_calculate 
-6f9d 20206fa4 branch mul1v_div1v_to_cal 
-
-vdd_reference_inter3v_calculate_by_mode_gpio:
-6f9e 580003e8 setarg 1000 
-6f9f 67e1441b store 2 ,mem_reference_voltage 
-6fa0 6849440e fetcht 2 ,mem_adc_reference3v_gpio1v_ft_data 
-6fa1 6fe14410 fetch 2 ,mem_adc_reference3v_gpio2v_ft_data 
-6fa2 da6003e8 arg 1000 ,regc 
-6fa3 2040702a call vdd_calculate 
-
-mul1v_div1v_to_cal:
-6fa4 68494416 fetcht 2 ,mem_adc_reference3v_inter1v_ft_data 
-6fa5 984ffe00 imul32 temp ,pdata 
-6fa6 68494418 fetcht 2 ,mem_adc_reference3v_inter1v_now_data 
-6fa7 9846fc00 idiv temp 
-6fa8 20207d61 branch get_div_result 
-
-enable_adc_init_config:
-6fa9 20406f6b call sadc_cal_write 
-6faa 6ff08a09 fetch 1 ,core_gpadc_cfg1 
-6fab 793ffe07 set0 7 ,pdata 
-6fac 67f08a09 store 1 ,core_gpadc_cfg1 
-6fad 708a0777 jam 0x77 ,core_gpadc_ctrl 
-6fae 708a08c1 jam 0xc1 ,core_gpadc_cfg0 
-6faf 708a0d61 jam 0x61 ,core_vtest_ctrl0 
-6fb0 708a0b00 jam 0x00 ,core_gpadc_cfg3 
-6fb1 20600000 rtn 
-
-enable_adc:
-6fb2 47014020 bpatchx patch20_2 ,mem_patch20 
-6fb3 6fe0c41a fetch 1 ,mem_adc_reference_mode 
-6fb4 c000efb7 beq sadc_reference_inter3v ,enable_adc_reference_source_inter3v 
-6fb5 c0016fee beq sadc_reference_inter1p8v_div2 ,enable_adc_reference_source_inter1p8v 
-6fb6 20206fb7 branch enable_adc_reference_source_inter3v 
-
-enable_adc_reference_source_inter3v:
-6fb7 20406fa9 call enable_adc_init_config 
-6fb8 20407007 call sadc_channel 
-6fb9 6fe0c41f fetch 1 ,mem_adc_clkdiv 
-6fba 67f080cd store 1 ,core_sadc_clkdiv 
-6fbb 20407011 call sadc_read 
-6fbc 708a0d60 jam 0x60 ,core_vtest_ctrl0 
-6fbd 7080cd00 jam 0x00 ,core_sadc_clkdiv 
-
-read_adc_inter1v:
-6fbe 20406fa9 call enable_adc_init_config 
-6fbf 6fe0c41f fetch 1 ,mem_adc_clkdiv 
-6fc0 67f080cd store 1 ,core_sadc_clkdiv 
-6fc1 708a0b50 jam 0x50 ,core_gpadc_cfg3 
-6fc2 708a0ec0 jam 0xc0 ,core_vtest_ctrl1 
-6fc3 df00000b arg 0xb ,regext_index 
-6fc4 6de14420 fetchr regext ,2 ,mem_adc_current_value 
-6fc5 7080cc03 jam 0x03 ,core_sadc_ctrl 
-6fc6 2040700e call sar_adc_read_wait 
-6fc7 68590164 fetcht 2 ,core_sadc_data 
-6fc8 60494418 storet 2 ,mem_adc_reference3v_inter1v_now_data 
-6fc9 7080cc06 jam 0x06 ,core_sadc_ctrl 
-6fca 20407017 call sadc_read_wait2 
-6fcb df00000b arg 0xb ,regext_index 
-6fcc 65e14420 storer regext ,2 ,mem_adc_current_value 
-6fcd 708a0d60 jam 0x60 ,core_vtest_ctrl0 
-6fce 7080cd00 jam 0x00 ,core_sadc_clkdiv 
-6fcf 7080cc00 jam 0x00 ,core_sadc_ctrl 
-6fd0 20600000 rtn 
-
-vdd_reference_inter1p8v_calculate:
-6fd1 6fe0c41d fetch 1 ,mem_adc_config_flag 
-6fd2 c000efd5 beq adc_config_hvin ,vdd_reference_inter1p8v_calculate_by_mode_vdcdc 
-6fd3 c0016fdb beq adc_config_gpio ,vdd_reference_inter1p8v_div2_calculate_by_mode_gpio 
-6fd4 20600000 rtn 
-
-vdd_reference_inter1p8v_calculate_by_mode_vdcdc:
-6fd5 580007d0 setarg 2000 
-6fd6 67e1441b store 2 ,mem_reference_voltage 
-6fd7 68494408 fetcht 2 ,mem_reference_inter1p8v_2p6v_adc_vdcdc_data 
-6fd8 6fe1440c fetch 2 ,mem_reference_inter1p8v_4p6v_adc_vdcdc_data 
-6fd9 da600a28 arg 2600 ,regc 
-6fda 2020702a branch vdd_calculate 
-
-vdd_reference_inter1p8v_div2_calculate_by_mode_gpio:
-6fdb 580003e8 setarg 1000 
-6fdc 67e1441b store 2 ,mem_reference_voltage 
-6fdd 68494406 fetcht 2 ,mem_reference_inter1p8v_2v_adc_io_data 
-6fde 6fe1440a fetch 2 ,mem_reference_inter1p8v_1v_adc_io_data 
-6fdf da6007d0 arg 2000 ,regc 
-
-vdd_calculate00:
-6fe0 98462200 isub temp ,rega 
-6fe1 6fe14420 fetch 2 ,mem_adc_current_value 
-6fe2 98467e00 isub temp ,pdata 
-6fe3 24216fe8 nbranch vdd_calculate11 ,positive 
-6fe4 20407039 call vdd_calculate_common 
-6fe5 9a467e00 isub regb ,pdata 
-6fe6 24217dcc nbranch set_pdata_0 ,positive 
-6fe7 20207030 branch vdd_calculate2 
-
-vdd_calculate11:
-6fe8 18427e00 copy temp ,pdata 
-6fe9 68494420 fetcht 2 ,mem_adc_current_value 
-6fea 98467e00 isub temp ,pdata 
-6feb 20407039 call vdd_calculate_common 
-6fec 9a40fe00 iadd regb ,pdata 
-6fed 20207030 branch vdd_calculate2 
-
-enable_adc_reference_source_inter1p8v:
-6fee 6fe0c41d fetch 1 ,mem_adc_config_flag 
-6fef c000eff8 beq adc_config_hvin ,enable_adc_reference_source_inter1p8v_vdcdc 
-
-enable_adc_reference_source_inter1p8v_div2_gpio:
-6ff0 20406f6b call sadc_cal_write 
-6ff1 6ff08a09 fetch 1 ,core_gpadc_cfg1 
-6ff2 793ffe07 set0 7 ,pdata 
-6ff3 67f08a09 store 1 ,core_gpadc_cfg1 
-6ff4 708a0777 jam 0x77 ,core_gpadc_ctrl 
-6ff5 708a0841 jam 0x41 ,core_gpadc_cfg0 
-6ff6 708ac614 jam 0x14 ,0x8ac6 
-6ff7 20206fff branch enable_adc_reference_source_inter1p8v_common 
-
-enable_adc_reference_source_inter1p8v_vdcdc:
-6ff8 20406f6b call sadc_cal_write 
-6ff9 6ff08a09 fetch 1 ,core_gpadc_cfg1 
-6ffa 793ffe07 set0 7 ,pdata 
-6ffb 67f08a09 store 1 ,core_gpadc_cfg1 
-6ffc 708a0777 jam 0x77 ,core_gpadc_ctrl 
-6ffd 708a0841 jam 0x41 ,core_gpadc_cfg0 
-6ffe 708ac610 jam 0x10 ,0x8ac6 
-
-enable_adc_reference_source_inter1p8v_common:
-6fff 708a0b00 jam 0x00 ,core_gpadc_cfg3 
-7000 20407007 call sadc_channel 
-7001 6fe0c41f fetch 1 ,mem_adc_clkdiv 
-7002 67f080cd store 1 ,core_sadc_clkdiv 
-7003 20407011 call sadc_read 
-7004 7080cd00 jam 0x00 ,core_sadc_clkdiv 
-7005 708ac600 jam 0x00 ,0x8ac6 
-7006 20600000 rtn 
-
-sadc_channel:
-7007 6fe0c41e fetch 1 ,mem_adc_channel 
-7008 1ff27e00 lshift4 pdata ,pdata 
-7009 68588a0b fetcht 1 ,core_gpadc_cfg3 
-700a 1841040f and_into 0x0f ,temp 
-700b 98418400 ior temp ,temp 
-700c 60588a0b storet 1 ,core_gpadc_cfg3 
-700d 20600000 rtn 
-
-sar_adc_read_wait:
-700e 6ff08129 fetch 1 ,core_perf_status 
-700f c302f00e bbit0 saradc_done ,sar_adc_read_wait 
-7010 20600000 rtn 
-
-sadc_read:
-7011 4701c020 bpatchx patch20_3 ,mem_patch20 
-7012 7080cc03 jam 0x03 ,core_sadc_ctrl 
-7013 2040700e call sar_adc_read_wait 
-7014 68590164 fetcht 2 ,core_sadc_data 
-7015 60494420 storet 2 ,mem_adc_current_value 
-7016 7080cc06 jam 0x06 ,core_sadc_ctrl 
-
-sadc_read_wait2:
-7017 6ff08129 fetch 1 ,core_perf_status 
-7018 c282f017 bbit1 saradc_done ,sadc_read_wait2 
-7019 7080cc00 jam 0x00 ,core_sadc_ctrl 
-701a 20600000 rtn 
-
-sadc_dma:
-701b 6fe0c427 fetch 1 ,mem_adc_dma_enable 
-701c 207a0000 rtn blank 
-701d 6ff08a09 fetch 1 ,core_gpadc_cfg1 
-701e 79207e07 set1 7 ,pdata 
-701f 67f08a09 store 1 ,core_gpadc_cfg1 
-7020 6fe0c41f fetch 1 ,mem_adc_clkdiv 
-7021 67f080cd store 1 ,core_sadc_clkdiv 
-7022 6fe14423 fetch 2 ,mem_adc_saddr_ptr 
-7023 67f100ce store 2 ,core_sadc_saddr 
-7024 6fe14425 fetch 2 ,mem_adc_eaddr_ptr 
-7025 67f100d0 store 2 ,core_sadc_eaddr 
-7026 7080cc0b jam 0x0b ,core_sadc_ctrl 
-7027 200003e8 nop 1000 
-7028 7080cc03 jam 0x03 ,core_sadc_ctrl 
-7029 20600000 rtn 
-
-vdd_calculate:
-702a 98462200 isub temp ,rega 
-702b 6fe14420 fetch 2 ,mem_adc_current_value 
-702c 98467e00 isub temp ,pdata 
-702d 24217032 nbranch vdd_calculate1 ,positive 
-702e 20407039 call vdd_calculate_common 
-702f 9a40fe00 iadd regb ,pdata 
-
-vdd_calculate2:
-7030 9a26fc00 idiv rega 
-7031 20207d61 branch get_div_result 
-
-vdd_calculate1:
-7032 18427e00 copy temp ,pdata 
-7033 68494420 fetcht 2 ,mem_adc_current_value 
-7034 98467e00 isub temp ,pdata 
-7035 20407039 call vdd_calculate_common 
-7036 9a467e00 isub regb ,pdata 
-7037 24217dcc nbranch set_pdata_0 ,positive 
-7038 20207030 branch vdd_calculate2 
-
-vdd_calculate_common:
-7039 6849441b fetcht 2 ,mem_reference_voltage 
-703a 984fa400 imul32 temp ,regb 
-703b 1a627e00 copy regc ,pdata 
-703c 9a2ffe00 imul32 rega ,pdata 
-703d 20600000 rtn 
-
-adc_bat_percent_lowpower_out:
-703e efe40011 ifetch 8 ,rega 
-703f 67e4064e store 8 ,mem_pdatatemp 
-7040 6fe1064e fetch 2 ,mem_pdatatemp 
-7041 68490650 fetcht 2 ,mem_pdatatemp + 2 
-7042 98462200 isub temp ,rega 
-7043 6fe10654 fetch 2 ,mem_pdatatemp + 6 
-7044 98462400 isub temp ,regb 
-7045 68490652 fetcht 2 ,mem_pdatatemp + 4 
-7046 98467c00 isub temp ,null 
-7047 2441704e ncall adc_set_low_power_flag ,positive 
-7048 1a4ffe64 mul32 regb ,100 ,pdata 
-7049 9a26fc00 idiv rega 
-704a 20407d64 call wait_div_end 
-704b 1807fe00 quotient pdata 
-704c 205a7054 call adc_set_no_power_flag ,blank 
-704d 20600000 rtn 
-
-adc_set_low_power_flag:
-704e 6fe0c422 fetch 1 ,mem_adc_power_flag 
-704f 79207e00 set1 0 ,pdata 
-7050 20207059 branch adc_set_power_flag 
-
-adc_clear_low_power_flag:
-7051 6fe0c422 fetch 1 ,mem_adc_power_flag 
-7052 793ffe00 set0 0 ,pdata 
-7053 20207059 branch adc_set_power_flag 
-
-adc_set_no_power_flag:
-7054 6848c422 fetcht 1 ,mem_adc_power_flag 
-7055 79200401 set1 1 ,temp 
-7056 20207059 branch adc_set_power_flag 
-
-adc_clear_no_power_flag:
-7057 6848c422 fetcht 1 ,mem_adc_power_flag 
-7058 793f8401 set0 1 ,temp 
-
-adc_set_power_flag:
-7059 6048c422 storet 1 ,mem_adc_power_flag 
-705a 20600000 rtn 
-
-keyscan_key_init:
-705b 6fe14443 fetch 2 ,mem_key_num_ptr 
-705c efe0803f ifetch 1 ,pdata 
-
-keyscan_key_init_next:
-705d 207a0000 rtn blank 
-705e 1fe27200 copy pdata ,loopcnt 
-705f 6fe14443 fetch 2 ,mem_keyscan_ptr 
-7060 1fe0fe03 increase 3 ,pdata 
-7061 1fe22200 copy pdata ,rega 
-
-keyscan_key_init_lp1:
-7062 e8408011 ifetcht 1 ,rega 
-7063 20406ed7 call gpio_config_input 
-7064 1a20a201 increase key_conf_struct_len ,rega 
-7065 c2007062 loop keyscan_key_init_lp1 
-
-keyscan_key_init_end:
-7066 20600000 rtn 
-
-keyscan_scan_key:
-7067 6fe14443 fetch 2 ,mem_keyscan_ptr 
-7068 1fe0fe03 increase 3 ,pdata 
-7069 1fe22200 copy pdata ,rega 
-706a 18002400 force 0 ,regb 
-706b 58000000 setarg 0 
-706c 67e106cf store 2 ,mem_key_value_temp 
-
-keyscan_scan_key_lp1:
-706d e8408011 ifetcht 1 ,rega 
-706e 20406ee0 call gpio_get_bit 
-706f 47024020 bpatchx patch20_4 ,mem_patch20 
-7070 6fe106cf fetch 2 ,mem_key_value_temp 
-7071 1a420e00 copy regb ,queue 
-7072 f920fe00 qsetflag true ,pdata 
-7073 67e106cf store 2 ,mem_key_value_temp 
-7074 1a20a201 increase key_conf_struct_len ,rega 
-7075 1a40a401 increase 1 ,regb 
-7076 6fe14443 fetch 2 ,mem_key_num_ptr 
-7077 efe0803f ifetch 1 ,pdata 
-
-keyscan_scan_key_lp1_next:
-7078 9a42fc00 ixor regb ,null 
-7079 2422f06d nbranch keyscan_scan_key_lp1 ,zero 
-707a 6fe106cf fetch 2 ,mem_key_value_temp 
-707b 68494445 fetcht 2 ,mem_key_value_retention 
-707c 9842fc00 ixor temp ,null 
-707d 20628000 rtn zero 
-707e 20207dbc branch enable_user 
-
-keyscan_process_lpm_before:
-707f 6fe14443 fetch 2 ,mem_key_num_ptr 
-7080 efe0803f ifetch 1 ,pdata 
-
-keyscan_process_lpm_before_next:
-7081 207a0000 rtn blank 
-7082 1fe27200 copy pdata ,loopcnt 
-7083 6fe14443 fetch 2 ,mem_keyscan_ptr 
-7084 1fe0fe03 increase 3 ,pdata 
-7085 1fe22200 copy pdata ,rega 
-
-keyscan_process_lpm_before_lp1:
-7086 e8408011 ifetcht 1 ,rega 
-7087 20406ea5 call gpio_set_wake_by_current_state 
-7088 1a20a201 increase key_conf_struct_len ,rega 
-7089 c2007086 loop keyscan_process_lpm_before_lp1 
-
-keyscan_process_lpm_before_end:
-708a 20600000 rtn 
-
-keyscan_key_process:
-708b d8e00009 arg key_scan_timer ,queue 
-708c 20407cf1 call timer_check 
-708d 247a0000 nrtn blank 
-708e 58000020 setarg 0x20 
-708f d8e00009 arg key_scan_timer ,queue 
-7090 20407ce3 call timer_init 
-7091 78547c00 disable user 
-7092 2040707f call keyscan_process_lpm_before 
-7093 4702c020 bpatchx patch20_5 ,mem_patch20 
-7094 6fe14443 fetch 2 ,mem_key_num_ptr 
-7095 efe0803f ifetch 1 ,pdata 
-
-keyscan_key_process_next:
-7096 207a0000 rtn blank 
-7097 20407067 call keyscan_scan_key 
-7098 24347793 nbranch lpm_button_clean_wake_lock ,user 
-7099 20407791 call lpm_button_get_wake_lock 
-709a 78547c00 disable user 
-709b 6fe106cf fetch 2 ,mem_key_value_temp 
-709c 67e106d6 store 2 ,mem_key_value_temp4 
-709d 7006d800 jam 0 ,mem_key_value_temp6 
-709e 18000e00 force 0 ,queue 
-
-keyscan_key_lp1:
-709f 6fe14445 fetch 2 ,mem_key_value_retention 
-70a0 1fe30400 rshift pdata ,temp 
-70a1 60494445 storet 2 ,mem_key_value_retention 
-70a2 1fe17e01 and pdata ,0x01 ,pdata 
-70a3 684906d6 fetcht 2 ,mem_key_value_temp4 
-70a4 18412201 and temp ,0x01 ,rega 
-70a5 18430400 rshift temp ,temp 
-70a6 604906d6 storet 2 ,mem_key_value_temp4 
-70a7 9a22fc00 ixor rega ,null 
-70a8 2442f0b4 ncall keyscan_send_key_data ,zero 
-70a9 6fe14443 fetch 2 ,mem_key_num_ptr 
-70aa efe0803f ifetch 1 ,pdata 
-
-keyscan_key_lp1_next:
-70ab 684886d8 fetcht 1 ,mem_key_value_temp6 
-70ac 18408401 increase 1 ,temp 
-70ad 604886d8 storet 1 ,mem_key_value_temp6 
-70ae 18420e00 copy temp ,queue 
-70af 98e2fc00 ixor queue ,null 
-70b0 2422f09f nbranch keyscan_key_lp1 ,zero 
-70b1 6fe106cf fetch 2 ,mem_key_value_temp 
-70b2 67e14445 store 2 ,mem_key_value_retention 
-70b3 20600000 rtn 
-
-keyscan_send_key_data:
-70b4 47034020 bpatchx patch20_6 ,mem_patch20 
-70b5 6fe14443 fetch 2 ,mem_keyscan_ptr 
-70b6 1fe0fe01 increase 1 ,pdata 
-70b7 efe1003f ifetch 2 ,pdata 
-70b8 20207d7b branch callback_func 
-
-pwm_init:
-70b9 6ff08042 fetch 1 ,core_clksel 
-70ba 9a21fe00 ior rega ,pdata 
-70bb 67f08042 store 1 ,core_clksel 
-70bc 6ff10050 fetch 2 ,core_clkoff 
-70bd 793ffe0d set0 clock_off_pwm ,pdata 
-70be 67f10050 store 2 ,core_clkoff 
-
-delay_nop100:
-70bf 20000064 nop 100 
-70c0 20600000 rtn 
-
-pwm_clk_set:
-70c1 6ff08042 fetch 1 ,core_clksel 
-70c2 c28370c6 bbit1 6 ,pwm_24m_clk_set 
-70c3 c283f0c8 bbit1 7 ,pwm_33k_clk_set 
-
-pwm_12m_clk_set:
-70c4 58b71b00 setarg pwm_12mhz 
-70c5 20600000 rtn 
-
-pwm_24m_clk_set:
-70c6 596e3600 setarg pwm_24mhz 
-70c7 20600000 rtn 
-
-pwm_33k_clk_set:
-70c8 580080e8 setarg pwm_33khz 
-70c9 20600000 rtn 
-
-pwm_out_set:
-70ca 68498650 fetcht 3 ,mem_pdatatemp + 2 
-70cb 204070c1 call pwm_clk_set 
-70cc 9846fc00 idiv temp 
-70cd 20407d64 call wait_div_end 
-70ce 18078400 quotient temp 
-70cf 6fe08653 fetch 1 ,mem_pdatatemp + 5 
-70d0 984ffe00 imul32 temp ,pdata 
-70d1 1fe6fc64 div pdata ,100 
-70d2 20407d64 call wait_div_end 
-70d3 1807a200 quotient rega 
-70d4 18427e00 copy temp ,pdata 
-70d5 9a262400 isub rega ,regb 
-70d6 6fe0864f fetch 1 ,mem_pdatatemp + 1 
-70d7 204070de call pwm_duty_cycle_set 
-70d8 6fe0864e fetch 1 ,mem_pdatatemp 
-70d9 6848864f fetcht 1 ,mem_pdatatemp + 1 
-70da 1841040f and_into 0x0f ,temp 
-70db 184d0400 lshift8 temp ,temp 
-70dc 9841fe00 ior temp ,pdata 
-70dd 20207100 branch pwm_enable 
-
-pwm_duty_cycle_set:
-70de 98000e00 iforce queue 
-70df 204070ec call pwm_duty_cycle_set_without_autoload 
-70e0 202070e1 branch pwm_autoload_set 
-
-pwm_autoload_set:
-70e1 6ff080be fetch 1 ,core_pwm_autoload 
-70e2 f9207e00 qset1 pdata 
-70e3 67f080be store 1 ,core_pwm_autoload 
-70e4 68588042 fetcht 1 ,core_clksel 
-70e5 284ffe07 isolate1 7 ,temp 
-70e6 2040f0ea call delay_1clk_of_33k ,true 
-70e7 f93ffe00 qset0 pdata 
-70e8 67f080be store 1 ,core_pwm_autoload 
-70e9 20600000 rtn 
-
-delay_1clk_of_33k:
-70ea 200001e0 nop 480 
-70eb 20600000 rtn 
-
-pwm_duty_cycle_set_without_autoload:
-70ec 1fe17e0f and_into 0x0f ,pdata 
-70ed d8a0809c arg core_pwm_pcnt0 ,contw 
-70ee 1feffe04 mul32 pdata ,4 ,pdata 
-70ef 98a08a00 iadd contw ,contw 
-70f0 1a227e00 copy rega ,pdata 
-70f1 e7e10005 istore 2 ,contw 
-70f2 1a427e00 copy regb ,pdata 
-70f3 e7e10005 istore 2 ,contw 
-70f4 20600000 rtn 
-
-pwm_init_bit_set:
-70f5 28effe06 isolate1 6 ,queue 
-
-pwm_init_bit_set_process:
-70f6 18e10e0f and queue ,0x0f ,queue 
-70f7 6ff0809b fetch 1 ,core_pwm_init 
-70f8 f920fe00 qsetflag true ,pdata 
-70f9 67f0809b store 1 ,core_pwm_init 
-70fa 20600000 rtn 
-
-pwm_gpio_select:
-70fb 2040710b call pwm_select_channel 
-
-pwm_gpio_select_process:
-70fc 1fed7e00 lshift8 pdata ,pdata 
-70fd 18e08410 add queue ,gpcfg_pwm_out0 ,temp 
-70fe 9841fe00 ior temp ,pdata 
-70ff 20206f19 branch gpio_config_param 
-
-pwm_enable:
-7100 78347c00 enable user 
-7101 204070fb call pwm_gpio_select 
-7102 20207106 branch pwm_set_select 
-
-pwm_disable:
-7103 78547c00 disable user 
-7104 2040710b call pwm_select_channel 
-7105 20207106 branch pwm_set_select 
-
-pwm_set_select:
-7106 18e10e0f and queue ,0x0f ,queue 
-7107 6ff0809a fetch 1 ,core_pwm_en 
-7108 f9347e00 qsetflag user ,pdata 
-7109 67f0809a store 1 ,core_pwm_en 
-710a 20600000 rtn 
-
-pwm_select_channel:
-710b 1fec8e00 rshift8 pdata ,queue 
-710c 18e10e0f and queue ,0x0f ,queue 
-710d 20600000 rtn 
-
-wdt_init_config:
-710e 1fe20400 copy pdata ,temp 
-710f 4703c020 bpatchx patch20_7 ,mem_patch20 
-7110 2040711b call wdt_set_enable 
-7111 58000800 setarg 2048 
-7112 98467e00 isub temp ,pdata 
-7113 1fe20400 copy pdata ,temp 
-7114 18518400 rshift4 temp ,temp 
-7115 60588004 storet 1 ,core_write_wdt 
-7116 20000578 nop 1400 
-7117 1fe20400 copy pdata ,temp 
-7118 1841040f and_into 0x0f ,temp 
-7119 6058800b storet 1 ,core_write_wdt2 
-711a 20600000 rtn 
-
-wdt_set_enable:
-711b 78367c00 enable user2 
-711c 2020711f branch wdt_init_set 
-
-wdt_set_disable:
-711d 47044021 bpatchx patch21_0 ,mem_patch21 
-711e 78567c00 disable user2 
-
-wdt_init_set:
-711f 6ff08043 fetch 1 ,core_config 
-7120 79367e03 setflag user2 ,3 ,pdata 
-7121 67f08043 store 1 ,core_config 
-7122 20600000 rtn 
-
-nec_init_config:
-7123 67f20062 store 4 ,core_nec_start_addr 
-7124 67f10066 store 2 ,core_nec_rptr 
-7125 60588061 storet 1 ,core_nec_ctrl 
-7126 20600000 rtn 
-
-select_system_clk_12m_xtal:
-7127 70804204 jam clksel_xtal ,core_clksel 
-
-select_system_clk_12m_common:
-7128 7041480c jam system_clk_12m ,mem_system_clk 
-7129 58000ea5 setarg 3749 
-712a 67f10040 store 2 ,core_halfslot 
-712b 20600000 rtn 
-
-select_system_clk_12m_dpll:
-712c 70804205 jam clksel_dpll ,core_clksel 
-712d 20207128 branch select_system_clk_12m_common 
-
-function_g2:
-712e 4704c021 bpatchx patch21_1 ,mem_patch21 
-712f 70020e50 jam 80 ,mem_aes_cmac_data_length 
-7130 d8a0020f arg mem_dat ,contw 
-7131 d8c042ad arg mem_le_srand ,contr 
-7132 20407c91 call memcpy16 
-7133 d8c044a6 arg mem_sc_pubkey_local_x_256 ,contr 
-7134 20407c8f call memcpy32 
-7135 d8c005dc arg mem_le_pubkey_remote_x_256 ,contr 
-7136 20407c8f call memcpy32 
-7137 204071e9 call inverse_memdat 
-7138 d8c00158 arg mem_le_mrand ,contr 
-7139 204071e4 call store_inverse_k 
-713a 204071af call function_aes_cmac 
-713b d8a006af arg mem_aes_cmac_temp ,contw 
-713c 204071e0 call load_inverse_result 
-713d 580f4240 setarg 1000000 
-713e 1fe22200 copy pdata ,rega 
-713f 6fe206af fetch 4 ,mem_aes_cmac_temp 
-7140 9a26fc00 idiv rega 
-7141 20407d64 call wait_div_end 
-7142 18077e00 remainder pdata 
-7143 67e205d8 store 4 ,mem_gkey 
-7144 20600000 rtn 
-
-function_f6_eb:
-7145 70020e41 jam 65 ,mem_aes_cmac_data_length 
-7146 d8a0020f arg mem_dat ,contw 
-7147 20407194 call store_addr_common_a 
-7148 2040718f call store_addr_common_b 
-7149 6fe1c2c7 fetch 3 ,mem_le_pres + 1 
-714a e7e18005 istore 3 ,contw 
-714b 20407155 call get_r 
-714c d8c00158 arg mem_le_mrand ,contr 
-714d 20407c91 call memcpy16 
-714e d8c042ad arg mem_le_srand ,contr 
-714f 20407c91 call memcpy16 
-7150 204071e9 call inverse_memdat 
-7151 d8c006cf arg mem_le_mackey ,contr 
-7152 d8a0067f arg mem_aes_cmac_k ,contw 
-7153 20407c91 call memcpy16 
-7154 202071af branch function_aes_cmac 
-
-get_r:
-7155 6fe24301 fetch 4 ,mem_le_tk 
-7156 e7e20005 istore 4 ,contw 
-7157 20407c9d call memset0_4 
-7158 20207c9c branch memset0_8 
-
-function_f6_ea:
-7159 47054021 bpatchx patch21_2 ,mem_patch21 
-715a 70020e41 jam 65 ,mem_aes_cmac_data_length 
-715b d8a0020f arg mem_dat ,contw 
-715c 2040718f call store_addr_common_b 
-715d 20407194 call store_addr_common_a 
-715e 6fe1c2c0 fetch 3 ,mem_le_preq + 1 
-715f e7e18005 istore 3 ,contw 
-7160 20407155 call get_r 
-7161 d8c042ad arg mem_le_srand ,contr 
-7162 20407c91 call memcpy16 
-7163 d8c00158 arg mem_le_mrand ,contr 
-7164 20407c91 call memcpy16 
-7165 204071e9 call inverse_memdat 
-7166 d8c006cf arg mem_le_mackey ,contr 
-7167 d8a0067f arg mem_aes_cmac_k ,contw 
-7168 20407c91 call memcpy16 
-7169 204071af call function_aes_cmac 
-716a d8a006af arg mem_aes_cmac_temp ,contw 
-716b 202071e0 branch load_inverse_result 
-
-function_f5:
-716c 70020e20 jam 32 ,mem_aes_cmac_data_length 
-716d d8c0061c arg mem_le_dhkey_256 ,contr 
-716e d8a0020f arg mem_dat ,contw 
-716f 20407c8f call memcpy32 
-7170 204071e9 call inverse_memdat 
-7171 d8c005c7 arg mem_le_slat ,contr 
-7172 204071e4 call store_inverse_k 
-7173 204071af call function_aes_cmac 
-7174 d8a0067f arg mem_aes_cmac_k ,contw 
-7175 20407363 call store_aes_result 
-7176 d8400001 arg 1 ,temp 
-7177 2040717e call function_f5_common 
-7178 d8a0428c arg mem_le_ltk ,contw 
-7179 204071e0 call load_inverse_result 
-717a d8400000 arg 0 ,temp 
-717b 2040717e call function_f5_common 
-717c d8a006cf arg mem_le_mackey ,contw 
-717d 20207363 branch store_aes_result 
-
-function_f5_common:
-717e 4705c021 bpatchx patch21_3 ,mem_patch21 
-717f 70020e35 jam 53 ,mem_aes_cmac_data_length 
-7180 58000100 setarg 0x100 
-7181 67e1020f store 2 ,mem_dat 
-7182 2040718f call store_addr_common_b 
-7183 20407194 call store_addr_common_a 
-7184 d8c042ad arg mem_le_srand ,contr 
-7185 20407c91 call memcpy16 
-7186 d8c00158 arg mem_le_mrand ,contr 
-7187 20407c91 call memcpy16 
-7188 58006c65 setarg 0x6c65 
-7189 e7e10005 istore 2 ,contw 
-718a 58006274 setarg 0x6274 
-718b e7e10005 istore 2 ,contw 
-718c e0408005 istoret 1 ,contw 
-718d 204071e9 call inverse_memdat 
-718e 202071af branch function_aes_cmac 
-
-store_addr_common_b:
-718f 6fe342dd fetch 6 ,mem_le_lap 
-7190 e7e30005 istore 6 ,contw 
-7191 6fe0c2d4 fetch 1 ,mem_le_conn_own_addr_type 
-7192 e7e08005 istore 1 ,contw 
-7193 20600000 rtn 
-
-store_addr_common_a:
-7194 6fe30178 fetch 6 ,mem_le_plap 
-7195 e7e30005 istore 6 ,contw 
-7196 6fe0c2cd fetch 1 ,mem_le_conn_peer_addr_type 
-7197 e7e08005 istore 1 ,contw 
-7198 20600000 rtn 
-
-function_f4_ca:
-7199 70020e41 jam 65 ,mem_aes_cmac_data_length 
-719a 6fe0c4e7 fetch 1 ,mem_passkey_1bit 
-719b 67e0820f store 1 ,mem_dat 
-719c d8c044a6 arg mem_sc_pubkey_local_x_256 ,contr 
-719d 20407c8f call memcpy32 
-719e d8c005dc arg mem_le_pubkey_remote_x_256 ,contr 
-719f 20407c8f call memcpy32 
-71a0 204071e9 call inverse_memdat 
-71a1 d8c00158 arg mem_le_mrand ,contr 
-71a2 204071e4 call store_inverse_k 
-71a3 202071af branch function_aes_cmac 
-
-function_f4_cb:
-71a4 70020e41 jam 65 ,mem_aes_cmac_data_length 
-71a5 6fe0c4e7 fetch 1 ,mem_passkey_1bit 
-71a6 67e0820f store 1 ,mem_dat 
-71a7 d8c005dc arg mem_le_pubkey_remote_x_256 ,contr 
-71a8 20407c8f call memcpy32 
-71a9 d8c044a6 arg mem_sc_pubkey_local_x_256 ,contr 
-71aa 20407c8f call memcpy32 
-71ab 204071e9 call inverse_memdat 
-71ac d8c042ad arg mem_le_srand ,contr 
-71ad 204071e4 call store_inverse_k 
-71ae 202071af branch function_aes_cmac 
-
-function_aes_cmac:
-71af 47064021 bpatchx patch21_4 ,mem_patch21 
-71b0 204071fe call function_aes_cmac_generate_subkey 
-71b1 6fe0820e fetch 1 ,mem_aes_cmac_data_length 
-71b2 1fe20400 copy pdata ,temp 
-
-function_ceil16:
-71b3 1fe0fe0f increase 15 ,pdata 
-71b4 1ff1fe00 rshift4 pdata ,pdata 
-71b5 1fe22400 copy pdata ,regb 
-71b6 203a71c1 branch function_aes_cmac_set_flag_0_balnk ,blank 
-71b7 18417e0f and temp ,0x0f ,pdata 
-71b8 243a71c4 nbranch function_aes_cmac_set_flag_0 ,blank 
-71b9 da60068f arg mem_aes_cmac_k1 ,regc 
-71ba dfe0020f arg mem_dat ,pdata 
-71bb 1fe0fff0 increase -16 ,pdata 
-71bc 9840a200 iadd temp ,rega 
-71bd d8a006bf arg mem_aes_cmac_m_last ,contw 
-71be df200004 arg 4 ,loopcnt 
-71bf 20407cab call xor_loop 
-71c0 202071cf branch function_aes_cmac_aes 
-
-function_aes_cmac_set_flag_0_balnk:
-71c1 da400001 arg 1 ,regb 
-71c2 da200000 arg 0 ,rega 
-71c3 202071c5 branch function_aes_cmac_set_flag_0_common 
-
-function_aes_cmac_set_flag_0:
-71c4 1841220f and temp ,0x0f ,rega 
-
-function_aes_cmac_set_flag_0_common:
-71c5 dfe0020f arg mem_dat ,pdata 
-71c6 9840fe00 iadd temp ,pdata 
-71c7 9a260c00 isub rega ,contr 
-71c8 d8a006af arg mem_aes_cmac_temp ,contw 
-71c9 20407224 call function_aes_cmac_padding 
-71ca da60069f arg mem_aes_cmac_k2 ,regc 
-71cb da2006af arg mem_aes_cmac_temp ,rega 
-71cc d8a006bf arg mem_aes_cmac_m_last ,contw 
-71cd df200004 arg 4 ,loopcnt 
-71ce 20407cab call xor_loop 
-
-function_aes_cmac_aes:
-71cf 2040735d call aes_clear_data 
-71d0 204072c8 call aes_init 
-71d1 d8c0020f arg mem_dat ,contr 
-
-function_aes_cmac_aes_loop:
-71d2 1a40a5ff increase -1 ,regb 
-71d3 1a427e00 deposit regb 
-71d4 203a71d8 branch function_aes_cmac_aes_loop_end ,blank 
-71d5 2040734f call load_data128 
-71d6 204072c2 call do_aes_cbc 
-71d7 202071d2 branch function_aes_cmac_aes_loop 
-
-function_aes_cmac_aes_loop_end:
-71d8 d8a006af arg mem_aes_cmac_temp ,contw 
-71d9 20407363 call store_aes_result 
-71da d8c006bf arg mem_aes_cmac_m_last ,contr 
-71db 2040734f call load_data128 
-71dc 204072c8 call aes_init 
-71dd d8c006af arg mem_aes_cmac_temp ,contr 
-71de 2040734f call load_data128 
-71df 202072c2 branch do_aes_cbc 
-
-load_inverse_result:
-71e0 18a22200 copy contw ,rega 
-71e1 20407363 call store_aes_result 
-71e2 df200010 arg 16 ,loopcnt 
-71e3 20207cb3 branch inverse_data 
-
-store_inverse_k:
-71e4 d8a0067f arg mem_aes_cmac_k ,contw 
-71e5 20407c91 call memcpy16 
-
-inverse_k:
-71e6 df200010 arg 16 ,loopcnt 
-71e7 da20067f arg mem_aes_cmac_k ,rega 
-71e8 20207cb3 branch inverse_data 
-
-inverse_memdat:
-71e9 6fe0820e fetch 1 ,mem_aes_cmac_data_length 
-71ea 1fe27200 copy pdata ,loopcnt 
-71eb da20020f arg mem_dat ,rega 
-71ec 20207cb3 branch inverse_data 
-
-bn_lshift_0_inverse:
-71ed efe08011 ifetch 1 ,rega 
-71ee 1fe3fe00 lshift pdata ,pdata 
-71ef 2a6ffe00 isolate1 0 ,regc 
-71f0 7920fe00 setflag true ,0 ,pdata 
-71f1 2feffe08 isolate1 8 ,pdata 
-71f2 7920a600 setflag true ,0 ,regc 
-71f3 e7e08011 istore 1 ,rega 
-71f4 1a20a3ff increase -1 ,rega 
-71f5 c20071ed loop bn_lshift_0_inverse 
-71f6 20600000 rtn 
-
-function_aes_cmac_k1_inverse:
-71f7 da20068f arg mem_aes_cmac_k1 ,rega 
-
-function_aes_cmac_inverse_common:
-71f8 1a20a20f increase 15 ,rega 
-71f9 18007210 force 16 ,loopcnt 
-71fa 18002600 force 0 ,regc 
-71fb 202071ed branch bn_lshift_0_inverse 
-
-function_aes_cmac_k2_inverse:
-71fc da20069f arg mem_aes_cmac_k2 ,rega 
-71fd 202071f8 branch function_aes_cmac_inverse_common 
-
-function_aes_cmac_generate_subkey:
-71fe d8c0067f arg mem_aes_cmac_k ,contr 
-71ff 2040734d call load_key 
-7200 18007008 force regidx_xor ,regext_index 
-7201 2040735e call aes_clear 
-7202 2040735d call aes_clear_data 
-7203 204072bf call do_aes_ocb 
-7204 d8a0068f arg mem_aes_cmac_k1 ,contw 
-7205 20407363 call store_aes_result 
-
-function_aes_cmac_k1:
-7206 4706c021 bpatchx patch21_5 ,mem_patch21 
-7207 6fe0868f fetch 1 ,mem_aes_cmac_k1 
-7208 2feffe07 isolate1 7 ,pdata 
-7209 2420f20f nbranch function_aes_cmac_k1_0 ,true 
-720a 204071f7 call function_aes_cmac_k1_inverse 
-720b da60068f arg mem_aes_cmac_k1 ,regc 
-720c d8a0068f arg mem_aes_cmac_k1 ,contw 
-720d 20407219 call function_aes_cmac_xor_rb 
-720e 20207210 branch function_aes_cmac_k2 
-
-function_aes_cmac_k1_0:
-720f 204071f7 call function_aes_cmac_k1_inverse 
-
-function_aes_cmac_k2:
-7210 d8c0068f arg mem_aes_cmac_k1 ,contr 
-7211 d8a0069f arg mem_aes_cmac_k2 ,contw 
-7212 20407c91 call memcpy16 
-7213 6fe0869f fetch 1 ,mem_aes_cmac_k2 
-7214 2feffe07 isolate1 7 ,pdata 
-7215 2420f1fc nbranch function_aes_cmac_k2_inverse ,true 
-7216 204071fc call function_aes_cmac_k2_inverse 
-7217 da60069f arg mem_aes_cmac_k2 ,regc 
-7218 d8a0069f arg mem_aes_cmac_k2 ,contw 
-
-function_aes_cmac_xor_rb:
-7219 df200003 arg 3 ,loopcnt 
-
-function_aes_cmac_xor_rb_loop:
-721a d8400000 arg 0 ,temp 
-721b 20407220 call function_aes_cmac_xor_loop_common 
-721c 1a60a604 increase 4 ,regc 
-721d c200721a loop function_aes_cmac_xor_rb_loop 
-721e d8408700 arg 0x8700 ,temp 
-721f 18500400 lshift16 temp ,temp 
-
-function_aes_cmac_xor_loop_common:
-7220 efe20013 ifetch 4 ,regc 
-7221 9842fe00 ixor temp ,pdata 
-7222 e7e20005 istore 4 ,contw 
-7223 20600000 rtn 
-
-function_aes_cmac_padding:
-7224 47074021 bpatchx patch21_6 ,mem_patch21 
-7225 df200010 arg 16 ,loopcnt 
-7226 dfe00000 arg 0 ,pdata 
-
-function_aes_cmac_padding_loop:
-7227 9a267c00 isub rega ,null 
-7228 2022f22f branch function_aes_cmac_padding_beq_length ,zero 
-7229 20217232 branch function_aes_cmac_padding_big_length ,positive 
-722a e8408006 ifetcht 1 ,contr 
-722b e0408005 istoret 1 ,contw 
-
-function_aes_cmac_padding_loop2:
-722c 1fe0fe01 increase 1 ,pdata 
-722d c2007227 loop function_aes_cmac_padding_loop 
-722e 20600000 rtn 
-
-function_aes_cmac_padding_beq_length:
-722f d8400080 arg 0x80 ,temp 
-
-function_aes_cmac_padding_common:
-7230 e0408005 istoret 1 ,contw 
-7231 2020722c branch function_aes_cmac_padding_loop2 
-
-function_aes_cmac_padding_big_length:
-7232 d8400000 arg 0 ,temp 
-7233 20207230 branch function_aes_cmac_padding_common 
-
-concatenate_temp24:
-7234 184d0400 lshift8 temp ,temp 
-
-concatenate_temp16:
-7235 18500400 lshift16 temp ,temp 
-7236 98418400 ior temp ,temp 
-7237 20600000 rtn 
-
-generate_stk:
-7238 4707c021 bpatchx patch21_7 ,mem_patch21 
-7239 204072f4 call function_s1 
-723a d8a0428c arg mem_le_ltk ,contw 
-723b 20207363 branch store_aes_result 
-
-authenticate_rconfirm:
-723c d8a042ad arg mem_le_srand ,contw 
-723d 2034f23f branch authenticate_mconfirm ,master 
-723e d8a00158 arg mem_le_mrand ,contw 
-
-authenticate_mconfirm:
-723f 18c22200 copy contr ,rega 
-7240 20407c91 call memcpy16 
-7241 20407309 call function_c1 
-7242 d8c0429d arg mem_le_rconfirm ,contr 
-7243 2020737c branch compare_res 
-
-generate_confirm:
-7244 da200158 arg mem_le_mrand ,rega 
-7245 2034f247 branch generate_mrand ,master 
-7246 da2042ad arg mem_le_srand ,rega 
-
-generate_mrand:
-7247 1a220a00 copy rega ,contw 
-7248 20407ded call generate_random 
-7249 20207309 branch function_c1 
-
-generate_sk:
-724a d8c042e7 arg mem_le_skdm ,contr 
-724b 2040734f call load_data128 
-724c d8c0428c arg mem_le_ltk ,contr 
-724d 20407350 call load_regext 
-724e 18006c38 force 0x38 ,aes_ctrl 
-724f 18006c00 force 0x0 ,aes_ctrl 
-7250 204072bd call wait_aes 
-7251 d8a001a8 arg mem_le_sk ,contw 
-7252 20207363 branch store_aes_result 
-
-ccm_b0:
-7253 18007008 force regidx_xor ,regext_index 
-7254 18007e49 force 0x49 ,pdata 
-7255 2020725a branch iv_common 
-
-first_block_counter:
-7256 18007e49 force 0x49 ,pdata 
-7257 20207259 branch first_block 
-
-first_block_data:
-7258 18007e01 force 1 ,pdata 
-
-first_block:
-7259 18007000 force regidx_data ,regext_index 
-
-iv_common:
-725a 184d5e00 lshift8 temp ,regext 
-725b 9de1de00 ior regext ,regext 
-725c 1f00f001 increase 1 ,regext_index 
-725d 184cde00 rshift8 temp ,regext 
-725e 1df15e00 rshift16 regext ,regext 
-725f 6fe14475 fetch 2 ,mem_ccm_iv 
-7260 1ff07e00 lshift16 pdata ,pdata 
-7261 9de1de00 ior regext ,regext 
-7262 1f00f001 increase 1 ,regext_index 
-7263 ede20006 ifetchr regext ,4 ,contr 
-7264 1f00f001 increase 1 ,regext_index 
-7265 efe10006 ifetch 2 ,contr 
-7266 1a30de00 byteswap rega ,regext 
-7267 1df05e00 lshift16 regext ,regext 
-7268 9de1de00 ior regext ,regext 
-7269 1f00f001 increase 1 ,regext_index 
-726a 20600000 rtn 
-
-generate_mic:
-726b 1a608c01 add regc ,1 ,contr 
-726c efe08006 ifetch 1 ,contr 
-726d 98002200 iforce rega 
-726e 20407256 call first_block_counter 
-726f 204072bf call do_aes_ocb 
-7270 18007000 force regidx_data ,regext_index 
-7271 efe08013 ifetch 1 ,regc 
-7272 1fe17e03 and_into 0x3 ,pdata 
-7273 1ff05e00 lshift16 pdata ,regext 
-7274 79205e08 set1 8 ,regext 
-7275 20407358 call clear_hidata 
-7276 204072c2 call do_aes_cbc 
-7277 1a227200 copy rega ,loopcnt 
-7278 1a608c02 add regc ,2 ,contr 
-7279 20407337 call padding_data 
-
-generate_mic_loop:
-727a 20407341 call aes_load_data 
-727b 204072c2 call do_aes_cbc 
-727c 1f227e00 deposit loopcnt 
-727d 203a727f branch generate_mic_end ,blank 
-727e 2020727a branch generate_mic_loop 
-
-generate_mic_end:
-727f 1800700c force regidx_result ,regext_index 
-7280 1de27e00 deposit regext 
-7281 67e20150 store 4 ,mem_le_mic 
-7282 20600000 rtn 
-
-aes_crypt_data:
-7283 1a20a201 increase 1 ,rega 
-7284 20407258 call first_block_data 
-7285 1a620c00 copy regc ,contr 
-7286 2040734b call aes_load_xor 
-7287 204072c5 call do_aes_ctr 
-7288 2040736a call store_enc_data 
-7289 1a60a610 increase 16 ,regc 
-728a 1a40a5f0 increase -16 ,regb 
-728b 20217283 branch aes_crypt_data ,positive 
-728c 20600000 rtn 
-
-le_encrypt_new_start:
-728d 204072b2 call ccm_init_common 
-728e 47084022 bpatchx patch22_0 ,mem_patch22 
-728f 70806c00 jam 0 ,core_ccm_aad0 
-7290 70806d01 jam 1 ,core_ccm_aad1 
-7291 6fe0c16b fetch 1 ,mem_le_txheader 
-7292 1fe17e03 and_into 0x3 ,pdata 
-7293 67f0806e store 1 ,core_ccm_aad2 
-7294 6fe1066d fetch 2 ,mem_contr 
-7295 67f10068 store 2 ,core_ccm_input_playload_addr 
-7296 5800416d setarg mem_le_txpayload 
-7297 67f1006a store 2 ,core_ccm_output_playload_addr 
-7298 6a20c16c fetchr rega ,1 ,mem_le_txlen 
-7299 684ac467 fetcht 5 ,mem_ccm_pcnt_tx 
-729a 20407253 call ccm_b0 
-729b 70800a02 jam 2 ,core_ccm_ctrl 
-729c 70800a03 jam 3 ,core_ccm_ctrl 
-729d 6fe0c16c fetch 1 ,mem_le_txlen 
-729e 67f100c0 store 2 ,core_ccm_inptr 
-729f 1fe0fe04 increase 4 ,pdata 
-72a0 67e0c16c store 1 ,mem_le_txlen 
-72a1 6fe2c467 fetch 5 ,mem_ccm_pcnt_tx 
-72a2 1fe0fe01 increase 1 ,pdata 
-72a3 793ffe27 set0 le_ccm_directionbit ,pdata 
-72a4 67e2c467 store 5 ,mem_ccm_pcnt_tx 
-72a5 20600000 rtn 
-
-ccm_wait_enc:
-72a6 6ff1011a fetch 2 ,core_ccm_outptr 
-72a7 98467c00 isub temp ,null 
-72a8 20628000 rtn zero 
-72a9 247a0000 nrtn blank 
-72aa 202072a6 branch ccm_wait_enc 
-
-ccm_check_enc_done:
-72ab 6ff08108 fetch 1 ,core_misc_status 
-72ac c303233e bbit0 6 ,assert 
-
-ccm_enc_done:
-72ad 5800416d setarg mem_le_txpayload 
-72ae 98408a00 iadd temp ,contw 
-72af df00000c arg regidx_result ,regext_index 
-72b0 e5e20005 istorer regext ,4 ,contw 
-72b1 202072bb branch ccm_ctrl_clr 
-
-ccm_init_common:
-72b2 4708c022 bpatchx patch22_1 ,mem_patch22 
-72b3 1800700c force regidx_result ,regext_index 
-72b4 2040735e call aes_clear 
-72b5 2040735d call aes_clear_data 
-72b6 58000000 setarg 0 
-72b7 67f100c0 store 2 ,core_ccm_inptr 
-72b8 20600000 rtn 
-
-wait_ccm_done:
-72b9 6ff08108 fetch 1 ,core_misc_status 
-72ba c30372b9 bbit0 6 ,wait_ccm_done 
-
-ccm_ctrl_clr:
-72bb 70800a00 jam 0 ,core_ccm_ctrl 
-72bc 20600000 rtn 
-
-wait_aes:
-72bd 243bf2bd nbranch wait_aes ,aes_ready 
-72be 20600000 rtn 
-
-do_aes_ocb:
-72bf 18006c30 force 0x30 ,aes_ctrl 
-72c0 18006c00 force 0x0 ,aes_ctrl 
-72c1 202072bd branch wait_aes 
-
-do_aes_cbc:
-72c2 18006c32 force 0x32 ,aes_ctrl 
-72c3 18006c02 force 0x2 ,aes_ctrl 
-72c4 202072bd branch wait_aes 
-
-do_aes_ctr:
-72c5 18006c34 force 0x34 ,aes_ctrl 
-72c6 18006c04 force 0x4 ,aes_ctrl 
-72c7 202072bd branch wait_aes 
-
-aes_init:
-72c8 18006c01 force 1 ,aes_ctrl 
-72c9 18006c00 force 0 ,aes_ctrl 
-72ca 20600000 rtn 
-
-wait_keyinit_done:
-72cb 6ff08155 fetch 1 ,core_aes_decode_key_init 
-72cc c30172cb bbit0 2 ,wait_keyinit_done 
-72cd 20600000 rtn 
-
-dec_key_initial:
-72ce 67f100d2 store 2 ,core_keybuf_saddr 
-72cf 18006cc0 force 0xc0 ,aes_ctrl 
-72d0 18006c80 force 0x80 ,aes_ctrl 
-72d1 202072cb branch wait_keyinit_done 
-
-do_aes_ecb_dec:
-72d2 18007000 force regidx_data ,regext_index 
-72d3 1a420c00 copy regb ,contr 
-72d4 18007204 force 4 ,loopcnt 
-72d5 204072e1 call aes_ecb_dec_loop 
-72d6 18006d80 force 0x180 ,aes_ctrl 
-72d7 18006c80 force 0x80 ,aes_ctrl 
-72d8 204072bd call wait_aes 
-
-ecb_dec_generate:
-72d9 1800700c force regidx_result ,regext_index 
-72da 1a620a00 copy regc ,contw 
-72db 18007204 force 4 ,loopcnt 
-
-ecb_dec_generate_loop:
-72dc 1de27e00 copy regext ,pdata 
-72dd e7e20005 istore 4 ,contw 
-72de 1f00f001 increase 1 ,regext_index 
-72df c20072dc loop ecb_dec_generate_loop 
-72e0 20600000 rtn 
-
-aes_ecb_dec_loop:
-72e1 efe10006 ifetch 2 ,contr 
-72e2 e8410006 ifetcht 2 ,contr 
-72e3 18500400 lshift16 temp ,temp 
-72e4 9841de00 ior temp ,regext 
-72e5 1f00f001 increase 1 ,regext_index 
-72e6 c20072e1 loop aes_ecb_dec_loop 
-72e7 20600000 rtn 
-
-do_aes_cbc_dec:
-72e8 18007008 force regidx_xor ,regext_index 
-72e9 1a220c00 copy rega ,contr 
-72ea 18007204 force 4 ,loopcnt 
-72eb 204072e1 call aes_ecb_dec_loop 
-72ec 18007000 force regidx_data ,regext_index 
-72ed 1a420c00 copy regb ,contr 
-72ee 18007204 force 4 ,loopcnt 
-72ef 204072e1 call aes_ecb_dec_loop 
-72f0 18006d82 force 0x182 ,aes_ctrl 
-72f1 18006c82 force 0x82 ,aes_ctrl 
-72f2 204072bd call wait_aes 
-72f3 202072d9 branch ecb_dec_generate 
-
-function_s1:
-72f4 18007000 force regidx_data ,regext_index 
-72f5 6fe20158 fetch 4 ,mem_le_mrand 
-72f6 98005e00 iforce regext 
-72f7 1f00f001 increase 1 ,regext_index 
-72f8 efe20006 ifetch 4 ,contr 
-72f9 98005e00 iforce regext 
-72fa 1f00f001 increase 1 ,regext_index 
-72fb 6fe242ad fetch 4 ,mem_le_srand 
-72fc 98005e00 iforce regext 
-72fd 1f00f001 increase 1 ,regext_index 
-72fe efe20006 ifetch 4 ,contr 
-72ff 98005e00 iforce regext 
-7300 1f00f001 increase 1 ,regext_index 
-7301 2040735e call aes_clear 
-7302 1f00f1fc increase -4 ,regext_index 
-7303 6fe24301 fetch 4 ,mem_le_tk 
-7304 1fe25e00 copy pdata ,regext 
-7305 1f00f004 increase 4 ,regext_index 
-7306 18006c38 force 0x38 ,aes_ctrl 
-7307 18006c08 force 0x8 ,aes_ctrl 
-7308 202072bd branch wait_aes 
-
-function_c1:
-7309 47094022 bpatchx patch22_2 ,mem_patch22 
-730a 6fe342dd fetch 6 ,mem_le_lap 
-730b 684b0178 fetcht 6 ,mem_le_plap 
-730c 2034f30f branch function_c1_master ,master 
-730d 6fe30178 fetch 6 ,mem_le_plap 
-730e 684b42dd fetcht 6 ,mem_le_lap 
-
-function_c1_master:
-730f 18007008 force regidx_xor ,regext_index 
-7310 18425e00 copy temp ,regext 
-7311 1f00f001 increase 1 ,regext_index 
-7312 184f5e00 rshift32 temp ,regext 
-7313 1ff07e00 lshift16 pdata ,pdata 
-7314 9de1de00 ior regext ,regext 
-7315 1f00f001 increase 1 ,regext_index 
-7316 1fef5e00 rshift32 pdata ,regext 
-7317 1f00f001 increase 1 ,regext_index 
-7318 18005e00 force 0 ,regext 
-7319 18007e00 force 0 ,pdata 
-731a 6fe0c2cd fetch 1 ,mem_le_conn_peer_addr_type 
-731b 6848c390 fetcht 1 ,mem_le_adv_own_addr_type 
-731c 2434f31f nbranch function_c1_irat ,master 
-731d 6fe0c2d4 fetch 1 ,mem_le_conn_own_addr_type 
-731e 6848c2cd fetcht 1 ,mem_le_conn_peer_addr_type 
-
-function_c1_irat:
-731f 67e0c2bd store 1 ,mem_le_iat 
-7320 6048c2be storet 1 ,mem_le_rat 
-7321 18007000 force regidx_data ,regext_index 
-7322 da4042bd arg mem_le_iat ,regb 
-7323 18007204 force 4 ,loopcnt 
-
-function_c1_loop1:
-7324 efe20011 ifetch 4 ,rega 
-7325 e8420012 ifetcht 4 ,regb 
-7326 9842de00 ixor temp ,regext 
-7327 1f00f001 increase 1 ,regext_index 
-7328 1a20a204 increase 4 ,rega 
-7329 1a40a404 increase 4 ,regb 
-732a c2007324 loop function_c1_loop1 
-732b 2040735e call aes_clear 
-732c 1f00f1fc increase -4 ,regext_index 
-732d 6fe24301 fetch 4 ,mem_le_tk 
-732e 1fe25e00 copy pdata ,regext 
-732f 1f00f004 increase 4 ,regext_index 
-7330 18006c38 force 0x38 ,aes_ctrl 
-7331 18006c0c force 0xc ,aes_ctrl 
-7332 204072bd call wait_aes 
-7333 2040735d call aes_clear_data 
-7334 18006c3a force 0x3a ,aes_ctrl 
-7335 18006c08 force 0x8 ,aes_ctrl 
-7336 202072bd branch wait_aes 
-
-padding_data:
-7337 2f200600 compare 0 ,loopcnt ,3 
-7338 20608000 rtn true 
-7339 18c27e00 deposit contr 
-733a 9f208a00 iadd loopcnt ,contw 
-733b 18007e00 force 0 ,pdata 
-
-padding_loop:
-733c e7e08005 istore 1 ,contw 
-733d 1f20f201 increase 1 ,loopcnt 
-733e 2f200600 compare 0 ,loopcnt ,3 
-733f 20608000 rtn true 
-7340 2020733c branch padding_loop 
-
-aes_load_data:
-7341 18007000 force regidx_data ,regext_index 
-
-load_data_loop:
-7342 1f227e00 deposit loopcnt 
-7343 203a7346 branch load_data_padding ,blank 
-7344 efe20006 ifetch 4 ,contr 
-7345 1f20f3fc increase -4 ,loopcnt 
-
-load_data_padding:
-7346 98005e00 iforce regext 
-7347 1f00f001 increase 1 ,regext_index 
-7348 2f001e04 compare regidx_key ,regext_index ,0xf 
-7349 20608000 rtn true 
-734a 20207342 branch load_data_loop 
-
-aes_load_xor:
-734b 18007008 force regidx_xor ,regext_index 
-734c 20207350 branch load_regext 
-
-load_key:
-734d 18007004 force regidx_key ,regext_index 
-734e 20207350 branch load_regext 
-
-load_data128:
-734f 18007000 force regidx_data ,regext_index 
-
-load_regext:
-7350 18007204 force 4 ,loopcnt 
-
-load_regext_loop:
-7351 efe20006 ifetch 4 ,contr 
-7352 98005e00 iforce regext 
-7353 1f00f001 increase 1 ,regext_index 
-7354 c2007351 loop load_regext_loop 
-7355 20600000 rtn 
-
-load_sk:
-7356 d8c001a8 arg mem_le_sk ,contr 
-7357 2020734d branch load_key 
-
-clear_hidata:
-7358 18007204 force 4 ,loopcnt 
-7359 20207360 branch clear_data_rest 
-
-regext_clear:
-735a 18007000 force 0 ,regext_index 
-735b 18007210 force 16 ,loopcnt 
-735c 2020735f branch clear_loop 
-
-aes_clear_data:
-735d 18007000 force regidx_data ,regext_index 
-
-aes_clear:
-735e 18007204 force 4 ,loopcnt 
-
-clear_loop:
-735f 18005e00 force 0 ,regext 
-
-clear_data_rest:
-7360 1f00f001 increase 1 ,regext_index 
-7361 c200735f loop clear_loop 
-7362 20600000 rtn 
-
-store_aes_result:
-7363 1800700c force regidx_result ,regext_index 
-7364 18007204 force 4 ,loopcnt 
-
-send_aes_result_loop:
-7365 1de27e00 deposit regext 
-7366 e7e20005 istore 4 ,contw 
-7367 1f00f001 increase 1 ,regext_index 
-7368 c2007365 loop send_aes_result_loop 
-7369 20600000 rtn 
-
-store_enc_data:
-736a 1800700c force regidx_result ,regext_index 
-736b 1a620a00 copy regc ,contw 
-736c 1a40f201 add regb ,1 ,loopcnt 
-736d 1f267c0f sub loopcnt ,15 ,null 
-736e 20217370 branch store_enc_loop ,positive 
-736f 18007210 force 16 ,loopcnt 
-
-store_enc_loop:
-7370 1de27e00 deposit regext 
-7371 1f267c03 sub loopcnt ,3 ,null 
-7372 20217378 branch store_enc_byte ,positive 
-7373 e7e20005 istore 4 ,contw 
-7374 1f20f3fc increase -4 ,loopcnt 
-7375 20628000 rtn zero 
-7376 1f00f001 increase 1 ,regext_index 
-7377 20207370 branch store_enc_loop 
-
-store_enc_byte:
-7378 e7e08005 istore 1 ,contw 
-7379 1fecfe00 rshift8 pdata ,pdata 
-737a c2007378 loop store_enc_byte 
-737b 20600000 rtn 
-
-compare_res:
-737c 1800700c force regidx_result ,regext_index 
-737d 18007204 force 4 ,loopcnt 
-
-compare_res_loop:
-737e efe20006 ifetch 4 ,contr 
-737f 9de67c00 isub regext ,null 
-7380 24628000 nrtn zero 
-7381 1f00f001 increase 1 ,regext_index 
-7382 c200737e loop compare_res_loop 
-7383 20207dba branch enable_zero 
-
-enable_authrom:
-7384 6ff08050 fetch 1 ,core_clkoff 
-7385 793ffe00 set0 clock_off_auth_rom ,pdata 
-7386 67f08050 store 1 ,core_clkoff 
-7387 20600000 rtn 
-
-disable_authrom:
-7388 6ff08050 fetch 1 ,core_clkoff 
-7389 79207e00 set1 clock_off_auth_rom ,pdata 
-738a 67f08050 store 1 ,core_clkoff 
-738b 20600000 rtn 
-
-init_memp:
-738c d8a004af arg mem_p ,contw 
-738d 3803ffff setsect 0 ,0x3ffff 
-738e 3807ffff setsect 1 ,0x3ffff 
-738f 380bffff setsect 2 ,0x3ffff 
-7390 380ffbff setsect 3 ,0x3fbff 
-7391 e7e48005 istore 9 ,contw 
-7392 3803ffff setsect 0 ,0x3ffff 
-7393 3807ffff setsect 1 ,0x3ffff 
-7394 380bffff setsect 2 ,0x3ffff 
-7395 380fffff setsect 3 ,0x3ffff 
-7396 e7e48005 istore 9 ,contw 
-7397 3803ffff setsect 0 ,0x3ffff 
-7398 3807ffff setsect 1 ,0x3ffff 
-7399 380bcfff setsect 2 ,0x3cfff 
-739a 380fffff setsect 3 ,0x3ffff 
-739b e7e48005 istore 9 ,contw 
-739c 3803ffff setsect 0 ,0x3ffff 
-739d 3807ffff setsect 1 ,0x3ffff 
-739e 380bffef setsect 2 ,0x3ffef 
-739f 380fffff setsect 3 ,0x3ffff 
-73a0 e7e48005 istore 9 ,contw 
-73a1 3803ffff setsect 0 ,0x3ffff 
-73a2 3807ffff setsect 1 ,0x3ffff 
-73a3 380bffff setsect 2 ,0x3ffff 
-73a4 380fffff setsect 3 ,0x3ffff 
-73a5 e7e48005 istore 9 ,contw 
-73a6 3803ffff setsect 0 ,0x3ffff 
-73a7 38066c7f setsect 1 ,0x26c7f 
-73a8 3808146b setsect 2 ,0x146b 
-73a9 380f7bb3 setsect 3 ,0x37bb3 
-73aa e7e48005 istore 9 ,contw 
-73ab 3801feb8 setsect 0 ,0x1feb8 
-73ac 38050c12 setsect 1 ,0x10c12 
-73ad 380ab722 setsect 2 ,0x2b722 
-73ae 380e9fa6 setsect 3 ,0x29fa6 
-73af e7e48005 istore 9 ,contw 
-73b0 3800e70f setsect 0 ,0xe70f 
-73b1 38056720 setsect 1 ,0x16720 
-73b2 3808519e setsect 2 ,0x519e 
-73b3 380d9084 setsect 3 ,0x19084 
-73b4 e7e48005 istore 9 ,contw 
-73b5 38031012 setsect 0 ,0x31012 
-73b6 380760bf setsect 1 ,0x360bf 
-73b7 380bf0af setsect 2 ,0x3f0af 
-73b8 380c03d3 setsect 3 ,0x3d3 
-73b9 e7e48005 istore 9 ,contw 
-73ba 3803a188 setsect 0 ,0x3a188 
-73bb 38043ad0 setsect 1 ,0x3ad0 
-73bc 380bcbf2 setsect 2 ,0x3cbf2 
-73bd 380e43d9 setsect 3 ,0x243d9 
-73be e7e48005 istore 9 ,contw 
-73bf 3802b030 setsect 0 ,0x2b030 
-73c0 38076a03 setsect 1 ,0x36a03 
-73c1 38091188 setsect 2 ,0x11188 
-73c2 380de520 setsect 3 ,0x1e520 
-73c3 e7e48005 istore 9 ,contw 
-73c4 3803a11e setsect 0 ,0x3a11e 
-73c5 3804fe5d setsect 1 ,0xfe5d 
-73c6 3808dd57 setsect 2 ,0xdd57 
-73c7 380dac93 setsect 3 ,0x1ac93 
-73c8 e7e48005 istore 9 ,contw 
-73c9 380011ed setsect 0 ,0x11ed 
-73ca 380618c4 setsect 1 ,0x218c4 
-73cb 38088da7 setsect 2 ,0x8da7 
-73cc 380e57ff setsect 3 ,0x257ff 
-73cd e7e48005 istore 9 ,contw 
-73ce 3803192b setsect 0 ,0x3192b 
-73cf 38074641 setsect 1 ,0x34641 
-73d0 3809be0c setsect 2 ,0x1be0c 
-73d1 380f66ad setsect 3 ,0x366ad 
-73d2 e7e48005 istore 9 ,contw 
-73d3 38001f83 setsect 0 ,0x1f83 
-73d4 38055a23 setsect 1 ,0x15a23 
-73d5 380bf9b0 setsect 2 ,0x3f9b0 
-73d6 380c3949 setsect 3 ,0x3949 
-73d7 e7e48005 istore 9 ,contw 
-73d8 38013a51 setsect 0 ,0x13a51 
-73d9 380553fd setsect 1 ,0x153fd 
-73da 380b372a setsect 2 ,0x3372a 
-73db 380cf1bb setsect 3 ,0xf1bb 
-73dc e7e48005 istore 9 ,contw 
-73dd 3803ae85 setsect 0 ,0x3ae85 
-73de 3805eed9 setsect 1 ,0x1eed9 
-73df 38089e66 setsect 2 ,0x9e66 
-73e0 380c01a8 setsect 3 ,0x1a8 
-73e1 e7e40005 istore 8 ,contw 
-73e2 20600000 rtn 
-
-init_memp_256:
-73e3 d8a00547 arg mem_p_256 ,contw 
-73e4 3803ffff setsect 0 ,0x3ffff 
-73e5 3807ffff setsect 1 ,0x3ffff 
-73e6 380bffff setsect 2 ,0x3ffff 
-73e7 380fffff setsect 3 ,0x3ffff 
-73e8 e7e48005 istore 9 ,contw 
-73e9 3803ffff setsect 0 ,0x3ffff 
-73ea 3804003f setsect 1 ,0x3f 
-73eb 38080000 setsect 2 ,0x0 
-73ec 380c0000 setsect 3 ,0x0 
-73ed e7e48005 istore 9 ,contw 
-73ee 38000000 setsect 0 ,0x0 
-73ef 38040000 setsect 1 ,0x0 
-73f0 38081000 setsect 2 ,0x1000 
-73f1 380c0000 setsect 3 ,0x0 
-73f2 e7e48005 istore 9 ,contw 
-73f3 3803ff00 setsect 0 ,0x3ff00 
-73f4 3807ffff setsect 1 ,0x3ffff 
-73f5 380bffcf setsect 2 ,0x3ffcf 
-73f6 380fffff setsect 3 ,0x3ffff 
-73f7 e7e48005 istore 9 ,contw 
-73f8 3803ffff setsect 0 ,0x3ffff 
-73f9 3807ffff setsect 1 ,0x3ffff 
-73fa 380bffff setsect 2 ,0x3ffff 
-73fb 380c03ff setsect 3 ,0x3ff 
-73fc e7e48005 istore 9 ,contw 
-73fd 38000000 setsect 0 ,0x0 
-73fe 38040000 setsect 1 ,0x0 
-73ff 38080000 setsect 2 ,0x0 
-7400 380c0000 setsect 3 ,0x0 
-7401 e7e48005 istore 9 ,contw 
-7402 38010000 setsect 0 ,0x10000 
-7403 38040000 setsect 1 ,0x0 
-7404 380bf000 setsect 2 ,0x3f000 
-7405 380fffff setsect 3 ,0x3ffff 
-7406 e7e48005 istore 9 ,contw 
-7407 380296ff setsect 0 ,0x296ff 
-7408 38062630 setsect 1 ,0x22630 
-7409 380b945d setsect 2 ,0x3945d 
-740a 380fd284 setsect 3 ,0x3d284 
-740b e7e48005 istore 9 ,contw 
-740c 380333a0 setsect 0 ,0x333a0 
-740d 38044b7a setsect 1 ,0x4b7a 
-740e 380837d8 setsect 2 ,0x37d8 
-740f 380fc9dc setsect 3 ,0x3c9dc 
-7410 e7e48005 istore 9 ,contw 
-7411 3803a440 setsect 0 ,0x3a440 
-7412 3805b958 setsect 1 ,0x1b958 
-7413 380b8bce setsect 2 ,0x38bce 
-7414 380d091f setsect 3 ,0x1091f 
-7415 e7e48005 istore 9 ,contw 
-7416 3802e12c setsect 0 ,0x2e12c 
-7417 3805f47c setsect 1 ,0x1f47c 
-7418 380b56b1 setsect 2 ,0x356b1 
-7419 380efd47 setsect 3 ,0x2fd47 
-741a e7e48005 istore 9 ,contw 
-741b 38006837 setsect 0 ,0x6837 
-741c 3806ed90 setsect 1 ,0x2ed90 
-741d 3809ecec setsect 2 ,0x1ecec 
-741e 380dacc5 setsect 3 ,0x1acc5 
-741f e7e48005 istore 9 ,contw 
-7420 38023357 setsect 0 ,0x23357 
-7421 38058af3 setsect 1 ,0x18af3 
-7422 3808f9e1 setsect 2 ,0xf9e1 
-7423 380d29f0 setsect 3 ,0x129f0 
-7424 e7e48005 istore 9 ,contw 
-7425 3802e7eb setsect 0 ,0x2e7eb 
-7426 3807e6e3 setsect 1 ,0x3e6e3 
-7427 380be1a7 setsect 2 ,0x3e1a7 
-7428 380d0b8b setsect 3 ,0x10b8b 
-7429 e7e48005 istore 9 ,contw 
-742a 38024fe3 setsect 0 ,0x24fe3 
-742b 380420ef setsect 1 ,0x20ef 
-742c 3809b5a6 setsect 2 ,0x1b5a6 
-742d 380cdc2f setsect 3 ,0xdc2f 
-742e e7e48005 istore 9 ,contw 
-742f 38013860 setsect 0 ,0x13860 
-7430 3806bd69 setsect 1 ,0x2bd69 
-7431 3808391a setsect 2 ,0x391a 
-7432 380db222 setsect 3 ,0x1b222 
-7433 e7e48005 istore 9 ,contw 
-7434 20600000 rtn 
-
-publickey_init:
-7435 202074ea branch sp_initialize_256 
-
-sp_calc_sequence_256_check:
-7436 4709c022 bpatchx patch22_3 ,mem_patch22 
-7437 6fe0c483 fetch 1 ,mem_secure_connections_enable 
-7438 207a0000 rtn blank 
-7439 6fe0c485 fetch 1 ,mem_sc_local_key_invalid 
-743a c1018000 rtneq sp_key_valid_256 
-743b 6fe0c484 fetch 1 ,mem_sc_calc 
-743c c00074ea beq sp_calc_standby ,sp_initialize_256 
-743d 20600000 rtn 
-
-stop_publickey_calc_256:
-743e 70448400 jam sp_calc_standby ,mem_sc_calc 
-743f 20600000 rtn 
-
-sp_clear_flags:
-7440 470a4022 bpatchx patch22_4 ,mem_patch22 
-7441 580005dc setarg mem_sp_state_end 
-7442 d8a005d7 arg mem_sp_state_start ,contw 
-7443 98a67200 isub contw ,loopcnt 
-7444 20407ca3 call clear_mem 
-7445 580044e8 setarg mem_sp_state_xmem_end 
-7446 d8a044e6 arg mem_sp_state_xmem ,contw 
-7447 98a67200 isub contw ,loopcnt 
-7448 20207ca3 branch clear_mem 
-
-sp_calc_check_publickey_256:
-7449 20407464 call sp_calc_b256 
-744a da2005fc arg mem_le_pubkey_remote_y_256 ,rega 
-744b d8a0048f arg mem_t7_256 ,contw 
-744c 2040770a call bn_sqrmod_256 
-744d da2005dc arg mem_le_pubkey_remote_x_256 ,rega 
-744e d8a0044f arg mem_t2_256 ,contw 
-744f 2040770a call bn_sqrmod_256 
-7450 da20044f arg mem_t2_256 ,rega 
-7451 da4005dc arg mem_le_pubkey_remote_x_256 ,regb 
-7452 d8a0044f arg mem_t2_256 ,contw 
-7453 20407672 call bn_mulmod_256 
-7454 da200567 arg mem_a_256 ,rega 
-7455 da4005dc arg mem_le_pubkey_remote_x_256 ,regb 
-7456 d8a0046f arg mem_t3_256 ,contw 
-7457 20407672 call bn_mulmod_256 
-7458 da20046f arg mem_t3_256 ,rega 
-7459 da40044f arg mem_t2_256 ,regb 
-745a d8a0044f arg mem_t2_256 ,contw 
-745b 2040770e call bn_addmod_256 
-745c da20042f arg mem_t0_256 ,rega 
-745d da40044f arg mem_t2_256 ,regb 
-745e d8a0042f arg mem_t0_256 ,contw 
-745f 2040770e call bn_addmod_256 
-7460 df200020 arg 32 ,loopcnt 
-7461 da20048f arg mem_t7_256 ,rega 
-7462 da40042f arg mem_t0_256 ,regb 
-7463 20207d66 branch string_compare 
-
-sp_calc_b256:
-7464 da2005a7 arg mem_gy_256 ,rega 
-7465 d8a0042f arg mem_t0_256 ,contw 
-7466 2040770a call bn_sqrmod_256 
-7467 da200587 arg mem_gx_256 ,rega 
-7468 d8a0044f arg mem_t2_256 ,contw 
-7469 2040770a call bn_sqrmod_256 
-746a da20044f arg mem_t2_256 ,rega 
-746b da400587 arg mem_gx_256 ,regb 
-746c d8a0044f arg mem_t2_256 ,contw 
-746d 20407672 call bn_mulmod_256 
-746e da200567 arg mem_a_256 ,rega 
-746f da400587 arg mem_gx_256 ,regb 
-7470 d8a0046f arg mem_t3_256 ,contw 
-7471 20407672 call bn_mulmod_256 
-7472 da20046f arg mem_t3_256 ,rega 
-7473 da40044f arg mem_t2_256 ,regb 
-7474 d8a0044f arg mem_t2_256 ,contw 
-7475 2040770e call bn_addmod_256 
-7476 da20042f arg mem_t0_256 ,rega 
-7477 da40044f arg mem_t2_256 ,regb 
-7478 d8a0042f arg mem_t0_256 ,contw 
-7479 20207727 branch bn_submod_256 
-
-random_generator:
-747a 18e08fff increase -1 ,queue 
-747b 24610000 nrtn positive 
-747c 180a7e00 random pdata 
-747d e7e10005 istore 2 ,contw 
-747e 2020747a branch random_generator 
-
-compare4:
-747f 18e08fff increase -1 ,queue 
-7480 2421748a nbranch compare4_success ,positive 
-7481 efe20011 ifetch 4 ,rega 
-7482 1fe20400 copy pdata ,temp 
-7483 efe20012 ifetch 4 ,regb 
-7484 9842fe00 iflip temp ,pdata 
-7485 2422f489 nbranch compare4_failed ,zero 
-7486 1a20a204 increase 4 ,rega 
-7487 1a40a404 increase 4 ,regb 
-7488 2020747f branch compare4 
-
-compare4_failed:
-7489 20207dc6 branch disable_true 
-
-compare4_success:
-748a 20207dc8 branch enable_true 
-
-bn_testbit:
-748b 1fe10e07 and pdata ,7 ,queue 
-748c 1fe97e00 rshift3 pdata ,pdata 
-748d 98c08c00 iadd contr ,contr 
-748e efe08006 ifetch 1 ,contr 
-748f afec0000 qisolate0 pdata 
-7490 20600000 rtn 
-
-bn_eq_zero:
-7491 efe40006 ifetch 8 ,contr 
-7492 247a0000 nrtn blank 
-7493 efe40006 ifetch 8 ,contr 
-7494 247a0000 nrtn blank 
-7495 efe40006 ifetch 8 ,contr 
-7496 20600000 rtn 
-
-bn_eq_0:
-7497 efe20011 ifetch 4 ,rega 
-7498 98000400 iforce temp 
-7499 efe20012 ifetch 4 ,regb 
-749a 98467c00 isub temp ,null 
-749b 24628000 nrtn zero 
-749c 1a20a204 increase 4 ,rega 
-749d 1a40a404 increase 4 ,regb 
-749e c2007497 loop bn_eq_0 
-749f 20600000 rtn 
-
-bn_bigeq:
-74a0 18007206 force 6 ,loopcnt 
-74a1 1a20a214 increase 20 ,rega 
-74a2 1a40a414 increase 20 ,regb 
-
-bn_bigeq_0:
-74a3 efe20012 ifetch 4 ,regb 
-74a4 98000400 iforce temp 
-74a5 efe20011 ifetch 4 ,rega 
-74a6 98467e00 isub temp ,pdata 
-74a7 24610000 nrtn positive 
-74a8 247a0000 nrtn blank 
-74a9 1a20a3fc increase -4 ,rega 
-74aa 1a40a5fc increase -4 ,regb 
-74ab c20074a3 loop bn_bigeq_0 
-74ac 20600000 rtn 
-
-bn_add:
-74ad 18007206 force 6 ,loopcnt 
-74ae 18002600 force 0 ,regc 
-
-bn_add_0:
-74af efe20011 ifetch 4 ,rega 
-74b0 98000400 iforce temp 
-74b1 efe20012 ifetch 4 ,regb 
-74b2 9840fe00 iadd temp ,pdata 
-74b3 9a60fe00 iadd regc ,pdata 
-74b4 e7e20005 istore 4 ,contw 
-74b5 2feffe20 isolate1 32 ,pdata 
-74b6 7920a600 setflag true ,0 ,regc 
-74b7 1a20a204 increase 4 ,rega 
-74b8 1a40a404 increase 4 ,regb 
-74b9 c20074af loop bn_add_0 
-74ba 20600000 rtn 
-
-bn_sub:
-74bb 18007206 force 6 ,loopcnt 
-74bc 18002600 force 0 ,regc 
-
-bn_sub_0:
-74bd efe20012 ifetch 4 ,regb 
-74be 98000400 iforce temp 
-74bf efe20011 ifetch 4 ,rega 
-74c0 98467e00 isub temp ,pdata 
-74c1 9a667e00 isub regc ,pdata 
-74c2 e7e20005 istore 4 ,contw 
-74c3 2feffe20 isolate1 32 ,pdata 
-74c4 7920a600 setflag true ,0 ,regc 
-74c5 1a20a204 increase 4 ,rega 
-74c6 1a40a404 increase 4 ,regb 
-74c7 c20074bd loop bn_sub_0 
-74c8 20600000 rtn 
-
-bn_rshift6:
-74c9 18007206 force 6 ,loopcnt 
-74ca 1a20a214 increase 20 ,rega 
-
-bn_rshift:
-74cb 18002600 force 0 ,regc 
-
-bn_rshift_0:
-74cc efe20011 ifetch 4 ,rega 
-74cd 2feffe00 isolate1 0 ,pdata 
-74ce 7920a601 setflag true ,1 ,regc 
-74cf 1fe37e00 rshift pdata ,pdata 
-74d0 2a6ffe00 isolate1 0 ,regc 
-74d1 7920fe1f setflag true ,31 ,pdata 
-74d2 e7e20011 istore 4 ,rega 
-74d3 1a20a3fc increase -4 ,rega 
-74d4 1a632600 rshift regc ,regc 
-74d5 c20074cc loop bn_rshift_0 
-74d6 20600000 rtn 
-
-bn_lshift:
-74d7 18007206 force 6 ,loopcnt 
-74d8 18002600 force 0 ,regc 
-
-bn_lshift_0:
-74d9 efe20011 ifetch 4 ,rega 
-74da 2feffe1f isolate1 31 ,pdata 
-74db 7920a601 setflag true ,1 ,regc 
-74dc 1fe3fe00 lshift pdata ,pdata 
-74dd 2a6ffe00 isolate1 0 ,regc 
-74de 7920fe00 setflag true ,0 ,pdata 
-74df e7e20011 istore 4 ,rega 
-74e0 1a20a204 increase 4 ,rega 
-74e1 1a632600 rshift regc ,regc 
-74e2 c20074d9 loop bn_lshift_0 
-74e3 20600000 rtn 
-
-bn_load:
-74e4 18007206 force 6 ,loopcnt 
-
-bn_load_0:
-74e5 efe20006 ifetch 4 ,contr 
-74e6 98005e00 iforce regext 
-74e7 1f00f001 increase 1 ,regext_index 
-74e8 c20074e5 loop bn_load_0 
-74e9 20600000 rtn 
-
-sp_initialize_256:
-74ea 470ac022 bpatchx patch22_5 ,mem_patch22 
-74eb 6fe0c483 fetch 1 ,mem_secure_connections_enable 
-74ec 243a750b nbranch sp_pubkey_calc_256 ,blank 
-
-sc_reset:
-74ed 70448400 jam sp_calc_standby ,mem_sc_calc 
-74ee 70448500 jam sp_key_invalid ,mem_sc_local_key_invalid 
-74ef 20600000 rtn 
-
-sp_wait_pubkey_calc_256_done:
-74f0 6fe0c483 fetch 1 ,mem_secure_connections_enable 
-74f1 207a0000 rtn blank 
-74f2 6fe0c485 fetch 1 ,mem_sc_local_key_invalid 
-74f3 c1018000 rtneq sp_key_valid_256 
-74f4 20407540 call sp_calc_sequence_256 
-74f5 202074f0 branch sp_wait_pubkey_calc_256_done 
-
-sp_debug_private_256:
-74f6 d8a04486 arg mem_sc_private_key_256 ,contw 
-74f7 38001abd setsect 0 ,0x1abd 
-74f8 3805b34f setsect 1 ,0x1b34f 
-74f9 38099b8a setsect 2 ,0x19b8a 
-74fa 380e6562 setsect 3 ,0x26562 
-74fb e7e48005 istore 9 ,contw 
-74fc 380340b7 setsect 0 ,0x340b7 
-74fd 38041efa setsect 1 ,0x1efa 
-74fe 3808aff6 setsect 2 ,0xaff6 
-74ff 380cfd41 setsect 3 ,0xfd41 
-7500 e7e48005 istore 9 ,contw 
-7501 3803d210 setsect 0 ,0x3d210 
-7502 38066cf8 setsect 1 ,0x26cf8 
-7503 380b874c setsect 2 ,0x3874c 
-7504 380f157c setsect 3 ,0x3157c 
-7505 e7e48005 istore 9 ,contw 
-7506 3802d4a3 setsect 0 ,0x2d4a3 
-7507 3807d27d setsect 1 ,0x3d27d 
-7508 38080003 setsect 2 ,0x3 
-7509 e7e28005 istore 5 ,contw 
-750a 20600000 rtn 
-
-sp_pubkey_calc_256:
-750b 6fe0c485 fetch 1 ,mem_sc_local_key_invalid 
-750c c1800000 rtnne sp_key_invalid 
-750d 6fe0c484 fetch 1 ,mem_sc_calc 
-750e c1800000 rtnne sp_calc_standby 
-750f 204073e3 call init_memp_256 
-7510 d8a04486 arg mem_sc_private_key_256 ,contw 
-7511 18000e0f force 15 ,queue 
-7512 2040747a call random_generator 
-7513 180a7e00 random pdata 
-7514 1fe37e00 rshift pdata ,pdata 
-7515 e7e10005 istore 2 ,contw 
-7516 6fe0c482 fetch 1 ,mem_sp_debug_mode 
-7517 245a74f6 ncall sp_debug_private_256 ,blank 
-7518 d8a0038f arg mem_k_256 ,contw 
-7519 d8c04486 arg mem_sc_private_key_256 ,contr 
-751a 20407c8f call memcpy32 
-751b d8a0026f arg mem_ax_256 ,contw 
-751c d8c00587 arg mem_gx_256 ,contr 
-751d 20407c83 call memcpy64 
-751e d8a002af arg mem_az_256 ,contw 
-751f 20407c9f call clear_mem_256 
-7520 7002af01 jam 1 ,mem_az_256 
-7521 20407558 call eckp_calc_init_256 
-7522 70448403 jam sp_calc_pubkey_256 ,mem_sc_calc 
-7523 20600000 rtn 
-
-sp_pubkey_generated_256:
-7524 d8a044a6 arg mem_sc_pubkey_local_x_256 ,contw 
-7525 d8c002cf arg mem_bx_256 ,contr 
-7526 20407c83 call memcpy64 
-7527 70448503 jam sp_key_valid_256 ,mem_sc_local_key_invalid 
-7528 70448400 jam sp_calc_standby ,mem_sc_calc 
-7529 20600000 rtn 
-
-sp_dhkey_calc_256:
-752a 6fe085d7 fetch 1 ,mem_sp_dhkey_invalid 
-752b c1800000 rtnne sp_key_invalid 
-752c 6fe0c484 fetch 1 ,mem_sc_calc 
-752d c1800000 rtnne sp_calc_standby 
-752e d8a0038f arg mem_k_256 ,contw 
-752f d8c04486 arg mem_sc_private_key_256 ,contr 
-7530 20407c8f call memcpy32 
-7531 d8a0026f arg mem_ax_256 ,contw 
-7532 d8c005dc arg mem_le_pubkey_remote_x_256 ,contr 
-7533 20407c83 call memcpy64 
-7534 d8a002af arg mem_az_256 ,contw 
-7535 20407c9f call clear_mem_256 
-7536 7002af01 jam 1 ,mem_az_256 
-7537 20407558 call eckp_calc_init_256 
-7538 70448404 jam sp_calc_dhkey_256 ,mem_sc_calc 
-7539 20600000 rtn 
-
-sp_dhkey_generated_256:
-753a d8a0061c arg mem_le_dhkey_256 ,contw 
-753b d8c002cf arg mem_bx_256 ,contr 
-753c 20407c8f call memcpy32 
-753d 7005d703 jam sp_key_valid_256 ,mem_sp_dhkey_invalid 
-753e 70448400 jam sp_calc_standby ,mem_sc_calc 
-753f 20600000 rtn 
-
-sp_calc_sequence_256:
-7540 6fe0c483 fetch 1 ,mem_secure_connections_enable 
-7541 207a0000 rtn blank 
-7542 6fe0c484 fetch 1 ,mem_sc_calc 
-7543 207a0000 rtn blank 
-7544 1fe0fe80 increase 0x80 ,pdata 
-7545 67e0c484 store 1 ,mem_sc_calc 
-7546 c3838000 rtnbit1 7 
-7547 6fe1020c fetch 2 ,mem_ec_loopc 
-7548 203a754a branch sp_calc_sequence_done_256 ,blank 
-7549 20207550 branch eckp_calc_256 
-
-sp_calc_sequence_done_256:
-754a 470b4022 bpatchx patch22_6 ,mem_patch22 
-754b 20407565 call ecunmapz_256 
-754c 6fe0c484 fetch 1 ,mem_sc_calc 
-754d c001f524 beq sp_calc_pubkey_256 ,sp_pubkey_generated_256 
-754e c002753a beq sp_calc_dhkey_256 ,sp_dhkey_generated_256 
-754f 20600000 rtn 
-
-eckp_calc_256:
-7550 20407577 call ecdbl_256 
-7551 6fe1020c fetch 2 ,mem_ec_loopc 
-7552 1fe0ffff increase -1 ,pdata 
-7553 67e1020c store 2 ,mem_ec_loopc 
-7554 d8c0038f arg mem_k_256 ,contr 
-7555 2040748b call bn_testbit 
-7556 20608000 rtn true 
-7557 202075c8 branch ecadd_256 
-
-eckp_calc_init_256:
-7558 470bc022 bpatchx patch22_7 ,mem_patch22 
-7559 58000100 setarg 256 
-755a 67e1020c store 2 ,mem_ec_loopc 
-
-eckp_calc_init_256_1:
-755b 6fe1020c fetch 2 ,mem_ec_loopc 
-755c 207a0000 rtn blank 
-755d 1fe0ffff increase -1 ,pdata 
-755e 67e1020c store 2 ,mem_ec_loopc 
-755f d8c0038f arg mem_k_256 ,contr 
-7560 2040748b call bn_testbit 
-7561 2020f55b branch eckp_calc_init_256_1 ,true 
-7562 d8c0026f arg mem_ax_256 ,contr 
-7563 d8a0032f arg mem_cx_256 ,contw 
-7564 20207c82 branch memcpy96 
-
-ecunmapz_256:
-7565 da20036f arg mem_cz_256 ,rega 
-7566 d8a0046f arg mem_t3_256 ,contw 
-7567 20407634 call bn_invmod_256 
-7568 da20046f arg mem_t3_256 ,rega 
-7569 d8a0040f arg mem_t1_256 ,contw 
-756a 2040770a call bn_sqrmod_256 
-756b da20032f arg mem_cx_256 ,rega 
-756c da40040f arg mem_t1_256 ,regb 
-756d d8a002cf arg mem_bx_256 ,contw 
-756e 20407672 call bn_mulmod_256 
-756f da20046f arg mem_t3_256 ,rega 
-7570 da40040f arg mem_t1_256 ,regb 
-7571 d8a0044f arg mem_t2_256 ,contw 
-7572 20407672 call bn_mulmod_256 
-7573 da20034f arg mem_cy_256 ,rega 
-7574 da40044f arg mem_t2_256 ,regb 
-7575 d8a002ef arg mem_by_256 ,contw 
-7576 20207672 branch bn_mulmod_256 
-
-ecdbl_256:
-7577 da20036f arg mem_cz_256 ,rega 
-7578 d8a0044f arg mem_t2_256 ,contw 
-7579 2040770a call bn_sqrmod_256 
-757a da20044f arg mem_t2_256 ,rega 
-757b d8a0046f arg mem_t3_256 ,contw 
-757c 2040770a call bn_sqrmod_256 
-757d da200567 arg mem_a_256 ,rega 
-757e da40046f arg mem_t3_256 ,regb 
-757f d8a0046f arg mem_t3_256 ,contw 
-7580 20407672 call bn_mulmod_256 
-7581 da20032f arg mem_cx_256 ,rega 
-7582 d8a0044f arg mem_t2_256 ,contw 
-7583 2040770a call bn_sqrmod_256 
-7584 d8c0044f arg mem_t2_256 ,contr 
-7585 d8a0040f arg mem_t1_256 ,contw 
-7586 20407c8f call memcpy32 
-7587 da20040f arg mem_t1_256 ,rega 
-7588 20407711 call bn_lshiftmod_256 
-7589 da20044f arg mem_t2_256 ,rega 
-758a da40040f arg mem_t1_256 ,regb 
-758b d8a0044f arg mem_t2_256 ,contw 
-758c 2040770e call bn_addmod_256 
-758d da20044f arg mem_t2_256 ,rega 
-758e da40046f arg mem_t3_256 ,regb 
-758f d8a0044f arg mem_t2_256 ,contw 
-7590 2040770e call bn_addmod_256 
-7591 d8c0032f arg mem_cx_256 ,contr 
-7592 d8a0040f arg mem_t1_256 ,contw 
-7593 20407c8f call memcpy32 
-7594 da20034f arg mem_cy_256 ,rega 
-7595 d8a0046f arg mem_t3_256 ,contw 
-7596 2040770a call bn_sqrmod_256 
-7597 da20040f arg mem_t1_256 ,rega 
-7598 20407711 call bn_lshiftmod_256 
-7599 da20040f arg mem_t1_256 ,rega 
-759a 20407711 call bn_lshiftmod_256 
-759b da20040f arg mem_t1_256 ,rega 
-759c da40046f arg mem_t3_256 ,regb 
-759d d8a0040f arg mem_t1_256 ,contw 
-759e 20407672 call bn_mulmod_256 
-759f da20046f arg mem_t3_256 ,rega 
-75a0 d8a0042f arg mem_t0_256 ,contw 
-75a1 2040770a call bn_sqrmod_256 
-75a2 da20042f arg mem_t0_256 ,rega 
-75a3 20407711 call bn_lshiftmod_256 
-75a4 da20042f arg mem_t0_256 ,rega 
-75a5 20407711 call bn_lshiftmod_256 
-75a6 da20042f arg mem_t0_256 ,rega 
-75a7 20407711 call bn_lshiftmod_256 
-75a8 d8c0034f arg mem_cy_256 ,contr 
-75a9 d8a0046f arg mem_t3_256 ,contw 
-75aa 20407c8f call memcpy32 
-75ab da20046f arg mem_t3_256 ,rega 
-75ac 20407711 call bn_lshiftmod_256 
-75ad da20046f arg mem_t3_256 ,rega 
-75ae da40036f arg mem_cz_256 ,regb 
-75af d8a0036f arg mem_cz_256 ,contw 
-75b0 20407672 call bn_mulmod_256 
-75b1 da20044f arg mem_t2_256 ,rega 
-75b2 d8a0046f arg mem_t3_256 ,contw 
-75b3 2040770a call bn_sqrmod_256 
-75b4 da20046f arg mem_t3_256 ,rega 
-75b5 da40040f arg mem_t1_256 ,regb 
-75b6 d8a0046f arg mem_t3_256 ,contw 
-75b7 20407727 call bn_submod_256 
-75b8 da20046f arg mem_t3_256 ,rega 
-75b9 da40040f arg mem_t1_256 ,regb 
-75ba d8a0032f arg mem_cx_256 ,contw 
-75bb 20407727 call bn_submod_256 
-75bc da20040f arg mem_t1_256 ,rega 
-75bd da40032f arg mem_cx_256 ,regb 
-75be d8a0046f arg mem_t3_256 ,contw 
-75bf 20407727 call bn_submod_256 
-75c0 da20046f arg mem_t3_256 ,rega 
-75c1 da40044f arg mem_t2_256 ,regb 
-75c2 d8a0046f arg mem_t3_256 ,contw 
-75c3 20407672 call bn_mulmod_256 
-75c4 da20046f arg mem_t3_256 ,rega 
-75c5 da40042f arg mem_t0_256 ,regb 
-75c6 d8a0034f arg mem_cy_256 ,contw 
-75c7 20207727 branch bn_submod_256 
-
-ecadd_256:
-75c8 da2002af arg mem_az_256 ,rega 
-75c9 d8a0048f arg mem_t7_256 ,contw 
-75ca 2040770a call bn_sqrmod_256 
-75cb da20032f arg mem_cx_256 ,rega 
-75cc da40048f arg mem_t7_256 ,regb 
-75cd d8a0042f arg mem_t0_256 ,contw 
-75ce 20407672 call bn_mulmod_256 
-75cf da2002af arg mem_az_256 ,rega 
-75d0 da40048f arg mem_t7_256 ,regb 
-75d1 d8a0048f arg mem_t7_256 ,contw 
-75d2 20407672 call bn_mulmod_256 
-75d3 da20034f arg mem_cy_256 ,rega 
-75d4 da40048f arg mem_t7_256 ,regb 
-75d5 d8a0040f arg mem_t1_256 ,contw 
-75d6 20407672 call bn_mulmod_256 
-75d7 da20036f arg mem_cz_256 ,rega 
-75d8 d8a0048f arg mem_t7_256 ,contw 
-75d9 2040770a call bn_sqrmod_256 
-75da da20026f arg mem_ax_256 ,rega 
-75db da40048f arg mem_t7_256 ,regb 
-75dc d8a0044f arg mem_t2_256 ,contw 
-75dd 20407672 call bn_mulmod_256 
-75de da20036f arg mem_cz_256 ,rega 
-75df da40048f arg mem_t7_256 ,regb 
-75e0 d8a0048f arg mem_t7_256 ,contw 
-75e1 20407672 call bn_mulmod_256 
-75e2 da20028f arg mem_ay_256 ,rega 
-75e3 da40048f arg mem_t7_256 ,regb 
-75e4 d8a0046f arg mem_t3_256 ,contw 
-75e5 20407672 call bn_mulmod_256 
-75e6 da40042f arg mem_t0_256 ,regb 
-75e7 da20044f arg mem_t2_256 ,rega 
-75e8 d8a0048f arg mem_t7_256 ,contw 
-75e9 20407727 call bn_submod_256 
-75ea da20042f arg mem_t0_256 ,rega 
-75eb da40044f arg mem_t2_256 ,regb 
-75ec d8a0042f arg mem_t0_256 ,contw 
-75ed 2040770e call bn_addmod_256 
-75ee da40040f arg mem_t1_256 ,regb 
-75ef da20046f arg mem_t3_256 ,rega 
-75f0 d8a0044f arg mem_t2_256 ,contw 
-75f1 20407727 call bn_submod_256 
-75f2 da20040f arg mem_t1_256 ,rega 
-75f3 da40046f arg mem_t3_256 ,regb 
-75f4 d8a0040f arg mem_t1_256 ,contw 
-75f5 2040770e call bn_addmod_256 
-75f6 da20040f arg mem_t1_256 ,rega 
-75f7 da40048f arg mem_t7_256 ,regb 
-75f8 d8a0040f arg mem_t1_256 ,contw 
-75f9 20407672 call bn_mulmod_256 
-75fa da20036f arg mem_cz_256 ,rega 
-75fb da4002af arg mem_az_256 ,regb 
-75fc d8a0046f arg mem_t3_256 ,contw 
-75fd 20407672 call bn_mulmod_256 
-75fe da20046f arg mem_t3_256 ,rega 
-75ff da40048f arg mem_t7_256 ,regb 
-7600 d8a0036f arg mem_cz_256 ,contw 
-7601 20407672 call bn_mulmod_256 
-7602 da20048f arg mem_t7_256 ,rega 
-7603 d8a0048f arg mem_t7_256 ,contw 
-7604 2040770a call bn_sqrmod_256 
-7605 da20048f arg mem_t7_256 ,rega 
-7606 da40042f arg mem_t0_256 ,regb 
-7607 d8a0046f arg mem_t3_256 ,contw 
-7608 20407672 call bn_mulmod_256 
-7609 da20048f arg mem_t7_256 ,rega 
-760a da40040f arg mem_t1_256 ,regb 
-760b d8a0040f arg mem_t1_256 ,contw 
-760c 20407672 call bn_mulmod_256 
-760d da20044f arg mem_t2_256 ,rega 
-760e d8a0032f arg mem_cx_256 ,contw 
-760f 2040770a call bn_sqrmod_256 
-7610 da20032f arg mem_cx_256 ,rega 
-7611 da40046f arg mem_t3_256 ,regb 
-7612 d8a0032f arg mem_cx_256 ,contw 
-7613 20407727 call bn_submod_256 
-7614 d8c0032f arg mem_cx_256 ,contr 
-7615 d8a0048f arg mem_t7_256 ,contw 
-7616 20407c8f call memcpy32 
-7617 da20048f arg mem_t7_256 ,rega 
-7618 20407711 call bn_lshiftmod_256 
-7619 da20046f arg mem_t3_256 ,rega 
-761a da40048f arg mem_t7_256 ,regb 
-761b d8a0046f arg mem_t3_256 ,contw 
-761c 20407727 call bn_submod_256 
-761d da20046f arg mem_t3_256 ,rega 
-761e da40044f arg mem_t2_256 ,regb 
-761f d8a0044f arg mem_t2_256 ,contw 
-7620 20407672 call bn_mulmod_256 
-7621 da20044f arg mem_t2_256 ,rega 
-7622 da40040f arg mem_t1_256 ,regb 
-7623 d8a0034f arg mem_cy_256 ,contw 
-7624 20407727 call bn_submod_256 
-7625 da20034f arg mem_cy_256 ,rega 
-7626 da400547 arg mem_p_256 ,regb 
-7627 d8a0034f arg mem_cy_256 ,contw 
-7628 18002600 force 0 ,regc 
-7629 6fe0834f fetch 1 ,mem_cy_256 
-762a 2feffe00 isolate1 0 ,pdata 
-762b 2040f70c call bn_add_256 ,true 
-762c 1a626000 copy regc ,alarm 
-762d da20034f arg mem_cy_256 ,rega 
-762e 2040773c call bn_rshift_256 
-762f 6fe0836e fetch 1 ,mem_cy5_256 
-7630 2e0ffe00 isolate1 0 ,alarm 
-7631 7920fe07 setflag true ,7 ,pdata 
-7632 67e0836e store 1 ,mem_cy5_256 
-7633 20600000 rtn 
-
-bn_invmod_256:
-7634 18a21600 copy contw ,timeup 
-7635 d8a0042f arg mem_tmp0_256 ,contw 
-7636 20407c9f call clear_mem_256 
-7637 18007e00 force 0 ,pdata 
-7638 67e2044f store 4 ,mem_t2_256 
-7639 70042f01 jam 1 ,mem_tmp0_256 
-763a d8a003af arg mem_tmp1_256 ,contw 
-763b 20407ca1 call clear_mem_512 
-763c d8c00547 arg mem_p_256 ,contr 
-763d d8a003ef arg mem_tmp2_256 ,contw 
-763e 20407c8f call memcpy32 
-763f 1a220c00 copy rega ,contr 
-7640 d8a0040f arg mem_tmp3_256 ,contw 
-7641 20407c8f call memcpy32 
-
-bn_invmod_256_2:
-7642 d8c0040f arg mem_tmp3_256 ,contr 
-7643 20407746 call bn_eq_zero_256 
-7644 203a766b branch bn_invmod_256_0 ,blank 
-7645 da20040f arg mem_tmp3_256 ,rega 
-7646 da40042f arg mem_tmp0_256 ,regb 
-7647 20407749 call bn_rshifteven_256 
-7648 da2003ef arg mem_tmp2_256 ,rega 
-7649 da4003af arg mem_tmp1_256 ,regb 
-764a 20407749 call bn_rshifteven_256 
-764b da20040f arg mem_tmp3_256 ,rega 
-764c da4003ef arg mem_tmp2_256 ,regb 
-764d 20407742 call bn_bigeq_256 
-764e 2021765d branch bn_invmod_256_1 ,positive 
-764f da2003ef arg mem_tmp2_256 ,rega 
-7650 da40040f arg mem_tmp3_256 ,regb 
-7651 1a220a00 copy rega ,contw 
-7652 2040773a call bn_sub_256 
-7653 da20042f arg mem_tmp0_256 ,rega 
-7654 da4003af arg mem_tmp1_256 ,regb 
-7655 1a420a00 copy regb ,contw 
-7656 2040770c call bn_add_256 
-7657 efe08011 ifetch 1 ,rega 
-7658 9a60a600 iadd regc ,regc 
-7659 efe08012 ifetch 1 ,regb 
-765a 9a60fe00 iadd regc ,pdata 
-765b e7e08012 istore 1 ,regb 
-765c 20207642 branch bn_invmod_256_2 
-
-bn_invmod_256_1:
-765d da20040f arg mem_tmp3_256 ,rega 
-765e da4003ef arg mem_tmp2_256 ,regb 
-765f 1a220a00 copy rega ,contw 
-7660 2040773a call bn_sub_256 
-7661 da2003af arg mem_tmp1_256 ,rega 
-7662 da40042f arg mem_tmp0_256 ,regb 
-7663 1a420a00 copy regb ,contw 
-7664 2040770c call bn_add_256 
-7665 efe08011 ifetch 1 ,rega 
-7666 9a60a600 iadd regc ,regc 
-7667 efe08012 ifetch 1 ,regb 
-7668 9a60fe00 iadd regc ,pdata 
-7669 e7e08012 istore 1 ,regb 
-766a 20207642 branch bn_invmod_256_2 
-
-bn_invmod_256_0:
-766b da2003af arg mem_tmp1_256 ,rega 
-766c 19620a00 copy timeup ,contw 
-766d 2040769b call bn_p256mod 
-766e da200547 arg mem_p_256 ,rega 
-766f 19622400 copy timeup ,regb 
-7670 19620a00 copy timeup ,contw 
-7671 20207727 branch bn_submod_256 
-
-bn_mulmod_256:
-7672 18a21600 copy contw ,timeup 
-7673 18007000 force 0 ,regext_index 
-7674 d8a003af arg mem_tmp1_256 ,contw 
-7675 20407ca1 call clear_mem_512 
-7676 d8a0068f arg mem_regext ,contw 
-7677 20407ca1 call clear_mem_512 
-7678 1a220c00 copy rega ,contr 
-7679 70068f00 jam 0 ,mem_regext 
-767a 58000000 setarg 0 
-767b 20407704 call bn_load_mem 
-767c 1a420c00 copy regb ,contr 
-767d 20407708 call bn_load_256 
-767e 18000e00 force 0 ,queue 
-767f d8a003af arg mem_tmp1_256 ,contw 
-
-bn_mulmod_256_1:
-7680 d840068f arg mem_regext ,temp 
-7681 18e22400 copy queue ,regb 
-7682 1a4bfe00 lshift2 regb ,pdata 
-7683 9840a400 iadd temp ,regb 
-7684 18000400 force 0 ,temp 
-7685 18002600 force 0 ,regc 
-
-bn_mulmod_256_0:
-7686 efe20005 ifetch 4 ,contw 
-7687 98002200 iforce rega 
-7688 efe20012 ifetch 4 ,regb 
-7689 1a627000 copy regc ,regext_index 
-768a 9deffe00 imul32 regext ,pdata 
-768b 9a20fe00 iadd rega ,pdata 
-768c 9840fe00 iadd temp ,pdata 
-768d e7e20005 istore 4 ,contw 
-768e 1fef0400 rshift32 pdata ,temp 
-768f 1a60a601 increase 1 ,regc 
-7690 2a61fe08 compare 8 ,regc ,0xff 
-7691 2420f686 nbranch bn_mulmod_256_0 ,true 
-7692 18427e00 deposit temp 
-7693 e7e20005 istore 4 ,contw 
-7694 18a08be0 increase -32 ,contw 
-7695 18e08e01 increase 1 ,queue 
-7696 28e1fe08 compare 8 ,queue ,0xff 
-7697 2420f680 nbranch bn_mulmod_256_1 ,true 
-7698 da2003af arg mem_tmp1_256 ,rega 
-7699 19620a00 copy timeup ,contw 
-769a 2020769b branch bn_p256mod 
-
-bn_p256mod:
-769b 470c4023 bpatchx patch23_0 ,mem_patch23 
-769c 18a21600 copy contw ,timeup 
-769d 1a226000 copy rega ,alarm 
-769e da4003ef arg mem_tmp2_256 ,regb 
-769f 1a420a00 copy regb ,contw 
-76a0 20407c9d call memset0_4 
-76a1 e7e40005 istore 8 ,contw 
-76a2 1a208c2c add rega ,44 ,contr 
-76a3 20407c8b call memcpy8 
-76a4 20407c85 call memcpy12 
-76a5 1a422200 copy regb ,rega 
-76a6 20407711 call bn_lshiftmod_256 
-76a7 da4003ef arg mem_tmp2_256 ,regb 
-76a8 1e022200 copy alarm ,rega 
-76a9 19620a00 copy timeup ,contw 
-76aa 2040770e call bn_addmod_256 
-76ab da4003ef arg mem_tmp2_256 ,regb 
-76ac 1a420a00 copy regb ,contw 
-76ad 20407c9d call memset0_4 
-76ae e7e40005 istore 8 ,contw 
-76af 1e008c30 add alarm ,48 ,contr 
-76b0 20407c91 call memcpy16 
-76b1 20407c9d call memset0_4 
-76b2 1a422200 copy regb ,rega 
-76b3 20407711 call bn_lshiftmod_256 
-76b4 da4003ef arg mem_tmp2_256 ,regb 
-76b5 19622200 copy timeup ,rega 
-76b6 1a220a00 copy rega ,contw 
-76b7 2040770e call bn_addmod_256 
-76b8 da4003ef arg mem_tmp2_256 ,regb 
-76b9 1a420a00 copy regb ,contw 
-76ba 1e008c20 add alarm ,32 ,contr 
-76bb 20407c85 call memcpy12 
-76bc 20407c9d call memset0_4 
-76bd e7e40005 istore 8 ,contw 
-76be 1e008c38 add alarm ,56 ,contr 
-76bf 20407c8b call memcpy8 
-76c0 19622200 copy timeup ,rega 
-76c1 1a220a00 copy rega ,contw 
-76c2 2040770e call bn_addmod_256 
-76c3 da4003ef arg mem_tmp2_256 ,regb 
-76c4 1a420a00 copy regb ,contw 
-76c5 1e008c24 add alarm ,36 ,contr 
-76c6 20407c85 call memcpy12 
-76c7 1e008c34 add alarm ,52 ,contr 
-76c8 20407c85 call memcpy12 
-76c9 1e008c34 add alarm ,52 ,contr 
-76ca 20407c86 call memcpy4 
-76cb 1e008c20 add alarm ,32 ,contr 
-76cc 20407c86 call memcpy4 
-76cd 19622200 copy timeup ,rega 
-76ce 1a220a00 copy rega ,contw 
-76cf 2040770e call bn_addmod_256 
-76d0 da4003ef arg mem_tmp2_256 ,regb 
-76d1 1a420a00 copy regb ,contw 
-76d2 1e008c2c add alarm ,44 ,contr 
-76d3 20407c85 call memcpy12 
-76d4 20407c9d call memset0_4 
-76d5 e7e40005 istore 8 ,contw 
-76d6 1e008c20 add alarm ,32 ,contr 
-76d7 20407c86 call memcpy4 
-76d8 1e008c28 add alarm ,40 ,contr 
-76d9 20407c86 call memcpy4 
-76da 19622200 copy timeup ,rega 
-76db 1a220a00 copy rega ,contw 
-76dc 20407727 call bn_submod_256 
-76dd da4003ef arg mem_tmp2_256 ,regb 
-76de 1a420a00 copy regb ,contw 
-76df 1e008c30 add alarm ,48 ,contr 
-76e0 20407c8b call memcpy8 
-76e1 20407c8b call memcpy8 
-76e2 18007e00 force 0 ,pdata 
-76e3 e7e40005 istore 8 ,contw 
-76e4 1e008c24 add alarm ,36 ,contr 
-76e5 20407c86 call memcpy4 
-76e6 1e008c2c add alarm ,44 ,contr 
-76e7 20407c86 call memcpy4 
-76e8 19622200 copy timeup ,rega 
-76e9 1a220a00 copy rega ,contw 
-76ea 20407727 call bn_submod_256 
-76eb da4003ef arg mem_tmp2_256 ,regb 
-76ec 1a420a00 copy regb ,contw 
-76ed 1e008c34 add alarm ,52 ,contr 
-76ee 20407c85 call memcpy12 
-76ef 1e008c20 add alarm ,32 ,contr 
-76f0 20407c85 call memcpy12 
-76f1 20407c9d call memset0_4 
-76f2 1e008c30 add alarm ,48 ,contr 
-76f3 20407c86 call memcpy4 
-76f4 19622200 copy timeup ,rega 
-76f5 1a220a00 copy rega ,contw 
-76f6 20407727 call bn_submod_256 
-76f7 da4003ef arg mem_tmp2_256 ,regb 
-76f8 1a420a00 copy regb ,contw 
-76f9 1e008c38 add alarm ,56 ,contr 
-76fa 20407c8b call memcpy8 
-76fb 20407c9d call memset0_4 
-76fc 1e008c24 add alarm ,36 ,contr 
-76fd 20407c85 call memcpy12 
-76fe 20407c9d call memset0_4 
-76ff 1e008c34 add alarm ,52 ,contr 
-7700 20407c86 call memcpy4 
-7701 19622200 copy timeup ,rega 
-7702 1a220a00 copy rega ,contw 
-7703 20207727 branch bn_submod_256 
-
-bn_load_mem:
-7704 18007220 force 32 ,loopcnt 
-7705 d8a0068f arg mem_regext ,contw 
-7706 98a08a00 iadd contw ,contw 
-7707 20207cdc branch memcpy 
-
-bn_load_256:
-7708 18007208 force 8 ,loopcnt 
-7709 202074e5 branch bn_load_0 
-
-bn_sqrmod_256:
-770a 1a222400 copy rega ,regb 
-770b 20207672 branch bn_mulmod_256 
-
-bn_add_256:
-770c 18007208 force 8 ,loopcnt 
-770d 202074ae branch bn_add + 1 
-
-bn_addmod_256:
-770e 2040770c call bn_add_256 
-770f 18a22200 copy contw ,rega 
-7710 20207712 branch bn_lshiftmod_ismod_256 
-
-bn_lshiftmod_256:
-7711 2040773f call bn_lshift_256 
-
-bn_lshiftmod_ismod_256:
-7712 2a6ffe00 isolate1 0 ,regc 
-7713 2020f71b branch bn_lshiftmod_p_256 ,true 
-7714 da400547 arg mem_p_256 ,regb 
-7715 1a222600 copy rega ,regc 
-7716 1a20a3e0 increase -32 ,rega 
-7717 20407742 call bn_bigeq_256 
-7718 24610000 nrtn positive 
-7719 1a622200 copy regc ,rega 
-771a 20207723 branch sub_p2_256 
-
-bn_lshiftmod_p_256:
-771b 20407723 call sub_p2_256 
-771c 1a222600 copy rega ,regc 
-771d 1a20a3e0 increase -32 ,rega 
-771e da400547 arg mem_p_256 ,regb 
-771f 20407742 call bn_bigeq_256 
-7720 24610000 nrtn positive 
-7721 1a622200 copy regc ,rega 
-7722 20207723 branch sub_p2_256 
-
-sub_p2_256:
-7723 1a20a3e0 increase -32 ,rega 
-7724 da400547 arg mem_p_256 ,regb 
-7725 1a220a00 copy rega ,contw 
-7726 2020773a branch bn_sub_256 
-
-bn_submod_256:
-7727 2040773a call bn_sub_256 
-7728 2020f731 branch bn_submod_256_np ,true 
-7729 18a0a3e0 add contw ,-32 ,rega 
-772a da400547 arg mem_p_256 ,regb 
-772b 20407742 call bn_bigeq_256 
-772c 24610000 nrtn positive 
-772d da400547 arg mem_p_256 ,regb 
-772e 18a0a3e0 add contw ,-32 ,rega 
-772f 1a220a00 copy rega ,contw 
-7730 2020773a branch bn_sub_256 
-
-bn_submod_256_np:
-7731 18a0a3e0 add contw ,-32 ,rega 
-7732 da400547 arg mem_p_256 ,regb 
-7733 1a220a00 copy rega ,contw 
-7734 2040770c call bn_add_256 
-7735 20608000 rtn true 
-7736 18a0a3e0 add contw ,-32 ,rega 
-7737 da400547 arg mem_p_256 ,regb 
-7738 1a220a00 copy rega ,contw 
-7739 2020770c branch bn_add_256 
-
-bn_sub_256:
-773a 18007208 force 8 ,loopcnt 
-773b 202074bc branch bn_sub + 1 
-
-bn_rshift_256:
-773c 18007208 force 8 ,loopcnt 
-773d 1a20a21c increase 28 ,rega 
-773e 202074cb branch bn_rshift 
-
-bn_lshift_256:
-773f 18007208 force 8 ,loopcnt 
-7740 18002600 force 0 ,regc 
-7741 202074d9 branch bn_lshift_0 
-
-bn_bigeq_256:
-7742 18007208 force 8 ,loopcnt 
-7743 1a20a21c increase 28 ,rega 
-7744 1a40a41c increase 28 ,regb 
-7745 202074a3 branch bn_bigeq_0 
-
-bn_eq_zero_256:
-7746 efe40006 ifetch 8 ,contr 
-7747 247a0000 nrtn blank 
-7748 20207491 branch bn_eq_zero 
-
-bn_rshifteven_256:
-7749 1a226000 copy rega ,alarm 
-
-bn_rshifteven_256_1:
-774a 1e022200 copy alarm ,rega 
-774b efe08011 ifetch 1 ,rega 
-774c 2feffe00 isolate1 0 ,pdata 
-774d 20608000 rtn true 
-774e 2040773c call bn_rshift_256 
-774f efe08012 ifetch 1 ,regb 
-7750 2fec0000 isolate0 0 ,pdata 
-7751 2020f759 branch bn_rshifteven_256_0 ,true 
-7752 da200547 arg mem_p_256 ,rega 
-7753 1a420a00 copy regb ,contw 
-7754 2040770c call bn_add_256 
-7755 efe08012 ifetch 1 ,regb 
-7756 9a60fe00 iadd regc ,pdata 
-7757 e7e08012 istore 1 ,regb 
-7758 1a40a5e0 increase -32 ,regb 
-
-bn_rshifteven_256_0:
-7759 1a40a220 add regb ,32 ,rega 
-775a 18007209 force 9 ,loopcnt 
-775b 204074cb call bn_rshift 
-775c 2020774a branch bn_rshifteven_256_1 
-
-ui_init:
-775d 20758000 rtn wake 
-775e 204023ba call lpm_disable_exen_output 
-775f 20407764 call ui_button_init 
-7760 20407809 call ui_timer_init 
-7761 2020779a branch ui_led_init_global 
-
-ui_dispatch:
-7762 204077bd call ui_led_dispatch 
-7763 202077f8 branch ui_timer_check 
-
-ui_button_init:
-7764 6fe0c503 fetch 1 ,mem_ui_button_gpio 
-7765 c17f8000 rtneq ui_button_gpio_disable 
-7766 98000400 iforce temp 
-7767 20406ef1 call gpio_config_output 
-7768 6848c503 fetcht 1 ,mem_ui_button_gpio 
-7769 20406eed call gpio_out_inactive 
-776a 20000064 nop 100 
-776b 6848c503 fetcht 1 ,mem_ui_button_gpio 
-776c 20406ed7 call gpio_config_input 
-776d 2020776e branch ui_button_polling 
-
-ui_button_polling:
-776e 470cc023 bpatchx patch23_1 ,mem_patch23 
-776f 6fe0c503 fetch 1 ,mem_ui_button_gpio 
-7770 c17f8000 rtneq ui_button_gpio_disable 
-7771 1fe20400 copy pdata ,temp 
-7772 20406ee0 call gpio_get_bit 
-7773 2420f780 nbranch ui_button_up ,true 
-
-ui_button_down:
-7774 2040778a call ui_button_check_long_press 
-7775 6fe14500 fetch 2 ,mem_ui_state_map 
-7776 79207e0c set1 ui_state_btn_down ,pdata 
-7777 67e14500 store 2 ,mem_ui_state_map 
-7778 6fe0c4fb fetch 1 ,mem_ui_button_last_state 
-7779 c1000000 rtneq ui_button_state_down 
-777a 7044fb00 jam ui_button_state_down ,mem_ui_button_last_state 
-777b 6fe0c502 fetch 1 ,mem_ui_button_timeout 
-777c 67e0c4fa store 1 ,mem_ui_button_timer 
-777d 20407791 call lpm_button_get_wake_lock 
-777e 70064d2c jam bt_evt_button_down ,mem_fifo_temp 
-777f 20207819 branch ui_ipc_send_event 
-
-ui_button_up:
-7780 6fe14500 fetch 2 ,mem_ui_state_map 
-7781 793ffe0c set0 ui_state_btn_down ,pdata 
-7782 67e14500 store 2 ,mem_ui_state_map 
-7783 6fe0c4fb fetch 1 ,mem_ui_button_last_state 
-7784 c1008000 rtneq ui_button_state_up 
-7785 7044fb01 jam ui_button_state_up ,mem_ui_button_last_state 
-7786 7044fa00 jam 0 ,mem_ui_button_timer 
-7787 20407793 call lpm_button_clean_wake_lock 
-7788 70064d2d jam bt_evt_button_up ,mem_fifo_temp 
-7789 20207819 branch ui_ipc_send_event 
-
-ui_button_check_long_press:
-778a 6fe0c4fa fetch 1 ,mem_ui_button_timer 
-778b 207a0000 rtn blank 
-778c 1fe0ffff increase -1 ,pdata 
-778d 67e0c4fa store 1 ,mem_ui_button_timer 
-778e 247a0000 nrtn blank 
-778f 70064d10 jam bt_evt_button_long_pressed ,mem_fifo_temp 
-7790 20207819 branch ui_ipc_send_event 
-
-lpm_button_get_wake_lock:
-7791 d8e00007 arg wake_lock_button ,queue 
-7792 202024be branch lpm_get_wake_lock 
-
-lpm_button_clean_wake_lock:
-7793 d8e00007 arg wake_lock_button ,queue 
-7794 202024c2 branch lpm_put_wake_lock 
-
-calc_curr_struct_prt:
-7795 470d4023 bpatchx patch23_2 ,mem_patch23 
-7796 6fe14506 fetch 2 ,mem_ui_led_struct_ptr 
-7797 1a2fa40b mul32 rega ,led_offset_length ,regb 
-7798 9a40a400 iadd regb ,regb 
-7799 20600000 rtn 
-
-ui_led_init_global:
-779a 6fe0c505 fetch 1 ,mem_ui_led_struct_num 
-779b 207a0000 rtn blank 
-779c 1fe27200 copy pdata ,loopcnt 
-779d 6fe14506 fetch 2 ,mem_ui_led_struct_ptr 
-779e 1fe22400 copy pdata ,regb 
-
-ui_led_init_loop:
-779f 1a40a602 add regb ,led_offset_led_gpio ,regc 
-77a0 e8408013 ifetcht 1 ,regc 
-77a1 204077a5 call ui_led_init_set 
-77a2 1a40a40b increase led_offset_length ,regb 
-77a3 c200779f loop ui_led_init_loop 
-77a4 20600000 rtn 
-
-ui_led_init_set:
-77a5 6fe0c504 fetch 1 ,mem_ui_led_init_state_set 
-77a6 203a6eed branch gpio_out_inactive ,blank 
-77a7 20206ef1 branch gpio_out_active 
-
-ui_led_on_global:
-77a8 20407795 call calc_curr_struct_prt 
-77a9 58000002 setarg ui_led_state_lighting 
-77aa e7e08012 istore 1 ,regb 
-77ab 204077f2 call ui_led_stop_timer 
-77ac 202077c9 branch ui_led_on_static 
-
-ui_led_blink_stop_global:
-
-ui_led_off_global:
-77ad 20407795 call calc_curr_struct_prt 
-77ae 58000003 setarg ui_led_state_darking 
-77af e7e08012 istore 1 ,regb 
-77b0 204077f2 call ui_led_stop_timer 
-77b1 202077c6 branch ui_led_off_static 
-
-ui_led_blink_start_global:
-77b2 20407795 call calc_curr_struct_prt 
-77b3 58000001 setarg ui_led_state_blink_start 
-77b4 e7e08012 istore 1 ,regb 
-77b5 580000ff setarg led_infinite_flash_num 
-77b6 e7e08005 istore 1 ,contw 
-77b7 202077c6 branch ui_led_off_static 
-
-ui_led_set_style_global:
-77b8 20407795 call calc_curr_struct_prt 
-77b9 df20000b arg led_offset_length ,loopcnt 
-77ba 1a620c00 copy regc ,contr 
-77bb 1a420a00 copy regb ,contw 
-77bc 20207cce branch memcpy_fast 
-
-ui_led_dispatch:
-77bd 6fe0c505 fetch 1 ,mem_ui_led_struct_num 
-77be 207a0000 rtn blank 
-77bf da200000 arg 0 ,rega 
-
-ui_led_blink_polling:
-77c0 204077cc call ui_led_change_style_by_type 
-77c1 1a20a201 increase 1 ,rega 
-77c2 6fe0c505 fetch 1 ,mem_ui_led_struct_num 
-77c3 9a267c00 isub rega ,null 
-77c4 20628000 rtn zero 
-77c5 202077c0 branch ui_led_blink_polling 
-
-ui_led_off_static:
-77c6 1a40a602 add regb ,led_offset_led_gpio ,regc 
-77c7 e8408013 ifetcht 1 ,regc 
-77c8 20206eed branch gpio_out_inactive 
-
-ui_led_on_static:
-77c9 1a40a602 add regb ,led_offset_led_gpio ,regc 
-77ca e8408013 ifetcht 1 ,regc 
-77cb 20206ef1 branch gpio_out_active 
-
-ui_led_change_style_by_type:
-77cc 1a208e0b add rega ,ui_led_blink ,queue 
-77cd 20407cf1 call timer_check 
-77ce 247a0000 nrtn blank 
-77cf 20407795 call calc_curr_struct_prt 
-77d0 efe08012 ifetch 1 ,regb 
-77d1 c00177c9 beq ui_led_state_lighting ,ui_led_on_static 
-77d2 c001f7c6 beq ui_led_state_darking ,ui_led_off_static 
-77d3 c00077c6 beq ui_led_state_blink_stop ,ui_led_off_static 
-77d4 c002f7e0 beq ui_led_state_blink_darking ,ui_led_blink_state_darking 
-
-ui_led_blink_state_lighting:
-77d5 204077c9 call ui_led_on_static 
-77d6 1a40a607 add regb ,led_offset_cb_ledon ,regc 
-77d7 20407c4b call push_stack 
-77d8 efe10013 ifetch 2 ,regc 
-77d9 20407d7b call callback_func 
-77da 20407c57 call pop_stack 
-77db 58000005 setarg ui_led_state_blink_darking 
-77dc e7e08012 istore 1 ,regb 
-77dd 1a40a603 add regb ,led_offset_on_time ,regc 
-77de efe10013 ifetch 2 ,regc 
-77df 202077f0 branch ui_led_blink_timer_start 
-
-ui_led_blink_state_darking:
-77e0 204077c6 call ui_led_off_static 
-77e1 1a40a609 add regb ,led_offset_cb_ledoff ,regc 
-77e2 20407c4b call push_stack 
-77e3 efe10013 ifetch 2 ,regc 
-77e4 20407d7b call callback_func 
-77e5 20407c57 call pop_stack 
-77e6 1a40a601 add regb ,led_offset_blink_count ,regc 
-77e7 efe08013 ifetch 1 ,regc 
-77e8 c07ff7ec beq led_infinite_flash_num ,ui_led_blink_infinite 
-77e9 1fe0ffff increase -1 ,pdata 
-77ea e7e08013 istore 1 ,regc 
-77eb 203a77ad branch ui_led_blink_stop_global ,blank 
-
-ui_led_blink_infinite:
-77ec 58000004 setarg ui_led_state_blink_lighting 
-77ed e7e08012 istore 1 ,regb 
-77ee 1a40a605 add regb ,led_offset_off_time ,regc 
-77ef efe10013 ifetch 2 ,regc 
-
-ui_led_blink_timer_start:
-77f0 1a208e0b add rega ,ui_led_blink ,queue 
-77f1 20207ce3 branch timer_init 
-
-ui_led_stop_timer:
-77f2 58000000 setarg 0 
-77f3 202077f0 branch ui_led_blink_timer_start 
-
-ui_timer_timeout:
-77f4 58001000 setarg 0x1000 
-77f5 1ff07e00 lshift16 pdata ,pdata 
-77f6 9a40a400 iadd regb ,regb 
-77f7 20600000 rtn 
-
-ui_timer_check:
-77f8 470dc023 bpatchx patch23_3 ,mem_patch23 
-77f9 da200000 arg 0 ,rega 
-77fa 684a44fc fetcht 4 ,mem_ui_timer_last_btclk 
-77fb 1c422400 copy clkn_bt ,regb 
-77fc 1a427e00 copy regb ,pdata 
-77fd 98467c00 isub temp ,null 
-77fe 244177f4 ncall ui_timer_timeout ,positive 
-
-ui_timer_check_loop:
-77ff 1a427e00 copy regb ,pdata 
-7800 184084a0 increase 160 ,temp 
-7801 184084a0 increase 160 ,temp 
-7802 98467c00 isub temp ,null 
-7803 2421780c nbranch ui_timer_check_end ,positive 
-7804 1a20a201 increase 1 ,rega 
-7805 1a217e0f and rega ,0x0f ,pdata 
-7806 243a77ff nbranch ui_timer_check_loop ,blank 
-7807 da200000 arg 0 ,rega 
-7808 20407812 call ui_timer_check_send_evt 
-
-ui_timer_init:
-7809 1c427e00 copy clkn_bt ,pdata 
-780a 67e244fc store 4 ,mem_ui_timer_last_btclk 
-780b 20600000 rtn 
-
-ui_timer_check_end:
-780c 1a227e00 copy rega ,pdata 
-780d 207a0000 rtn blank 
-780e 18408560 increase -160 ,temp 
-780f 18408560 increase -160 ,temp 
-7810 793f841c set0 28 ,temp 
-7811 604a44fc storet 4 ,mem_ui_timer_last_btclk 
-
-ui_timer_check_send_evt:
-7812 20203749 branch app_evt_timer 
-
-ui_ipc_get_lock:
-7813 7044e801 jam 1 ,mem_ipc_lock_bt 
-
-ui_ipc_get_lock_wait:
-7814 6fe0c4e9 fetch 1 ,mem_ipc_lock_c51 
-7815 243a7814 nbranch ui_ipc_get_lock_wait ,blank 
-7816 20600000 rtn 
-
-ui_ipc_put_lock:
-7817 7044e800 jam 0 ,mem_ipc_lock_bt 
-7818 20600000 rtn 
-
-ui_ipc_send_event:
-7819 470e4023 bpatchx patch23_4 ,mem_patch23 
-781a 6fe0c3cf fetch 1 ,mem_device_option 
-781b c007ca1d beq dvc_op_keyboard ,keyboard_ui_ipc_send_event 
-781c 20407813 call ui_ipc_get_lock 
-781d 1a227e00 copy rega ,pdata 
-781e 67e20662 store 4 ,mem_rega 
-781f da2044ea arg mem_ipc_fifo_bt2c51 ,rega 
-7820 20407d8d call fifo_in 
-7821 6fe20662 fetch 4 ,mem_rega 
-7822 1fe22200 copy pdata ,rega 
-7823 20207817 branch ui_ipc_put_lock 
-
-ui_ipc_send_cmd:
-7824 470ec023 bpatchx patch23_5 ,mem_patch23 
-7825 20407813 call ui_ipc_get_lock 
-7826 1a227e00 copy rega ,pdata 
-7827 67e20662 store 4 ,mem_rega 
-7828 da2044f2 arg mem_ipc_fifo_c512bt ,rega 
-7829 20407d8d call fifo_in 
-782a 6fe20662 fetch 4 ,mem_rega 
-782b 1fe22200 copy pdata ,rega 
-782c 20207817 branch ui_ipc_put_lock 
-
-ui_ipc_clean_all_fifo:
-782d 58000000 setarg 0 
-782e 67e444f2 store util_fifo_len ,mem_ipc_fifo_c512bt 
-782f 67e444ea store util_fifo_len ,mem_ipc_fifo_bt2c51 
-7830 20600000 rtn 
-
-check_51cmd:
-7831 470f4023 bpatchx patch23_6 ,mem_patch23 
-7832 6fe0c114 fetch 1 ,mem_hci_cmd 
-7833 247a0000 nrtn blank 
-7834 da2044f2 arg mem_ipc_fifo_c512bt ,rega 
-7835 20407da5 call fifo_is_empty 
-7836 207a0000 rtn blank 
-7837 70064c00 jam ipc_continue_process ,mem_ipc_skip_continue_proc 
-7838 2040783c call check_51cmd_once 
-7839 6fe0864c fetch 1 ,mem_ipc_skip_continue_proc 
-783a 203a7831 branch check_51cmd ,blank 
-783b 20600000 rtn 
-
-check_51cmd_once:
-783c 20407813 call ui_ipc_get_lock 
-783d da2044f2 arg mem_ipc_fifo_c512bt ,rega 
-783e 20407d99 call fifo_out 
-783f 1fe20400 copy pdata ,temp 
-7840 20407817 call ui_ipc_put_lock 
-7841 470fc023 bpatchx patch23_7 ,mem_patch23 
-7842 18427e00 copy temp ,pdata 
-7843 207a0000 rtn blank 
-7844 c006f860 beq bt_cmd_start_adv ,check_51cmd_adv 
-7845 c0077866 beq bt_cmd_stop_adv ,check_51cmd_stop_adv 
-7846 c007f86b beq bt_cmd_start_direct_adv ,check_51cmd_direct_adv 
-7847 c0087871 beq bt_cmd_stop_direct_adv ,check_51cmd_stop_direct_adv 
-7848 c009f87b beq bt_cmd_led_off ,check_51cmd_led_off 
-7849 c00a787d beq bt_cmd_led_on ,check_51cmd_led_on 
-784a c00af87f beq bt_cmd_led_blink ,check_51cmd_led_start_blink 
-784b c00b7889 beq bt_cmd_le_start_conn ,check_51cmd_le_start_con 
-784c c00bf88c beq bt_cmd_le_start_scan ,check_51cmd_start_scan 
-784d c00c788e beq bt_cmd_le_stop_scan ,check_51cmd_stop_scan 
-784e c00cf891 beq bt_cmd_enter_hibernate ,check_51cmd_hibernate 
-784f 67e0864d store 1 ,mem_fifo_temp 
-
-check_51cmd_once_continue:
-7850 6fe0864d fetch 1 ,mem_fifo_temp 
-7851 c584f859 bmark0 mark_context ,check_51cmd_check_idle 
-7852 47104024 bpatchx patch24_0 ,mem_patch24 
-7853 6fe0864d fetch 1 ,mem_fifo_temp 
-7854 c008f876 beq bt_cmd_le_disconnect ,check_51cmd_le_disconnect 
-7855 c00df899 beq bt_cmd_le_smp_security_request ,check_51cmd_le_smp_sec_req 
-7856 c009787a beq bt_cmd_le_update_conn ,check_51cmd_ble_update_connect_param 
-7857 c00fee95 beq bt_cmd_store_reconn_info_le ,eeprom_store_le_reconn_info 
-7858 20600000 rtn 
-
-check_51cmd_check_idle:
-7859 67e0864d store 1 ,mem_fifo_temp 
-785a 2040205d call context_check_idle 
-785b 2022f85e branch check_51cmd_restore ,zero 
-785c 20402062 call context_search_plap 
-785d 24628000 nrtn zero 
-
-check_51cmd_restore:
-785e 70064c01 jam ipc_skip_continue_process ,mem_ipc_skip_continue_proc 
-785f 20207824 branch ui_ipc_send_cmd 
-
-check_51cmd_adv:
-7860 70438c01 jam on ,mem_le_adv_enable 
-7861 70438f00 jam adv_ind ,mem_le_adv_type 
-7862 6fe14500 fetch 2 ,mem_ui_state_map 
-7863 79207e0b set1 ui_state_ble_adv ,pdata 
-7864 67e14500 store 2 ,mem_ui_state_map 
-7865 20600000 rtn 
-
-check_51cmd_stop_adv:
-7866 6fe14500 fetch 2 ,mem_ui_state_map 
-7867 793ffe0b set0 ui_state_ble_adv ,pdata 
-7868 67e14500 store 2 ,mem_ui_state_map 
-7869 70438c00 jam off ,mem_le_adv_enable 
-786a 20600000 rtn 
-
-check_51cmd_direct_adv:
-786b 70438c01 jam on ,mem_le_adv_enable 
-786c 70438f01 jam adv_direct_ind ,mem_le_adv_type 
-786d 6fe14500 fetch 2 ,mem_ui_state_map 
-786e 79207e0b set1 ui_state_ble_adv ,pdata 
-786f 67e14500 store 2 ,mem_ui_state_map 
-7870 20600000 rtn 
-
-check_51cmd_stop_direct_adv:
-7871 6fe14500 fetch 2 ,mem_ui_state_map 
-7872 793ffe0b set0 ui_state_ble_adv ,pdata 
-7873 67e14500 store 2 ,mem_ui_state_map 
-7874 70438c00 jam off ,mem_le_adv_enable 
-7875 20600000 rtn 
-
-check_51cmd_le_disconnect:
-7876 58000014 setarg 20 
-7877 67e10196 store 2 ,mem_le_superto 
-7878 67e142f7 store 2 ,mem_le_init_superto 
-7879 202030a3 branch le_send_terminate_ind_user_terminated 
-
-check_51cmd_ble_update_connect_param:
-787a 20202e71 branch le_l2cap_tx_update_req 
-
-check_51cmd_led_off:
-787b da200000 arg 0 ,rega 
-787c 202077ad branch ui_led_off_global 
-
-check_51cmd_led_on:
-787d da200000 arg 0 ,rega 
-787e 202077a8 branch ui_led_on_global 
-
-check_51cmd_led_start_blink:
-787f da200000 arg 0 ,rega 
-7880 20407795 call calc_curr_struct_prt 
-7881 efe08012 ifetch 1 ,regb 
-7882 c000f886 beq ui_led_state_blink_start ,check_51cmd_led_start_blink_in_blink 
-7883 c0027886 beq ui_led_state_blink_lighting ,check_51cmd_led_start_blink_in_blink 
-7884 c002f886 beq ui_led_state_blink_darking ,check_51cmd_led_start_blink_in_blink 
-7885 202077b2 branch ui_led_blink_start_global 
-
-check_51cmd_led_start_blink_in_blink:
-7886 efe08006 ifetch 1 ,contr 
-7887 c17f8000 rtneq led_infinite_flash_num 
-7888 202077b2 branch ui_led_blink_start_global 
-
-check_51cmd_le_start_con:
-7889 70434701 jam on ,mem_le_scan_enable 
-788a 7041141b jam hci_cmd_le_create_conn ,mem_hci_cmd 
-788b 20600000 rtn 
-
-check_51cmd_start_scan:
-788c 70434701 jam on ,mem_le_scan_enable 
-788d 20600000 rtn 
-
-check_51cmd_stop_scan:
-788e 70434700 jam off ,mem_le_scan_enable 
-788f 70411400 jam 0 ,mem_hci_cmd 
-7890 20600000 rtn 
-
-check_51cmd_hibernate:
-7891 6fe143de fetch 2 ,mem_cb_before_hibernate 
-7892 20407d7b call callback_func 
-7893 6fe0c503 fetch 1 ,mem_ui_button_gpio 
-7894 c07ff897 beq ui_button_gpio_disable ,check_51cmd_hibernate_btn_disabled 
-7895 1fe20400 copy pdata ,temp 
-7896 20406ed7 call gpio_config_input 
-
-check_51cmd_hibernate_btn_disabled:
-7897 2040782d call ui_ipc_clean_all_fifo 
-7898 202023ff branch lpm_hibernate 
-
-check_51cmd_le_smp_sec_req:
-7899 20202eb3 branch le_send_smp_security_request 
-
-ui_check_paring_button:
-789a 6fe0c500 fetch 1 ,mem_ui_state_map 
-789b c4060000 rtnbit0 ui_state_btn_down 
-789c 20600000 rtn 
-
-queue_init:
-789d 6fe14404 fetch 2 ,mem_queue_ptr 
-789e 1fe08a02 add pdata ,queue_offset_curr_num ,contw 
-789f 58000000 setarg 0 
-78a0 e7e18005 istore 3 ,contw 
-78a1 20600000 rtn 
-
-queue_push:
-78a2 4710c024 bpatchx patch24_1 ,mem_patch24 
-78a3 20407dbe call disable_user 
-78a4 204078ee call queue_full 
-78a5 207a0000 rtn blank 
-78a6 6fe14404 fetch 2 ,mem_queue_ptr 
-78a7 1fe0a402 add pdata ,queue_offset_curr_num ,regb 
-78a8 e8408012 ifetcht 1 ,regb 
-78a9 18408401 increase 1 ,temp 
-78aa e0408012 istoret 1 ,regb 
-78ab e840803f ifetcht 1 ,pdata 
-78ac 18427200 copy temp ,loopcnt 
-78ad 1fe0a404 add pdata ,queue_offset_write_ptr ,regb 
-78ae efe08012 ifetch 1 ,regb 
-78af 984ffe00 imul32 temp ,pdata 
-78b0 98c08a00 iadd contr ,contw 
-78b1 1a220c00 copy rega ,contr 
-
-calc_queue_next_ptr:
-78b2 20407cdc call memcpy 
-78b3 204078f2 call queue_get_size 
-78b4 1fe0ffff pincrease -1 
-78b5 e8408012 ifetcht 1 ,regb 
-78b6 18408401 increase 1 ,temp 
-78b7 98410400 iand temp ,temp 
-78b8 e0408012 istoret 1 ,regb 
-78b9 20207dbc branch enable_user 
-
-queue_pop:
-78ba 47114024 bpatchx patch24_2 ,mem_patch24 
-78bb 20407dbe call disable_user 
-78bc 204078ea call queue_empty 
-78bd 207a0000 rtn blank 
-78be 6fe14404 fetch 2 ,mem_queue_ptr 
-78bf 1fe0a402 add pdata ,queue_offset_curr_num ,regb 
-78c0 e8408012 ifetcht 1 ,regb 
-78c1 184085ff increase -1 ,temp 
-78c2 e0408012 istoret 1 ,regb 
-78c3 e840803f ifetcht 1 ,pdata 
-78c4 18427200 copy temp ,loopcnt 
-78c5 1fe0a403 add pdata ,queue_offset_read_ptr ,regb 
-78c6 efe08012 ifetch 1 ,regb 
-78c7 984ffe00 imul32 temp ,pdata 
-78c8 98c08c00 iadd contr ,contr 
-78c9 18c08c01 increase 1 ,contr 
-78ca 1a220a00 copy rega ,contw 
-78cb 202078b2 branch calc_queue_next_ptr 
-
-queue_get_new_ele:
-78cc 20407dbe call disable_user 
-78cd 204078ea call queue_empty 
-78ce 207a0000 rtn blank 
-78cf 6fe14404 fetch 2 ,mem_queue_ptr 
-78d0 e840803f ifetcht 1 ,pdata 
-78d1 18427200 copy temp ,loopcnt 
-78d2 1fe0a403 add pdata ,queue_offset_read_ptr ,regb 
-78d3 efe08012 ifetch 1 ,regb 
-78d4 984ffe00 imul32 temp ,pdata 
-78d5 98c08c00 iadd contr ,contr 
-78d6 18c08c01 increase 1 ,contr 
-78d7 18c22400 copy contr ,regb 
-78d8 1a220a00 copy rega ,contw 
-78d9 20407cdc call memcpy 
-78da 20207dbc branch enable_user 
-
-queue_store_new_ele:
-78db 20407dbe call disable_user 
-78dc 204078ea call queue_empty 
-78dd 207a0000 rtn blank 
-78de 6fe14404 fetch 2 ,mem_queue_ptr 
-78df e840803f ifetcht 1 ,pdata 
-78e0 18427200 copy temp ,loopcnt 
-78e1 1fe0a403 add pdata ,queue_offset_read_ptr ,regb 
-78e2 efe08012 ifetch 1 ,regb 
-78e3 984ffe00 imul32 temp ,pdata 
-78e4 98c08c00 iadd contr ,contr 
-78e5 18c08a02 add contr ,2 ,contw 
-78e6 1a220c00 copy rega ,contr 
-78e7 1f20f3ff increase -1 ,loopcnt 
-78e8 20407cdc call memcpy 
-78e9 20207dbc branch enable_user 
-
-queue_empty:
-78ea 6fe14404 fetch 2 ,mem_queue_ptr 
-78eb 1fe08c02 add pdata ,queue_offset_curr_num ,contr 
-78ec efe08006 ifetch 1 ,contr 
-78ed 20600000 rtn 
-
-queue_full:
-78ee 204078f2 call queue_get_size 
-78ef e8408006 ifetcht 1 ,contr 
-78f0 98467e00 isub temp ,pdata 
-78f1 20600000 rtn 
-
-queue_get_size:
-78f2 6fe14404 fetch 2 ,mem_queue_ptr 
-78f3 1fe08c01 add pdata ,queue_offset_length ,contr 
-78f4 efe08006 ifetch 1 ,contr 
-78f5 20600000 rtn 
-
-usb_isr:
-78f6 4711c024 bpatchx patch24_3 ,mem_patch24 
-78f7 6ff08c22 fetch 1 ,core_usb_status 
-78f8 2feffe03 isolate1 usb_status_reset ,pdata 
-78f9 2040f905 call usb_init_restart ,true 
-78fa 6ff10c22 fetch 2 ,core_usb_status 
-78fb 67f10c22 store 2 ,core_usb_status 
-78fc 67e106e7 store 2 ,mem_usb_status 
-78fd 20407963 call usb_nak_state_judge 
-78fe 20407994 call usb_rx 
-78ff 20407b8a call usb0_tx 
-7900 20407bd3 call usb_tx 
-7901 2020795b branch usb_nak_state 
-
-usb_init:
-7902 47124024 bpatchx patch24_4 ,mem_patch24 
-7903 20407384 call enable_authrom 
-7904 20407922 call usb_init_param 
-
-usb_init_restart:
-7905 708c0000 jam 0x00 ,core_usb_config 
-7906 20002710 nop 10000 
-7907 708c1200 jam 0x0 ,core_usb_hmode 
-7908 6ff10050 fetch 2 ,core_clkoff 
-7909 793ffe0a set0 clock_off_usb ,pdata 
-790a 67f10050 store 2 ,core_clkoff 
-790b 708c1021 jam 0x21 ,core_usb_epmap 
-790c 708c119d jam 0x9d ,core_usb_pupd 
-790d 708c003c jam 0x3c ,core_usb_config 
-790e 58000741 setarg mem_usb_rxbuf 
-790f 67f10c02 store 2 ,core_usb_rx_saddr 
-7910 67f10c06 store 2 ,core_usb_rxptr 
-7911 58000781 setarg mem_usb_rxbuf_end 
-7912 67f10c04 store 2 ,core_usb_rx_eaddr 
-7913 708c1280 jam 0x80 ,core_usb_hmode 
-7914 708c0100 jam 0 ,core_usb_addr 
-7915 708c22ff jam 0xff ,core_usb_status 
-7916 5800093d setarg mem_usb_clear_mem_end 
-7917 d8a0084b arg mem_usb_clear_mem_start ,contw 
-7918 98a67200 isub contw ,loopcnt 
-7919 20207ca3 branch clear_mem 
-
-usb_offline_check_init:
-791a 6848884a fetcht 1 ,mem_usb_offline_check_gpio 
-791b 20206ed7 branch gpio_config_input 
-
-usb_offline_state:
-791c 6fe088ec fetch 1 ,mem_usb_device_enumeration_endflag 
-791d 207a0000 rtn blank 
-791e 6848884a fetcht 1 ,mem_usb_offline_check_gpio 
-791f 20406ee0 call gpio_get_bit 
-7920 2020f905 branch usb_init_restart ,true 
-7921 20600000 rtn 
-
-usb_init_param:
-7922 70084902 jam dev_default ,mem_usb0_state 
-7923 58000000 setarg 0x0 
-7924 67e08784 store 1 ,mem_remain 
-7925 67e10843 store 2 ,mem_usb_zero_packet 
-7926 1fe0fe01 pincrease 1 
-7927 67e10845 store 2 ,mem_usb_ones_packet 
-7928 1fe0fe01 pincrease 1 
-7929 67e10847 store 2 ,mem_usb_two_packet 
-792a d8a007d8 arg mem_string0 ,contw 
-792b 58030404 setarg 0x030404 
-792c e7e18005 istore 3 ,contw 
-792d 58000409 setarg 0x0409 
-792e e7e10005 istore 2 ,contw 
-792f d8a007dd arg mem_string1 ,contw 
-7930 38015906 setsect 0 ,0x15906 
-7931 380610d2 setsect 1 ,0x210d2 
-7932 38090494 setsect 2 ,0x10494 
-7933 380c0001 setsect 3 ,0x1 
-7934 e7e48005 istore 9 ,contw 
-7935 d8a007fb arg mem_string2 ,contw 
-7936 3801570f setsect 0 ,0x1570f 
-7937 38055c9a setsect 1 ,0x15c9a 
-7938 380a56c6 setsect 2 ,0x256c6 
-7939 380dcdcd setsect 3 ,0x1cdcd 
-793a e7e48005 istore 9 ,contw 
-793b 38014420 setsect 0 ,0x14420 
-793c 38065d99 setsect 1 ,0x25d99 
-793d 380a5636 setsect 2 ,0x25636 
-793e 380c0001 setsect 3 ,0x1 
-793f e7e38005 istore 7 ,contw 
-7940 d8a00819 arg mem_string3 ,contw 
-7941 3801620a setsect 0 ,0x1620a 
-7942 38040c8c setsect 1 ,0xc8c 
-7943 380b0333 setsect 2 ,0x30333 
-7944 380cc0c0 setsect 3 ,0xc0c0 
-7945 e7e48005 istore 9 ,contw 
-7946 38003130 setsect 0 ,0x3130 
-7947 e7e10005 istore 2 ,contw 
-7948 580092aa setarg usb_kbdata_vendor_define_addr 
-7949 67e10785 store 2 ,mem_hidreportdesc_kb 
-794a 58009307 setarg usb_msdata_addr 
-794b 67e10787 store 2 ,mem_hidreportdesc_m 
-794c d8c093fb arg usb_devicedata_addr ,contr 
-794d d8a00789 arg mem_devicedesc ,contw 
-794e df200013 arg 19 ,loopcnt 
-794f 20407cdc call memcpy 
-7950 d8c0940e arg usb_confdata_addr ,contr 
-7951 d8a0079c arg mem_confdesc ,contw 
-7952 df20003c arg 60 ,loopcnt 
-7953 20407cdc call memcpy 
-
-usb_config_cb:
-7954 6fe10837 fetch 2 ,mem_cb_usb_config 
-7955 20207d7b branch callback_func 
-
-usb_tx_interval_config:
-7956 6fe08839 fetch 1 ,mem_usb_tx_interval 
-7957 207a0000 rtn blank 
-7958 67e087be store 1 ,mem_confdesc + 34 
-7959 67e087d7 store 1 ,mem_confdesc + 59 
-795a 20600000 rtn 
-
-usb_nak_state:
-795b d8e00001 arg usb_timer_nak ,queue 
-795c 20407cf1 call timer_check 
-795d 247a0000 nrtn blank 
-795e 6fe088ed fetch 1 ,mem_usb_wakestate_onetime_flag 
-795f 247a0000 nrtn blank 
-7960 6fe088ec fetch 1 ,mem_usb_device_enumeration_endflag 
-7961 245a7c3a ncall usb_mac_wakeup_judge ,blank 
-7962 20600000 rtn 
-
-usb_nak_state_judge:
-7963 6fe086e7 fetch 1 ,mem_usb_status 
-7964 c2817966 bbit1 usb_status_nak ,usb_nak_state_timer_init 
-7965 20600000 rtn 
-
-usb_nak_state_timer_init:
-7966 2040796b call usb0_attached_state_judge 
-7967 20407cf0 call timer_reinit 
-7968 58000280 setarg timer_nak_delay 
-7969 d8e00001 arg usb_timer_nak ,queue 
-796a 20207ce3 branch timer_init 
-
-usb0_attached_state_judge:
-796b 6fe088de fetch 1 ,mem_usb_state 
-796c c0817970 bne usb_connected ,usb_clear_halt_dispose 
-796d 7008ed00 jam 0 ,mem_usb_wakestate_onetime_flag 
-796e 7008ee00 jam 0 ,mem_usb_mac_wakeup_trig 
-796f 20600000 rtn 
-
-usb_clear_halt_dispose:
-7970 6fe088f0 fetch 1 ,mem_usb_clear_halt 
-7971 207a0000 rtn blank 
-7972 7008f000 jam 0 ,mem_usb_clear_halt 
-7973 7008de02 jam usb_connected ,mem_usb_state 
-7974 7008ec01 jam 1 ,mem_usb_device_enumeration_endflag 
-7975 20600000 rtn 
-
-usb_rx_no_data:
-7976 6fe086e7 fetch 1 ,mem_usb_status 
-7977 c28079a1 bbit1 usb_status_setup ,usb_class_type 
-7978 20600000 rtn 
-
-usb_rx_len:
-7979 69510c02 fetchr contus ,2 ,core_usb_rx_saddr 
-797a 6a110c04 fetchr contue ,2 ,core_usb_rx_eaddr 
-797b 68710c06 fetchr contu ,2 ,core_usb_rxptr 
-797c efe10003 ifetch 2 ,contu 
-797d 1fec8400 rshift8 pdata ,temp 
-797e 18518400 rshift4 temp ,temp 
-797f d8c00fff arg 0xfff ,contr 
-7980 98c17200 iand contr ,loopcnt 
-7981 672106ea storer loopcnt ,2 ,mem_usb_read_len 
-7982 20600000 rtn 
-
-usb_rx_data:
-7983 6ff08c25 fetch 1 ,core_usb_txbusy 
-7984 c3830000 rtnbit1 usb_status_rxfull 
-7985 20407979 call usb_rx_len 
-
-usb_rx_read:
-7986 efe08003 ifetch 1 ,contu 
-7987 e7e08005 istore 1 ,contw 
-7988 c2007986 loop usb_rx_read 
-7989 60710c06 storer contu ,2 ,core_usb_rxptr 
-798a 20600000 rtn 
-
-usb_rx_ep13:
-798b d8a0093d arg mem_usb_ccid_buf ,contw 
-798c 20407986 call usb_rx_read 
-798d d8400941 arg mem_usb_ccid_buf + 4 ,temp 
-798e 60590c0e storet 2 ,core_usb_tx_saddr3 
-798f 6fe0893e fetch 1 ,mem_usb_ccid_buf + 1 
-7990 1fe0fe06 pincrease 6 
-7991 e7e08002 istore 1 ,temp 
-7992 708c1808 jam 0x8 ,core_usb_trig 
-7993 20600000 rtn 
-
-usb_rx:
-7994 4712c024 bpatchx patch24_5 ,mem_patch24 
-7995 6fe086e7 fetch 1 ,mem_usb_status 
-7996 c4028000 rtnbit0 usb_status_rxready 
-7997 20407979 call usb_rx_len 
-7998 2841fe0d compare 13 ,temp ,0xff 
-7999 2020f98b branch usb_rx_ep13 ,true 
-799a d8a0084b arg mem_usb_setup ,contw 
-799b 20407986 call usb_rx_read 
-799c 6fe086ea fetch 1 ,mem_usb_read_len 
-799d c0007976 beq 0x00 ,usb_rx_no_data 
-799e c000f9a8 beq 0x01 ,usb_out_one_byte 
-799f 1fe67c07 sub pdata ,7 ,null 
-79a0 20610000 rtn positive 
-
-usb_class_type:
-79a1 47134024 bpatchx patch24_6 ,mem_patch24 
-79a2 793f8023 set0 mark_isstr ,mark 
-79a3 6fe0884b fetch 1 ,mem_usb_setup_bmrequesttype 
-79a4 1fe17e80 and_into 0x80 ,pdata 
-79a5 c04079ac beq in_device ,usb_in_device 
-79a6 c00079b4 beq out_device ,usb_out_device 
-79a7 2020233e branch assert 
-
-usb_out_one_byte:
-79a8 6fe0884b fetch 1 ,mem_usb_setup 
-79a9 c3838000 rtnbit1 7 
-79aa 20407b5e call usb_get_led_status 
-79ab 202079db branch usb0_reply_zerolen 
-
-usb_in_device:
-79ac 6fe0884b fetch 1 ,mem_usb_setup_bmrequesttype 
-79ad 1ff1fe00 rshift4 pdata ,pdata 
-79ae 1fe37e00 rshift pdata ,pdata 
-79af 1fe17e03 and_into 0x03 ,pdata 
-79b0 c00079bc beq standard_req ,usb_in_standard_req 
-79b1 c000f9c2 beq class_req ,usb_in_class_req 
-79b2 c00179c7 beq manufacturer_req ,usb_in_manufacturer_req 
-79b3 2020233e branch assert 
-
-usb_out_device:
-79b4 6fe0884b fetch 1 ,mem_usb_setup_bmrequesttype 
-79b5 1ff1fe00 rshift4 pdata ,pdata 
-79b6 1fe37e00 rshift pdata ,pdata 
-79b7 1fe17e03 and_into 0x03 ,pdata 
-79b8 c00079c8 beq standard_req ,usb_out_standard_req 
-79b9 c000f9d0 beq class_req ,usb_out_class_req 
-79ba c00179d5 beq manufacturer_req ,usb_out_manufacturer_req 
-79bb 2020233e branch assert 
-
-usb_in_standard_req:
-79bc 6fe0884c fetch 1 ,mem_usb_setup_brequest 
-79bd c00479dd beq get_configuration ,usb0_request_get_configuration 
-79be c00379f3 beq get_descriptor ,usb0_request_get_descriptor 
-79bf c0057a38 beq get_interface ,usb0_request_get_interface 
-79c0 c0007a4a beq get_status ,usb0_request_get_status 
-79c1 202079d6 branch usb0_force_stall 
-
-usb_in_class_req:
-79c2 6fe0884c fetch 1 ,mem_usb_setup_brequest 
-79c3 c0017a7f beq get_idle ,usb_get_idle 
-79c4 c000fa83 beq get_report ,usb_get_report 
-79c5 c001fa95 beq get_protocol ,usb_get_protocol_req 
-79c6 202079d6 branch usb0_force_stall 
-
-usb_in_manufacturer_req:
-79c7 202079d6 branch usb0_force_stall 
-
-usb_out_standard_req:
-79c8 6fe0884c fetch 1 ,mem_usb_setup_brequest 
-79c9 c000fa9f beq clear_feature ,usb0_request_clear_feature 
-79ca c001facf beq set_feature ,usb0_request_set_feature 
-79cb c002fafb beq set_address ,usb0_request_set_address 
-79cc c004fb14 beq set_configuration ,usb0_request_set_configuration 
-79cd c005fb2f beq set_interface ,usb0_request_set_interface 
-79ce c003f9d6 beq set_descriptor ,usb0_force_stall 
-79cf 202079d6 branch usb0_force_stall 
-
-usb_out_class_req:
-79d0 6fe0884c fetch 1 ,mem_usb_setup_brequest 
-79d1 c0057b40 beq set_idle ,usb_set_idle 
-79d2 c004fb52 beq set_report ,usb_set_report 
-79d3 c005fb70 beq set_protocol ,usb_set_protocol_req 
-79d4 202079d6 branch usb0_force_stall 
-
-usb_out_manufacturer_req:
-79d5 202079d6 branch usb0_force_stall 
-
-usb0_force_stall:
-79d6 4713c024 bpatchx patch24_7 ,mem_patch24 
-79d7 6ff08c19 fetch 1 ,core_usb_stall 
-79d8 79207e00 set1 0 ,pdata 
-79d9 67f08c19 store 1 ,core_usb_stall 
-79da 202079db branch usb0_reply_zerolen 
-
-usb0_reply_zerolen:
-79db 708c1b01 jam 0x1 ,core_usb_clear_nak 
-79dc 20600000 rtn 
-
-usb0_request_get_configuration:
-79dd 6fe0884b fetch 1 ,mem_usb_setup_bmrequesttype 
-79de c0c079d6 bne in_device ,usb0_force_stall 
-79df 6fe0884f fetch 1 ,mem_usb_setup_windex 
-79e0 c08079d6 bne 0 ,usb0_force_stall 
-79e1 6fe08850 fetch 1 ,mem_usb_setup_windex + 1 
-79e2 c08079d6 bne 0 ,usb0_force_stall 
-79e3 6fe08851 fetch 1 ,mem_usb_setup_blength 
-79e4 c080f9d6 bne 1 ,usb0_force_stall 
-79e5 6fe08852 fetch 1 ,mem_usb_setup_blengthh 
-79e6 c08079d6 bne 0 ,usb0_force_stall 
-79e7 6fe0884d fetch 1 ,mem_usb_setup_bvalue 
-79e8 c08079d6 bne 0 ,usb0_force_stall 
-79e9 6fe0884e fetch 1 ,mem_usb_setup_bvalue + 1 
-79ea c08079d6 bne 0 ,usb0_force_stall 
-79eb 6fe08849 fetch 1 ,mem_usb0_state 
-79ec c00279ef beq dev_configured ,usb0_request_get_cfg_dev_cfg 
-79ed c001f9f1 beq dev_address ,usb0_request_get_cfg_dev_addr 
-79ee 202079d6 branch usb0_force_stall 
-
-usb0_request_get_cfg_dev_cfg:
-79ef da400001 arg 1 ,regb 
-79f0 20207a64 branch usb_send_ones_packet 
-
-usb0_request_get_cfg_dev_addr:
-79f1 da400001 arg 1 ,regb 
-79f2 20207a62 branch usb_send_zero_packet 
-
-usb0_request_get_descriptor:
-79f3 47144025 bpatchx patch25_0 ,mem_patch25 
-79f4 6fe0884e fetch 1 ,mem_usb_setup_bvalueh 
-79f5 c000fa06 beq dsc_device ,dsc_device_info 
-79f6 c0017a1f beq dsc_config ,dsc_config_info 
-79f7 c001fa22 beq dsc_string ,dsc_string_info 
-79f8 c010f9fb beq dsc_hid ,dsc_hid_info 
-79f9 c0117a30 beq dsc_hid_report ,dsc_hid_report_info 
-79fa 202079d6 branch usb0_force_stall 
-
-dsc_hid_info:
-79fb 7008db00 jam 0 ,mem_usb_get_protocol_flag 
-79fc 6fe0884f fetch 1 ,mem_usb_setup_windex 
-79fd c0007a00 beq 0 ,dsc_hid_info_interface0 
-79fe c000fa03 beq 1 ,dsc_hid_info_interface1 
-79ff 202079d6 branch usb0_force_stall 
-
-dsc_hid_info_interface0:
-7a00 6a4087af fetchr regb ,1 ,mem_confdesc + 19 
-7a01 da2007af arg mem_confdesc + 19 ,rega 
-7a02 20207b7f branch usb0_respond 
-
-dsc_hid_info_interface1:
-7a03 6a4087c8 fetchr regb ,1 ,mem_confdesc + 44 
-7a04 da2007c8 arg mem_confdesc + 44 ,rega 
-7a05 20207b7f branch usb0_respond 
-
-dsc_device_info:
-7a06 6fe088ef fetch 1 ,mem_usb_set_high_addr_flag 
-7a07 245a7a17 ncall usb_set_high_addr ,blank 
-7a08 58000789 setarg mem_devicedesc 
-7a09 68488789 fetcht 1 ,mem_devicedesc 
-
-dsc_info_set_data_len:
-7a0a 67e108e6 store 2 ,mem_dsc_info_data_pointer 
-7a0b 604888e8 storet 1 ,mem_dsc_info_len 
-7a0c 6fe08851 fetch 1 ,mem_usb_setup_blength 
-7a0d 98467c00 isub temp ,null 
-7a0e 24217a15 nbranch dsc_info_set_current_data_len ,positive 
-
-dsc_info_set_initial_data_len:
-7a0f 6fe088e8 fetch 1 ,mem_dsc_info_len 
-
-dsc_info_set_data_size_completed:
-7a10 98002400 iforce regb 
-7a11 6fe108e6 fetch 2 ,mem_dsc_info_data_pointer 
-7a12 1fe0fe01 add pdata ,1 ,pdata 
-7a13 98002200 iforce rega 
-7a14 20207b7f branch usb0_respond 
-
-dsc_info_set_current_data_len:
-7a15 6fe08851 fetch 1 ,mem_usb_setup_blength 
-7a16 20207a10 branch dsc_info_set_data_size_completed 
-
-usb_set_high_addr:
-7a17 6ff08c01 fetch 1 ,core_usb_addr 
-7a18 245a7a1b ncall usb0_set_addr ,blank 
-7a19 7008ef00 jam 0 ,mem_usb_set_high_addr_flag 
-7a1a 20600000 rtn 
-
-usb0_set_addr:
-7a1b 6ff08c01 fetch 1 ,core_usb_addr 
-7a1c 79207e07 set1 7 ,pdata 
-7a1d 67f08c01 store 1 ,core_usb_addr 
-7a1e 20600000 rtn 
-
-dsc_config_info:
-7a1f 5800079c setarg mem_confdesc 
-7a20 6848879c fetcht 1 ,mem_confdesc 
-7a21 20207a0a branch dsc_info_set_data_len 
-
-dsc_string_info:
-7a22 6fe0884d fetch 1 ,mem_usb_setup_bvalue 
-7a23 1fe67c03 sub pdata ,3 ,null 
-7a24 242179d6 nbranch usb0_force_stall ,positive 
-7a25 6fe0884d fetch 1 ,mem_usb_setup_bvalue 
-7a26 da2007d8 arg mem_string0 ,rega 
-7a27 c0007b7d beq 0 ,usb0_respond_length 
-7a28 79200023 set1 mark_isstr ,mark 
-7a29 da2007dd arg mem_string1 ,rega 
-7a2a c000fb7d beq 1 ,usb0_respond_length 
-7a2b da2007fb arg mem_string2 ,rega 
-7a2c c0017b7d beq 2 ,usb0_respond_length 
-7a2d da200819 arg mem_string3 ,rega 
-7a2e c001fb7d beq 3 ,usb0_respond_length 
-7a2f 20600000 rtn 
-
-dsc_hid_report_info:
-7a30 6fe1084f fetch 2 ,mem_usb_setup_windex 
-7a31 c000fa34 beq 1 ,dsc_hid_report_info0 
-7a32 6a210785 fetchr rega ,2 ,mem_hidreportdesc_kb 
-7a33 20207b7d branch usb0_respond_length 
-
-dsc_hid_report_info0:
-7a34 7008ec01 jam 1 ,mem_usb_device_enumeration_endflag 
-7a35 7008de01 jam usb_got_report_req ,mem_usb_state 
-7a36 6a210787 fetchr rega ,2 ,mem_hidreportdesc_m 
-7a37 20207b7d branch usb0_respond_length 
-
-usb0_request_get_interface:
-7a38 6fe08849 fetch 1 ,mem_usb0_state 
-7a39 c08279d6 bne dev_configured ,usb0_force_stall 
-7a3a 6fe0884b fetch 1 ,mem_usb_setup_bmrequesttype 
-7a3b c0c0f9d6 bne in_interface ,usb0_force_stall 
-7a3c 6fe0884d fetch 1 ,mem_usb_setup_bvalue 
-7a3d c08079d6 bne 0 ,usb0_force_stall 
-7a3e 6fe0884e fetch 1 ,mem_usb_setup_bvalueh 
-7a3f c08079d6 bne 0 ,usb0_force_stall 
-7a40 6fe08851 fetch 1 ,mem_usb_setup_blength 
-7a41 c080f9d6 bne 1 ,usb0_force_stall 
-7a42 6fe08852 fetch 1 ,mem_usb_setup_blengthh 
-7a43 c08079d6 bne 0 ,usb0_force_stall 
-7a44 6fe0884f fetch 1 ,mem_usb_setup_windex 
-7a45 c08079d6 bne 0 ,usb0_force_stall 
-7a46 6fe08850 fetch 1 ,mem_usb_setup_windex + 1 
-7a47 c08079d6 bne 0 ,usb0_force_stall 
-7a48 da400001 arg 1 ,regb 
-7a49 20207a62 branch usb_send_zero_packet 
-
-usb0_request_get_status:
-7a4a 6fe08849 fetch 1 ,mem_usb0_state 
-7a4b c00179d6 beq dev_default ,usb0_force_stall 
-7a4c 6fe0884d fetch 1 ,mem_usb_setup_bvalue 
-7a4d c08079d6 bne 0 ,usb0_force_stall 
-7a4e 6fe0884e fetch 1 ,mem_usb_setup_bvalueh 
-7a4f c08079d6 bne 0 ,usb0_force_stall 
-7a50 6fe08851 fetch 1 ,mem_usb_setup_blength 
-7a51 c08179d6 bne 2 ,usb0_force_stall 
-7a52 6fe08852 fetch 1 ,mem_usb_setup_blengthh 
-7a53 c08079d6 bne 0 ,usb0_force_stall 
-7a54 6fe08850 fetch 1 ,mem_usb_setup_windex + 1 
-7a55 c08079d6 bne 0 ,usb0_force_stall 
-7a56 6fe0884b fetch 1 ,mem_usb_setup_bmrequesttype 
-7a57 c0407a5d beq in_device ,usb0_get_status_in_device 
-7a58 c040fa68 beq in_interface ,usb0_get_status_in_interface 
-7a59 c0417a6c beq in_endpoint ,usb0_get_status_in_endpoint 
-7a5a 202079d6 branch usb0_force_stall 
-
-usb0_sdsystem_dispose:
-7a5b 7008e101 jam 1 ,mem_sdsystem_wakeup_flag 
-7a5c 20207a66 branch usb_send_two_packet 
-
-usb0_get_status_in_device:
-7a5d 6fe0884f fetch 1 ,mem_usb_setup_windex 
-7a5e c08079d6 bne 0 ,usb0_force_stall 
-7a5f da400002 arg 2 ,regb 
-7a60 6fe088df fetch 1 ,mem_usb_remote_wakeup 
-7a61 c000fa5b beq 0x01 ,usb0_sdsystem_dispose 
-
-usb_send_zero_packet:
-7a62 da200843 arg mem_usb_zero_packet ,rega 
-7a63 20207b7f branch usb0_respond 
-
-usb_send_ones_packet:
-7a64 da200845 arg mem_usb_ones_packet ,rega 
-7a65 20207b7f branch usb0_respond 
-
-usb_send_two_packet:
-7a66 da200847 arg mem_usb_two_packet ,rega 
-7a67 20207b7f branch usb0_respond 
-
-usb0_get_status_in_interface:
-7a68 6fe08849 fetch 1 ,mem_usb0_state 
-7a69 c08279d6 bne dev_configured ,usb0_force_stall 
-7a6a da400002 arg 2 ,regb 
-7a6b 20207a62 branch usb_send_zero_packet 
-
-usb0_get_status_in_endpoint:
-7a6c 6fe08849 fetch 1 ,mem_usb0_state 
-7a6d c08279d6 bne dev_configured ,usb0_force_stall 
-7a6e 6fe0884f fetch 1 ,mem_usb_setup_windex 
-7a6f c040fa79 beq in_ep1 ,usb0_get_status_in_ep_in_ep1 
-7a70 c0417a7b beq in_ep2 ,usb0_get_status_in_ep_in_ep2 
-7a71 c041fa7d beq in_ep3 ,usb0_get_status_in_ep_in_ep3 
-7a72 1fe17e7f and_into 0x7f ,pdata 
-7a73 c0007a75 beq 0x00 ,usb0_get_status_in_ep_in_ep0 
-7a74 202079d6 branch usb0_force_stall 
-
-usb0_get_status_in_ep_in_ep0:
-7a75 6fe088e2 fetch 1 ,mem_usb_ep0_stall_status 
-
-usb0_get_status_in_ep_in_ack:
-7a76 da400002 arg 2 ,regb 
-7a77 c000fa64 beq 1 ,usb_send_ones_packet 
-7a78 20207a62 branch usb_send_zero_packet 
-
-usb0_get_status_in_ep_in_ep1:
-7a79 6fe088e3 fetch 1 ,mem_usb_ep1_stall_status 
-7a7a 20207a76 branch usb0_get_status_in_ep_in_ack 
-
-usb0_get_status_in_ep_in_ep2:
-7a7b 6fe088e4 fetch 1 ,mem_usb_ep2_stall_status 
-7a7c 20207a76 branch usb0_get_status_in_ep_in_ack 
-
-usb0_get_status_in_ep_in_ep3:
-7a7d 6fe088e5 fetch 1 ,mem_usb_ep3_stall_status 
-7a7e 20207a76 branch usb0_get_status_in_ep_in_ack 
-
-usb_get_idle:
-7a7f 7008d901 jam 1 ,mem_usb_idle_flag 
-7a80 da2008da arg mem_usb_idle_rate ,rega 
-7a81 da400001 arg 1 ,regb 
-7a82 20207b7f branch usb0_respond 
-
-usb_get_report:
-7a83 4714c025 bpatchx patch25_1 ,mem_patch25 
-7a84 6fe1084d fetch 2 ,mem_usb_setup_bvalue 
-7a85 d84001ba arg pc_get_report ,temp 
-7a86 98467c00 isub temp ,null 
-7a87 2422f9d6 nbranch usb0_force_stall ,zero 
-
-usb_get_report_dispose:
-7a88 6fe088d6 fetch 1 ,mem_usb0_data_ready_report 
-7a89 243a7a92 nbranch usb_get_report_data_success ,blank 
-7a8a 70089300 jam pc_get_nondata ,mem_usb0_get_report_data 
-
-usb_get_report_send_data:
-7a8b 6fe08851 fetch 1 ,mem_usb_setup_blength 
-7a8c 98002400 iforce regb 
-7a8d da200893 arg mem_usb0_get_report_data ,rega 
-7a8e 20407b7f call usb0_respond 
-
-usb_get_report_data_release:
-7a8f d8a00893 arg mem_usb0_get_report_data ,contw 
-7a90 df200040 arg 64 ,loopcnt 
-7a91 20207ca5 branch memset0 
-
-usb_get_report_data_success:
-7a92 7008d600 jam 0 ,mem_usb0_data_ready_report 
-7a93 70089301 jam pc_get_data ,mem_usb0_get_report_data 
-7a94 20207a8b branch usb_get_report_send_data 
-
-usb_get_protocol_req:
-7a95 6fe08851 fetch 1 ,mem_usb_setup_blength 
-7a96 c080f9d6 bne 1 ,usb0_force_stall 
-7a97 7008db01 jam 1 ,mem_usb_get_protocol_flag 
-7a98 da400001 arg 1 ,regb 
-7a99 6fe088dd fetch 1 ,mem_usb_set_protocol_value 
-7a9a c0007a9d beq 0 ,usb_get_report_protocol 
-7a9b c000fa9e beq 1 ,usb_get_boot_protocol 
-7a9c 20207a62 branch usb_send_zero_packet 
-
-usb_get_report_protocol:
-7a9d 20207a64 branch usb_send_ones_packet 
-
-usb_get_boot_protocol:
-7a9e 20207a62 branch usb_send_zero_packet 
-
-usb0_request_clear_feature:
-7a9f 6fe08849 fetch 1 ,mem_usb0_state 
-7aa0 c08279d6 bne dev_configured ,usb0_force_stall 
-7aa1 6fe08851 fetch 1 ,mem_usb_setup_blength 
-7aa2 c08079d6 bne 0 ,usb0_force_stall 
-7aa3 6fe08852 fetch 1 ,mem_usb_setup_blengthh 
-7aa4 c08079d6 bne 0 ,usb0_force_stall 
-7aa5 6fe0884e fetch 1 ,mem_usb_setup_bvalueh 
-7aa6 c08079d6 bne 0 ,usb0_force_stall 
-7aa7 6fe08850 fetch 1 ,mem_usb_setup_windex + 1 
-7aa8 c08079d6 bne 0 ,usb0_force_stall 
-7aa9 6fe0884b fetch 1 ,mem_usb_setup_bmrequesttype 
-7aaa c0007aae beq out_device ,usb0_request_clear_feature_out_device 
-7aab c000fabc beq out_interface ,usb0_request_clear_feature_out_interface 
-7aac c0017abd beq out_endpoint ,usb0_request_clear_feature_out_endpoint 
-7aad 202079d6 branch usb0_force_stall 
-
-usb0_request_clear_feature_out_device:
-7aae 47154025 bpatchx patch25_2 ,mem_patch25 
-7aaf 6fe0884d fetch 1 ,mem_usb_setup_bvalue 
-7ab0 c080f9d6 bne device_remote_wakeup ,usb0_force_stall 
-7ab1 6ff08c00 fetch 1 ,core_usb_config 
-7ab2 793ffe07 set0 7 ,pdata 
-7ab3 67f08c00 store 1 ,core_usb_config 
-7ab4 7008df00 jam 0 ,mem_usb_remote_wakeup 
-7ab5 7008e001 jam 1 ,mem_usb_clear_remote_wakeup 
-7ab6 6fe088e1 fetch 1 ,mem_sdsystem_wakeup_flag 
-7ab7 203a79db branch usb0_reply_zerolen ,blank 
-7ab8 7008e100 jam 0 ,mem_sdsystem_wakeup_flag 
-7ab9 7008e000 jam 0 ,mem_usb_clear_remote_wakeup 
-7aba 7008de02 jam usb_connected ,mem_usb_state 
-7abb 202079db branch usb0_reply_zerolen 
-
-usb0_request_clear_feature_out_interface:
-7abc 202079d6 branch usb0_force_stall 
-
-usb0_request_clear_feature_out_endpoint:
-7abd 6fe0884d fetch 1 ,mem_usb_setup_bvalue 
-7abe c08079d6 bne endpoint_halt ,usb0_force_stall 
-7abf 6fe0884f fetch 1 ,mem_usb_setup_windex 
-7ac0 c040fac8 beq in_ep1 ,usb0_force_stall_ep1_in_off 
-7ac1 c0417acb beq in_ep2 ,usb0_force_stall_ep2_in_off 
-7ac2 c041facd beq in_ep3 ,usb0_force_stall_ep3_in_off 
-7ac3 1fe17e7f and_into 0x7f ,pdata 
-7ac4 c0007ac6 beq 0x00 ,usb0_force_stall_ep0_in_off 
-7ac5 202079d6 branch usb0_force_stall 
-
-usb0_force_stall_ep0_in_off:
-7ac6 7008e200 jam 0 ,mem_usb_ep0_stall_status 
-7ac7 202079db branch usb0_reply_zerolen 
-
-usb0_force_stall_ep1_in_off:
-7ac8 7008e300 jam 0 ,mem_usb_ep1_stall_status 
-
-usb0_force_stall_ep1_in_off_reply:
-7ac9 7008f001 jam 1 ,mem_usb_clear_halt 
-7aca 202079db branch usb0_reply_zerolen 
-
-usb0_force_stall_ep2_in_off:
-7acb 7008e400 jam 0 ,mem_usb_ep2_stall_status 
-7acc 20207ac9 branch usb0_force_stall_ep1_in_off_reply 
-
-usb0_force_stall_ep3_in_off:
-7acd 7008e500 jam 0 ,mem_usb_ep3_stall_status 
-7ace 20207ac9 branch usb0_force_stall_ep1_in_off_reply 
-
-usb0_request_set_feature:
-7acf 6fe08851 fetch 1 ,mem_usb_setup_blength 
-7ad0 c08079d6 bne 0 ,usb0_force_stall 
-7ad1 6fe08852 fetch 1 ,mem_usb_setup_blengthh 
-7ad2 c08079d6 bne 0 ,usb0_force_stall 
-7ad3 6fe0884b fetch 1 ,mem_usb_setup_bmrequesttype 
-7ad4 c0007ad8 beq out_device ,usb0_request_set_feature_out_device 
-7ad5 c000fae7 beq out_interface ,usb0_request_set_feature_out_interface 
-7ad6 c0017ae8 beq out_endpoint ,usb0_request_set_feature_out_endpoint 
-7ad7 202079d6 branch usb0_force_stall 
-
-usb0_request_set_feature_out_device:
-7ad8 4715c025 bpatchx patch25_3 ,mem_patch25 
-7ad9 6fe0884d fetch 1 ,mem_usb_setup_bvalue 
-7ada c080f9d6 bne device_remote_wakeup ,usb0_force_stall 
-7adb 20403dd6 call dongle_set_pc_sleep_flag 
-7adc 6ff08c00 fetch 1 ,core_usb_config 
-7add 79207e07 set1 7 ,pdata 
-7ade 67f08c00 store 1 ,core_usb_config 
-7adf 7008df01 jam 1 ,mem_usb_remote_wakeup 
-7ae0 7008de03 jam usb_sleep ,mem_usb_state 
-7ae1 7008d700 jam 0 ,mem_usb_tx_win_enable 
-7ae2 204079db call usb0_reply_zerolen 
-
-usb_wakeup_timer_reinit:
-7ae3 20407cf0 call timer_reinit 
-7ae4 58001388 setarg timer_wakeup_delay 
-7ae5 d8e0000f arg usb_timer_wakeup ,queue 
-7ae6 20207ce3 branch timer_init 
-
-usb0_request_set_feature_out_interface:
-7ae7 202079d6 branch usb0_force_stall 
-
-usb0_request_set_feature_out_endpoint:
-7ae8 6fe0884d fetch 1 ,mem_usb_setup_bvalue 
-7ae9 c08079d6 bne endpoint_halt ,usb0_force_stall 
-7aea 6fe0884e fetch 1 ,mem_usb_setup_bvalueh 
-7aeb c08079d6 bne 0 ,usb0_force_stall 
-7aec 6fe0884f fetch 1 ,mem_usb_setup_windex 
-7aed c040faf5 beq in_ep1 ,usb0_force_stall_ep1_in_on 
-7aee c0417af7 beq in_ep2 ,usb0_force_stall_ep2_in_on 
-7aef c041faf9 beq in_ep3 ,usb0_force_stall_ep3_in_on 
-7af0 1fe17e7f and_into 0x7f ,pdata 
-7af1 c0007af3 beq 0x00 ,usb0_force_stall_ep0_in_on 
-7af2 202079d6 branch usb0_force_stall 
-
-usb0_force_stall_ep0_in_on:
-7af3 7008e201 jam 1 ,mem_usb_ep0_stall_status 
-7af4 202079db branch usb0_reply_zerolen 
-
-usb0_force_stall_ep1_in_on:
-7af5 7008e301 jam 1 ,mem_usb_ep1_stall_status 
-7af6 202079db branch usb0_reply_zerolen 
-
-usb0_force_stall_ep2_in_on:
-7af7 7008e401 jam 1 ,mem_usb_ep2_stall_status 
-7af8 202079db branch usb0_reply_zerolen 
-
-usb0_force_stall_ep3_in_on:
-7af9 7008e501 jam 1 ,mem_usb_ep3_stall_status 
-7afa 202079db branch usb0_reply_zerolen 
-
-usb0_request_set_address:
-7afb 6fe0884b fetch 1 ,mem_usb_setup_bmrequesttype 
-7afc c08079d6 bne out_device ,usb0_force_stall 
-7afd 6fe0884f fetch 1 ,mem_usb_setup_windex 
-7afe c08079d6 bne 0 ,usb0_force_stall 
-7aff 6fe08850 fetch 1 ,mem_usb_setup_windex + 1 
-7b00 c08079d6 bne 0 ,usb0_force_stall 
-7b01 6fe08851 fetch 1 ,mem_usb_setup_blength 
-7b02 c08079d6 bne 0 ,usb0_force_stall 
-7b03 6fe08852 fetch 1 ,mem_usb_setup_blengthh 
-7b04 c08079d6 bne 0 ,usb0_force_stall 
-7b05 6fe0884e fetch 1 ,mem_usb_setup_bvalueh 
-7b06 c08079d6 bne 0 ,usb0_force_stall 
-7b07 6fe0884d fetch 1 ,mem_usb_setup_bvalue 
-7b08 1fe17e80 and_into 0x80 ,pdata 
-7b09 c08079d6 bne 0 ,usb0_force_stall 
-7b0a 6fe0884d fetch 1 ,mem_usb_setup_bvalue 
-7b0b c0807b12 bne 0 ,usb_usb0_state_set_dev_addr 
-
-usb_usb0_state_set_dev_default:
-7b0c 70084902 jam dev_default ,mem_usb0_state 
-
-usb0_request_set_wait_address:
-7b0d 6fe0884d fetch 1 ,mem_usb_setup_bvalue 
-7b0e 67f08c01 store 1 ,core_usb_addr 
-7b0f 204079db call usb0_reply_zerolen 
-7b10 7008ef01 jam 1 ,mem_usb_set_high_addr_flag 
-7b11 20600000 rtn 
-
-usb_usb0_state_set_dev_addr:
-7b12 70084903 jam dev_address ,mem_usb0_state 
-7b13 20207b0d branch usb0_request_set_wait_address 
-
-usb0_request_set_configuration:
-7b14 6fe08849 fetch 1 ,mem_usb0_state 
-7b15 c00179d6 beq dev_default ,usb0_force_stall 
-7b16 6fe0884b fetch 1 ,mem_usb_setup_bmrequesttype 
-7b17 c08079d6 bne out_device ,usb0_force_stall 
-7b18 6fe0884f fetch 1 ,mem_usb_setup_windex 
-7b19 c08079d6 bne 0 ,usb0_force_stall 
-7b1a 6fe08850 fetch 1 ,mem_usb_setup_windex + 1 
-7b1b c08079d6 bne 0 ,usb0_force_stall 
-7b1c 6fe08851 fetch 1 ,mem_usb_setup_blength 
-7b1d c08079d6 bne 0 ,usb0_force_stall 
-7b1e 6fe08852 fetch 1 ,mem_usb_setup_blengthh 
-7b1f c08079d6 bne 0 ,usb0_force_stall 
-7b20 6fe0884e fetch 1 ,mem_usb_setup_bvalue + 1 
-7b21 c08079d6 bne 0 ,usb0_force_stall 
-7b22 6fe0884d fetch 1 ,mem_usb_setup_bvalue 
-7b23 1fe67c01 sub pdata ,usb_max_num_cfg ,null 
-7b24 242179d6 nbranch usb0_force_stall ,positive 
-7b25 6fe08849 fetch 1 ,mem_usb0_state 
-7b26 c001fb29 beq dev_address ,usb0_request_set_cfg_addr_state 
-7b27 c0027b29 beq dev_configured ,usb0_request_set_cfg_cfg_state 
-7b28 202079d6 branch usb0_force_stall 
-
-usb0_request_set_cfg_addr_state:
-
-usb0_request_set_cfg_cfg_state:
-7b29 6fe0884d fetch 1 ,mem_usb_setup_bvalue 
-7b2a c0007b2d beq 0 ,usb0_request_set_cfg_stay_addr_state 
-7b2b 70084904 jam dev_configured ,mem_usb0_state 
-7b2c 202079db branch usb0_reply_zerolen 
-
-usb0_request_set_cfg_stay_addr_state:
-7b2d 70084903 jam dev_address ,mem_usb0_state 
-7b2e 202079db branch usb0_reply_zerolen 
-
-usb0_request_set_interface:
-7b2f 6fe08849 fetch 1 ,mem_usb0_state 
-7b30 c08279d6 bne dev_configured ,usb0_force_stall 
-7b31 6fe0884b fetch 1 ,mem_usb_setup_bmrequesttype 
-7b32 c080f9d6 bne out_interface ,usb0_force_stall 
-7b33 6fe0884d fetch 1 ,mem_usb_setup_bvalue 
-7b34 c08079d6 bne 0 ,usb0_force_stall 
-7b35 6fe0884e fetch 1 ,mem_usb_setup_bvalueh 
-7b36 c08079d6 bne 0 ,usb0_force_stall 
-7b37 6fe08851 fetch 1 ,mem_usb_setup_blength 
-7b38 c08079d6 bne 0 ,usb0_force_stall 
-7b39 6fe08852 fetch 1 ,mem_usb_setup_blengthh 
-7b3a c08079d6 bne 0 ,usb0_force_stall 
-7b3b 6fe0884f fetch 1 ,mem_usb_setup_windex 
-7b3c c08079d6 bne 0 ,usb0_force_stall 
-7b3d 6fe08850 fetch 1 ,mem_usb_setup_windex + 1 
-7b3e c08079d6 bne 0 ,usb0_force_stall 
-7b3f 202079db branch usb0_reply_zerolen 
-
-usb_set_idle:
-7b40 47164025 bpatchx patch25_4 ,mem_patch25 
-7b41 7008d901 jam 1 ,mem_usb_idle_flag 
-7b42 6fe0884e fetch 1 ,mem_usb_setup_bvalueh 
-7b43 67e088da store 1 ,mem_usb_idle_rate 
-7b44 6fe0884f fetch 1 ,mem_usb_setup_windex 
-7b45 1fe67c01 sub pdata ,1 ,null 
-7b46 2042fb4e call usb_clear_remote_wakeup_set0 ,zero 
-7b47 6fe088de fetch 1 ,mem_usb_state 
-7b48 c08279db bne usb_resume ,usb0_reply_zerolen 
-7b49 7008de02 jam usb_connected ,mem_usb_state 
-7b4a 204079db call usb0_reply_zerolen 
-7b4b 20007530 nop 30000 
-7b4c 20007530 nop 30000 
-7b4d 20600000 rtn 
-
-usb_clear_remote_wakeup_set0:
-7b4e 7008ec01 jam 1 ,mem_usb_device_enumeration_endflag 
-7b4f 7008e000 jam 0 ,mem_usb_clear_remote_wakeup 
-7b50 7008de04 jam usb_resume ,mem_usb_state 
-7b51 20600000 rtn 
-
-usb_set_report:
-7b52 4716c025 bpatchx patch25_5 ,mem_patch25 
-7b53 20003a98 nop 15000 
-7b54 d8a00853 arg mem_usb0_set_report_data ,contw 
-7b55 20407983 call usb_rx_data 
-7b56 7008d501 jam 1 ,mem_usb0_get_set_report 
-7b57 20407b62 call usb_set_report_resume_judge 
-7b58 6fe1084d fetch 2 ,mem_usb_setup_bvalue 
-7b59 67e108d3 store 2 ,mem_usb_setup_bvalue_temp 
-7b5a 708c1b02 jam 0x02 ,core_usb_clear_nak 
-7b5b 6fe088d7 fetch 1 ,mem_usb_tx_win_enable 
-7b5c 207a0000 rtn blank 
-7b5d 6fe08853 fetch 1 ,mem_usb0_set_report_data 
-
-usb_get_led_status:
-7b5e 67e0c638 store 1 ,mem_24g_led_status 
-7b5f 7008d700 jam 0 ,mem_usb_tx_win_enable 
-7b60 70462803 jam kb_led_ackpayload ,mem_24g_ackpayload_enable 
-7b61 20600000 rtn 
-
-usb_set_report_resume_judge:
-7b62 6fe1084d fetch 2 ,mem_usb_setup_bvalue 
-7b63 d8400200 arg pc_set_report_bvalue ,temp 
-7b64 98467c00 isub temp ,null 
-7b65 24628000 nrtn zero 
-7b66 6fe1084f fetch 2 ,mem_usb_setup_windex 
-7b67 d8400000 arg pc_set_report_windex ,temp 
-7b68 98467c00 isub temp ,null 
-7b69 24628000 nrtn zero 
-7b6a 6fe10851 fetch 2 ,mem_usb_setup_blength 
-7b6b d8400001 arg pc_set_report_blength ,temp 
-7b6c 98467c00 isub temp ,null 
-7b6d 24628000 nrtn zero 
-7b6e 7008d701 jam 1 ,mem_usb_tx_win_enable 
-7b6f 20600000 rtn 
-
-usb_set_protocol_req:
-7b70 6fe08851 fetch 1 ,mem_usb_setup_blength 
-7b71 c08079d6 bne 0 ,usb0_force_stall 
-7b72 6fe0884d fetch 1 ,mem_usb_setup_bvalue 
-7b73 c0007b76 beq boot_protocol ,usb_set_boot_protocol 
-7b74 c000fb79 beq report_protocol ,usb_set_report_protocol 
-7b75 202079d6 branch usb0_force_stall 
-
-usb_set_boot_protocol:
-7b76 7008dc00 jam 0 ,mem_usb_set_protocol_status 
-7b77 7008dd01 jam 1 ,mem_usb_set_protocol_value 
-7b78 202079db branch usb0_reply_zerolen 
-
-usb_set_report_protocol:
-7b79 7008d801 jam 1 ,mem_usb_tx_mac_enable 
-7b7a 7008dc01 jam 1 ,mem_usb_set_protocol_status 
-7b7b 7008dd00 jam 0 ,mem_usb_set_protocol_value 
-7b7c 202079db branch usb0_reply_zerolen 
-
-usb0_respond_length:
-7b7d ea408011 ifetchr regb ,1 ,rega 
-7b7e 1a20a201 increase 1 ,rega 
-
-usb0_respond:
-7b7f 47174025 bpatchx patch25_6 ,mem_patch25 
-7b80 7920000e set1 mark_usb_first_resp ,mark 
-7b81 c591fb84 bmark0 mark_isstr ,usb0_respond_nostr 
-7b82 1a40a401 increase 1 ,regb 
-7b83 1a43a400 lshift regb ,regb 
-
-usb0_respond_nostr:
-7b84 62210782 storer rega ,2 ,mem_bufptr 
-7b85 62408784 storer regb ,1 ,mem_remain 
-7b86 20207b8a branch usb0_tx 
-7b87 20600000 rtn 
-
-usb_no_respond_data:
-7b88 d8e00000 arg 0 ,queue 
-7b89 20207bcb branch usb_trig 
-
-usb0_tx:
-7b8a 4717c025 bpatchx patch25_7 ,mem_patch25 
-7b8b 6ff08c25 fetch 1 ,core_usb_txbusy 
-7b8c c3800000 rtnbit1 0 
-7b8d 6fe08784 fetch 1 ,mem_remain 
-7b8e 207a0000 rtn blank 
-7b8f 1fe27200 copy pdata ,loopcnt 
-7b90 98000400 iforce temp 
-7b91 6fe10851 fetch 2 ,mem_usb_setup_blength 
-7b92 1fe67c40 sub pdata ,ep0_packet_size ,null 
-7b93 20217b98 branch usb0_tx_short ,positive 
-7b94 1f267c40 sub loopcnt ,ep0_packet_size ,null 
-7b95 20217b9c branch usb0_tx_info ,positive 
-7b96 18007240 force ep0_packet_size ,loopcnt 
-7b97 20207b9c branch usb0_tx_info 
-
-usb0_tx_short:
-7b98 9f267c00 isub loopcnt ,null 
-7b99 20217b9c branch usb0_tx_info ,positive 
-7b9a 98007200 iforce loopcnt 
-7b9b 67e08784 store 1 ,mem_remain 
-
-usb0_tx_info:
-7b9c 6fe08784 fetch 1 ,mem_remain 
-7b9d 9f267e00 isub loopcnt ,pdata 
-7b9e 67e08784 store 1 ,mem_remain 
-7b9f 1f20ffff add loopcnt ,-1 ,pdata 
-7ba0 67e086ec store 1 ,mem_usb_txbuf 
-7ba1 c591fbae bmark0 mark_isstr ,usb0_tx_nostr 
-7ba2 1fe37e00 rshift pdata ,pdata 
-7ba3 1f20ffff add loopcnt ,-1 ,pdata 
-7ba4 67e086ec store 1 ,mem_usb_txbuf 
-7ba5 c5877bae bmark0 mark_usb_first_resp ,usb0_tx_nostr 
-7ba6 793f800e set0 mark_usb_first_resp ,mark 
-7ba7 e0408005 istoret 1 ,contw 
-7ba8 58000003 setarg 3 
-7ba9 e7e08005 istore 1 ,contw 
-7baa 1f20f3ff increase -1 ,loopcnt 
-7bab 1f227e00 copy loopcnt ,pdata 
-7bac 2422fbae nbranch usb0_tx_nostr ,zero 
-7bad 1f20f201 increase 1 ,loopcnt 
-
-usb0_tx_nostr:
-7bae 6fe10782 fetch 2 ,mem_bufptr 
-7baf 1fe20c00 copy pdata ,contr 
-
-usb0_tx0:
-7bb0 efe08006 ifetch 1 ,contr 
-7bb1 e7e08005 istore 1 ,contw 
-7bb2 c591fbb5 bmark0 mark_isstr ,usb0_tx1 
-7bb3 58000000 setarg 0 
-7bb4 e7e08005 istore 1 ,contw 
-
-usb0_tx1:
-7bb5 c2007bb0 loop usb0_tx0 
-7bb6 18c27e00 copy contr ,pdata 
-7bb7 67e10782 store 2 ,mem_bufptr 
-7bb8 580006ec setarg mem_usb_txbuf 
-7bb9 67f10c08 store 2 ,core_usb_tx_saddr0 
-7bba d8e00000 arg 0 ,queue 
-7bbb 20407bcb call usb_trig 
-7bbc 6fe08784 fetch 1 ,mem_remain 
-7bbd 247a0000 nrtn blank 
-7bbe 708c1b02 jam 2 ,core_usb_clear_nak 
-7bbf 6fe088de fetch 1 ,mem_usb_state 
-7bc0 c1808000 rtnne usb_got_report_req 
-7bc1 7008de02 jam usb_connected ,mem_usb_state 
-7bc2 20600000 rtn 
-
-usb_tx_ep1:
-7bc3 da20072d arg mem_usb_txbuf1 ,rega 
-7bc4 d8e00001 arg 1 ,queue 
-7bc5 62310c0a storer rega ,2 ,core_usb_tx_saddr1 
-
-usb_tx_buf:
-7bc6 1f20ffff add loopcnt ,-1 ,pdata 
-7bc7 e7e08011 istore 1 ,rega 
-
-usb_tx_loop:
-7bc8 efe08006 ifetch 1 ,contr 
-7bc9 e7e08005 istore 1 ,contw 
-7bca c2007bc8 loop usb_tx_loop 
-
-usb_trig:
-7bcb 58000000 setarg 0 
-7bcc f9207e00 qset1 pdata 
-7bcd 67f08c18 store 1 ,core_usb_trig 
-7bce 20600000 rtn 
-
-usb_tx_ep2:
-7bcf d8e00002 arg 2 ,queue 
-7bd0 da200737 arg mem_usb_txbuf2 ,rega 
-7bd1 62310c0c storer rega ,2 ,core_usb_tx_saddr2 
-7bd2 20207bc6 branch usb_tx_buf 
-
-usb_tx:
-7bd3 47184026 bpatchx patch26_0 ,mem_patch26 
-7bd4 6fe088eb fetch 1 ,mem_usb_tx_enable 
-7bd5 207a0000 rtn blank 
-7bd6 6ff08c25 fetch 1 ,core_usb_txbusy 
-7bd7 1fe17e0f and_into 0x0f ,pdata 
-7bd8 243a7c32 nbranch usb_inwake_state_tx_dispose ,blank 
-7bd9 6fe088ec fetch 1 ,mem_usb_device_enumeration_endflag 
-7bda 203a7bfe branch usb_tx_fifo_release ,blank 
-7bdb 6fe088de fetch 1 ,mem_usb_state 
-7bdc c001fc42 beq usb_sleep ,usb_windows_wakeup 
-7bdd c0817bfe bne usb_connected ,usb_tx_fifo_release 
-7bde 6fe088e0 fetch 1 ,mem_usb_clear_remote_wakeup 
-7bdf 243a7bfe nbranch usb_tx_fifo_release ,blank 
-7be0 20407be2 call usb_tx_data_ep1 
-7be1 20207bee branch usb_tx_data_ep2 
-
-usb_tx_data_ep1:
-7be2 6ff08c25 fetch 1 ,core_usb_txbusy 
-7be3 c3808000 rtnbit1 1 
-7be4 6fe088eb fetch 1 ,mem_usb_tx_enable 
-7be5 c4008000 rtnbit0 1 
-7be6 6fe088eb fetch 1 ,mem_usb_tx_enable 
-7be7 793ffe01 set0 1 ,pdata 
-7be8 67e088eb store 1 ,mem_usb_tx_enable 
-7be9 4718c026 bpatchx patch26_1 ,mem_patch26 
-7bea 6fe088e9 fetch 1 ,mem_usb_ep1_data 
-7beb 207a0000 rtn blank 
-7bec c0087c20 beq usb_ep1_kb ,usb_tx_kb_normal_data 
-7bed 2020233e branch assert 
-
-usb_tx_data_ep2:
-7bee 6ff08c25 fetch 1 ,core_usb_txbusy 
-7bef c3810000 rtnbit1 2 
-7bf0 6fe088eb fetch 1 ,mem_usb_tx_enable 
-7bf1 c4010000 rtnbit0 2 
-7bf2 6fe088eb fetch 1 ,mem_usb_tx_enable 
-7bf3 793ffe02 set0 2 ,pdata 
-7bf4 67e088eb store 1 ,mem_usb_tx_enable 
-7bf5 47194026 bpatchx patch26_2 ,mem_patch26 
-7bf6 6fe088ea fetch 1 ,mem_usb_ep2_data 
-7bf7 207a0000 rtn blank 
-7bf8 c0107c01 beq usb_ep2_ms ,usb_tx_ms_data 
-7bf9 c010fc1c beq usb_ep2_multikey ,usb_tx_kb_multikey_data 
-7bfa c0117c26 beq usb_ep2_systemkey ,usb_tx_kb_systemkey_data 
-7bfb c011fc2a beq usb_ep2_bit_consumer ,usb_tx_kb_bit_consumer_data 
-7bfc c0127c2e beq usb_ep2_n_key_rollover ,usb_tx_kb_n_key_rollover_data 
-7bfd 2020233e branch assert 
-
-usb_tx_fifo_release:
-7bfe d8a008f1 arg mem_usb_mouse_data ,contw 
-7bff df200040 arg 64 ,loopcnt 
-7c00 20207ca5 branch memset0 
-
-usb_tx_ms_data:
-7c01 6fe088d9 fetch 1 ,mem_usb_idle_flag 
-7c02 684888db fetcht 1 ,mem_usb_get_protocol_flag 
-7c03 98417e00 iand temp ,pdata 
-7c04 203a7c18 branch usb_tx_ms_data_normal_mode ,blank 
-7c05 684888dc fetcht 1 ,mem_usb_set_protocol_status 
-7c06 9840fe00 iadd temp ,pdata 
-7c07 c000fc09 beq mac_boot_mode ,usb_tx_ms_data_mac_boot_mode 
-7c08 20207c18 branch usb_tx_ms_data_normal_mode 
-
-usb_tx_ms_data_mac_boot_mode:
-7c09 7008ea00 jam 0 ,mem_usb_ep2_data 
-
-usb_tx_ms_data_mac_boot_regroup:
-7c0a 6fe088f2 fetch 1 ,mem_usb_mouse_data + 1 
-7c0b c0017c19 beq r_key ,usb_tx_mac_boot_ms_regroup_r_or_lrkey 
-7c0c c001fc19 beq lr_key ,usb_tx_mac_boot_ms_regroup_r_or_lrkey 
-7c0d 6fe088f2 fetch 1 ,mem_usb_mouse_data + 1 
-7c0e 67e088f1 store 1 ,mem_usb_mouse_data 
-7c0f 6fe088f3 fetch 1 ,mem_usb_mouse_data + 2 
-7c10 e7e08005 istore 1 ,contw 
-7c11 6fe088f5 fetch 1 ,mem_usb_mouse_data + 4 
-7c12 e7e08005 istore 1 ,contw 
-7c13 6fe088f7 fetch 1 ,mem_usb_mouse_data + 6 
-7c14 e7e08005 istore 1 ,contw 
-7c15 df200004 arg 4 ,loopcnt 
-7c16 d8c008f1 arg mem_usb_mouse_data ,contr 
-7c17 20207bcf branch usb_tx_ep2 
-
-usb_tx_ms_data_normal_mode:
-7c18 7008ea00 jam 0 ,mem_usb_ep2_data 
-
-usb_tx_mac_boot_ms_regroup_r_or_lrkey:
-7c19 df200008 arg 8 ,loopcnt 
-7c1a d8c008f1 arg mem_usb_mouse_data ,contr 
-7c1b 20207bcf branch usb_tx_ep2 
-
-usb_tx_kb_multikey_data:
-7c1c 7008ea00 jam 0 ,mem_usb_ep2_data 
-7c1d df200003 arg 3 ,loopcnt 
-7c1e d8c00921 arg mem_usb_kb_multikey ,contr 
-7c1f 20207bcf branch usb_tx_ep2 
-
-usb_tx_kb_normal_data:
-7c20 6fe0c3cf fetch 1 ,mem_device_option 
-7c21 c007ca10 beq dvc_op_keyboard ,keyboard_usb_tx_kb_normal_data 
-7c22 7008e900 jam 0 ,mem_usb_ep1_data 
-7c23 df200008 arg 8 ,loopcnt 
-7c24 d8c00901 arg mem_usb_kb_data ,contr 
-7c25 20207bc3 branch usb_tx_ep1 
-
-usb_tx_kb_systemkey_data:
-7c26 7008ea00 jam 0 ,mem_usb_ep2_data 
-7c27 df200002 arg 2 ,loopcnt 
-7c28 d8c00929 arg mem_usb_kb_system ,contr 
-7c29 20207bcf branch usb_tx_ep2 
-
-usb_tx_kb_bit_consumer_data:
-7c2a 7008ea00 jam 0 ,mem_usb_ep2_data 
-7c2b df200004 arg 4 ,loopcnt 
-7c2c d8c00921 arg mem_usb_kb_multikey ,contr 
-7c2d 20207bcf branch usb_tx_ep2 
-
-usb_tx_kb_n_key_rollover_data:
-7c2e 7008ea00 jam 0 ,mem_usb_ep2_data 
-7c2f df20000f arg 15 ,loopcnt 
-7c30 d8c00911 arg mem_usb_kb_n_key_rollvoer_data ,contr 
-7c31 20207bcf branch usb_tx_ep2 
-
-usb_inwake_state_tx_dispose:
-7c32 6fe088de fetch 1 ,mem_usb_state 
-7c33 c0017c35 beq usb_connected ,usb_mac_wakeup_trig 
-7c34 20600000 rtn 
-
-usb_mac_wakeup_trig:
-7c35 6ff08c00 fetch 1 ,core_usb_config 
-7c36 79207e07 set1 7 ,pdata 
-7c37 67f08c00 store 1 ,core_usb_config 
-7c38 7008ee01 jam 1 ,mem_usb_mac_wakeup_trig 
-7c39 20600000 rtn 
-
-usb_mac_wakeup_judge:
-7c3a 6fe088de fetch 1 ,mem_usb_state 
-7c3b c1018000 rtneq usb_sleep 
-7c3c c0017c3e beq usb_connected ,usb_mac_wakeup 
-7c3d 20600000 rtn 
-
-usb_mac_wakeup:
-7c3e 6fe088ee fetch 1 ,mem_usb_mac_wakeup_trig 
-7c3f 207a0000 rtn blank 
-7c40 7008ed01 jam 1 ,mem_usb_wakestate_onetime_flag 
-7c41 20207c45 branch usb_wakeup 
-
-usb_windows_wakeup:
-7c42 d8e0000f arg usb_timer_wakeup ,queue 
-7c43 20407cf1 call timer_check 
-7c44 247a0000 nrtn blank 
-
-usb_wakeup:
-7c45 6ff08c00 fetch 1 ,core_usb_config 
-7c46 c4038000 rtnbit0 7 
-7c47 708c00fc jam 0xfc ,core_usb_config 
-7c48 20007530 nop 30000 
-7c49 708c003c jam 0x3c ,core_usb_config 
-7c4a 20600000 rtn 
-
-push_stack:
-7c4b 60a1066f storer contw ,2 ,mem_contw 
-7c4c 604c0656 storet 8 ,mem_temp 
-7c4d 6162065e storer timeup ,4 ,mem_timeup 
-7c4e 20407c53 call push_stack_rega_b_c 
-7c4f 60c1066d storer contr ,2 ,mem_contr 
-7c50 67210679 storer loopcnt ,2 ,mem_loopcnt 
-7c51 60e10677 storer queue ,2 ,mem_queue 
-7c52 20600000 rtn 
-
-push_stack_rega_b_c:
-7c53 62220662 storer rega ,4 ,mem_rega 
-7c54 62420666 storer regb ,4 ,mem_regb 
-7c55 6261866a storer regc ,3 ,mem_regc 
-7c56 20600000 rtn 
-
-pop_stack:
-7c57 4719c026 bpatchx patch26_3 ,mem_patch26 
-7c58 6fe1066f fetch 2 ,mem_contw 
-7c59 98000a00 iforce contw 
-7c5a 684c0656 fetcht 8 ,mem_temp 
-7c5b 6962065e fetchr timeup ,4 ,mem_timeup 
-7c5c 20407c62 call pop_stack_rega_b_c 
-7c5d 6f210679 fetchr loopcnt ,2 ,mem_loopcnt 
-7c5e 68e10677 fetchr queue ,2 ,mem_queue 
-7c5f 6fe1066d fetch 2 ,mem_contr 
-7c60 98000c00 iforce contr 
-7c61 20600000 rtn 
-
-pop_stack_rega_b_c:
-7c62 6a220662 fetchr rega ,4 ,mem_rega 
-7c63 6a420666 fetchr regb ,4 ,mem_regb 
-7c64 6a61866a fetchr regc ,3 ,mem_regc 
-7c65 20600000 rtn 
-
-get_contw:
-7c66 6fe1066f fetch 2 ,mem_contw 
-
-get_contw_end:
-7c67 1fe20a00 copy pdata ,contw 
-7c68 20600000 rtn 
-
-get_contr:
-7c69 6fe1066d fetch 2 ,mem_contr 
-
-get_contr_end:
-7c6a 1fe20c00 copy pdata ,contr 
-7c6b 20600000 rtn 
-
-store_contw:
-7c6c 18a27e00 copy contw ,pdata 
-7c6d 67e1066f store 2 ,mem_contw 
-7c6e 20600000 rtn 
-
-store_contr:
-7c6f 18c27e00 copy contr ,pdata 
-7c70 67e1066d store 2 ,mem_contr 
-7c71 20600000 rtn 
-
-save_cont_pointers:
-7c72 18a27e00 copy contw ,pdata 
-7c73 67e1066f store 2 ,mem_contw 
-7c74 18c27e00 copy contr ,pdata 
-7c75 67e1066d store 2 ,mem_contr 
-7c76 20600000 rtn 
-
-load_cont_pointers:
-7c77 6fe1066f fetch 2 ,mem_contw 
-7c78 1fe20a00 copy pdata ,contw 
-7c79 6fe1066d fetch 2 ,mem_contr 
-7c7a 1fe20c00 copy pdata ,contr 
-7c7b 20600000 rtn 
-
-get_diff:
-7c7c 98462200 isub temp ,rega 
-7c7d 20610000 rtn positive 
-7c7e da200100 arg 0x100 ,rega 
-7c7f 9a20fe00 iadd rega ,pdata 
-7c80 98462200 isub temp ,rega 
-7c81 20600000 rtn 
-
-memcpy96:
-7c82 20407c8f call memcpy32 
-
-memcpy64:
-7c83 20407c8f call memcpy32 
-7c84 20207c8f branch memcpy32 
-
-memcpy12:
-7c85 20407c8b call memcpy8 
-
-memcpy4:
-7c86 efe08006 ifetch 1 ,contr 
-7c87 e7e08005 istore 1 ,contw 
-
-memcpy3:
-7c88 efe18006 ifetch 3 ,contr 
-7c89 e7e18005 istore 3 ,contw 
-7c8a 20600000 rtn 
-
-memcpy8:
-7c8b efe40006 ifetch 8 ,contr 
-7c8c e7e40005 istore 8 ,contw 
-7c8d 20600000 rtn 
-
-memcpy48:
-7c8e 20407c91 call memcpy16 
-
-memcpy32:
-7c8f 20407c8b call memcpy8 
-
-memcpy24:
-7c90 20407c8b call memcpy8 
-
-memcpy16:
-7c91 20407c8b call memcpy8 
-7c92 20207c8b branch memcpy8 
-
-delay:
-7c93 1fe0ffff increase -1 ,pdata 
-7c94 20000026 nop 38 
-7c95 243a7c93 nbranch delay ,blank 
-7c96 20600000 rtn 
-
-delay_10ms:
-7c97 df20000a arg 10 ,loopcnt 
-
-delay_ms_wait:
-7c98 20002ee0 nop 12000 
-7c99 c2007c98 loop delay_ms_wait 
-7c9a 20600000 rtn 
-
-memset0_16:
-7c9b 20407c9c call memset0_8 
-
-memset0_8:
-7c9c 20407c9d call memset0_4 
-
-memset0_4:
-7c9d 18007204 force 4 ,loopcnt 
-7c9e 20207ca5 branch memset0 
-
-clear_mem_256:
-7c9f 18007220 force 32 ,loopcnt 
-7ca0 20207ca5 branch memset0 
-
-clear_mem_512:
-7ca1 18007240 force 64 ,loopcnt 
-7ca2 20207ca5 branch memset0 
-
-clear_mem:
-7ca3 1f227e00 deposit loopcnt 
-7ca4 207a0000 rtn blank 
-
-memset0:
-7ca5 18007e00 force 0 ,pdata 
-7ca6 e7e00005 lstore contw 
-7ca7 20600000 rtn 
-
-clear_temp_block:
-7ca8 df200020 arg 32 ,loopcnt 
-7ca9 d8a0067f arg mem_temp_block0 ,contw 
-7caa 20207ca3 branch clear_mem 
-
-xor_loop:
-7cab efe20013 ifetch 4 ,regc 
-7cac e8420011 ifetcht 4 ,rega 
-7cad 9842fe00 ixor temp ,pdata 
-7cae e7e20005 istore 4 ,contw 
-7caf 1a20a204 increase 4 ,rega 
-7cb0 1a60a604 increase 4 ,regc 
-7cb1 c2007cab loop xor_loop 
-7cb2 20600000 rtn 
-
-inverse_data:
-7cb3 471a4026 bpatchx patch26_4 ,mem_patch26 
-7cb4 1f227e00 copy loopcnt ,pdata 
-7cb5 1fe67c01 sub pdata ,1 ,null 
-7cb6 20610000 rtn positive 
-7cb7 9a20a400 iadd rega ,regb 
-7cb8 1a40a5ff increase -1 ,regb 
-7cb9 1f237200 rshift loopcnt ,loopcnt 
-
-inverse_loop:
-7cba e8408011 ifetcht 1 ,rega 
-7cbb efe08012 ifetch 1 ,regb 
-7cbc e7e08011 istore 1 ,rega 
-7cbd e0408012 istoret 1 ,regb 
-7cbe 1a40a5ff increase -1 ,regb 
-7cbf 1a20a201 increase 1 ,rega 
-7cc0 c2007cba loop inverse_loop 
-7cc1 20600000 rtn 
-
-le2be_6byte:
-
-inverse_data_6byte:
-7cc2 1fef0400 rshift32 pdata ,temp 
-7cc3 20407cc8 call inverse_data_4byte 
-7cc4 18508400 byteswap temp ,temp 
-7cc5 1ff07e00 lshift16 pdata ,pdata 
-7cc6 9841fe00 ior temp ,pdata 
-7cc7 20600000 rtn 
-
-le2be_4byte:
-
-inverse_data_4byte:
-7cc8 1ff10c00 rshift16 pdata ,contr 
-7cc9 18d08c00 byteswap contr ,contr 
-7cca 1ff0fe00 byteswap pdata ,pdata 
-7ccb 1ff07e00 lshift16 pdata ,pdata 
-7ccc 98c1fe00 ior contr ,pdata 
-7ccd 20600000 rtn 
-
-memcpy_fast:
-7cce 471ac026 bpatchx patch26_5 ,mem_patch26 
-7ccf 1f227e00 deposit loopcnt 
-7cd0 207a0000 rtn blank 
-
-memcpy_fast_loop:
-7cd1 1f20f3f8 increase -8 ,loopcnt 
-7cd2 20417c8b call memcpy8 ,positive 
-7cd3 20628000 rtn zero 
-7cd4 20217cd1 branch memcpy_fast_loop ,positive 
-7cd5 1f20f208 increase 8 ,loopcnt 
-
-memcpy_fast_loop_four:
-7cd6 1f20f3fc increase -4 ,loopcnt 
-7cd7 20417c86 call memcpy4 ,positive 
-7cd8 20628000 rtn zero 
-7cd9 20217cd6 branch memcpy_fast_loop_four ,positive 
-7cda 1f20f204 increase 4 ,loopcnt 
-7cdb 20207cdc branch memcpy 
-
-memcpy:
-7cdc 1f227e00 deposit loopcnt 
-7cdd 207a0000 rtn blank 
-
-memcpy_loop:
-7cde efe08006 ifetch 1 ,contr 
-7cdf e7e08005 istore 1 ,contw 
-7ce0 c2007cde loop memcpy_loop 
-7ce1 20600000 rtn 
-
-timer_stop:
-7ce2 58000000 setarg 0 
-
-timer_init:
-7ce3 67e1064e store 2 ,mem_pdatatemp 
-7ce4 471b4026 bpatchx patch26_6 ,mem_patch26 
-7ce5 20407cf1 call timer_check 
-7ce6 6849064e fetcht 2 ,mem_pdatatemp 
-7ce7 d8a040f4 arg mem_timers ,contw 
-7ce8 18e3fe00 lshift queue ,pdata 
-7ce9 98a08a00 iadd contw ,contw 
-7cea e0410005 istoret 2 ,contw 
-7ceb 20600000 rtn 
-
-timer_check_timeout:
-7cec d9600800 arg 0x800 ,timeup 
-7ced 19701600 lshift16 timeup ,timeup 
-7cee 9960fe00 iadd timeup ,pdata 
-7cef 20600000 rtn 
-
-timer_reinit:
-7cf0 d8e00000 arg 0 ,queue 
-
-timer_check:
-7cf1 471bc026 bpatchx patch26_7 ,mem_patch26 
-7cf2 684a4095 fetcht 4 ,mem_last_clkn 
-7cf3 1c437e00 rshift clkn_bt ,pdata 
-7cf4 67e24095 store 4 ,mem_last_clkn 
-7cf5 98467c00 isub temp ,null 
-7cf6 24417cec ncall timer_check_timeout ,positive 
-7cf7 98461600 isub temp ,timeup 
-7cf8 19620400 copy timeup ,temp 
-7cf9 d8c040f4 arg mem_timers ,contr 
-7cfa 18c20a00 copy contr ,contw 
-7cfb df200010 arg 16 ,loopcnt 
-
-timer_loop:
-7cfc efe10006 ifetch 2 ,contr 
-7cfd 98467e00 isub temp ,pdata 
-7cfe 20217d00 branch timer_counting ,positive 
-7cff 18007e00 force 0 ,pdata 
-
-timer_counting:
-7d00 e7e10005 istore 2 ,contw 
-7d01 c2007cfc loop timer_loop 
-7d02 d8c040f4 arg mem_timers ,contr 
-7d03 18e3fe00 lshift queue ,pdata 
-7d04 98c08c00 iadd contr ,contr 
-7d05 efe10006 ifetch 2 ,contr 
-7d06 20600000 rtn 
-
-clk_add:
-7d07 98408400 iadd temp ,temp 
-7d08 18427200 copy temp ,loopcnt 
-7d09 6fe10044 fetch 2 ,mem_param_rt_rthalfslot 
-7d0a 9f267e00 isub loopcnt ,pdata 
-7d0b 20610000 rtn positive 
-7d0c 1fe67e00 sub pdata ,0 ,pdata 
-7d0d 18510400 rshift16 temp ,temp 
-7d0e 18408401 increase 1 ,temp 
-7d0f 18500400 lshift16 temp ,temp 
-7d10 98418400 ior temp ,temp 
-7d11 20600000 rtn 
-
-clk_diff_rt:
-7d12 20407d14 call clk_diff 
-7d13 20207d21 branch clk2rt 
-
-clk_diff:
-7d14 78547c00 disable user 
-7d15 98467e00 isub temp ,pdata 
-7d16 20217d19 branch clk_diff_pos ,positive 
-7d17 78347c00 enable user 
-7d18 1fe67e00 sub pdata ,0 ,pdata 
-
-clk_diff_pos:
-7d19 c4078000 rtnbit0 15 
-7d1a 1fe22800 copy pdata ,regab 
-7d1b d8410000 arg 0x10000 ,temp 
-7d1c 6fe10044 fetch 2 ,mem_param_rt_rthalfslot 
-7d1d 98467e00 isub temp ,pdata 
-7d1e 9a80fe00 iadd regab ,pdata 
-7d1f 793ffe40 set0 64 ,pdata 
-7d20 20600000 rtn 
-
-clk2rt:
-7d21 68490044 fetcht 2 ,mem_param_rt_rthalfslot 
-7d22 98000c00 iforce contr 
-7d23 1ff17e00 rshift16 pdata ,pdata 
-7d24 984ffe00 imul32 temp ,pdata 
-7d25 98c0fe00 iadd contr ,pdata 
-7d26 20600000 rtn 
-
-clk2lpo:
-7d27 1fed7e00 lshift8 pdata ,pdata 
-7d28 1ff27e00 lshift4 pdata ,pdata 
-7d29 6849c0bd fetcht 3 ,mem_clks_per_lpo 
-7d2a 9846fc00 idiv temp 
-7d2b 20407d64 call wait_div_end 
-7d2c 18078400 quotient temp 
-7d2d 20600000 rtn 
-
-clk2bt:
-7d2e 68490044 fetcht 2 ,mem_param_rt_rthalfslot 
-7d2f 9846fc00 idiv temp 
-7d30 20407d61 call get_div_result 
-7d31 1ff07e00 lshift16 pdata ,pdata 
-7d32 18070400 remainder temp 
-7d33 98418400 ior temp ,temp 
-7d34 20600000 rtn 
-
-string2dec_from_uart:
-7d35 d8400000 arg 0 ,temp 
-
-string2dec_from_uart_done:
-7d36 18422800 copy temp ,regab 
-7d37 efe08003 ifetch 1 ,contu 
-7d38 20407d41 call uchar2dialog 
-7d39 1a820400 copy regab ,temp 
-7d3a 20407d72 call swap 
-7d3b da40000a arg 10 ,regb 
-7d3c 9a4ffe00 imul32 regb ,pdata 
-7d3d 9840fe00 iadd temp ,pdata 
-7d3e 1fe20400 copy pdata ,temp 
-7d3f c2007d36 loop string2dec_from_uart_done 
-7d40 20600000 rtn 
-
-uchar2dialog:
-7d41 d840003a arg 0x3a ,temp 
-7d42 98467c00 isub temp ,null 
-7d43 24217d4a nbranch uchar2dialog_number ,positive 
-7d44 d8400061 arg 0x61 ,temp 
-7d45 98467c00 isub temp ,null 
-7d46 20217d4d branch uchar2dialog_a2f ,positive 
-7d47 d8400037 arg 0x37 ,temp 
-7d48 98467e00 isub temp ,pdata 
-7d49 20600000 rtn 
-
-uchar2dialog_number:
-7d4a d8400030 arg 0x30 ,temp 
-7d4b 98467e00 isub temp ,pdata 
-7d4c 20600000 rtn 
-
-uchar2dialog_a2f:
-7d4d d8400057 arg 0x57 ,temp 
-7d4e 98467e00 isub temp ,pdata 
-7d4f 20600000 rtn 
-
-right_shift_n:
-7d50 1f267c00 sub loopcnt ,0 ,null 
-7d51 20628000 rtn zero 
-
-right_shift_n_loop:
-7d52 1fe37e00 rshift pdata ,pdata 
-7d53 c2007d52 loop right_shift_n_loop 
-7d54 20600000 rtn 
-
-left_shift_n:
-7d55 18007e01 force 1 ,pdata 
-7d56 1f267c00 sub loopcnt ,0 ,null 
-7d57 20628000 rtn zero 
-
-left_shift_n_loop:
-7d58 1fe3fe00 lshift pdata ,pdata 
-7d59 c2007d58 loop left_shift_n_loop 
-7d5a 20600000 rtn 
-
-calc_average:
-7d5b 58000000 setarg 0 
-7d5c 1f222200 copy loopcnt ,rega 
-
-calc_average_loop:
-7d5d e8410006 ifetcht 2 ,contr 
-7d5e 9840fe00 iadd temp ,pdata 
-7d5f c2007d5d loop calc_average_loop 
-7d60 9a26fc00 idiv rega 
-
-get_div_result:
-7d61 20407d64 call wait_div_end 
-7d62 1807fe00 quotient pdata 
-7d63 20600000 rtn 
-
-wait_div_end:
-7d64 207a8000 rtn modone 
-7d65 20207d64 branch wait_div_end 
-
-compare_loop:
-
-string_compare:
-7d66 efe08011 ifetch 1 ,rega 
-7d67 e8408012 ifetcht 1 ,regb 
-7d68 98467c00 isub temp ,null 
-7d69 24628000 nrtn zero 
-7d6a 1a20a201 increase 1 ,rega 
-7d6b 1a40a401 increase 1 ,regb 
-7d6c c2007d66 loop string_compare 
-7d6d 20207dba branch enable_zero 
-
-ceiling:
-7d6e 98467c00 isub temp ,null 
-7d6f 24610000 nrtn positive 
-7d70 18427e00 deposit temp 
-7d71 20600000 rtn 
-
-swap:
-7d72 9840fe00 iadd temp ,pdata 
-7d73 98460400 isub temp ,temp 
-7d74 98467e00 isub temp ,pdata 
-7d75 20600000 rtn 
-
-clean_smem:
-7d76 d8a00000 arg 0 ,contw 
-7d77 20207d79 branch clean_mem 
-
-clean_xmem:
-7d78 d8a04000 arg 0x4000 ,contw 
-
-clean_mem:
-7d79 df201000 arg 0x1000 ,loopcnt 
-7d7a 20207ca5 branch memset0 
-
-callback_func:
-7d7b 207a0000 rtn blank 
-7d7c 1fe27a00 copy pdata ,pc 
-
-ice_break_disable_wdt:
-7d7d 2040711d call wdt_set_disable 
-
-ice_break:
-7d7e 70820301 jam 0x1 ,core_ice_ctrl 
-7d7f 20600000 rtn 
-
-ice_setbp:
-7d80 67f10205 store 2 ,core_ice_break0 
-7d81 6ff08203 fetch 1 ,core_ice_ctrl 
-7d82 79207e04 set1 4 ,pdata 
-7d83 67f08203 store 1 ,core_ice_ctrl 
-7d84 20600000 rtn 
-
-ice_setbp2:
-7d85 67f10207 store 2 ,core_ice_break1 
-7d86 6ff08203 fetch 1 ,core_ice_ctrl 
-7d87 79207e06 set1 6 ,pdata 
-7d88 67f08203 store 1 ,core_ice_ctrl 
-7d89 20600000 rtn 
-
-ice_set_write_bp:
-7d8a 67f10205 store 2 ,core_ice_break0 
-7d8b 70820330 jam 0x30 ,core_ice_ctrl 
-7d8c 20600000 rtn 
-
-fifo_in:
-7d8d 471c4027 bpatchx patch27_0 ,mem_patch27 
-7d8e e8440011 ifetcht util_fifo_len ,rega 
-7d8f 18417eff and temp ,0xff ,pdata 
-7d90 243a7d93 nbranch fifo_in_push ,blank 
-7d91 184cfe00 rshift8 temp ,pdata 
-7d92 e7e40011 istore util_fifo_len ,rega 
-
-fifo_in_push:
-7d93 1a20a207 increase util_fifo_len + util_fifo_offset ,rega 
-7d94 efe08011 ifetch 1 ,rega 
-7d95 243a233e nbranch assert ,blank 
-7d96 6fe0864d fetch 1 ,mem_fifo_temp 
-7d97 e7e08011 istore 1 ,rega 
-7d98 20600000 rtn 
-
-fifo_out:
-7d99 471cc027 bpatchx patch27_1 ,mem_patch27 
-7d9a df200008 arg util_fifo_len ,loopcnt 
-7d9b efe40011 ifetch util_fifo_len ,rega 
-7d9c 207a0000 rtn blank 
-
-fifo_out_loop:
-7d9d efe08011 ifetch 1 ,rega 
-7d9e 243a7da2 nbranch fifo_out_end ,blank 
-7d9f 1a20a201 increase 1 ,rega 
-7da0 c2007d9d loop fifo_out_loop 
-7da1 2020233e branch assert 
-
-fifo_out_end:
-7da2 d8400000 arg 0 ,temp 
-7da3 e0408011 istoret 1 ,rega 
-7da4 20600000 rtn 
-
-fifo_is_empty:
-7da5 efe40011 ifetch util_fifo_len ,rega 
-7da6 20600000 rtn 
-
-fifo_is_full:
-7da7 efe08011 ifetch 1 ,rega 
-7da8 20600000 rtn 
-
-fifo_is_near_full:
-7da9 efe10011 ifetch 2 ,rega 
-7daa 20600000 rtn 
-
-fifo_content_count:
-7dab d8400000 arg 0 ,temp 
-
-fifo_content_count_loop:
-7dac 6fe08006 fetch 1 ,contr 
-7dad c2007dac loop fifo_content_count_loop ,blank 
-7dae 18408401 increase 1 ,temp 
-7daf c2007dac loop fifo_content_count_loop 
-7db0 18427e00 copy temp ,pdata 
-7db1 20600000 rtn 
-
-not_greater_than:
-7db2 98467c00 isub temp ,null 
-7db3 24610000 nrtn positive 
-
-copy_temp2pdata:
-7db4 18427e00 copy temp ,pdata 
-7db5 20600000 rtn 
-
-disable_positive:
-7db6 18007dff force -1 ,null 
-7db7 20600000 rtn 
-
-enable_positive:
-
-disable_zero:
-7db8 18007c01 force 1 ,null 
-7db9 20600000 rtn 
-
-enable_zero:
-7dba 18007c00 force 0 ,null 
-7dbb 20600000 rtn 
-
-enable_user:
-7dbc 78347c00 enable user 
-7dbd 20600000 rtn 
-
-disable_user:
-7dbe 78547c00 disable user 
-7dbf 20600000 rtn 
-
-enable_user2:
-7dc0 78367c00 enable user2 
-7dc1 20600000 rtn 
-
-disable_user2:
-7dc2 78567c00 disable user2 
-7dc3 20600000 rtn 
-
-enable_user7:
-7dc4 7838fc00 enable user7 
-7dc5 20600000 rtn 
-
-disable_true:
-7dc6 7840fc00 disable true 
-7dc7 20600000 rtn 
-
-enable_true:
-7dc8 7820fc00 enable true 
-7dc9 20600000 rtn 
-
-disable_blank:
-7dca 58000001 setarg 1 
-7dcb 20600000 rtn 
-
-enable_blank:
-
-set_pdata_0:
-7dcc 58000000 setarg 0 
-7dcd 20600000 rtn 
-
-istore_1_contw_rtn:
-7dce e7e08005 istore 1 ,contw 
-7dcf 20600000 rtn 
-
-cal_sum:
-7dd0 1f267c00 sub loopcnt ,0 ,null 
-7dd1 20628000 rtn zero 
-
-cal_sum_loop:
-7dd2 e8408006 ifetcht 1 ,contr 
-7dd3 9840fe00 iadd temp ,pdata 
-7dd4 c2007dd2 loop cal_sum_loop 
-7dd5 20600000 rtn 
-
-reverse_byte:
-7dd6 1f227e00 copy loopcnt ,pdata 
-7dd7 207a0000 rtn blank 
-7dd8 18c27e00 copy contr ,pdata 
-7dd9 9f20fe00 iadd loopcnt ,pdata 
-7dda 1fe0ffff increase -1 ,pdata 
-7ddb 1fe20c00 copy pdata ,contr 
-
-reverse_loop:
-7ddc efe08006 ifetch 1 ,contr 
-7ddd 18c08dfe increase -2 ,contr 
-7dde e7e08005 istore 1 ,contw 
-7ddf c2007ddc loop reverse_loop 
-7de0 20600000 rtn 
-
-lshift14:
-7de1 1ff07e00 lshift16 pdata ,pdata 
-
-rshift2:
-7de2 1feb7e00 rshift2 pdata ,pdata 
-7de3 20600000 rtn 
-
-lshift6:
-7de4 1fed7e00 lshift8 pdata ,pdata 
-7de5 20207de2 branch rshift2 
-
-clear_wake:
-7de6 471d4027 bpatchx patch27_2 ,mem_patch27 
-7de7 58000000 setarg 0 
-7de8 79207e15 set1 21 ,pdata 
-7de9 67e40016 store 8 ,mem_gpio_wakeup_cfg 
-7dea 58000000 setarg 0 
-7deb e7e20005 istore 4 ,contw 
-7dec 20600000 rtn 
-
-generate_random:
-7ded df200010 arg 16 ,loopcnt 
-
-generate_random_loop:
-7dee 180a7e00 random pdata 
-7def e7e08005 istore 1 ,contw 
-7df0 c2007dee loop generate_random_loop 
-7df1 20600000 rtn 
-              org 0x10001
-
-z_entrance0:
-10001 c0000005 beq zcode_00 ,z_mouse_start_work 
-10002 c000800b beq zcode_01 ,z_mouse_param_info_init 
-10003 c0010015 beq zcode_02 ,z_mouse_default_init 
-10004 20600000 rtn 
-
-z_mouse_start_work:
-10005 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
-10006 c29f594b bbit1 mouse_enable_24g_first_auto_pairing ,mouse_24g_first_start_auto_pair_mode 
-10007 6fe0c678 fetch 1 ,mem_device_flag 
-10008 c000593a beq mode_24g_device ,mouse_24g_start_mode 
-10009 204002b6 call p_mouse_le_param_default 
-1000a 20204dfa branch mouse_le_fast_conn_judge 
-
-z_mouse_param_info_init:
-1000b 20404d89 call mouse_param_info_init + 1 
-1000c 58004d00 setarg mem_le_tx_buffer0_omemalloc_new 
-1000d 67e14343 store 2 ,mem_ble_l2cap_tx_buff0_ptr 
-1000e 58000050 setarg mouse_ble_l2cap_txbuff_size_new 
-1000f 67e14345 store 2 ,mem_ble_l2cap_tx_buff_size_ptr 
-10010 580006f2 setarg mem_ui_le_uuid_table_new 
-10011 67e142f9 store 2 ,mem_ui_le_uuid_table 
-10012 7042e346 jam 70 ,mem_le_local_mtu 
-10013 7046380f jam 0x0f ,mem_24g_fast_hop_count 
-10014 20600000 rtn 
-
-z_mouse_default_init:
-10015 20404d83 call mouse_default_init + 1 
-10016 7045e101 jam 1 ,mem_24g_disable_fec1 
-10017 70444e01 jam 1 ,mem_power_ctrl_disable 
-10018 700ea200 jam 0 ,mem_voice_queue_count 
-10019 7048fa01 jam 1 ,mem_mouse_sleep_deal_type 
-1001a 7048ef10 jam 0x10 ,mem_mouse_24g_tx_time_sum_count 
-1001b 20600000 rtn 
-              org 0x20001
-
-z_entrance1:
-20001 c0080005 beq zcode_10 ,z_mouse_load_device_info_check 
-20002 c0088018 beq zcode_11 ,z_mouse_24g_attempt_fail 
-20003 c0090024 beq zcode_12 ,z_mouse_eeprom_load_le_att_list_info 
-20004 20600000 rtn 
-
-z_mouse_load_device_info_check:
-20005 20400024 call z_mouse_eeprom_load_le_att_list_info 
-20006 20405640 call mouse_load_eeprom_info_check 
-20007 20400010 call z_mouse_load_key_info_check_flag 
-20008 6fe0ce5e fetch 1 ,mem_mouse_key_information_set_flag 
-20009 205a0014 call z_mouse_load_key_info_check ,blank 
-2000a 6fe0c6a2 fetch 1 ,mem_mouse_dpi 
-2000b 67e0cce2 store 1 ,mem_mouse_last_dpi 
-2000c d8400008 arg 8 ,temp 
-2000d da20486a arg msm_ms_auth_sn ,rega 
-2000e da400082 arg mouse_auth_info_offset ,regb 
-2000f 20206cd7 branch iicd_read_eep_data 
-
-z_mouse_load_key_info_check_flag:
-20010 d8400001 arg 1 ,temp 
-20011 da204e5e arg mem_mouse_key_information_set_flag ,rega 
-20012 da400099 arg mouse_value_flag_offect ,regb 
-20013 20206cd7 branch iicd_read_eep_data 
-
-z_mouse_load_key_info_check:
-20014 d840000f arg 15 ,temp 
-20015 da204e4f arg mem_mouse_key_information_start ,rega 
-20016 da40008a arg mouse_value_eeprom_offect ,regb 
-20017 20206cd7 branch iicd_read_eep_data 
-
-z_mouse_24g_attempt_fail:
-20018 6fe0c5f9 fetch 1 ,mem_24g_reconn_type 
-20019 c002d98c beq pair_and_receiver ,mouse_24g_auto_pair_attempt_fail 
-2001a c000801c beq fast_conn_and_receiver ,z_mouse_24g_fast_conn_attempt_fail 
-2001b 20205975 branch mouse_24g_attempt_fail + 4 
-
-z_mouse_24g_fast_conn_attempt_fail:
-2001c 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
-2001d c29f0020 bbit1 mouse_enable_24g_first_auto_pairing ,z_mouse_24g_start_auto_pair 
-2001e c2980020 bbit1 mouse_enable_auto_24g_paring ,z_mouse_24g_start_auto_pair 
-2001f 20205983 branch mouse_24g_fast_conn_attempt_fail + 3 
-
-z_mouse_24g_start_auto_pair:
-20020 6fe145ed fetch 2 ,mem_24g_pair_timeout_init 
-20021 67e145f5 store 2 ,mem_24g_reconn_timeout 
-20022 7045f905 jam pair_and_receiver ,mem_24g_reconn_type 
-20023 2020350a branch g24_reconn_start 
-
-z_mouse_eeprom_load_le_att_list_info:
-20024 d8400334 arg 820 ,temp 
-20025 da2006f2 arg mem_ui_le_uuid_table_new ,rega 
-20026 da400000 arg 0x00 ,regb 
-20027 6fe14e9b fetch 2 ,mem_eeprom_att_list_base 
-20028 20206cda branch iicd_read_eep_data_next 
-              org 0x30001
-
-z_entrance2:
-30001 c0100003 beq zcode_20 ,z_g24_receive_ack_data_next 
-30002 20600000 rtn 
-
-z_g24_receive_ack_data_next:
-30003 6fe0c577 fetch 1 ,mem_24g_rxpayload + 3 
-30004 c003000c beq opcode_voice_start ,z_mouse_receive_dg_voice_start_data 
-30005 c008000e beq opcode_get_device_info ,z_mouse_receive_dg_get_device_info_data 
-30006 c0088010 beq opcode_get_dpi ,z_mouse_receive_dg_get_dpi_data 
-30007 c0090012 beq opcode_set_dpi ,z_mouse_receive_dg_set_dpi_data 
-30008 c0098016 beq opcode_get_battery ,z_mouse_receive_dg_get_battery_data 
-30009 c00b0019 beq opcode_get_device_type ,z_mouse_receive_dg_get_device_type_data 
-3000a c00a001b beq opcode_set_key_fuction ,z_mouse_receive_dg_set_key_fuction_data 
-3000b 20600000 rtn 
-
-z_mouse_receive_dg_voice_start_data:
-3000c d8e00004 arg voice_start ,queue 
-3000d 202003dc branch p_ms_tx_nor_pro_flag_enable 
-
-z_mouse_receive_dg_get_device_info_data:
-3000e d8e00006 arg device_info ,queue 
-3000f 202003dc branch p_ms_tx_nor_pro_flag_enable 
-
-z_mouse_receive_dg_get_dpi_data:
-30010 704ce101 jam app_ask ,mem_mouse_dpi_type 
-30011 20200370 branch p_mouse_g24_tx_dpi_data 
-
-z_mouse_receive_dg_set_dpi_data:
-30012 d8c04575 arg mem_24g_rxpayload + 1 ,contr 
-30013 204003aa call p_mouse_receive_dpi_check 
-30014 d8e00008 arg set_dpi ,queue 
-30015 202003dc branch p_ms_tx_nor_pro_flag_enable 
-
-z_mouse_receive_dg_get_battery_data:
-30016 704ce401 jam app_ask ,mem_mouse_battery_type 
-30017 d8e00009 arg get_battery ,queue 
-30018 202003dc branch p_ms_tx_nor_pro_flag_enable 
-
-z_mouse_receive_dg_get_device_type_data:
-30019 d8e0000c arg get_device_type ,queue 
-3001a 202003dc branch p_ms_tx_nor_pro_flag_enable 
-
-z_mouse_receive_dg_set_key_fuction_data:
-3001b 704e5e00 jam 0 ,mem_mouse_key_information_set_flag 
-3001c d8c04575 arg mem_24g_rxpayload + 1 ,contr 
-3001d 20400376 call p_mouse_receive_key_fuction_check 
-3001e d8e0000a arg set_key_fuction ,queue 
-3001f 202003dc branch p_ms_tx_nor_pro_flag_enable 
-              org 0x40001
-
-z_entrance3:
-40001 c0180003 beq zcode_30 ,z_g24_send_http_info_check 
-40002 20600000 rtn 
-
-z_g24_send_http_info_check:
-40003 6fe0ccbb fetch 1 ,mem_ms_rf_data_flag 
-40004 203a000d branch z_g24_only_send_http_info ,blank 
-
-z_g24_send_rf_http_info:
-40005 6fe0c5a0 fetch 1 ,mem_24g_data_type 
-40006 79207e04 set1 http_bit ,pdata 
-40007 67e0cc76 store 1 ,mem_ms_24g_temp_buff 
-40008 704c77ff jam 0xff ,mem_ms_24g_temp_buff + 1 
-40009 d8400002 arg 2 ,temp 
-4000a da204c76 arg mem_ms_24g_temp_buff ,rega 
-4000b 202004e5 branch p_g24_send_rf_other_data 
-4000c 20600000 rtn 
-
-z_g24_only_send_http_info:
-4000d 70459f02 jam 2 ,mem_24g_datalen 
-4000e 6fe0c5a0 fetch 1 ,mem_24g_data_type 
-4000f 79207e04 set1 http_bit ,pdata 
-40010 67e0c7c2 store 1 ,mem_24g_txbuf_new 
-40011 7047c3ff jam 0xff ,mem_24g_txbuf_new + 1 
-40012 20600000 rtn 
-              org 0x50001
-
-z_entrance4:
-50001 c0200004 beq zcode_40 ,z_g24_tx_device_info 
-50002 c0208021 beq zcode_41 ,z_g24_get_dpi 
-50003 20600000 rtn 
-
-z_g24_tx_device_info:
-50004 6fe0ccbb fetch 1 ,mem_ms_rf_data_flag 
-50005 203a0007 branch z_g24_only_send_device_info ,blank 
-50006 20200013 branch z_g24_send_device_info 
-
-z_g24_only_send_device_info:
-50007 6fe0c5a0 fetch 1 ,mem_24g_data_type 
-50008 79207e07 set1 nor_pro_bit ,pdata 
-50009 67e0c7c2 store 1 ,mem_24g_txbuf_new 
-5000a 7047c300 jam start_flag ,mem_24g_txbuf_new + 1 
-5000b 7047c430 jam device_info_len ,mem_24g_txbuf_new + 2 
-5000c 7047c510 jam opcode_get_device_info ,mem_24g_txbuf_new + 3 
-5000d 70459f33 jam device_info_len + nor_pro_header_len ,mem_24g_datalen 
-5000e df20001f arg auth_len ,loopcnt 
-5000f d8c04853 arg mem_ms_auth_appkey ,contr 
-50010 d8a047c6 arg mem_24g_txbuf_new + 4 ,contw 
-50011 20407cdc call memcpy 
-50012 202004bd branch p_g24_ms_info_set 
-
-z_g24_send_device_info:
-50013 6fe0c5a0 fetch 1 ,mem_24g_data_type 
-50014 79207e07 set1 nor_pro_bit ,pdata 
-50015 67e0cc76 store 1 ,mem_ms_24g_temp_buff 
-50016 704c7700 jam start_flag ,mem_ms_24g_temp_buff + 1 
-50017 704c7830 jam device_info_len ,mem_ms_24g_temp_buff + 2 
-50018 704c7910 jam opcode_get_device_info ,mem_ms_24g_temp_buff + 3 
-50019 df20001f arg auth_len ,loopcnt 
-5001a d8c04853 arg mem_ms_auth_appkey ,contr 
-5001b d8a04c7a arg mem_ms_24g_temp_buff + 4 ,contw 
-5001c 20407cdc call memcpy 
-5001d 204004bd call p_g24_ms_info_set 
-5001e d8400034 arg device_info_len + 4 ,temp 
-5001f da204c76 arg mem_ms_24g_temp_buff ,rega 
-50020 202004e5 branch p_g24_send_rf_other_data 
-
-z_g24_get_dpi:
-50021 6fe0ccbb fetch 1 ,mem_ms_rf_data_flag 
-50022 203a0024 branch z_g24_only_send_dpi_info ,blank 
-50023 20200030 branch z_g24_send_dpi_info 
-
-z_g24_only_send_dpi_info:
-50024 6fe0c5a0 fetch 1 ,mem_24g_data_type 
-50025 79207e07 set1 nor_pro_bit ,pdata 
-50026 67e0c7c2 store 1 ,mem_24g_txbuf_new 
-50027 7047c300 jam start_flag ,mem_24g_txbuf_new + 1 
-50028 7047c403 jam nor_pro_header_len ,mem_24g_txbuf_new + 2 
-50029 7047c511 jam opcode_get_dpi ,mem_24g_txbuf_new + 3 
-5002a 6fe0c6a2 fetch 1 ,mem_mouse_dpi 
-5002b 67e0c7c6 store 1 ,mem_24g_txbuf_new + 4 
-5002c 6fe0cce1 fetch 1 ,mem_mouse_dpi_type 
-5002d e7e08005 istore 1 ,contw 
-5002e 70459f06 jam nor_pro_get_dpi_len ,mem_24g_datalen 
-5002f 20600000 rtn 
-
-z_g24_send_dpi_info:
-50030 6fe0c5a0 fetch 1 ,mem_24g_data_type 
-50031 79207e07 set1 nor_pro_bit ,pdata 
-50032 67e0cc76 store 1 ,mem_ms_24g_temp_buff 
-50033 704c7700 jam start_flag ,mem_ms_24g_temp_buff + 1 
-50034 704c7803 jam nor_pro_header_len ,mem_ms_24g_temp_buff + 2 
-50035 704c7911 jam opcode_get_dpi ,mem_ms_24g_temp_buff + 3 
-50036 6fe0c6a2 fetch 1 ,mem_mouse_dpi 
-50037 67e0cc7a store 1 ,mem_ms_24g_temp_buff + 4 
-50038 6fe0cce1 fetch 1 ,mem_mouse_dpi_type 
-50039 e7e08005 istore 1 ,contw 
-5003a d8400006 arg nor_pro_get_dpi_len ,temp 
-5003b da204c76 arg mem_ms_24g_temp_buff ,rega 
-5003c 202004e5 branch p_g24_send_rf_other_data 
-              org 0x60001
-
-z_entrance5:
-60001 c0280004 beq zcode_50 ,z_g24_set_dpi 
-60002 c028801c beq zcode_51 ,z_g24_get_battery 
-60003 20600000 rtn 
-
-z_g24_set_dpi:
-60004 6fe0ccbb fetch 1 ,mem_ms_rf_data_flag 
-60005 203a0007 branch z_g24_only_set_dpi_info ,blank 
-60006 20200011 branch z_g24_set_dpi_info 
-
-z_g24_only_set_dpi_info:
-60007 6fe0c5a0 fetch 1 ,mem_24g_data_type 
-60008 79207e07 set1 nor_pro_bit ,pdata 
-60009 67e0c7c2 store 1 ,mem_24g_txbuf_new 
-6000a 7047c300 jam start_flag ,mem_24g_txbuf_new + 1 
-6000b 7047c402 jam set_dpi_len ,mem_24g_txbuf_new + 2 
-6000c 7047c512 jam opcode_set_dpi ,mem_24g_txbuf_new + 3 
-6000d 6fe0cce3 fetch 1 ,mem_mouse_dpi_set_result 
-6000e 67e0c7c6 store 1 ,mem_24g_txbuf_new + 4 
-6000f 70459f05 jam nor_pro_res_len ,mem_24g_datalen 
-60010 20600000 rtn 
-
-z_g24_set_dpi_info:
-60011 6fe0c5a0 fetch 1 ,mem_24g_data_type 
-60012 79207e07 set1 nor_pro_bit ,pdata 
-60013 67e0cc76 store 1 ,mem_ms_24g_temp_buff 
-60014 704c7700 jam start_flag ,mem_ms_24g_temp_buff + 1 
-60015 704c7802 jam set_dpi_len ,mem_ms_24g_temp_buff + 2 
-60016 704c7912 jam opcode_set_dpi ,mem_ms_24g_temp_buff + 3 
-60017 6fe0cce3 fetch 1 ,mem_mouse_dpi_set_result 
-60018 67e0cc7a store 1 ,mem_ms_24g_temp_buff + 4 
-60019 d8400005 arg nor_pro_res_len ,temp 
-6001a da204c76 arg mem_ms_24g_temp_buff ,rega 
-6001b 202004e5 branch p_g24_send_rf_other_data 
-
-z_g24_get_battery:
-6001c 6fe0ccbb fetch 1 ,mem_ms_rf_data_flag 
-6001d 203a001f branch z_g24_only_send_battery_info ,blank 
-6001e 2020002b branch z_g24_send_battery_info 
-
-z_g24_only_send_battery_info:
-6001f 6fe0c5a0 fetch 1 ,mem_24g_data_type 
-60020 79207e07 set1 nor_pro_bit ,pdata 
-60021 67e0c7c2 store 1 ,mem_24g_txbuf_new 
-60022 7047c300 jam start_flag ,mem_24g_txbuf_new + 1 
-60023 7047c403 jam nor_pro_header_len ,mem_24g_txbuf_new + 2 
-60024 7047c513 jam opcode_get_battery ,mem_24g_txbuf_new + 3 
-60025 6fe0c77c fetch 1 ,mem_le_battery_level_percentage 
-60026 67e0c7c6 store 1 ,mem_24g_txbuf_new + 4 
-60027 6fe0cce4 fetch 1 ,mem_mouse_battery_type 
-60028 e7e08005 istore 1 ,contw 
-60029 70459f06 jam nor_pro_get_dpi_len ,mem_24g_datalen 
-6002a 20600000 rtn 
-
-z_g24_send_battery_info:
-6002b 6fe0c5a0 fetch 1 ,mem_24g_data_type 
-6002c 79207e07 set1 nor_pro_bit ,pdata 
-6002d 67e0cc76 store 1 ,mem_ms_24g_temp_buff 
-6002e 704c7700 jam start_flag ,mem_ms_24g_temp_buff + 1 
-6002f 704c7803 jam nor_pro_header_len ,mem_ms_24g_temp_buff + 2 
-60030 704c7913 jam opcode_get_battery ,mem_ms_24g_temp_buff + 3 
-60031 6fe0c77c fetch 1 ,mem_le_battery_level_percentage 
-60032 67e0cc7a store 1 ,mem_ms_24g_temp_buff + 4 
-60033 6fe0cce4 fetch 1 ,mem_mouse_battery_type 
-60034 e7e08005 istore 1 ,contw 
-60035 d8400006 arg nor_pro_get_dpi_len ,temp 
-60036 da204c76 arg mem_ms_24g_temp_buff ,rega 
-60037 202004e5 branch p_g24_send_rf_other_data 
-              org 0x70001
-
-z_entrance6:
-70001 c0300004 beq zcode_60 ,z_g24_get_device_type 
-70002 c0308027 beq zcode_61 ,z_g24_set_key_fuction 
-70003 20600000 rtn 
-
-z_g24_get_device_type:
-70004 6fe0ccbb fetch 1 ,mem_ms_rf_data_flag 
-70005 203a0007 branch z_g24_only_send_device_type_info ,blank 
-70006 20200017 branch z_g24_send_device_type_info 
-
-z_g24_only_send_device_type_info:
-70007 6fe0c5a0 fetch 1 ,mem_24g_data_type 
-70008 79207e07 set1 nor_pro_bit ,pdata 
-70009 67e0c7c2 store 1 ,mem_24g_txbuf_new 
-7000a 7047c300 jam start_flag ,mem_24g_txbuf_new + 1 
-7000b 6fe0cce5 fetch 1 ,mem_mouse_device_type 
-7000c 1fe0fe02 increase 2 ,pdata 
-7000d 67e0c7c4 store 1 ,mem_24g_txbuf_new + 2 
-7000e 7047c516 jam opcode_get_device_type ,mem_24g_txbuf_new + 3 
-7000f 6f20cce5 fetchr loopcnt ,1 ,mem_mouse_device_type 
-70010 d8c04ce6 arg mem_mouse_device_type + 1 ,contr 
-70011 d8a047c6 arg mem_24g_txbuf_new + 4 ,contw 
-70012 20407cdc call memcpy 
-70013 6fe0cce5 fetch 1 ,mem_mouse_device_type 
-70014 1fe0fe04 increase 4 ,pdata 
-70015 67e0c59f store 1 ,mem_24g_datalen 
-70016 20600000 rtn 
-
-z_g24_send_device_type_info:
-70017 6fe0c5a0 fetch 1 ,mem_24g_data_type 
-70018 79207e07 set1 nor_pro_bit ,pdata 
-70019 67e0cc76 store 1 ,mem_ms_24g_temp_buff 
-7001a 704c7700 jam start_flag ,mem_ms_24g_temp_buff + 1 
-7001b 6fe0cce5 fetch 1 ,mem_mouse_device_type 
-7001c 1fe0fe02 increase 2 ,pdata 
-7001d 67e0cc78 store 1 ,mem_ms_24g_temp_buff + 2 
-7001e 704c7916 jam opcode_get_device_type ,mem_ms_24g_temp_buff + 3 
-7001f 6f20cce5 fetchr loopcnt ,1 ,mem_mouse_device_type 
-70020 d8c04ce6 arg mem_mouse_device_type + 1 ,contr 
-70021 d8a04c7a arg mem_ms_24g_temp_buff + 4 ,contw 
-70022 20407cdc call memcpy 
-70023 6848cce5 fetcht 1 ,mem_mouse_device_type 
-70024 18408404 increase 4 ,temp 
-70025 da204c76 arg mem_ms_24g_temp_buff ,rega 
-70026 202004e5 branch p_g24_send_rf_other_data 
-
-z_g24_set_key_fuction:
-70027 6fe0ccbb fetch 1 ,mem_ms_rf_data_flag 
-70028 203a002a branch z_g24_only_set_key_fuction_info ,blank 
-70029 20200033 branch z_g24_set_key_fuction_info 
-
-z_g24_only_set_key_fuction_info:
-7002a 6fe0c5a0 fetch 1 ,mem_24g_data_type 
-7002b 79207e07 set1 nor_pro_bit ,pdata 
-7002c 67e0c7c2 store 1 ,mem_24g_txbuf_new 
-7002d 7047c300 jam start_flag ,mem_24g_txbuf_new + 1 
-7002e 7047c402 jam set_dpi_len ,mem_24g_txbuf_new + 2 
-7002f 7047c514 jam opcode_set_key_fuction ,mem_24g_txbuf_new + 3 
-70030 7047c601 jam 1 ,mem_24g_txbuf_new + 4 
-70031 70459f05 jam nor_pro_res_len ,mem_24g_datalen 
-70032 20600000 rtn 
-
-z_g24_set_key_fuction_info:
-70033 6fe0c5a0 fetch 1 ,mem_24g_data_type 
-70034 79207e07 set1 nor_pro_bit ,pdata 
-70035 67e0cc76 store 1 ,mem_ms_24g_temp_buff 
-70036 704c7700 jam start_flag ,mem_ms_24g_temp_buff + 1 
-70037 704c7802 jam set_dpi_len ,mem_ms_24g_temp_buff + 2 
-70038 704c7914 jam opcode_set_key_fuction ,mem_ms_24g_temp_buff + 3 
-70039 704c7a01 jam 1 ,mem_ms_24g_temp_buff + 4 
-7003a d8400005 arg nor_pro_res_len ,temp 
-7003b da204c76 arg mem_ms_24g_temp_buff ,rega 
-7003c 202004e5 branch p_g24_send_rf_other_data 
-
Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/output/romcode.rom
===================================================================
--- /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/output/romcode.rom	(revision 5679)
+++ /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/output/romcode.rom	(nonexistent)
@@ -1,24342 +0,0 @@
-20402369
-44804000
-20800000
-204069e4
-20403717
-20402244
-20406ca3
-20402347
-204068d2
-4480c000
-2040775d
-2040370a
-20407435
-2055a421
-44814000
-20407540
-20407436
-20402a23
-2040202a
-20403722
-20402018
-204030ed
-20402463
-2020200e
-2040201d
-c6848000
-793f8009
-20402041
-20202591
-4481c000
-20402066
-2422a025
-20402036
-1a208c01
-efe08006
-c280250d
-20600000
-70000600
-20402047
-1f227c00
-20628000
-2020233e
-6fe0c114
-207a0000
-c00da033
-2040205f
-20628000
-20402062
-20628000
-70411400
-20600000
-70433e1b
-70411400
-20600000
-44824000
-79200009
-1a227e00
-67e1000a
-18007253
-d8a00168
-1a208c01
-efe08006
-1a220c00
-c2807cdc
-20600000
-4482c000
-6fe1000a
-98000a00
-18007253
-d8c00168
-20207cdc
-df200001
-68488006
-18408401
-2841fe01
-2420a04d
-d8400000
-60488006
-184ffe53
-da204040
-9a20a200
-efe08011
-c280a054
-c3800000
-c2002049
-20600000
-44834000
-da602073
-20402069
-24628000
-1a227e00
-67e1000a
-20207dba
-da6020ad
-20202069
-6848c115
-da60207b
-20202069
-4483c000
-684b4116
-da602075
-20202069
-da602081
-20202069
-da6020c7
-44844001
-da204040
-df200001
-efe08011
-1a627a00
-4484c001
-1a20a253
-c200206c
-18007c01
-20600000
-c280206e
-20207dba
-c300206e
-1a208c10
-efe30006
-98467c00
-20628000
-2020206e
-c300206e
-1a208c16
-efe08006
-98467c00
-20628000
-2020206e
-c300a06e
-204020b4
-2040209d
-98467e00
-1fe0fe01
-20212097
-18c22400
-67e48656
-44854001
-6fe0c484
-243a2090
-6fe48656
-1a420c00
-1fe0fe05
-20202093
-6fe48656
-1a420c00
-1fe0fe14
-2421206e
-18424200
-204020c0
-20207dba
-98002400
-1a208c02
-efe10006
-203a2094
-204020c0
-20202082
-1ff11600
-196c9600
-2022a0a7
-29601e0f
-24608000
-18511600
-196c9600
-24628000
-7920041c
-20600000
-18511600
-196c9600
-29601e0f
-24608000
-79207e1c
-20600000
-c300206e
-20207dba
-c300206e
-1a208c01
-efe08006
-c280206e
-20600000
-1a208c01
-e8408006
-1c427e00
-284ffe01
-1a208c04
-e8420006
-20608000
-1a208c08
-efe30006
-20402109
-1d027e00
-20600000
-1a208c02
-1a208a04
-efe10006
-98409600
-19627e00
-e7e20005
-202025de
-c300a06e
-204020b4
-9b60fe00
-9b60fe00
-98e0fe00
-98467c00
-2421206e
-20207dba
-4485c001
-785d7c00
-784efc00
-784e7c00
-7846fc00
-78467c00
-7844fc00
-78477c00
-7843fc00
-2030a155
-37d38200
-20000064
-20202155
-44864001
-78487c00
-18423600
-20402068
-78547c00
-24628000
-18003600
-20207dbc
-4486c001
-37d10200
-1b427e00
-98000c00
-1ff17e00
-9c467200
-1f217203
-2422a0ee
-18007e00
-202020f2
-68490044
-18007e00
-9840fe00
-c20020f0
-98c0fe00
-1fe6fc0c
-20407d61
-67e1002e
-20600000
-44874001
-1b427e00
-1b220400
-98467c00
-7d217e2c
-98460400
-6fe10044
-284c000f
-2020a105
-18426000
-d8410000
-6fe10044
-98467e00
-9e008400
-604b0170
-20600000
-78587c00
-6fe30170
-9b20e000
-1e00e00a
-6fe10044
-9e067e00
-2fec000f
-2020a115
-58010000
-6b010044
-9b067e00
-9e00e000
-1e023400
-20600000
-18007c00
-20202113
-1fe97e00
-ea208005
-9a22fe00
-2fec0006
-2020211e
-2fcc0000
-d8a08ac2
-efe08005
-f920fe00
-e7e08005
-20600000
-2000003c
-58000f00
-67f10982
-58000ff0
-67f10984
-70898109
-70898103
-70898006
-2000003c
-da200000
-da400000
-df200010
-d8c00f00
-efe10006
-9a20a200
-efe10006
-9a40a400
-c200212f
-20600000
-4487c001
-20758000
-20402164
-d8400027
-20402173
-204021aa
-708a257f
-708a301a
-708a3178
-708a8fb2
-708ac200
-708ac300
-d8e00006
-20402122
-2a2ffe0d
-2040211d
-2a4ffe0d
-2040211e
-d8e00005
-2040211c
-2040211e
-20402122
-d8a08ac2
-1a31fe00
-20402117
-1a51fe00
-20402117
-18e08fff
-20212148
-708a8f52
-708a3002
-70898100
-44884002
-204066e5
-78507c00
-7850fc00
-58000200
-67f20a23
-708a01fa
-2000000c
-708a0f00
-708a121a
-708a142b
-18002a08
-18002a00
-70890000
-202022f3
-4488c002
-708a0f60
-708a10aa
-708a127a
-708a2500
-708a2600
-2000003c
-708a2020
-708a23f5
-708a2412
-708a2410
-2000003c
-708a1260
-708a23dd
-20600000
-44894002
-70890001
-708a239d
-708a2402
-20000014
-708a7065
-708a239f
-20402193
-60488008
-18408401
-4489c002
-1851fe00
-d8c04135
-98c08c00
-efe08006
-6a308a71
-1a21220f
-9a21fe00
-67f08a71
-204021d4
-20000090
-6fe0c099
-c00c218b
-20000024
-708a2080
-20600000
-58008312
-67f10907
-2020219b
-58004189
-67f10907
-202021a6
-448a4002
-708a8211
-708a8d12
-708a8e0a
-6fe0c099
-c008218d
-58005762
-67f10907
-70890103
-70893003
-c6168000
-70890101
-708a8207
-708a8d44
-708a8e0a
-6fe0c099
-c0082190
-58002bb1
-67f10907
-c6978000
-70893024
-70890105
-20600000
-448ac002
-204066df
-204021be
-18002a08
-18002a00
-580aaada
-67f18a0f
-708a2540
-708a2610
-2000003c
-708a01fb
-708a25ff
-708a2630
-708a16fe
-20000014
-708a1000
-708a1108
-20000078
-7089000d
-20600000
-6fe0c143
-c07fa1c5
-d8c04144
-98c08c00
-efe08006
-67f08961
-70896027
-6848c147
-6ff08960
-9841fe00
-67f08960
-20600000
-70890003
-708a2402
-20000014
-708a7065
-708a23df
-20402193
-204021ee
-60488008
-18408402
-2020217d
-448b4002
-58000960
-9840fe00
-1fe22200
-6848c099
-18430400
-9846fc00
-20407d64
-1807fe00
-1fec8e00
-60f0890a
-67f08909
-18077e00
-1ff07e00
-1fed7e00
-9846fc00
-20407d64
-1807fe00
-67f1890b
-62308a22
-1a2ca200
-62308a21
-708a20a0
-708a20e0
-708a20a0
-20600000
-1840fe02
-1fe97e00
-1fe17ffe
-d8c0411d
-c596a1f4
-18c08c0c
-98c08c00
-ea210006
-efe10006
-9a267e00
-18408c02
-18c10c0f
-98cffe00
-1ff1fe00
-9a20fe00
-67f10905
-20600000
-448bc002
-204021ca
-20000258
-448c4003
-580aaa7e
-67f18a0f
-2000003c
-708a2500
-708a260d
-708a16f6
-2000001e
-708a151b
-20402212
-20000014
-708a260f
-20000014
-708a10a8
-708a1100
-20600000
-448cc003
-6fe0c141
-c000221d
-c001a222
-c002a227
-c003a22b
-c005222f
-c041a234
-c042a238
-c045223c
-c04a2240
-708a1417
-58251a3f
-67f18a60
-708a6328
-20600000
-708a1425
-58a91c2d
-67f18a60
-708a632f
-20600000
-708a1425
-58a91c3f
-67f18a60
-20202225
-708a1425
-58a9383f
-67f18a60
-20202225
-708a1425
-58a93f3f
-67f18a60
-708a631f
-20600000
-708a1417
-58251827
-67f18a60
-20202220
-708a1417
-5825181c
-67f18a60
-20202220
-708a1417
-5825180b
-67f18a60
-20202220
-708a1417
-58251000
-67f18a60
-20202220
-70804206
-6fe1409c
-c3072245
-98000c00
-d8408a00
-efe08006
-c07fa24f
-98418a00
-efe08006
-e7e08005
-20202249
-448d4003
-37d98200
-7089460d
-70896f10
-708a13cd
-708a0610
-708a844a
-708a8540
-708a16fe
-6fe0c44d
-205a711d
-37d98200
-70813b5f
-6fe0c099
-c0082276
-6fe0c44f
-1fe1fe04
-67f08a02
-70890f01
-708a8024
-708a8162
-58e61212
-67f18a73
-4779c03e
-708a8660
-708a8b3b
-2040229d
-70804300
-70804205
-58557474
-67f18968
-7089606e
-20402135
-20402287
-20402281
-7041480c
-20406f53
-204022cb
-20206ac9
-6fe0c44f
-1fe1fe06
-67f08a02
-70890f00
-708a8023
-708a81b0
-58e40909
-67f18a73
-708a762a
-70890204
-20202266
-20758000
-37d98200
-6fe0c11c
-67f0813a
-37d98200
-20600000
-448dc003
-20758000
-20402164
-70890003
-708a7001
-da40411d
-db004135
-20402293
-7920002d
-20402293
-708a7061
-20202155
-20402193
-df200006
-da600000
-1a620400
-204022ab
-1a40a402
-1b00b001
-1a60a610
-c2002296
-20600000
-6fe0c099
-c00c22a3
-6fe0c44f
-1fe1fe06
-67f08a02
-708a05e0
-708a00d8
-2000003c
-708a01a0
-708a00df
-708a01fa
-20000014
-708a009f
-20600000
-448e4003
-708a2030
-708a23dd
-204021d4
-6ff08a7c
-c30022af
-708a7b30
-204022c5
-98002200
-708a7b40
-204022c5
-9a267e00
-1fef847d
-58b00000
-9846fc00
-20407d64
-1807fe00
-c596a2be
-1fe3fe00
-e7e10012
-708a7b20
-6ff08a7e
-1ff27e00
-e7e08018
-708a7b00
-20600000
-6ff10a7d
-1ff0fe00
-68588a7c
-18500400
-9841fe00
-20600000
-448ec003
-20600000
-448f4003
-6ff089a2
-2feffe06
-7920fe07
-67e0c142
-6ff089a3
-1fe1040f
-18438400
-1ff1fe00
-98408400
-184fa203
-6fe0c142
-204022e3
-1fe67e00
-9a20fe00
-1fe0fff7
-1fe17fff
-2feffe08
-2420a2e1
-58000000
-67e08035
-202022e8
-2feffe07
-24608000
-d840ff00
-9841fe00
-20600000
-6fe08035
-204022ec
-67e08009
-20600000
-1fe17eff
-1fe6fc0a
-20407d61
-1ff27e00
-18070400
-9841fe00
-20600000
-448fc003
-6fe0c143
-c17f8000
-242c231a
-6fe0c142
-1fe67cf0
-2421231e
-1fe67c7f
-2021231e
-6a308961
-6fe0c143
-c1000000
-d8c04144
-98c08c00
-efe08006
-9a267c00
-24628000
-18c08dfe
-e8408006
-1851fe00
-1a31a400
-9a462400
-18417e0f
-1a21220f
-9a262200
-1a23fe00
-9a40a400
-1a4fa403
-6848c142
-18417e80
-207a0000
-58000100
-98460400
-1a427e00
-98467e00
-20610000
-1fe17eff
-c17f8000
-c17f0000
-6fe0c143
-c000a323
-c0012325
-20202323
-6fe0c143
-c0002325
-c000a321
-70414302
-20600000
-70414300
-20600000
-70414301
-20600000
-1fe20400
-44904004
-18427e00
-20407d2e
-1c307e00
-79207e2c
-20407d14
-793ffe2c
-20402336
-20407d14
-20740000
-20407d21
-98003600
-37c18200
-20600000
-1b220400
-20748000
-1b420400
-20600000
-1c427e00
-20748000
-1d027e00
-20600000
-4490c004
-2020233e
-207a0000
-1fe37e00
-1fe0fffd
-1fe0ffff
-2422a343
-18007e00
-20600000
-58000e43
-67e10036
-58000600
-67e10038
-58000600
-67e1003a
-58000d00
-67e10040
-580003bb
-67e1003c
-58000500
-67e1003e
-580007d0
-67e10042
-58000ea6
-67e10044
-580001e0
-67e10046
-58000120
-67e10048
-5800011a
-67e1004a
-44914004
-20758000
-58000017
-67e142e5
-7041698b
-58000d00
-67e14343
-58000060
-67e14345
-1c437e00
-67e24095
-20600000
-5800ee21
-67f10050
-6e12011c
-6ff08132
-c302a383
-7835fc00
-c2822377
-7855fc00
-1ce27e00
-243a2377
-6ff08142
-c2822377
-d85fffff
-2020241d
-20402387
-2055a3c9
-37d98200
-6ff08132
-793ffe05
-67f08132
-37d98200
-2435a384
-20406aaf
-6602067b
-70800608
-20600000
-20402387
-20406a20
-6602067b
-20600000
-37d98200
-6ff08133
-1fe17e88
-67f08133
-37d98200
-6ff08132
-1fe1fe0f
-67f08132
-37d98200
-79207e07
-67f08132
-37d98200
-79207e06
-67f08132
-37d98200
-20600000
-37d98200
-70813d76
-37d98200
-70813a37
-20600000
-6fe0c3cf
-1ff27e00
-67f08143
-37d98200
-6fe0c3d0
-79207e05
-79207e06
-67f08144
-202023c4
-6ff08142
-793ffe03
-67f08142
-20600000
-6ff08142
-79207e03
-67f08142
-20600000
-6fe1c0c3
-d8a0813e
-df200003
-202023b3
-d8a08145
-df200004
-37d98200
-e7e08005
-1fecfe00
-c20023b3
-202023c4
-d8a08149
-202023b2
-6ff08133
-793ffe03
-67f08133
-20600000
-6fe0c0cb
-207a0000
-793ffe04
-202023c3
-67e0c0cb
-67f08135
-37d98200
-37d98200
-20600000
-67f08134
-202023c4
-204023be
-6fe0c0ef
-67f08080
-d8c040cc
-d8a08070
-20407c91
-d8a080d4
-20407c8b
-680440e7
-d8c0814d
-d8a00016
-df20000c
-20407cdc
-20206aff
-600440e7
-d8c08070
-d8a040cc
-20407c91
-d8c080d4
-20407c8b
-6ff08080
-67e0c0ef
-18422400
-202023e1
-df20000c
-da200016
-da60814d
-37d98200
-efe08011
-e8408013
-98467c00
-2022a3eb
-e7e08013
-37d98200
-1a20a201
-1a60a601
-c20023e5
-1a420400
-20600000
-4491c004
-6ff080cb
-243a23f7
-6fe1c0bd
-247a0000
-7080cb0c
-70800680
-6ff08129
-c4008000
-6ff1815b
-67e1c0bd
-20600000
-6fe0c0ca
-79207e04
-67e0c0ca
-44924004
-d85fffff
-6fe0c0a7
-67e0c0c8
-6fe0c0ca
-67f08142
-37d98200
-4492c004
-6fe143f2
-20407d7b
-6fe240ad
-9840fe00
-67e240ad
-204023d7
-6fe0c0cb
-79207e04
-204023c3
-2455a3ad
-37d98200
-632340b1
-20406abf
-6fe1c0c6
-6a20c0c9
-df200003
-37d98200
-67f08132
-1fecfe00
-c2002417
-37d98200
-62308133
-37d98200
-605a004c
-70800501
-37df8200
-44934004
-58000000
-1ce27c00
-2022a42c
-6ff0813e
-6858813f
-98467c00
-2021242a
-18427e00
-9ce67e00
-1fe0fe01
-1fe0fe08
-37d98200
-9e20fe00
-684a40a9
-9840fe00
-6849c0bd
-984ffe00
-1fecfe00
-1ff1fe00
-1fe0fe6e
-68490044
-9846fc00
-20407d61
-1ff07e00
-18070400
-9841fe00
-684b40b1
-20407d07
-18423200
-6fe34048
-20402109
-1b427e00
-67e3064e
-1ce27e00
-e7e08005
-6ff0811d
-1fe1fef0
-e7e08005
-20600000
-4493c004
-c584a460
-684a40ad
-dfe00600
-98467c00
-20610000
-18422200
-684b000f
-1d627e00
-20407d12
-1a220400
-1fed7e00
-1ff27e00
-9846fc00
-20407d61
-d84000c8
-20407d6e
-67e0800e
-2434245d
-1fe67e00
-6849c0bd
-9840fe00
-67e1c0bd
-58000000
-67e240ad
-20600000
-44944005
-204023f0
-6fe1c0bd
-207a0000
-6fe0c094
-207a0000
-6fe0c483
-203a246d
-6fe0c485
-207a0000
-6fe0c484
-247a0000
-da6020af
-20402069
-20628000
-204024c6
-247a0000
-2040205d
-2422a494
-20758000
-4494c005
-68488015
-6fe14042
-984ffe00
-18518400
-184b0400
-98467e00
-684a4044
-9840fe00
-6848c0a6
-98467e00
-1ff06000
-6fe1404e
-1fe37e00
-20407d2e
-1e027e00
-20407d14
-1b420400
-20407d12
-20740000
-20407d27
-44954005
-6fe0c0c3
-98467c00
-20212460
-604a40a9
-2040373a
-684a40a9
-20202406
-4495c005
-6fe0c38c
-243a2498
-20600000
-6fe140a4
-207a0000
-6848c0a6
-98467e00
-d8401d4c
-984ffe00
-2020248b
-6fe143ee
-20407d7b
-243a24b7
-70001500
-c586a4b7
-6fe0c0c2
-203a24bb
-1fe0ffff
-67e0c0c2
-20600000
-7040a800
-6fe1c0b7
-1fe0fe01
-67e1c0b7
-20600000
-44964005
-70001500
-6fe1c0ba
-1fe0fe01
-67e1c0ba
-6fe0c0a8
-1fe0fe01
-67e0c0a8
-20600000
-70001500
-6fe0c0c1
-67e0c0c2
-20600000
-6848c0c0
-60488015
-20600000
-6fe140a2
-f9207e00
-67e140a2
-20600000
-6fe140a2
-f93ffe00
-67e140a2
-20600000
-4496c005
-20403738
-6fe140a2
-1fe22200
-6fe1c462
-7d3a2201
-6fe444ea
-7d3a220f
-6fe444f2
-7d3a220e
-6fe0c114
-7d3a2208
-6fe0c3cf
-2fe1fe0a
-2040a4d8
-1a227e00
-67e140a2
-20600000
-6ff10112
-7d3a2206
-6ff1010e
-7d3a2205
-20600000
-471dc027
-7855fc00
-70017e01
-70016803
-70017f01
-5fffffff
-67e10182
-18007e00
-67e08180
-67e0818b
-67e1c0b7
-67e1c0ba
-2040283a
-70416b01
-70416c00
-70019d01
-70019e01
-70439a00
-20202914
-471e4027
-7834fc00
-70016903
-70439c01
-70068f01
-5800ffff
-67e10691
-18007e00
-67e2c46c
-79207e27
-67e2c467
-202024dd
-471ec027
-7854fc00
-58000017
-67e142e5
-1fe0fe04
-67e143bc
-70016901
-70438c00
-70001500
-20402567
-6fe10196
-67e142f7
-6fe1016a
-1feffe05
-1ff1fe00
-67e10196
-202024dd
-471f4027
-2040258d
-6fe08168
-2feffe04
-79208032
-20403727
-6fe08169
-c280a516
-20202527
-471fc027
-7834fc00
-2040290a
-20212524
-204025d0
-2040284f
-7856fc00
-2040270e
-24768000
-6fe08005
-1fe0fe01
-67e08005
-20402801
-20202525
-2040255b
-7854fc00
-20600000
-47204028
-70434200
-793f8030
-20407540
-20402fd3
-78577c00
-2040290a
-2021255b
-6fe0819d
-20402579
-204025d0
-20402627
-242c254d
-2040256c
-2036a538
-c5182538
-20202547
-4720c028
-6fe0c342
-1fe0fe01
-67e0c342
-c0062547
-20402801
-2040284f
-6fe0819e
-20402579
-2040271f
-204028b2
-6fe143ea
-20407d7b
-20402551
-20342555
-47214028
-20402f98
-20402f8f
-20407831
-6fe0818b
-c281a55b
-4721c028
-204020cf
-20402984
-202020f7
-c5157dbc
-c514fdbc
-c5187dbc
-20207dbe
-47224028
-78377c00
-20402712
-2036a538
-c5182538
-20202547
-4722c028
-20402562
-20403777
-20402567
-20402fe1
-70064d15
-20207819
-d8a04458
-20407c9b
-70017e00
-70016900
-70016800
-47234028
-7042ff00
-7042fe00
-20407440
-20600000
-4723c028
-6fe08005
-1fe0fe01
-67e08005
-6fe08168
-c3818000
-79207e03
-67e08168
-6fe142f7
-67e10196
-58000000
-67e2431f
-20600000
-1fe20400
-47244029
-18427e00
-c280258d
-c280a582
-c301258d
-c283a589
-c2812585
-2020258d
-793f802f
-7920002d
-20600000
-793f802d
-7920002f
-793f802e
-20600000
-793f802d
-7920002f
-7920002e
-20600000
-4724c029
-793f802d
-793f802f
-20600000
-47254029
-793f8032
-70890101
-70892080
-70893003
-20600000
-4725c029
-7844fc00
-7843fc00
-6fe18190
-98001e00
-6fe08007
-1fed8400
-79200401
-18431c00
-20600000
-204025aa
-20402173
-6fe1003e
-20402340
-202021aa
-2036a202
-c5182202
-204025aa
-202021ff
-47264029
-20402164
-6fe0c33d
-243a25bd
-6fe08007
-1fe67c24
-202125b7
-18000400
-c1128000
-18000418
-c1130000
-1800044e
-20600000
-1fe67c0a
-202125ba
-1fe0fe01
-1fe3fe00
-1fe08402
-20600000
-6fe08007
-1fe38400
-20600000
-d84001f4
-207a0000
-d84000fa
-c1008000
-d8400096
-c1010000
-d8400064
-c1018000
-d840004b
-c1020000
-d8400032
-c1028000
-d8400028
-c1030000
-d8400014
-20600000
-4726c029
-78287c00
-6fe2018c
-98001200
-20402605
-58000200
-2034a5d9
-6fe10176
-1fe37e00
-6849003e
-9840fe00
-20402327
-1b427e00
-20600000
-47274029
-20407c53
-67210679
-1a208c01
-efe08006
-c4000000
-1a208a1a
-efe10005
-1fe0fe01
-e7e10005
-20402780
-204027a2
-204027ab
-204025ef
-20407c62
-6f210679
-20600000
-1a208c19
-efe08006
-1a208a18
-e8408005
-9840fe00
-1fe67c24
-202125f7
-1fe0ffdb
-e7e08005
-20600000
-1a208c30
-efe28006
-18000400
-18007225
-c30025ff
-18408401
-1fe37e00
-c20025fd
-1840ffff
-1a208a22
-e7e08005
-20600000
-4727c029
-6fe08180
-98000e00
-684a8198
-a84fffff
-2020a61a
-6fe0818a
-98e67e00
-20212610
-1fe60fff
-2020260b
-18e27200
-18000e00
-a84fffff
-2020a615
-1f20f201
-1f227e00
-203a261a
-18e08e01
-1f20f3ff
-20202612
-18e27e00
-67e08007
-20600000
-2034a620
-37c18200
-20600000
-d9600ea0
-34730200
-20600000
-78487c00
-6fe1434a
-1fe21600
-2020262d
-4728402a
-20402692
-78287c00
-6fe10176
-684a431f
-98409600
-204025a1
-4728c02a
-20402597
-c597a635
-783cfc00
-2000001e
-20402597
-19699600
-7856fc00
-7826fc00
-7830fc00
-78507c00
-19623600
-37c18400
-2037263e
-1b420400
-604b000f
-242c26ce
-78287c00
-6fe0c169
-d8404e20
-98408400
-6fe0c148
-984fb600
-204066e7
-2037264b
-204026d3
-6fe08168
-c301a64b
-2055a449
-204022cd
-7823fc00
-7824fc00
-09800008
-19897e00
-67e0804c
-09800008
-19897e00
-67e0804d
-1fe27200
-2022a671
-c519265c
-09800008
-19897e00
-e7e08005
-c2002657
-20202671
-18a22400
-4729402a
-204027fa
-6a20804d
-1a20a3fc
-242126ce
-20402697
-1a420a00
-d8400000
-6f20804d
-1f20f3fc
-2022a66f
-09800008
-19897e00
-e7e08005
-18408401
-18417c0f
-2042a6b5
-c2002668
-204026bd
-1a420a00
-4729c02a
-09800018
-1fef7e00
-1ff17e00
-e7e18005
-78287c00
-204026eb
-202326c9
-c5992683
-6fe0804d
-203a2683
-1fe0fffc
-67e0804d
-204072b9
-6ff08108
-c303a6ce
-1800700c
-65e20154
-204066e6
-7836fc00
-793f8030
-472a402a
-204072bb
-6fe0819d
-7d3e7e07
-67e0819d
-2040268d
-2020268f
-7846fc00
-20202164
-472ac02a
-68488008
-202021ca
-c6990000
-20407356
-1800700c
-2040735e
-2020735d
-472b402a
-70806c00
-70806d01
-6fe0804c
-1fe17e03
-67f0806e
-5800004e
-67f10068
-67f1006a
-6a20804d
-1a20a3fc
-684ac46c
-280ffe0f
-2040a6ab
-20407253
-58000000
-67f100c0
-70800a06
-70800a07
-20600000
-18467c00
-2022a6b0
-184085ff
-79200427
-20600000
-58ffffff
-1ff07e00
-d840ffff
-98418400
-20600000
-18a22400
-6fe0804d
-1fe0fffc
-98467c00
-20628000
-605900c0
-1a420a00
-20600000
-09800020
-1fef7e00
-1fecfe00
-e7e20005
-18a22400
-18007000
-1fe25e00
-605900c0
-20600000
-204026eb
-204020cf
-20202683
-204066e8
-c50826ce
-c51826ce
-79200030
-20202686
-793f8030
-202026d0
-472bc02a
-204072bb
-202020cf
-684b000f
-1b427e00
-20407d14
-1fe20400
-204026dd
-1b425600
-1d227e00
-9840fe00
-1fe25200
-20600000
-c517a6e3
-c516a6e7
-6fe10046
-1fe25200
-1c225000
-20600000
-6fe1004a
-1fe25200
-1c20d001
-20600000
-6fe10048
-1fe25200
-1c225000
-20600000
-6fe0804d
-1fe08405
-18498400
-6fe0819d
-c517a6f2
-c28026f4
-c280a6f5
-203e26f7
-202026fa
-202026ff
-18430400
-202026ff
-18408403
-18438400
-202026fc
-18408403
-18498400
-58000028
-98408400
-202026ff
-6fe0c148
-984f8400
-da204e20
-9a2ffe00
-98460400
-1b627e00
-98463600
-20600000
-2040271f
-68488008
-20402173
-204021aa
-78287c00
-d960157c
-2020262e
-472c402b
-6fe0819e
-20402579
-2040271f
-6fe0819d
-20402579
-68488008
-20402173
-204021aa
-78287c00
-d960157c
-c597a62e
-d9602134
-2020262e
-472cc02b
-2040271f
-202020cf
-472d402b
-20402597
-204025a6
-204066ed
-79202a00
-782efc00
-78307c00
-7850fc00
-2040261d
-785d7c00
-c517a762
-c516a774
-19317e00
-1fecfe00
-1ff1fe00
-08008628
-7823fc00
-7824fc00
-472dc02b
-6fe0c16b
-08008608
-efe08006
-1fe27200
-08008608
-1f267c00
-2022a740
-6ff0800a
-203a273c
-c5192757
-d8c0416d
-efe08006
-08008608
-c200273d
-78247c00
-08008618
-78447c00
-c597a747
-7843fc00
-58000000
-08008603
-37d38200
-20000064
-472e402b
-784efc00
-785c7c00
-20402164
-204066eb
-6fe0c16b
-1fe17e03
-c1818000
-6fe0c2ff
-c001283a
-c1828000
-6fe0c16d
-c002a835
-20600000
-1f20f3fc
-1f220400
-204072a6
-d8c0416d
-efe08006
-08008608
-c200275b
-204072ab
-1de27e00
-08008620
-20202740
-df20000a
-5800003c
-08008608
-c2002763
-784efc00
-783c7c00
-19317e00
-1ff17e00
-1ff1fe00
-08008620
-c5172771
-58000001
-08008605
-783d7c00
-2020272f
-58000000
-08008605
-2020272f
-6fe0c148
-6848c16a
-9840fe00
-20402340
-19317e00
-1fecfe00
-1ff18400
-18427e00
-08008608
-18427e00
-08008628
-2020272f
-da602784
-da40279a
-d8e00005
-202027d9
-1a208c04
-e8420006
-1a208c37
-efe08006
-1a208a2b
-e7e08005
-efe10006
-1febfe00
-98409600
-1a208a04
-19627e00
-e7e20005
-efe10006
-1febfe00
-1a208a02
-e7e10005
-efe10006
-1a208a2c
-e7e10005
-efe10006
-67e142f7
-20202917
-efe08011
-793ffe03
-e7e08011
-62210662
-70064d44
-20407819
-6a210662
-20600000
-da600000
-da4027a6
-d8e00006
-202027d9
-1a208c37
-efe28006
-1a208a30
-e7e28005
-202025f9
-da600000
-da4027af
-d8e00007
-202027d9
-1a208c37
-efe08006
-204027bc
-e7e08005
-1a208c38
-efe08006
-204027ca
-e7e08005
-62210662
-70064d42
-20407819
-6a210662
-20600000
-205a27c4
-1a208a35
-24748000
-6848c3ba
-284ffe07
-7920fe07
-1a208a36
-20600000
-1a208c35
-efe08006
-24748000
-1a208c36
-efe08006
-20600000
-205a27d3
-6848c3ba
-284ffe07
-7920fe07
-1a208a36
-24748000
-793ffe07
-1a208a35
-20600000
-1a208c36
-efe08006
-24748000
-1a208c35
-efe08006
-20600000
-472ec02b
-efe08011
-afec0000
-20608000
-1a208c1a
-e8410006
-1a208c20
-efe10006
-98467e00
-2022a7e9
-242127ee
-1fe67c01
-2022a7e7
-20600000
-1a627e00
-20207d7b
-efe08011
-f93ffe00
-e7e08011
-1a427e00
-20207d7b
-1a208c1a
-efe10006
-1a208c20
-efe10006
-98467e00
-d840ffff
-98467c00
-2022a7e9
-d840f000
-98467c00
-242127e9
-20600000
-6848817f
-6fe0804c
-1fe37e00
-9842fe00
-2feffe02
-7920800f
-20600000
-472f402b
-20402914
-c6180000
-20402828
-6fe0804c
-2feffe04
-7920802a
-1fe37e00
-9842fe00
-2feffe02
-7920800f
-c6078000
-6fe0804d
-203a281a
-6fe08168
-c302281a
-684a0154
-6fe24471
-98467c00
-2022a33e
-604a4471
-6fe2c46c
-1fe0fe01
-79207e27
-67e2c46c
-6848817f
-79400402
-6048817f
-6fe0c323
-c4030000
-472fc02b
-6fe0804d
-207a0000
-6fe0804c
-2fe00601
-2020ae43
-2fe00602
-2020ae31
-20600000
-4730402c
-6848817f
-284c0005
-20608000
-6fe0804c
-1fe3fe00
-9842fe00
-c4018000
-793f8405
-79400403
-6048817f
-28400603
-20600000
-6fe08168
-79207e04
-67e08168
-79200032
-20600000
-4730c02c
-7042ff00
-dfe00000
-67e24471
-67e2c467
-79207e27
-67e2c46c
-6fe08168
-793ffe04
-67e08168
-793f8032
-20600000
-da200001
-6fe0804c
-c3830000
-da200000
-20600000
-18c20a00
-684943bc
-18a20c00
-20600000
-4731402c
-6fe0817f
-c3828000
-20402870
-204029ee
-203a2894
-efe10006
-e8410006
-18422200
-9a267e00
-2040284b
-20407db2
-1fe20400
-e8208006
-1a227e00
-98c0fe00
-67e1066d
-20402884
-20402896
-204029ee
-efe10006
-1fe22200
-18c22600
-e8410006
-18422400
-9a467e00
-2040284b
-20407db2
-9a40fe00
-e7e10013
-9a267c00
-24628000
-20202a08
-20402877
-c6148000
-6fe0c323
-c3012882
-204029f2
-203a2882
-20202880
-204029ee
-203a2882
-efe10006
-e8410006
-98462200
-2040284b
-18427e00
-9a267c00
-20212882
-79200029
-20600000
-793f8029
-20600000
-1a227e00
-207a0000
-d8200001
-20600000
-4731c02c
-18408401
-20402cad
-18c08dfe
-efe10006
-d8402902
-98467c00
-24628000
-18c08c01
-18c22200
-efe08006
-20600000
-18000400
-18000201
-4732402c
-6048c16c
-6848817f
-79200405
-18417efc
-9821fe00
-67e0817f
-1fe17e1f
-280ffe29
-7920fe04
-67e0c16b
-6fe0c16b
-28200601
-2420a8a6
-6fe0c16c
-207a0000
-c51928ac
-6f20c16c
-6fe1066d
-1fe20c00
-d8a0416d
-20207cce
-20407356
-2020728d
-d8e00000
-202024be
-d8e00000
-202024c2
-4732c02c
-c6078000
-c6180000
-6fe0804c
-1fe17e03
-67e0c336
-6fe0804d
-207a0000
-5800004e
-67e1433b
-4733402c
-6fe0c336
-c1000000
-c001b028
-204028cd
-243428ae
-204028b0
-58000000
-67e14339
-6fe1433b
-1fe08c02
-4733c02c
-efe10006
-c0022b6e
-c0032ea6
-c002ae68
-20600000
-6fe0c336
-c00128dc
-c000a8f3
-20600000
-20407dbc
-d8400004
-9fe67c00
-20628000
-d8400005
-9fe67c00
-20628000
-d8400006
-9fe67c00
-20628000
-20207dbe
-6fe1433b
-1fe20c00
-efe10006
-67e14337
-efe10006
-204028d1
-24740000
-6848804d
-60494339
-6fe14337
-1fe0fe04
-98467c00
-2022fdbc
-6f20804d
-d8a00f00
-6fe1433b
-1fe20c00
-20407cce
-20207dbe
-20407dbc
-6fe14339
-247a0000
-20207dbe
-204028ef
-24740000
-6fe14339
-d8a00f00
-98a0a200
-6848804d
-9840fe00
-67e14339
-6f20804d
-1a220a00
-6fe1433b
-1fe20c00
-20407cce
-58000f00
-67e1433b
-6fe14337
-1fe0fe04
-68494339
-98467c00
-2022fdbc
-20207dbe
-6fe143e8
-20207d7b
-4734402d
-684a0184
-2040233a
-98461600
-19627e00
-68490196
-18520400
-18438400
-98467e00
-20600000
-2040233a
-67e20184
-20600000
-4734c02d
-1a208c50
-efe08006
-204025c0
-1a208c02
-efe10006
-984ffe00
-68490044
-984ffe00
-d84f4240
-9846fc00
-d8400682
-6fe0c148
-984f8400
-1a208c2b
-efe08006
-984ffe00
-9840fe00
-67e2431f
-6fe1409a
-20407d64
-18078400
-9840fe00
-1a208a0e
-e7e10005
-20600000
-4735402d
-20402934
-20202948
-70069302
-d8402a00
-60490694
-20402cbe
-207a0000
-efe08006
-18c20a00
-6848c26d
-18427200
-98467c00
-24212945
-98460400
-d8c0426e
-20407cce
-18427200
-2442a980
-20600000
-1fe27200
-d8c0426e
-20207cce
-da60436c
-da20434d
-20402955
-58000000
-79347e00
-67e0864e
-da60438c
-da20436d
-20402955
-20740000
-6fe0864e
-203a233e
-20600000
-4735c02d
-20407dbc
-20407ca8
-da400000
-d8a00680
-2040296f
-6fe0c26d
-1fe08401
-9a40a200
-1a20a202
-1a267c1f
-2421296d
-e0408005
-d8400009
-e0408005
-98007200
-20407cce
-1a222400
-1a427e00
-67e0867f
-d8c0067f
-5fffffe0
-9a608a00
-20207c8f
-20407dbe
-20202967
-efe08011
-207a0000
-1fe0fe01
-e8408006
-18467c09
-2022a97e
-9a40a400
-1a220c00
-98007200
-20407cce
-18c22200
-1a227e00
-9a667c00
-20610000
-2020296f
-9a20a200
-2020297a
-58000020
-e7e08005
-c2002980
-20600000
-4736402d
-7855fc00
-20372988
-2436a997
-204024a9
-6fe1409a
-67e10176
-6fe0c323
-c282a4b7
-c507a4b7
-6fe0804d
-243a24b7
-6fe0c16c
-243a24b7
-6fe08168
-c282a4b7
-c283a4b7
-c28324b7
-2020249f
-6fe0c0a8
-1fe67c1e
-242124ae
-6849409a
-18430400
-6fe10176
-9840fe00
-67e10176
-202024ae
-d8e00000
-202029b5
-d8e00000
-202029ba
-d8e00001
-202029b5
-d8e00001
-202029ba
-d8e00002
-202029b5
-d8e00002
-202029ba
-d8e00003
-202029b5
-d8e00003
-202029ba
-d8e00004
-202029b5
-d8e00004
-202029ba
-d8e00005
-6fe0c323
-f9207e00
-67e0c323
-20600000
-d8e00005
-6fe0c323
-f93ffe00
-67e0c323
-20600000
-58112233
-67e1c324
-58445566
-e7e18005
-58778899
-e7e18005
-58001122
-e7e18005
-58334455
-e7e18005
-58000066
-20207dce
-59000302
-67e242c6
-58010010
-67e1c2ca
-70430001
-20600000
-da200000
-d8200001
-202029e3
-4736c02d
-d8200003
-204029e3
-1a427e00
-e7e08005
-20600000
-4737402d
-18000202
-1a20a204
-204029e3
-1a20a3fc
-1a227e00
-e7e10005
-1a427e00
-e7e10005
-20600000
-4737c02d
-1a20a205
-204068e5
-1a20a3fb
-1a227e00
-e7e10005
-58000000
-e7e10005
-18227e00
-e7e08005
-20600000
-4738402e
-2040691f
-1fe20c00
-20600000
-6fe14460
-20600000
-204029f7
-1fe20c00
-20600000
-6fe14463
-20600000
-204029ee
-18c08c05
-20600000
-204029ee
-18c08c09
-20600000
-204029f4
-18c08c09
-20600000
-204029f4
-18c08c05
-20600000
-20206935
-20206938
-2020693b
-20206924
-67e443c4
-20202a1a
-184122ff
-20402a10
-184ca200
-6220c3bb
-20202a11
-6220c3ba
-2a2ffe01
-2040aa16
-2a2ffe02
-2040aa18
-20600000
-d8e00008
-20202a1b
-d8e0000b
-20202a1b
-d8e00005
-6fe443b2
-f9207e00
-67e443b2
-20600000
-204029a4
-204029ca
-204029be
-202029ac
-70019d01
-70019e01
-793f8030
-79200010
-793f8032
-2040258d
-20402a2d
-20402aad
-793f8010
-20202591
-4738c02e
-6fe0c347
-c1808000
-d8e00002
-20407cf1
-247a0000
-6fe14348
-6849434a
-98467e00
-d8e00002
-20407ce3
-7854fc00
-20402ada
-20402a4c
-24768000
-4739402e
-6fe3004e
-67e30178
-6fe08002
-1fe0fe01
-67e08002
-20402a53
-20748000
-20402b01
-24768000
-6fe08004
-1fe0fe01
-67e08004
-6fe48054
-67e4867f
-20600000
-4739c02e
-20402b4d
-20402623
-6fe08001
-1fe0fe01
-67e08001
-20600000
-473a402e
-6fe0c33e
-c18d8000
-6fe30178
-684b42ce
-98467c00
-24628000
-20402056
-24628000
-20402a66
-204024f0
-204030cb
-70064d14
-20407819
-70411400
-7001b800
-70434700
-70433e00
-20202041
-473ac02e
-18007fff
-38080001
-67e28198
-da200168
-204025f9
-18007204
-d8a0018c
-20407dee
-6fe142db
-67e10196
-180a7e00
-1fe17e0f
-1fe67c04
-20212a71
-67e08181
-473b402e
-68494167
-6049016a
-18422600
-1c40fe07
-9a66fc00
-20407d64
-18072200
-9a267e00
-9a60fe00
-68494165
-9840fe00
-67e2016c
-9c462200
-1a20a3fa
-da402205
-6fe0c2d4
-7d3a2406
-6fe0c2cd
-7d3a2407
-1a427e00
-67e1416b
-6fe342dd
-e7e30005
-6fe30178
-e7e30005
-6fe2018c
-e7e20005
-180a7e00
-e7e10005
-180a7e00
-e7e08005
-18007e02
-e7e08005
-1a2b7e00
-e7e10005
-1a6b7e00
-e7e10005
-473bc02e
-58000000
-e7e10005
-6fe142db
-e7e10005
-6fe28198
-e7e28005
-6fe08181
-d84000a0
-9841fe00
-e7e08005
-2040271c
-5800416b
-1fe08c12
-efe18006
-67e18190
-20600000
-70000724
-70067f00
-20402ad4
-20402ab2
-20202ad7
-473c402f
-6fe0c38c
-207a0000
-d8e00000
-20407cf1
-247a0000
-78287c00
-20402ada
-20402b4d
-20402ae3
-2436aac4
-6fe08003
-1fe0fe01
-67e08003
-6fe0804c
-1fe17e0f
-c001ab12
-c002ab25
-473cc02f
-6fe0867f
-6848c397
-98467c00
-2422aab2
-6fe0c3cf
-1fe67c0e
-2022bad9
-180a7e00
-d84001ff
-98417e00
-1fe0fefa
-20407c93
-d8e00000
-6fe1438d
-20207ce3
-d8a0068f
-d8c0416b
-20207c8e
-d8c0068f
-d8a0416b
-20207c8e
-473d402f
-7854fc00
-588e89be
-1fed7e00
-1fe1fed6
-98001200
-58555555
-67e18190
-20600000
-473dc02f
-6fe0c38f
-6848c390
-18520400
-184b8400
-98408400
-6048c16b
-c000aaf4
-6848c34c
-1840fe06
-67e0c16c
-6fe342dd
-67e3416d
-18427200
-d8c0434d
-20407cce
-20202afa
-5800000c
-67e0c16c
-6fe342dd
-67e3416d
-6fe34116
-e7e30005
-473e402f
-6fe08000
-1fe0fe01
-67e08000
-db600708
-7856fc00
-20202707
-473ec02f
-6fe0c398
-c1808000
-6fe08000
-1fe0fe01
-67e08000
-d8400c03
-6fe0c399
-7d3a0406
-1a227e00
-7d3a0407
-6049416b
-6fe342dd
-e7e30005
-6fe30178
-e7e30005
-20202707
-473f402f
-6fe30054
-684b42dd
-98467c00
-24628000
-d8400004
-6fe0c390
-7d3a0406
-6048c16b
-6848c36c
-1840fe06
-67e0c16c
-6fe342dd
-67e3416d
-d8c0436d
-18427200
-20407cce
-2040271c
-20202ac4
-6fe30054
-684b42dd
-98467c00
-24628000
-20402846
-6220c2cd
-6fe3004e
-67e30178
-6fe4005a
-67e4018c
-68490062
-473fc02f
-184b8400
-6fe10064
-1febfe00
-67e1016a
-67e2016c
-98467e00
-1fe0d1fe
-6fe48066
-67e48194
-6fe0806f
-1fe1041f
-60488181
-1ff18400
-18430400
-604881b8
-da200168
-20402917
-da200168
-204025f9
-204024fc
-20402056
-24628000
-47404030
-204020f7
-20402e85
-70064d14
-20407819
-20202041
-4740c030
-6fe08007
-c012ab5c
-c0132b65
-c013ab52
-6848c397
-284ffe00
-2020ab61
-284ffe01
-2020ab6a
-70000727
-6fe0867f
-79207e02
-67e0867f
-20600000
-6848c397
-284ffe01
-2020ab6a
-284ffe02
-2020ab57
-70000725
-6fe0867f
-79207e00
-20202b5a
-6848c397
-284ffe02
-2020ab57
-284ffe00
-2020ab61
-70000726
-6fe0867f
-79207e01
-20202b5a
-18c22200
-6fe0c3cf
-c0036558
-c007c90b
-c0045469
-1a220c00
-efe18006
-67e1c39b
-c0012b8b
-c001ab90
-c0022b93
-c0032bd5
-c0042c22
-c0052cf7
-c0062d2a
-c0082d41
-c0092d86
-c00b2dac
-c00c2dbf
-c00f2dc4
-c0292dc8
-20600000
-18002203
-20402dee
-58000002
-e7e08005
-6fe142e3
-e7e10005
-20600000
-20402b90
-18002203
-20402dee
-58000003
-20202b87
-1fecfe00
-67e142e5
-20600000
-20402e1f
-20407dbc
-20202ba1
-efe10006
-1fe17eff
-207a0000
-9a467c00
-20628000
-24610000
-9a667c00
-20628000
-20217dcc
-18007c01
-20600000
-d9600003
-20402ca5
-20402b96
-203a2bd3
-24212bd1
-18c08dfe
-20407c6f
-20407c66
-24342bc1
-20407c53
-6162065e
-1800221e
-20402dee
-6962065e
-20407c62
-20407dbe
-58000005
-e7e08005
-20407c69
-efe10006
-ea208006
-1a267c10
-2022abbd
-1a267c02
-2422ade1
-58000001
-e7e08005
-20202bc6
-58000002
-e7e08005
-d9600001
-20202bc6
-20407c69
-efe10006
-efe08006
-9a267c00
-2422abd3
-20407c69
-efe10006
-1fe17eff
-e7e10005
-ef208006
-20407cdc
-20407c6c
-196097ff
-2022abd3
-20402cbb
-20202ba3
-20402cbb
-20202bcf
-20342de1
-20202e12
-20402e1f
-efe10006
-67e143a2
-20407c6f
-d8a00693
-6fe14337
-1fe0fff9
-20402e2d
-20202be8
-78547c00
-6849068f
-6fe10691
-98467c00
-24212be5
-18427e00
-c1800000
-78347c00
-7001b901
-20202de3
-20402bde
-20740000
-684943a2
-58002800
-98467c00
-2022abef
-20202de1
-70439e00
-6849068f
-60490656
-20402ce2
-243a2de1
-68490656
-20402ce2
-243a2c08
-18c22200
-6fe086a4
-1fe27200
-68488693
-98467c00
-2422ac04
-da400694
-20407d66
-2022ac0b
-6fe106ac
-684943a2
-98467c00
-2022ac13
-6fe10656
-1fe0fe01
-67e10656
-20202bf4
-6fe0c39e
-c000ac13
-20202de1
-6fe106ac
-684943a2
-98467c00
-2422ac04
-70439e01
-68490656
-604906a7
-20202c04
-6fe0c39e
-c0002c04
-70439e02
-68490656
-184085ff
-604906a9
-da200005
-20402dee
-58000007
-e7e08005
-6fe106a7
-e7e10005
-6fe106a9
-e7e10005
-20600000
-20402e1f
-20402e28
-20202c25
-6849068f
-60490656
-20402ca5
-20402cb0
-18c08dfe
-18c27e00
-67e106a5
-68490694
-58002a00
-98467c00
-2022ac90
-58002803
-98467c00
-2422ac7a
-d9600002
-20402df5
-24212c57
-68490656
-20402ce0
-243a2c57
-20402df9
-2422ac55
-24342c59
-78547c00
-20402e24
-1fe22200
-20402dee
-58000009
-e7e08005
-18a26000
-18a08a01
-20402c67
-20402df1
-20402ce0
-20402c6e
-6fe086ab
-1fe0a205
-e2208030
-1a267c07
-2442fdc0
-2042fdc2
-20402e24
-1fe0fffe
-9a26fc00
-20407d64
-18079600
-196097ff
-2022ac57
-20402df1
-20202c34
-20342de1
-20202e12
-20402e02
-20402df1
-20402ce0
-20402d74
-243a2c57
-20407c66
-6fe10656
-1fe0ffff
-e7e10005
-20402e0e
-20402c6e
-196097ff
-2022ac57
-20202c55
-6fe10656
-e7e10005
-6fe086a4
-1fe27200
-20407c69
-20407cce
-20207c6c
-20407c66
-6fe10656
-e7e10005
-20407c6c
-6fe086ab
-1fe27200
-20407c66
-20407c69
-9f260c00
-18c08dff
-20407cce
-20207c6c
-47414030
-20402cbe
-203a2de1
-18c22600
-20402e24
-1a620c00
-e8408006
-18408404
-20407db2
-1fe22600
-1fe22200
-20407c6f
-20402dee
-58000009
-e7e08005
-1a60fffe
-1fe0f3fe
-e7e08005
-6fe106bc
-e7e10005
-20407c69
-20207cce
-20402cbe
-203a2de1
-18c08dfb
-efe10006
-67e10656
-20402e24
-6848c26d
-18408404
-20407db2
-1fe22600
-1fe22200
-20402dee
-58000009
-e7e08005
-1a60fffe
-1fe0f3fe
-e7e08005
-6fe10656
-e7e10005
-d8c0426e
-20207cce
-4741c030
-6fe1068f
-98002400
-6fe10691
-98002600
-6fe142f9
-98000c00
-20207dbc
-20402cb0
-2022acbb
-20600000
-47424030
-6fe142f9
-98000c00
-efe10006
-1fe17eff
-207a0000
-98467c00
-20628000
-20402cbb
-20402cbb
-20202cb3
-efe08006
-98c08c00
-20600000
-4742c030
-6fe142f9
-98000c00
-efe10006
-1fe17eff
-207a0000
-67e106bc
-efe08006
-18c20a00
-98c08c00
-68488693
-98467c00
-2422acd1
-1fe27200
-18a22400
-da200694
-20407d66
-20628000
-6fe08693
-98a08c00
-20402cbb
-20202cc1
-d8400001
-6fe142f9
-98000c00
-18c20a00
-efe10006
-1fe17eff
-207a0000
-1fe08401
-20402cbb
-20402cbb
-18c20a00
-20202cd8
-6fe106a5
-20202ce4
-47434030
-6fe142f9
-98000c00
-efe10006
-1fe17eff
-203a2ced
-98467c00
-2022acee
-20402cbb
-20402cbb
-20202ce5
-20207dca
-efe08006
-67e086ab
-1fe27200
-d8a006ac
-20407cce
-efe08006
-67e086a4
-20407c6f
-20207dcc
-20402da5
-6849439c
-6fe0c323
-c281ad20
-20402cb0
-2422ade1
-20542d26
-20740000
-20402cbb
-18c08dfe
-efe10006
-d8402a00
-98467c00
-2022ad14
-18c22600
-20402e24
-1a620c00
-e8408006
-18408401
-20407db2
-1fe22600
-1fe22200
-20407c6f
-20402dee
-5800000b
-e7e08005
-1a60f3ff
-20407c69
-20207cdc
-20402e24
-6848c26d
-18408401
-20407db2
-1fe22600
-1fe22200
-20402dee
-5800000b
-e7e08005
-1a60f3ff
-d8c0426e
-20207cdc
-6fe14334
-98467c00
-2422acfb
-24342cfb
-7001b905
-20202de3
-18c08dfe
-efe10006
-c2872d24
-20207dbe
-efe10006
-67e10693
-98002200
-6849439c
-20402cad
-203a2de1
-efe08006
-9a267200
-24212de1
-20407c6f
-20402e24
-1f208401
-20407db2
-1fe22200
-1fe22600
-20402dee
-5800000d
-e7e08005
-1a60f3ff
-68490693
-20407c69
-98408c00
-20207cce
-20402e1f
-20402e28
-20202d44
-d9600002
-6849068f
-60490656
-20402cb0
-18c08dfe
-18c27e00
-67e106a5
-20402df5
-24212d7c
-68490656
-20402ce0
-243a2d7f
-20402df9
-2422ad72
-19627e00
-c0002d7f
-24342d68
-78547c00
-20402e24
-1fe22200
-20402dee
-58000011
-e7e08005
-6fe086a4
-1fe0a204
-e2208005
-20407c6c
-1a267c06
-2442fdc0
-2042fdc2
-20402e24
-1fe0fffe
-9a26fc00
-20407d64
-18079600
-20202d6e
-20402d76
-243a2d7f
-6fe10656
-1fe0ffff
-67e106a9
-20402e08
-6fe10656
-67e106a7
-20402e02
-196097ff
-20402df1
-20202d4b
-6fe086ab
-20202d77
-6fe086a4
-20362d7a
-1fe0fffe
-20600000
-1fe0fff0
-20600000
-6fe10656
-67e106a9
-20202d83
-6fe10656
-1fe0ffff
-67e106a9
-20202d83
-20342de1
-20402e08
-20202e12
-18c22200
-6fe14337
-1fe0a5fd
-20402908
-4743c030
-20402da5
-6849439c
-20402cb0
-2422ada3
-20542d9f
-20740000
-6fe0c323
-c3022d9a
-6849439c
-6fe14334
-98467c00
-2422ad9a
-20402da5
-24342d9a
-20202d24
-18002201
-20402dee
-58000013
-e7e08005
-20600000
-18c08dfe
-efe10006
-c287ad24
-20207dbe
-7001b901
-20202de3
-47444031
-20407dbe
-6fe0c300
-c1000000
-6fe0c040
-c3820000
-20207dbc
-18c0a202
-6fe14337
-1fe0a5fb
-20402908
-20202db1
-6fe14337
-1fe22200
-20402dee
-58000017
-e7e08005
-6fe1439c
-e7e10005
-6fe14337
-1fe0f3fb
-6fe1433b
-1fe08c07
-efe10006
-e7e10005
-20207cce
-18002201
-20402dee
-58000019
-e7e08005
-20600000
-6fe0c39a
-793ffe00
-67e0c39a
-20600000
-18c22200
-6fe14337
-1fe0a5fd
-20202908
-18422600
-1a20a203
-20402dee
-1a20a3fd
-5800001b
-e7e08005
-1a620400
-e0410005
-20600000
-6fe0c39a
-79207e00
-67e0c39a
-18422600
-1a20a203
-20402dee
-1a20a3fd
-5800001d
-e7e08005
-1a620400
-e0410005
-20600000
-4744c031
-7001b90a
-18002205
-20402dee
-58000001
-e7e08005
-6fe0c39b
-e7e08005
-6fe1439c
-e7e10005
-6fe081b9
-e7e08005
-20600000
-47454031
-18002404
-202029d9
-68490656
-18408401
-60490656
-20600000
-68490656
-6fe10691
-98467c00
-20600000
-4745c031
-68488693
-da200694
-6fe086ab
-1fe27200
-98467c00
-24628000
-da4006ac
-20207d66
-47464031
-6fe086a4
-67e0867f
-1fe27200
-20407c69
-20207cce
-4746c031
-20407c66
-6fe106a7
-e7e10005
-6fe106a9
-e7e10005
-6fe0867f
-1fe27200
-20407cce
-20207c6c
-47474031
-20407c66
-204029ff
-18a27e00
-98c62200
-20402a02
-1a227e00
-e7e10006
-1a20a204
-204029f4
-1a227e00
-e7e08006
-20600000
-1fecfe00
-67e1068f
-efe10006
-67e10691
-20600000
-4747c031
-6fe142e5
-684942e3
-20207db2
-47484032
-20407c6f
-d8a00693
-6fe14337
-1fe0fffb
-e7e08005
-1fe27200
-20407c69
-20207cce
-6fe10050
-c1820000
-6fe0c39a
-79207e01
-67e0c39a
-6fe18052
-67e1c39b
-7920000f
-c0092e4c
-c0292e51
-c00c2dbf
-c0012b8b
-c00f2dc4
-793f800f
-6fe0c39a
-793ffe01
-67e0c39a
-20600000
-6fe0c39a
-c4008000
-7920000f
-20402e5c
-20402e62
-20542e3f
-6fe0c39b
-c0092d8a
-20600000
-20402e51
-20202e4e
-20402e62
-24740000
-20202d8a
-4748c032
-20402e55
-da200055
-20202908
-6fe0804d
-1fe0a5f9
-1fe0fffc
-67e14339
-6849004e
-60494337
-20600000
-6a40804d
-6fe14339
-9a408400
-60494339
-da20004e
-20202908
-20407dbe
-6fe14339
-68494337
-98467c00
-24628000
-20207dbc
-efe08006
-e8408006
-e8410006
-c009ae6d
-20600000
-efe10006
-67e14340
-70064d40
-20207819
-da20000c
-da600012
-20402e79
-58000008
-e7e10005
-6fe442d5
-e7e40005
-20600000
-20402e81
-da400005
-204029d9
-1a627e00
-e7e08005
-6fe0c33f
-e7e08005
-20600000
-6fe0c33f
-1fe0fe01
-67e0c33f
-c1800000
-70433f01
-20600000
-6fe0c300
-c0002e96
-c000ae99
-c0012e9b
-c040ae8f
-c0412e91
-c041ae94
-20600000
-7042c90d
-20202e97
-7042c90d
-7042c701
-20600000
-7042c90d
-20202e9c
-7042c900
-7042c703
-20600000
-7042c905
-20202e97
-7042c905
-7042c700
-20600000
-6fe0c483
-79207e00
-67e0c483
-20600000
-6fe0c483
-793ffe00
-67e0c483
-20600000
-efe08006
-c000aeba
-c001aee1
-c0022f02
-c002af0f
-c003af78
-c0042f64
-c004af74
-c0052f78
-c005af78
-c0062f79
-c006af7e
-20600000
-18002202
-20403025
-5800000b
-e7e08005
-6fe0c2c9
-e7e08005
-20600000
-67e0c2bf
-efe30006
-e7e30005
-6fe0c300
-c0002f15
-20402edc
-6fe0c481
-203a2ec6
-6fe0c2c2
-c301b794
-6fe0c300
-c303b794
-7042fe03
-6fe0c2c0
-c0002ece
-c000aece
-c001aece
-6fe0c300
-c0012ed1
-c1418000
-dfe00000
-67e24301
-20600000
-6fe0c323
-c2802eda
-da204301
-1a220a00
-df200003
-20407dee
-6fe14303
-1fe17e07
-67e14303
-70064d34
-20207819
-18002207
-20403025
-6fe3c2c6
-e7e38005
-20600000
-7042fe05
-d8a0429d
-20407c91
-6fe0c300
-c0022ee9
-c041aeeb
-c0422eee
-20202ef1
-70064d43
-20207819
-7042fb02
-7042fc08
-20600000
-6fe24301
-203a2ee9
-20202eeb
-7042fe06
-6fe0c300
-c283aefa
-20407244
-18002211
-20403025
-58000003
-e7e08005
-20207363
-d8a042ad
-20407ded
-204071a4
-18002211
-20403025
-58000003
-e7e08005
-202071e0
-18c22200
-6fe0c300
-c283af17
-1a220c00
-2040723c
-2022af2c
-7001ba04
-18002202
-20403025
-58000005
-e7e08005
-6fe081ba
-e7e08005
-47494032
-18000e07
-20407ce2
-7042fe00
-70064d30
-20207819
-7001ba05
-20202f09
-d8a00158
-1a220c00
-20407c91
-6fe0c300
-c041af23
-c0422f23
-2040712e
-20402f31
-6fe0c300
-c1c10000
-70064d3b
-20207819
-20407199
-d8a006af
-204071e0
-da2006af
-da40429d
-df200010
-20407d66
-2422af08
-20202f31
-20407238
-70064d31
-20407819
-70429c01
-7042fe09
-18002211
-20403025
-58000004
-e7e08005
-d8c042ad
-20207c91
-18002211
-20403025
-58000006
-e7e08005
-6fe0c323
-c280af3f
-d8c0428c
-20207c91
-d8c04324
-20207c91
-d8a04305
-1800720a
-20407dee
-1800220b
-20403025
-58000007
-e7e08005
-6fe14305
-e7e10005
-6fe44307
-e7e40005
-20600000
-18002211
-20403025
-58000008
-e7e08005
-58000000
-e7e40005
-e7e40005
-20600000
-18002208
-20403025
-58000009
-e7e08005
-6fe0c2d4
-e7e08005
-6fe342dd
-e7e30005
-20600000
-7001ba08
-20202f09
-6fe0c2cb
-6848c2cb
-98417e00
-20600000
-d8a0430f
-20407c91
-20402f60
-2fec0001
-2020af5e
-6fe0c3cf
-c1850000
-20402f6e
-24740000
-2020379e
-20407dbe
-6fe0c2cd
-c1000000
-6fe0c2c4
-c4008000
-20207dbc
-20402f60
-2fec0001
-2020af5e
-20600000
-20600000
-d8a005dc
-20407c83
-7042fb02
-7042fc01
-20600000
-d8a0063c
-20407c91
-7042fc06
-7042fb02
-20600000
-18002241
-20403025
-5800000c
-e7e08005
-d8c044a6
-20207c83
-20407145
-18002211
-20403025
-5800000d
-e7e08005
-202071e0
-6fe0c2fe
-c17f8000
-d8400003
-98467c00
-24610000
-d8e00007
-20407cf1
-247a0000
-20202f5e
-4749c032
-20402a06
-247a0000
-6fe0c2fe
-c0002fa5
-c000afab
-c0012fa5
-c001afad
-c004afb1
-c005afc1
-c0062fc3
-c006afca
-20600000
-6fe0c2ff
-c1820000
-7042ffff
-7042feff
-70064d3f
-20207819
-7042fe02
-20202eb3
-7042fe04
-58017700
-d8e00007
-20207ce3
-6fe0c2ff
-c0022fb4
-20600000
-6fe0c300
-c283afbf
-7042fe0b
-20402f37
-70064d29
-20407819
-6fe0c3cf
-c1850000
-20402f6e
-20740000
-2020379e
-7042fe0c
-20202fb8
-7042fe0c
-20202f41
-6fe0c2c5
-6848c2cc
-98417e00
-2fec0001
-2020afcc
-7042fe0d
-20202f4d
-20402f55
-20202fcc
-474a4032
-18000e07
-20407ce2
-7042ffff
-7042feff
-70064d3e
-20207819
-474ac032
-6fe0c300
-c4038000
-6fe0c2fb
-c1810000
-7042fb00
-6fe0c2fc
-c000b01b
-c0013022
-c001b013
-c0032ff8
-c003afef
-c0042fe5
-20600000
-7042fb00
-7042fc00
-7042fd00
-20600000
-6fe0c4e6
-1fe20e00
-1fe0fe01
-67e0c4e6
-6fe24301
-afefffff
-58000080
-7920fe00
-67e0c4e7
-20203017
-6fe0c2fd
-7042fd00
-c000aff4
-7042fb02
-20600000
-70064d31
-20407819
-7042fe09
-20202f89
-6fe085d7
-c001affc
-7042fb02
-20600000
-2040716c
-6fe0c300
-c041b001
-c0423001
-20402ece
-20407159
-da2006af
-da40063c
-df200010
-20407d66
-2022b009
-7001ba0b
-20202f09
-20407449
-2422b007
-70429c01
-6fe0c300
-c040aff4
-c041aff4
-c0422ff4
-7042fb02
-7042fc07
-20600000
-6fe0c300
-c041b018
-c0423018
-7044e700
-20202ef1
-7044e600
-c1420000
-20202ed1
-7042fb02
-6fe0c485
-c001b01f
-20600000
-7042fc02
-7005d700
-2020752a
-7042fb02
-7042fc03
-20202f83
-474b4032
-18002406
-202029d9
-6fe0804e
-c000303f
-c000b047
-c001304f
-c001b053
-c0023071
-c002b076
-c003307a
-c003b07f
-c0043080
-c004b081
-c0053082
-c005b086
-c0063087
-c006b089
-c009308a
-c009b08b
-c00a308c
-c00ab08e
-c00b3099
-c00c309a
-6a60804e
-202030bd
-efe48006
-67e4819f
-efe10006
-67e10188
-6fe08168
-79207e05
-67e08168
-20600000
-efe28006
-67e2819f
-efe10006
-67e10188
-6fe08168
-79207e06
-67e08168
-20600000
-58000014
-67e10196
-67e142f7
-20600000
-efe40006
-67e44307
-efe10006
-67e14305
-efe40006
-67e442e7
-efe20006
-67e24475
-204030aa
-474bc032
-6fe0c2fe
-c004b065
-6fe0c323
-c280b068
-6fe0c403
-245a6e88
-6fe0c29c
-c000306d
-7042ff01
-204030b8
-2020724a
-70429c01
-d8c04324
-d8a0428c
-20407c91
-20203065
-7042ff00
-7042fe00
-70064d41
-20207819
-efe40006
-67e442ef
-efe20006
-67e24479
-2020724a
-6fe08168
-79207e04
-67e08168
-20600000
-20748000
-70064d32
-20407819
-7042ff04
-202030bb
-20600000
-202030c2
-20600000
-7042ff02
-204030c9
-70064d33
-20207819
-20600000
-20748000
-202030cb
-20600000
-202030d7
-20600000
-2040308e
-202030db
-efe40006
-67e443bc
-6fe143bc
-684943c8
-20407db2
-67e143bc
-6fe143c0
-684943c4
-20407db2
-67e143c0
-20600000
-202030e1
-efe10006
-67e1019f
-efe10006
-67e10188
-207a0000
-6fe08168
-79207e07
-67e08168
-20600000
-da600013
-da200002
-da400002
-204029d3
-1a627e00
-e7e08005
-20600000
-d8a042ef
-18007208
-20407dee
-d8a04479
-18007204
-20407dee
-da20000d
-da400004
-204029d3
-6fe442ef
-e7e40005
-6fe24479
-e7e20005
-20600000
-7042ff05
-da400005
-202030eb
-da400006
-202030eb
-da200002
-da400007
-204029d3
-e2608005
-20600000
-da200009
-da400009
-204029d3
-6fe443b2
-1fe1fe01
-e7e40005
-20600000
-da40000b
-202030eb
-da200006
-da40000c
-204029d3
-6fe2c160
-e7e28005
-20600000
-da200002
-da40000d
-204029d3
-58000006
-e7e08005
-20600000
-da400013
-202030eb
-da400014
-202030dc
-da400015
-da200009
-204029d3
-6fe443c4
-e7e40005
-20600000
-da200003
-da400017
-204029d3
-6fe0c3ba
-1fe17e07
-e7e08005
-6fe0c3bb
-1fe17e07
-e7e08005
-20600000
-da200001
-202029d3
-474c4033
-c513b37c
-c6930000
-202035db
-474cc033
-7844fc00
-7843fc00
-58555555
-98001e00
-6fe0c5a4
-2020259d
-474d4033
-6fe0c5ce
-20402579
-6fe245a6
-98001200
-20402164
-6848c5a4
-204025a2
-204030f1
-c597b105
-783cfc00
-2000001e
-204030f1
-7857fc00
-7826fc00
-7830fc00
-78507c00
-78287c00
-6fe145a2
-98003600
-37c18400
-242c315f
-204066e7
-c517b114
-6fe0c5e1
-243a3114
-7846fc00
-7825fc00
-7823fc00
-7824fc00
-2040315c
-67e0c5c4
-6848c5c3
-98467c00
-2422b167
-474dc033
-7858fc00
-280ffe2f
-2040b14e
-2038b169
-2040315c
-67e0c50e
-c513b127
-6fe0c50e
-6848c5a0
-a8400e00
-2420b16b
-2040315c
-280ffe2f
-2040b157
-e7e08005
-1fe97e00
-1fe67c1f
-2421316d
-1fe27200
-2022b133
-2040315c
-e7e08005
-c2003130
-c513b138
-18a22200
-2040315c
-67e0c5ea
-1a220a00
-09800018
-1fef7e00
-1ff17e00
-e7e18005
-6fe0c5e1
-243a314c
-7845fc00
-280ffe27
-2040b5a0
-2023316f
-204066e6
-474e4033
-7837fc00
-2040268f
-c6138000
-6fe0c5ea
-6848c641
-98467c00
-20417db4
-202035a3
-7846fc00
-2020313f
-2040315c
-1fe67c01
-20217dc4
-1fe0fffe
-c513b155
-203a7dc4
-1fe0ffff
-67e08656
-20600000
-1fe17e07
-68488656
-18498400
-9841fe00
-20600000
-09800008
-19897e00
-20600000
-7045e201
-280ffe27
-2040b5bb
-474ec033
-20402591
-784dfc00
-7845fc00
-202020cf
-7045e202
-20203162
-7045e203
-20203162
-7045e204
-20203162
-7045e205
-20203162
-7045e206
-20203162
-20402164
-6848c5a4
-202021ff
-474f4033
-6fe0c5cf
-20402579
-6fe245a6
-98001200
-204030f1
-20403171
-79202a00
-782efc00
-78307c00
-7850fc00
-204066ed
-785d7c00
-c517b1a6
-c516b1b8
-19317e00
-1fecfe00
-1ff1fe00
-08008628
-474fc033
-c517b18d
-6fe0c5e1
-243a318d
-784efc00
-782dfc00
-7823fc00
-7824fc00
-6fe0c5a1
-98007200
-d8c04550
-efe08006
-08008608
-c2003192
-78247c00
-08008618
-78447c00
-c597b19c
-7843fc00
-58000000
-08008603
-37d38200
-20000064
-785d7c00
-784efc00
-6fe0c5e1
-243a31a3
-784dfc00
-785c7c00
-20402164
-202066eb
-df20000a
-5800003c
-08008608
-c20031a7
-784efc00
-783c7c00
-19317e00
-1ff17e00
-1ff1fe00
-08008620
-c51731b5
-58000001
-08008605
-783d7c00
-20203187
-58000000
-08008605
-20203187
-6fe0c148
-1fe37200
-20000002
-c20031ba
-19317e00
-1fecfe00
-1ff18400
-18427e00
-08008608
-18427e00
-08008628
-20203187
-47504034
-6fe0c5cf
-c28131e5
-6fe0c59f
-1fe0fe03
-67e0c5a1
-6fe0c5c3
-67e0c550
-6fe0c5a0
-e7e08005
-6fe0c59f
-1fe9fe00
-6848c595
-18410403
-18438400
-9841fe00
-6848c596
-9840fe00
-e7e08005
-6fe0c59f
-98007200
-d8c04530
-20407cdc
-4750c034
-c6938000
-6fe08035
-e7e08005
-6fe0c5cf
-c3810000
-6fe0c5a1
-1fe0fe01
-67e0c5a1
-20600000
-6fe0c59f
-1fe0fe04
-c593b1e9
-1fe0fe01
-67e0c5a1
-6fe0c5c3
-67e0c550
-6fe0c5a1
-1fe0fffe
-e7e08005
-6fe0c5a0
-e7e08005
-58000000
-202031cf
-47514034
-6fe0c50f
-1fe97e00
-67e0c594
-1fe0fe01
-d8c0450f
-98c08c00
-efe18006
-67e1c597
-6fe0c50f
-1fe37e00
-1fe17e03
-67e0c59d
-20600000
-4751c034
-6848c5a5
-20403206
-6048c5a5
-20600000
-47524034
-2040320b
-18408401
-18410403
-20600000
-4752c034
-6fe0c5a6
-1fe17e03
-1fefa204
-580045aa
-9a20fe00
-98408c00
-efe08006
-67e0c5a4
-20600000
-67e245a6
-47534034
-da200000
-df200004
-d8c045a6
-efe08006
-9a20a200
-c200321a
-1a227e00
-67e145c1
-6fe0c5c1
-6848c5c2
-9840fe00
-67e0c5c3
-20600000
-4753c034
-20407dbe
-684a45ba
-1c427e00
-98467c00
-24413234
-1fe22400
-6fe245ba
-6848c5be
-98408400
-1a427e00
-98467c00
-24610000
-793ffe1c
-67e245ba
-20207dbc
-20628000
-79207e1c
-20600000
-58000000
-67e245ba
-20600000
-47544035
-38001300
-3805908b
-380b6150
-380c3d20
-67e4c5aa
-38003a1a
-3804c453
-3808d312
-380c0001
-e7e38005
-6fe0c5d0
-207a0000
-d8c045d1
-d8a045aa
-20207c91
-4754c035
-584e001e
-67e1c5d2
-58032303
-e7e18005
-58250642
-e7e18005
-58094c06
-e7e18005
-583c0927
-e7e18005
-7045d001
-20600000
-47554035
-d8406978
-c513b25e
-d84012c0
-6fe0c5ce
-c301325e
-d8402ee0
-604945a2
-20600000
-7045ce01
-7045cf01
-20600000
-7045ce02
-7045cf02
-20600000
-4755c035
-7045e74e
-58101520
-67e1c5e3
-58000005
-20207dce
-da6045ef
-da403653
-2020375c
-79200026
-6fe0c613
-793ffe02
-79207e01
-67e0c613
-58000000
-67e145f5
-6fe145ed
-67e145ef
-7045ec00
-204032b4
-70459500
-6fe0c5e7
-67e0c5a4
-6fe0c5e8
-67e0c141
-6fe245e3
-20203215
-47564035
-7045f900
-6fe145f1
-1fe0fe01
-67e145f1
-6fe0c5f1
-1fe17eff
-247a0000
-6fe0c5eb
-c07fb2d6
-c000b290
-c0013292
-c001b298
-c002329e
-20600000
-704530ff
-2020329f
-6fe0c5c5
-203a3296
-6fe2461b
-20403215
-704530aa
-2020329f
-70453055
-6fe0c5c5
-203a329f
-6fe245ff
-67e24532
-202032a1
-70453022
-6fe2461b
-67e24532
-6fe0c5a0
-1fe17e07
-67e0c531
-70453600
-70459f07
-204031c4
-2040362a
-246c0000
-24778000
-20403553
-20403647
-4756c035
-6fe0c5eb
-c17f8000
-c000b2b9
-c00132bb
-c001b2c1
-c00232c9
-20600000
-7045eb02
-6fe0c5c5
-207a0000
-7045eb01
-20600000
-7045eb02
-20203625
-6fe0c5c5
-203a32bf
-6fe24576
-67e245ff
-7045eb03
-20203625
-6fe0c5c5
-203a32c7
-6fe24576
-684a461b
-98467c00
-24628000
-7045eb04
-20203625
-6fe0c5c5
-203a32cf
-6fe24576
-684a45ff
-98467c00
-24628000
-7045ebff
-70064d39
-20407819
-58000000
-67e145ef
-6fe24576
-20403215
-6fe0c613
-793ffe01
-67e0c613
-20203625
-70462d01
-70462c00
-20600000
-6fe0c62c
-c3808000
-79207e01
-67e0c62c
-58000000
-67e1c5ea
-67e0c5f5
-67e0c5f6
-67e24643
-70462801
-2020327a
-70459f08
-d8c045ed
-d8a04530
-20207c8b
-47574035
-20403397
-204030f8
-2437b397
-204032fb
-204033ca
-20403372
-20403e80
-6fe0c5c5
-207a0000
-6fe24643
-207a0000
-20203215
-20403397
-20203162
-70463905
-d8c0450e
-d8a045ff
-20407c8b
-4757c035
-6fe0c601
-c0553306
-c02ab317
-c0113338
-c07fb573
-20600000
-6fe0c602
-c000b30a
-c0013312
-20600000
-6fe0c5f5
-247a0000
-7045ea01
-7045ed01
-7045ee80
-6fe34508
-67e345ef
-20600000
-6fe0c5f6
-247a0000
-7045eb01
-7045ed02
-2020330e
-6fe0c5c5
-203a331d
-6fe24603
-684a4508
-98467c00
-24628000
-6fe0c602
-c000b321
-c001332e
-20600000
-6fe0c5f5
-247a0000
-6fe0c5ea
-c000b326
-20600000
-7045ea02
-6fe0c5c5
-203a330d
-7045ed01
-7045ee80
-6fe24643
-67e245ef
-20207dbc
-6fe0c5f6
-247a0000
-6fe0c5eb
-c000b333
-20600000
-7045eb02
-6fe0c5c5
-203a3315
-7045ed02
-2020332a
-6fe0c5c5
-203a333e
-6fe24603
-684a4643
-98467c00
-24628000
-6fe0c602
-c000b342
-c001334f
-20600000
-6fe0c5f5
-247a0000
-6fe0c5ea
-c0013347
-20600000
-7045f501
-2040330d
-6fe0c5ec
-1fe1fe01
-67e0c5ec
-58000000
-67e145ea
-20600000
-6fe0c5f6
-247a0000
-6fe0c5eb
-c0803354
-20600000
-7045f601
-20403315
-6fe0c5ec
-1fe1fe02
-67e0c5ec
-2040334c
-20203e7a
-6fe0c511
-c000b35f
-c0013363
-20600000
-6fe0c642
-c4000000
-7857fc00
-20600000
-6fe0c642
-c4008000
-20203361
-6fe0c627
-247a0000
-6fe0c642
-1fe1fe01
-67e0c642
-20600000
-6fe0c627
-247a0000
-6fe0c642
-1fe1fe02
-67e0c642
-20600000
-6fe0c5ec
-207a0000
-6fe0c602
-c000b366
-c001336c
-20600000
-79200027
-6fe0c141
-67e0c63a
-202035ae
-6fe145f7
-20207d7b
-47584036
-70459f00
-6fe0c628
-207a0000
-6fe145f9
-20207d7b
-204033c7
-2437b397
-204033b9
-24343397
-6fe0c594
-203a3397
-1fe0fe02
-98007200
-d8c0450e
-d8a045ff
-20407cdc
-70462a00
-6fe0c627
-205a33d4
-4758c036
-6fe0c601
-c000b39d
-c00133ac
-c07fb39b
-47594036
-d8a0450e
-df200042
-20207ca3
-20403374
-20203573
-20403366
-20403504
-6fe0c621
-6848c5ff
-284ffe03
-7920fe00
-67e0c621
-c000b3b2
-6fe0c629
-6848c5ff
-284ffe04
-7920fe00
-67e0c629
-6fe145fb
-20207d7b
-2040336c
-6848c5ff
-284ffe03
-2020b3b7
-6fe145fd
-20207d7b
-6fe0c5f5
-247a0000
-7045f501
-6fe24609
-2020357b
-6fe24609
-20203581
-20407dbe
-6fe0c59d
-6848c59e
-98467c00
-2442fdbc
-6fe0c59d
-67e0c59e
-6fe1c597
-6849c59a
-98467c00
-2442fdbc
-6fe1c597
-67e1c59a
-20600000
-20403397
-204030f8
-24778000
-6fe0c50e
-67e0c5a0
-204031f3
-6fe0c50f
-2feffe00
-2020b3d3
-2040337e
-204031c4
-20403174
-20203162
-70462b01
-58000280
-d8e00008
-20207ce3
-4759c036
-70462a01
-70462e00
-7045beff
-20203237
-475a4036
-6fe0c62a
-207a0000
-20403224
-24740000
-204033ea
-6fe0c62e
-1fe0fe01
-1fe17e01
-67e0c62e
-c00033ef
-c000b3f2
-20600000
-6fe0c639
-207a0000
-1fe0ffff
-67e0c639
-20600000
-6fe0c639
-247a0000
-20203436
-6fe0c639
-247a0000
-202032da
-6fe0c641
-247a0000
-6fe0c63f
-205a3425
-6fe0c63c
-c3800000
-79207e00
-67e0c63c
-70463b01
-70464000
-58000000
-67e1463d
-7045be60
-20203237
-475ac036
-6fe0c62d
-c1000000
-6fe0c641
-247a0000
-6fe0c63f
-247a0000
-6fe0c63b
-207a0000
-6fe0c642
-2fe00603
-2020b421
-20403224
-24740000
-6fe1463d
-1fe0fe01
-67e1463d
-d84007d0
-98467c00
-20213421
-6fe0c640
-1fe0fe01
-1fe17e01
-67e0c640
-c00034ea
-c000b2da
-20600000
-6fe0c639
-243a32da
-202034ea
-70463f01
-202034ea
-70463b00
-20600000
-70463b01
-20600000
-475b4036
-6fe0c62c
-c3800000
-79207e00
-67e0c62c
-6fe0c63a
-67e0c141
-70462800
-7008eb00
-70462101
-70459500
-6fe24508
-20403215
-20403201
-20203397
-70462800
-70462d00
-70462c00
-20600000
-6fe0c62d
-c1800000
-20403427
-204034ee
-20203384
-475bc036
-6fe0c62d
-c1808000
-204032dd
-204032ec
-6fe0c627
-247a0000
-6fe0c5ec
-207a0000
-70462a00
-20403436
-204033d4
-20203237
-6fe0c62c
-c3838000
-79207e07
-67e0c62c
-6fe0c63a
-67e0c141
-70462e00
-70462801
-58000000
-67e1c654
-67e3c631
-204034dc
-24628000
-6fe0c5a5
-67e0c630
-6fe0c5a4
-67e0c62f
-20600000
-475c4037
-6fe0c62d
-c1838000
-2040344c
-20403484
-204033c7
-2437b397
-204034dc
-2042b386
-6fe0c621
-205a3423
-70462d00
-6fe0c62c
-79207e00
-67e0c62c
-6fe0c628
-1fe67c02
-2442b4da
-20403397
-204033d4
-204034dc
-2022b47d
-6fe245a6
-684a464b
-98467c00
-2022b480
-6fe245a6
-684a4647
-98467c00
-2022b482
-20600000
-6fe0c630
-67e0c5a5
-20600000
-6fe0c636
-2020347e
-6fe0c633
-2020347e
-475cc037
-6fe0c62e
-1fe0fe01
-1fe17e03
-67e0c62e
-c00034a8
-c000b4c2
-c001348e
-c001b4c2
-20600000
-2040330d
-6fe24647
-203a3484
-20403215
-6fe0c634
-205a34a3
-6fe0c632
-67e0c5a4
-6848c655
-6a21465b
-20403583
-6048c655
-2040358c
-6048c652
-18467c50
-24610000
-6848c633
-20403206
-6048c633
-67e0c632
-20600000
-70463401
-d8400000
-2040320b
-67e0c632
-20600000
-20403315
-6fe2464b
-203a3484
-20403215
-6fe0c637
-205a34bd
-6fe0c635
-67e0c5a4
-6848c656
-6a21465d
-20403583
-6048c656
-2040358c
-6048c653
-18467c50
-24610000
-6848c636
-20403206
-6048c636
-67e0c635
-20600000
-70463701
-d8400000
-2040320b
-67e0c635
-20600000
-2040330d
-6fe24508
-20403215
-6fe0c631
-205a34d6
-6fe0c62f
-67e0c5a4
-6848c654
-6a214659
-20403583
-6048c654
-2040358c
-6048c651
-18467c50
-24610000
-6848c630
-20403206
-6048c630
-67e0c62f
-20600000
-70463101
-6fe0c62f
-67e0c5a4
-20600000
-70462800
-20600000
-6fe245a6
-684a4508
-98467c00
-20600000
-6fe0c628
-c1010000
-6fe0c62b
-207a0000
-d8e00008
-20407cf1
-247a0000
-70462b00
-70463900
-204033f5
-475d4037
-70462d07
-70462c00
-20203397
-475dc037
-6fe0c621
-c000b5c2
-6fe0c629
-c000b502
-684a4622
-1c427e00
-98467c00
-24413234
-1fe22400
-6fe24622
-6848c626
-98408400
-1a427e00
-98467c00
-24610000
-793ffe1c
-67e24622
-70462101
-20203201
-70462900
-20203201
-1c427e00
-67e24622
-20600000
-da6045f5
-da403653
-2020375c
-475e4037
-79200026
-6fe0c613
-793ffe01
-79207e02
-67e0c613
-6fe0c5fa
-203a351f
-6fe0c5f9
-c000b517
-c0013517
-c001b526
-c0023526
-6fe0c5e8
-67e0c141
-6848c603
-6048c5a5
-6fe245fb
-20403530
-6048c603
-20600000
-70414103
-6848c604
-6048c5a5
-6fe245ff
-20403530
-6048c604
-20600000
-70414103
-6848c605
-6048c5a5
-6fe2461b
-20403530
-6048c605
-20600000
-6fe24576
-207a0000
-67e245ff
-20403215
-20203201
-475ec037
-6fe145f7
-d84001f8
-98417e00
-203a353b
-6fe145f7
-1fe0fe01
-67e145f7
-20600000
-20403557
-2040362a
-242c355e
-2437b55e
-20403647
-6fe0c3cf
-c0044d5d
-6fe245e3
-684a45a6
-98467c00
-2022b26f
-6fe2461b
-684a45a6
-98467c00
-2042b52d
-6fe0c613
-793ffe02
-67e0c613
-58000000
-67e145ef
-67e145f7
-67e145f5
-70064d3c
-20407819
-475f4037
-df200020
-d8a04530
-20207ca5
-704530ff
-6fe0c5a0
-67e0c531
-6fe2461b
-67e24532
-70459f06
-202031c4
-475fc037
-6fe0c5fa
-203a3201
-6fe145f7
-1fe0fe01
-67e145f7
-2feffe09
-6fe0c5f9
-c000b56b
-c001356d
-c001b56f
-c0023571
-2020351f
-2020b51f
-20203517
-2020b526
-20203517
-2020b526
-2020351f
-2020b526
-2020327a
-6fe0c602
-c000b577
-c001357d
-20600000
-6fe0c5f5
-247a0000
-6fe24603
-67e24643
-67e24647
-20600000
-6fe0c5f6
-247a0000
-6fe24603
-67e24643
-67e2464b
-20600000
-47604038
-1a227e00
-98408a00
-6fe08009
-e7e08005
-18408401
-6fe0c5e9
-98410400
-20600000
-4760c038
-6fe0c5e9
-1fe0fe01
-67e10679
-1fe27200
-1a220c00
-dfe00000
-e8408006
-9840fe00
-c2003593
-68490679
-9846fc00
-20407d64
-18078400
-c6138000
-18427e00
-c6930000
-204022ec
-1fe20400
-20600000
-202022cd
-6fe14607
-202035b5
-1fe22200
-6848c606
-6fe14607
-98408a00
-1a227e00
-e7e08005
-18408401
-6fe0c5e9
-98410400
-6048c606
-20600000
-6fe14657
-204035b5
-6fe14659
-204035b5
-6fe1465b
-204035b5
-6fe1465d
-207a0000
-1fe20a00
-6fe0c5e9
-1fe0fe01
-1fe27200
-20207ca3
-204035a0
-207a0000
-6848c650
-6a214657
-20403583
-6048c650
-20600000
-6a214657
-2040358c
-6048c64f
-18467c50
-24610000
-20203201
-6fe24508
-67e2461b
-202035a1
-58002fb2
-67e1c61f
-58100c0c
-67e1c5be
-5800bb80
-67e1c622
-70463805
-20600000
-5800f80c
-67e1c61f
-581c1919
-67e1c5be
-58017700
-67e1c622
-7046380b
-20600000
-6fe0c613
-c280b281
-c2813532
-6fe0c62f
-c000b6a0
-47614038
-204035fd
-2434367e
-4761c038
-20403612
-204036c8
-6fe0c3cf
-c0045923
-6fe44622
-67e445c6
-6fe14634
-67e14636
-6fe1460f
-20207d7b
-47624038
-20403694
-24740000
-2040369e
-20407de6
-6fe1c61f
-202035fa
-4762c038
-20403694
-24740000
-2040369e
-6fe445c6
-20407d27
-604a40a9
-20202406
-20403600
-24740000
-202031c4
-6fe14609
-20407d7b
-20343606
-6fe3c531
-207a0000
-20207dbc
-70461900
-1a20fe01
-67e0c59f
-2040360e
-67e0c530
-1a420c00
-1a227200
-20207cdc
-6fe0c5a0
-1fe17e07
-67e0c5a0
-20600000
-58000000
-67e0c618
-67e14639
-47634038
-2040362a
-6fe0c596
-c000b61f
-242c3638
-2437b638
-20403647
-6fe0c3cf
-1fe67c08
-2042db33
-204036fc
-20403553
-6fe0c595
-1fe0fe01
-67e0c595
-2040366d
-4763c038
-58000000
-67e0c614
-67e14615
-20600000
-47644039
-7857fc00
-20403174
-6fe0c596
-c000b162
-18002a00
-6fe245a6
-98001200
-68488008
-20402173
-204021aa
-20403100
-2057b162
-20600000
-4764c039
-6fe0c3cf
-c00459df
-6fe0c619
-247a0000
-6fe14615
-1fe0fe01
-67e14615
-6fe0c616
-c282364f
-20403655
-6fe14639
-1fe0fe01
-67e14639
-20203615
-47654039
-204031f3
-6fe0c594
-207a0000
-98007200
-d8c04510
-d8a04574
-20207cdc
-4765c039
-58000000
-67e14615
-70461701
-70064d3a
-20207819
-47664039
-6fe0c3cf
-c0044d70
-6848c618
-6fe0c638
-98467c00
-24213675
-18408401
-6048c618
-6fe0c638
-c002b664
-6fe0c618
-c003366f
-c006366f
-20600000
-6fe0c618
-c001b66f
-c003366f
-20600000
-c517b66b
-67e0c551
-20600000
-67e0c552
-20600000
-6fe0c5a0
-c4020000
-6fe0c5a0
-793ffe04
-67e0c5a0
-20403668
-20403700
-20203201
-6fe245a6
-684a45fb
-98467c00
-2022b201
-204036ee
-20403700
-20203201
-6fe1460b
-20207d7b
-6fe0c619
-205a3685
-6fe0c62f
-c1008000
-2040367c
-6fe14611
-20207d7b
-4766c039
-70461901
-7045a001
-2040360e
-67e0c530
-58000000
-67e3c531
-6fe2461b
-67e24538
-70459f0c
-6fe0c5a0
-79207e03
-67e0c5a0
-204031c4
-202035e3
-47674039
-78347c00
-204023f0
-6fe1c0bd
-203a7dbe
-6fe0c094
-203a7dbe
-6fe0c62f
-c000fdbe
-20600000
-6fe1460d
-20207d7b
-20403224
-24740000
-204036b5
-6fe14630
-1fe0fe01
-67e14630
-68494632
-98467c00
-2042b6aa
-202035e0
-70462f00
-58000000
-67e14630
-58000064
-67e14632
-70462e00
-6fe0c5bf
-67e0c5be
-20600000
-6fe0c5c0
-202036b1
-6fe0c62e
-1fe0fe01
-67e0c62e
-c00236b3
-c002b6af
-20600000
-70462f01
-58000000
-67e14630
-20600000
-df200002
-d8c045a6
-20407dbc
-5800ffff
-e8410006
-98467c00
-2442fdbe
-c20036c3
-20600000
-4767c039
-6fe0c44e
-247a0000
-6fe14500
-c3858000
-6a214607
-2040358c
-6048c63b
-6fe0c640
-c51336d3
-6fe0c643
-98467c00
-242136ed
-6fe0c63d
-1fe67c02
-242136db
-6fe0c63d
-c00036ee
-20600000
-6fe0c63d
-6848c63e
-98467c00
-24628000
-70463d00
-6848c63b
-6fe0c63f
-c51336e4
-6fe0c642
-98467c00
-24610000
-6fe0c63c
-c00036fa
-1fe0ffff
-67e0c63c
-c00136f6
-c000b6f8
-202036fa
-70463d00
-6fe0c63c
-c001b6f4
-1fe0fe01
-67e0c63c
-c000b6f8
-c00136f6
-70414105
-20600000
-70414103
-20600000
-70414100
-20600000
-70414185
-20600000
-6fe0c63d
-1fe0fe01
-67e0c63d
-20600000
-6fe0c63d
-1fe67c02
-24413708
-6fe0c63d
-c1000000
-1fe0ffff
-67e0c63d
-20600000
-70463d03
-20600000
-44e7c019
-6fe0c3cf
-203a370a
-c0023cd1
-c004e0c8
-c0054a31
-c00737c1
-c0036286
-c006badf
-c007beae
-c00666f2
-c0044d11
-20600000
-20758000
-20406f7c
-6fe0c3cf
-c004e1f3
-c00361f3
-c0023cdc
-c0044d82
-c007bea1
-c006baee
-c00737d3
-20600000
-20407762
-20407831
-20403729
-6fe143e4
-20207d7b
-6fe143e2
-20207d7b
-44e8401a
-da2044ea
-20407d99
-207a0000
-1fe22600
-20403732
-20203736
-da600000
-20600000
-c0083745
-c00a373c
-c00ab740
-20600000
-6fe143e6
-20207d7b
-6fe143dc
-20207d7b
-6fe143e0
-20207d7b
-6fe14500
-79207e09
-67e14500
-20600000
-70439a00
-6fe14500
-793ffe09
-67e14500
-202037a2
-6fe143fa
-79207e00
-67e143fa
-20600000
-67e081fb
-44e8c01a
-6fe081fb
-207a0000
-1fe0ffff
-67e081fb
-2040776e
-20403783
-20406be1
-6fe143ec
-20407d7b
-2020374a
-efe08013
-207a0000
-1fe0ffff
-e7e08013
-247a0000
-1a427e00
-20207d7b
-efe10013
-207a0000
-1fe0ffff
-e7e10013
-247a0000
-1a427e00
-20207d7b
-68494447
-1840a601
-da403767
-20203755
-204037b8
-c000b76a
-2020379c
-58000002
-e7e08013
-1840a408
-efe10012
-20207d7b
-20403771
-2020379c
-58000000
-67e143f8
-20600000
-58000000
-67e143fa
-20600000
-6fe143fa
-79207e07
-67e143f8
-58000000
-67e143fa
-20600000
-d8e00009
-202024be
-d8e00009
-202024c2
-7043f605
-2020377d
-da6043f6
-da40377f
-20203755
-70064d0f
-20207824
-70064d10
-20207824
-70064d0e
-20207824
-70064d0d
-20207824
-70064d17
-20207824
-70064d18
-20207824
-70064d16
-20207824
-70064d11
-20207824
-70064d15
-20207824
-70064d14
-20207824
-70064d13
-20207824
-70064d19
-20207824
-70064d1f
-20207824
-7920000d
-20600000
-793f800d
-20600000
-204037b8
-c00137ae
-58000001
-e7e08013
-1840a203
-1840a406
-e8408011
-1a60a601
-e0408013
-2020376d
-58000000
-e7e08013
-6fe14500
-c304b7b4
-204030a3
-20403794
-68494447
-1840a202
-1840a404
-202037aa
-68494447
-1840a600
-efe08013
-20600000
-204037b8
-c08037bf
-2020379c
-1840a40a
-2020376d
-20407384
-20758000
-5800398b
-67e143e4
-58003a9c
-67e143ec
-580039be
-67e145f9
-58003933
-67e143e8
-58003924
-67e143e6
-44974005
-204038f3
-20403904
-20402931
-2040391d
-2020789d
-7041410a
-7045cf84
-7045ce84
-58ffffff
-67e1c680
-704683ff
-58000000
-67e1c2dd
-58220101
-67e1c2e0
-58ffffff
-67e1c68c
-70468fff
-70469b01
-58241404
-67e1c5aa
-7045ad34
-70469010
-70469a01
-70439707
-70438c01
-580000f0
-67e1438d
-58000801
-67e143b2
-7043ba84
-7043bb84
-58504708
-67e1c26d
-58435734
-67e1c270
-585f5241
-67e1c273
-70434c1f
-58050102
-67e1c34d
-58000008
-67e142d5
-58000010
-67e142d7
-58000000
-67e142d9
-5800012c
-67e142db
-5800469d
-67e14404
-58000414
-67e2c69d
-580046fd
-67e142f9
-38020001
-38060000
-38081022
-380c0060
-67e4c6fd
-38020002
-380600c0
-380a0012
-380c000c
-67e4c705
-38020502
-3804004a
-38080040
-380c0808
-67e4c70e
-38010229
-38054000
-38082000
-380ca000
-67e4c717
-38000002
-38040186
-38083020
-380c04a0
-67e4c720
-3800074e
-38040080
-380932a0
-380dcd04
-67e4c729
-38002074
-38041153
-380af4d2
-380dcdd5
-67e4c732
-38002065
-38040808
-380a0202
-380c2080
-67e4c73b
-38030200
-38044a00
-380894e0
-380c0800
-67e4c744
-38022a01
-38040000
-380800a0
-380c0c08
-67e4c74d
-38020128
-380402c0
-38084020
-380c20a8
-67e4c756
-38000010
-38054008
-380ac000
-380c3004
-67e4c75f
-38000200
-38048a00
-380bff00
-380c0037
-67e4c768
-38000302
-3804804a
-380800e1
-380fc408
-67e4c771
-380004ff
-38040000
-3808f000
-380c0800
-67e4c77a
-38022902
-38040000
-38080100
-380c0c08
-67e4c783
-38000128
-38040442
-380b2020
-380c07ff
-67e4c78c
-58000000
-67e1c795
-7041480c
-58643f35
-67e1c0c3
-583b2f8f
-67e1c0c6
-7040a720
-7040c900
-7040ca08
-7040cbb4
-70409918
-70411c3e
-58050e08
-67e1c160
-58000003
-67e14163
-70416a20
-704143ff
-58000c00
-67e1409a
-58000004
-67e1c144
-70414708
-70444fa0
-580002bc
-67e14452
-58000190
-67e14450
-70445403
-70445509
-704149ff
-58004149
-67e1409c
-20406b28
-da20488d
-da401f00
-df20003c
-20406b62
-20406b25
-6fe0c88d
-245a38b9
-6fe1c88e
-245a38bb
-6fe1c891
-245a38bd
-6fe0c894
-245a38bf
-6fe0c895
-245a38c1
-6fe0c896
-245a38c3
-6fe0c897
-245a38c5
-6fe0c898
-245a38c7
-6fe0c899
-245a38c9
-6fe2c89a
-245a38cb
-6fe0c89f
-245a38cd
-6fe0c8a0
-245a38cf
-6fe148a1
-245a38d1
-6fe1c8a3
-245a38d3
-6fe0c8a6
-245a38d5
-6fe0c8a7
-245a38d7
-6fe148a8
-245a38d9
-6fe148aa
-245a38db
-6fe0c8ac
-245a38dd
-6fe0c8ad
-245a38df
-6fe0c8b2
-245a38e1
-6fe0c8b3
-245a38e3
-6fe0c8b4
-245a38e5
-6fe248b5
-245a38e7
-6fe0c8b9
-245a38ea
-6fe248bb
-245a38ef
-6fe248bf
-245a38f1
-20600000
-67e0c148
-20600000
-67e1c0c3
-20600000
-67e1c0c6
-20600000
-67e0c0a7
-20600000
-67e0c0c9
-20600000
-67e0c0ca
-20600000
-67e0c0cb
-20600000
-67e0c099
-20600000
-67e0c11c
-20600000
-67e2c160
-20600000
-67e0c16a
-20600000
-67e0c143
-20600000
-67e1409a
-20600000
-67e1c144
-20600000
-67e0c147
-20600000
-67e0c44f
-20600000
-67e14452
-20600000
-67e14450
-20600000
-67e0c454
-20600000
-67e0c455
-20600000
-67e0c141
-20600000
-67e0c5cf
-20600000
-67e0c5ce
-20600000
-67e2468c
-70469c01
-20600000
-6fe0c69c
-247a0000
-6fe0c8b9
-67e0c690
-20600000
-67e245a6
-20600000
-67e245aa
-20600000
-5800000f
-67e14684
-5800012c
-67e14686
-2040394f
-20403963
-204038fb
-20203981
-da2042dd
-da404680
-df200004
-20407d66
-24628000
-6fe0c2dd
-1fe0ffff
-67e0c2dd
-20600000
-6fe0c26d
-d8a0426e
-98a0a400
-1fe0fe10
-67e0c26d
-df200006
-da2042e2
-1a420a00
-e8408011
-18417ef0
-1ff1fe00
-20403917
-e7e08005
-18417e0f
-20403917
-e7e08005
-1a20a3ff
-c200390c
-20600000
-1fe67c09
-2021391b
-1fe0fe37
-20600000
-1fe0fe30
-20600000
-7042e317
-5800001b
-67e14334
-204029a4
-204029be
-204029ca
-202029ac
-1a627e00
-c00a3930
-c00ab928
-20600000
-70467f00
-2040394b
-70468900
-70469a01
-58000000
-67e1c6f2
-2040789d
-2020378c
-70467f01
-20403adc
-202037a0
-6fe1439c
-c008b936
-20600000
-4497c005
-1a427200
-1a220c00
-d8a046f2
-20407cdc
-6fe0c6f2
-207a0000
-2040394b
-70468904
-6fe0c6f4
-c1810000
-6fe0c6fa
-c000ba60
-c0013a65
-c001ba6f
-c0023a6a
-c050ba74
-c0513a71
-c051ba7a
-c0523a77
-20600000
-6fe0c69c
-207a0000
-20403acd
-20203ac1
-df200004
-da6045a6
-da4000ae
-20403956
-1a60a601
-c2003952
-20600000
-da200001
-1a43a400
-2a4ffe07
-2040b95e
-1a23a200
-1a227e00
-c3840000
-20203957
-efe08013
-9a22fe00
-e7e08013
-1a42a411
-20600000
-20406b28
-da204691
-da401fda
-df200006
-20406b62
-20406b25
-6fe34691
-207a0000
-6fe14691
-67e142dd
-6fe0c694
-67e0c2df
-6fe0c696
-67e0c2e0
-6fe0c692
-1fe67c1a
-24610000
-6fe0c693
-207a0000
-180a7e00
-1fe17e07
-1fe3fe00
-1ff27e00
-6848c692
-9840fe00
-67e0c2de
-da2042de
-da401fdb
-df200001
-20206b33
-6fe0c69c
-247a0000
-da200000
-204070b9
-da204650
-da401770
-dfe00000
-204070de
-6fe0c690
-20207100
-44984006
-dfe0000a
-2040710e
-204039a7
-6fe0c67f
-247a0000
-6fe14660
-1fe0fe01
-67e14660
-1ff1fe00
-204039fb
-204039ae
-20403a0f
-5800450e
-1fe0fe02
-1fe20c00
-df20000c
-dfe00000
-20407dd0
-1fe17eff
-6848c51c
-98467c00
-24628000
-6fe0c510
-4498c006
-c0553a88
-c0663a21
-20600000
-6fe0c69c
-247a0000
-204039c4
-204039e5
-204039f1
-204039d7
-20600000
-d8400004
-d8e00005
-204020dc
-20740000
-79200027
-58008ca0
-67e145a2
-70462801
-6fe0c5ce
-20402579
-20403217
-204033c7
-204031f3
-20403162
-24778000
-20600000
-70459f0b
-6fe3c666
-67e3c530
-6fe2466d
-67e24537
-20600000
-da200008
-d8e0000c
-20407cf1
-203a39cf
-9a267c00
-2022b9cb
-20610000
-d8e0000c
-20407cf1
-203a39cf
-202039cb
-6fe0c688
-c00139d5
-c001b9d3
-20600000
-70468801
-20600000
-70468800
-20600000
-6fe0c689
-207a0000
-6848c688
-2841fe01
-24608000
-70468802
-da201770
-da401770
-dfe00000
-204070de
-6fe0c68a
-d8e0000c
-20407ce3
-20600000
-6848c688
-2841fe00
-24608000
-70468803
-da204650
-da401770
-dfe00000
-204070de
-5800000c
-d8e0000c
-20407ce3
-20600000
-6fe0c689
-d84003e8
-984ffe00
-d8400271
-9846fc00
-20407d64
-1807fe00
-1fe0fe01
-67e0c68a
-20600000
-c0003a00
-c000ba03
-c0013a06
-c001ba09
-20203a0c
-6fe0c5aa
-67e0c5a4
-20600000
-6fe0c5ab
-67e0c5a4
-20600000
-6fe0c5ac
-67e0c5a4
-20600000
-6fe0c5ad
-67e0c5a4
-20600000
-58000000
-67e14660
-20600000
-6fe0c65f
-207a0000
-6fe0c67e
-d840000f
-98467c00
-24610000
-70467e00
-58000000
-67e1467b
-2040394b
-70468904
-70438c00
-70469901
-6fe0c69a
-207a0000
-70468900
-70438c01
-20600000
-44994006
-6fe3c510
-67e3c672
-6fe2c517
-67e2c679
-da204673
-6fe24662
-203a3a7d
-da404662
-df200004
-20407d66
-24628000
-da204677
-da404680
-df200004
-20407d66
-2022ba3c
-da204677
-da4042dd
-df200004
-20407d66
-2422ba38
-20203a40
-70465f00
-58000000
-67e24662
-20600000
-6fe0c69b
-c0003a38
-c000ba40
-20600000
-70467e00
-6fe1467b
-203a3a18
-20403a47
-20403a50
-20403a55
-20203a59
-6fe0c69c
-247a0000
-70438c01
-70439701
-70469a00
-70469900
-5800000f
-67e14684
-20600000
-6fe0c69b
-207a0000
-5800012c
-67e14686
-20600000
-6fe0c67c
-c000ba62
-c0013a5d
-20600000
-6fe0c67b
-c000ba67
-c0013a6c
-20600000
-6fe0c67b
-c000ba71
-c0013a74
-7046890a
-20203ac9
-6fe0c67b
-c000ba77
-c0013a7a
-70468928
-20203ac5
-6fe0c67c
-c000ba77
-c0013a71
-7046893a
-20203ad5
-6fe0c67c
-c000ba7a
-c0013a74
-70468940
-20203ad1
-7046891c
-20403ac9
-20203ad5
-70468922
-20403ac9
-20203ad1
-70468934
-20403ac5
-20203ad5
-7046892e
-20403ac5
-20203ad1
-da204677
-da404680
-df200004
-20407d66
-2022ba88
-da204677
-da4042dd
-df200004
-20407d66
-24628000
-20203a88
-6fe3c510
-67e3c672
-6fe0c65f
-c0003a8e
-c000ba97
-20600000
-20403adc
-70465f01
-704666bb
-6fe24673
-67e24662
-67e2466b
-6fe242dd
-67e24667
-20600000
-da204673
-da404662
-df200004
-20407d66
-2022ba8e
-6fe0c67e
-1fe0fe01
-67e0c67e
-20403aa1
-20203aae
-6fe0c69c
-247a0000
-6fe0c699
-207a0000
-da604684
-da403aa8
-2020375c
-5800000f
-67e14684
-70439707
-70469900
-70469a01
-20600000
-6fe0c69b
-207a0000
-da604686
-da403ab3
-2020375c
-5800012c
-67e14686
-70469b00
-20600000
-efe08006
-c0003ac1
-c000bac5
-c0013ac9
-20600000
-efe08006
-c0003acd
-c0013ad1
-c000bad5
-20600000
-6848c68c
-20406eed
-6848c68d
-20206eed
-6848c68c
-20406ef1
-6848c68d
-20206eed
-6848c68c
-20406eed
-6848c68d
-20206ef1
-6848c68e
-20406eed
-6848c68f
-20206eed
-6848c68e
-20406ef1
-6848c68f
-20206eed
-6848c68e
-20406eed
-6848c68f
-20206ef1
-6fe0c69a
-203a2ad1
-20202acc
-6fe0c69c
-207a0000
-202023a5
-20407384
-4499c006
-6fe0c666
-205a23a9
-20403b97
-20758000
-2040711d
-58003bec
-67e143e4
-58003ca4
-67e143ec
-20403ba5
-20403bc3
-20403bcc
-20203be0
-7041410a
-7045cf84
-7045ce84
-58ffffff
-67e1c655
-704658ff
-58000000
-67e1c2dd
-58220101
-67e1c2e0
-58858c0c
-67e1c659
-70465c05
-7046490d
-70466112
-58241404
-67e1c5aa
-7045ad34
-7041480c
-58643f35
-67e1c0c3
-583b2f8f
-67e1c0c6
-7040a720
-7040c900
-7040ca08
-7040cbb4
-70409918
-70411c3e
-58050e08
-67e1c160
-58000003
-67e14163
-70416a20
-704143ff
-58000c00
-67e1409a
-58000004
-67e1c144
-70414708
-70444fa0
-580002bc
-67e14452
-58000190
-67e14450
-70445403
-70445509
-704149ff
-58004149
-67e1409c
-20406b28
-da20488d
-da401f00
-df20003c
-20406b62
-20406b25
-6fe0c88d
-245a3b5f
-6fe1c88e
-245a3b61
-6fe1c891
-245a3b63
-6fe0c894
-245a3b65
-6fe0c895
-245a3b67
-6fe0c896
-245a3b69
-6fe0c897
-245a3b6b
-6fe0c898
-245a3b6d
-6fe0c899
-245a3b6f
-6fe2c89a
-245a3b71
-6fe0c89f
-245a3b73
-6fe0c8a0
-245a3b75
-6fe148a1
-245a3b77
-6fe1c8a3
-245a3b79
-6fe0c8a6
-245a3b7b
-6fe0c8a7
-245a3b7d
-6fe148a8
-245a3b7f
-6fe148aa
-245a3b81
-6fe0c8ac
-245a3b83
-6fe0c8ad
-245a3b85
-6fe0c8b2
-245a3b87
-6fe0c8b3
-245a3b89
-6fe0c8b4
-245a3b8b
-6fe248b5
-245a3b8d
-6fe0c8b9
-245a3b8f
-6fe0c8ba
-245a3b91
-6fe248bb
-245a3b93
-6fe248bf
-245a3b95
-20600000
-67e0c148
-20600000
-67e1c0c3
-20600000
-67e1c0c6
-20600000
-67e0c0a7
-20600000
-67e0c0c9
-20600000
-67e0c0ca
-20600000
-67e0c0cb
-20600000
-67e0c099
-20600000
-67e0c11c
-20600000
-67e2c160
-20600000
-67e0c16a
-20600000
-67e0c143
-20600000
-67e1409a
-20600000
-67e1c144
-20600000
-67e0c147
-20600000
-67e0c44f
-20600000
-67e14452
-20600000
-67e14450
-20600000
-67e0c454
-20600000
-67e0c455
-20600000
-67e0c141
-20600000
-67e0c5cf
-20600000
-67e0c5ce
-20600000
-67e24659
-20600000
-67e0c661
-20600000
-67e0c649
-20600000
-67e245a6
-20600000
-67e245aa
-20600000
-6fe0c666
-c0003b9b
-c000bba0
-20600000
-58000000
-67e1464b
-5800012c
-67e1464d
-20600000
-58000000
-67e1464b
-5800000f
-67e1464d
-20600000
-20406b28
-da20464f
-da401fda
-df200006
-20406b62
-20406b25
-6fe3464f
-207a0000
-6fe1464f
-67e142dd
-6fe0c652
-67e0c2df
-6fe0c654
-67e0c2e0
-6fe0c650
-1fe67c1a
-24610000
-6fe0c651
-207a0000
-180a7e00
-1fe17e07
-1fe3fe00
-1ff27e00
-6848c650
-9840fe00
-67e0c2de
-da2042de
-da401fdb
-df200001
-20206b33
-da2042dd
-da404655
-df200004
-20407d66
-24628000
-6fe0c2dd
-1fe0ffff
-67e0c2dd
-20600000
-df200004
-da6045a6
-da4000ae
-20403bd3
-1a60a601
-c2003bcf
-20600000
-da200001
-1a43a400
-2a4ffe07
-2040bbdb
-1a23a200
-1a227e00
-c3840000
-20203bd4
-efe08013
-9a22fe00
-e7e08013
-1a42a411
-20600000
-d8400000
-d8c0465a
-df200002
-efe08006
-793ffe07
-1fe20e00
-58000000
-f9207e00
-98408400
-c2003be3
-604a4644
-20600000
-449a4006
-6fe14663
-1fe0fe01
-67e14663
-1feb7e00
-20403bf7
-20403c32
-6fe0c666
-c0003c0b
-c000bc45
-20600000
-c0003bfc
-c000bbff
-c0013c02
-c001bc05
-20203c08
-6fe0c5aa
-67e0c5a4
-20600000
-6fe0c5ab
-67e0c5a4
-20600000
-6fe0c5ac
-67e0c5a4
-20600000
-6fe0c5ad
-67e0c5a4
-20600000
-58000000
-67e14663
-20600000
-70466baa
-6fe242dd
-67e2466c
-20203c0f
-793f8027
-58002ee0
-67e145a2
-6fe3c66b
-67e3c530
-6fe2c672
-67e2c537
-df20000c
-dfe00000
-d8c04530
-20407dd0
-e7e08005
-5800000c
-1fe0fe01
-67e0c59f
-20203c1f
-6fe0c5cf
-20402579
-20403217
-70003588
-204031c4
-2040362a
-20403162
-6fe0c596
-c000bc2b
-2437bc2b
-242c3c2b
-20403c30
-180a7e00
-d84001ff
-98417e00
-1fe0fefa
-20207c93
-70466001
-20600000
-6fe0c660
-207a0000
-70466000
-6fe0c510
-c05dbc38
-20600000
-6fe0c666
-247a0000
-da204515
-da4042dd
-df200004
-20407d66
-24628000
-204023a5
-70466601
-6fe24511
-67e24667
-67e24670
-20203ba0
-449ac006
-6fe0c665
-1fe0fe01
-67e0c665
-70466b00
-58000000
-67e1c674
-70466bcc
-20403c52
-20403c83
-6fe0c665
-c0643c8a
-20203c0f
-6848c661
-20406eed
-20403c66
-20403c58
-6848c661
-20206f0b
-6848c65c
-20406eed
-6848c65c
-20406ed7
-20406ee0
-2020bc7d
-6848c65c
-20406ef1
-200004b0
-6848c65b
-20406ed7
-20406ee0
-2020bc7a
-20600000
-6848c659
-20406eed
-6848c659
-20406ed7
-20406ee0
-2020bc74
-6848c659
-20406ef1
-200004b0
-6848c65a
-20406ed7
-20406ee0
-2020bc77
-20600000
-70467401
-70466500
-20600000
-70467402
-70466500
-20600000
-70467501
-70466500
-20600000
-70467502
-70466500
-20600000
-70467601
-70466500
-20600000
-6fe1c674
-203a3c99
-58000000
-67e1464b
-5800000f
-67e1464d
-20203c96
-6fe0c665
-1fe0ffff
-67e0c665
-20600000
-6fe0c666
-c1008000
-6fe0c64a
-1fe0fe01
-67e0c64a
-c0013c96
-c0023c98
-20600000
-6848c649
-20206eed
-70464a00
-6848c649
-20206ef1
-6fe1464d
-207a0000
-6849464b
-9842fe00
-205a3ca6
-6fe1464b
-1fe0fe01
-67e1464b
-20600000
-20403c8e
-20203c9b
-204023a5
-20403cab
-20403cc2
-d85fffff
-20202406
-df200018
-70464800
-6848c648
-18420e00
-6fe24644
-afefffff
-2020bcb3
-18418480
-20406ed7
-6fe0c648
-1fe0fe01
-67e0c648
-c2003cad
-20600000
-58000030
-18a20c00
-e8408006
-9840fe00
-e7e08005
-d8a00016
-d8c0465b
-c2003cc7
-20600000
-58000000
-67e60016
-d8a00016
-d8c0465a
-df200002
-efe08006
-793ffe07
-1fe6fc02
-20407d64
-1807fe00
-98a08a00
-18077e00
-243a3cb9
-58000003
-20203cba
-58003d04
-67e145f7
-58003dfe
-67e145fb
-58003e0f
-67e145fd
-58003dd0
-67e145f9
-58003d13
-67e10837
-20207902
-449b4006
-20403d09
-20403cff
-6fe0c680
-2feffe05
-2020bce5
-6fe0c680
-2feffe06
-2040b24a
-6fe0c6ad
-67e0c141
-7045e9ff
-5800097d
-67e14657
-58000a7d
-67e14659
-58000b7d
-67e1465b
-58000c7d
-67e1465d
-7045e885
-7046ab00
-70464200
-20403260
-6fe0c680
-2feffe03
-2040b263
-20403378
-20403266
-2040323a
-6fe0c68a
-67e08839
-6fe4c681
-67e4883a
-20600000
-70409918
-6fe0c680
-c4038000
-70409910
-20600000
-6fe0c627
-c0003dc0
-c000bd3d
-c007bd39
-20600000
-449bc006
-da401fdf
-da20465f
-df200001
-20206b62
-449c4007
-df200001
-da20465f
-da401fdf
-20206b33
-6fe0c680
-c2823d17
-6fe0c65f
-c0ad3d1b
-70465f5a
-6ff21404
-79207e1d
-67e20792
-449cc007
-20403d33
-20407956
-20403d20
-20203d29
-6fe0883a
-207a0000
-6fe0c65f
-c02d3d27
-6fe2083b
-67e20792
-20600000
-6fe2083f
-20203d25
-6fe0c65f
-c02d3d2f
-580092aa
-67e10785
-7007b61a
-20600000
-580092c5
-67e10785
-7007b641
-20600000
-6fe0c68b
-207a0000
-d8c0468b
-d8a007fb
-df200020
-20207cdc
-20403436
-20403dc8
-20403d8e
-20203d3a
-20403436
-20403dc8
-2040343f
-20403d8e
-20203d3e
-449d4007
-20403d48
-20403d57
-20403d67
-20403d81
-20203d74
-6fe0c67f
-207a0000
-d8e0000d
-20407cf1
-247a0000
-70467f00
-58000001
-67e088f1
-58000000
-e7e38005
-7008ea20
-6fe088eb
-79207e02
-67e088eb
-20600000
-6fe0c67c
-207a0000
-d8e0000e
-20407cf1
-247a0000
-70467c00
-d8a00901
-20407c9b
-6fe40901
-67e44668
-70090100
-7008e910
-6fe088eb
-79207e01
-67e088eb
-20600000
-6fe0c67e
-207a0000
-d8e0000a
-20407cf1
-247a0000
-70467e00
-d8a00929
-20407c9b
-70092902
-6fe10929
-67e14676
-7008ea22
-20203d53
-6fe0c67d
-207a0000
-d8e0000c
-20407cf1
-247a0000
-70467d00
-d8a00921
-20407c9b
-70092103
-6fe18921
-67e1c673
-7008ea21
-20203d53
-6fe0c6ae
-207a0000
-d8e00006
-20407cf1
-247a0000
-7046ae00
-d8a00921
-20407c9b
-70092105
-6fe20921
-67e246b3
-7008ea23
-20203d53
-449dc007
-6fe088df
-205a3dda
-204078f6
-6fe088d5
-207a0000
-7008d500
-6fe108d3
-d84002ba
-98467c00
-24628000
-6fe08853
-c1dd0000
-6fe08854
-c0503da3
-c050bda9
-c0533db5
-c053bdb7
-c054bdbd
-7008d600
-20600000
-6fe08855
-c040bda6
-20203da1
-204032da
-7008d601
-20600000
-6fe08855
-c000bdae
-c0423db1
-c053bdb3
-20203da1
-6fe0c5ec
-67e08894
-20203da7
-20403437
-20203dae
-700894a1
-20203da7
-70089415
-20203da7
-6fe0c62d
-c0003dbb
-c000bdb3
-20600000
-700894a0
-20203da7
-6fe246b7
-67e20894
-20203da7
-204033d8
-204033dd
-20403403
-20403dc8
-2040343f
-2040345e
-20403d8e
-20203dc1
-449e4007
-6fe0c62d
-c1800000
-2040343a
-20403d42
-6fe0c627
-247a0000
-202034e0
-6fe0c5a0
-c000bdd3
-c0013ddc
-6fe0c6ac
-c2803de2
-20203dde
-6fe0c3cf
-c1820000
-7046ac03
-20600000
-7046ac00
-20600000
-6fe0c6ac
-c280bde6
-6fe0c628
-c000bded
-c001bdf6
-20600000
-6fe0c6ac
-793ffe00
-67e0c6ac
-20203de9
-6fe0c6ac
-793ffe01
-67e0c6ac
-70459f01
-580000ff
-67e0c530
-20600000
-449ec007
-70462801
-6fe0c62d
-c1000000
-6fe0c627
-247a0000
-2040335b
-24778000
-202032e8
-6fe0c510
-c000b2e8
-c07fb2e8
-7008d700
-70459f01
-6fe0c638
-67e0c530
-20600000
-58000001
-67e088f1
-6fe3c602
-e7e38005
-6fe0c602
-245a3e07
-6fe0c602
-205a3e0b
-20203d52
-70467f01
-58000180
-d8e0000d
-20207ce3
-70467f00
-58000000
-d8e0000d
-20207ce3
-6fe0c602
-c0003e15
-c0013e60
-c001be30
-c002be48
-20203397
-6fe0c604
-67e0c628
-70460400
-d8a00901
-d8c04603
-df200008
-20407cdc
-6fe40901
-245a3e28
-6fe40901
-205a3e2c
-6fe40901
-67e44660
-684c4668
-98467c00
-2442bd62
-6fe44660
-67e44668
-20203397
-70467c01
-58000180
-d8e0000e
-20207ce3
-70467c00
-58000000
-d8e0000e
-20207ce3
-d8a00921
-d8c04602
-df200003
-20407cdc
-6fe10922
-245a3e40
-6fe10922
-205a3e44
-6fe18921
-67e1c670
-6849c673
-98467c00
-2442bd7f
-6fe1c670
-67e1c673
-20203397
-70467d01
-58000180
-d8e0000c
-20207ce3
-70467d00
-58000000
-d8e0000c
-20207ce3
-d8a00921
-d8c04602
-df200004
-20407cdc
-6fe18922
-245a3e58
-6fe18922
-205a3e5c
-6fe18922
-67e1c6af
-6849c6b3
-98467c00
-2442bd8c
-6fe1c6af
-67e1c6b3
-20203397
-7046ae01
-58000180
-d8e00006
-20207ce3
-7046ae00
-58000000
-d8e00006
-20207ce3
-d8a00929
-d8c04602
-df200002
-20407cdc
-6fe10929
-245a3e70
-6fe10929
-205a3e74
-6fe10929
-67e14676
-68494679
-98467c00
-2442be78
-6fe14676
-67e14679
-20203397
-70467e01
-58000180
-d8e0000a
-20207ce3
-70467e00
-58000000
-d8e0000a
-20207ce3
-7008ea22
-20203d53
-6fe0c3cf
-c1820000
-6fe0c65f
-c12d0000
-7046ab01
-20600000
-6fe0c3cf
-c1820000
-6fe0c6ab
-207a0000
-70065600
-70465f5a
-20403d0e
-20403d09
-6fe08656
-1fe0fe01
-67e08656
-c07fec99
-6fe0c65f
-c0ad3e85
-20206c99
-20403e9a
-24342002
-6fe0c88d
-203a2002
-6fe0c90f
-c17f8000
-1fe20e00
-6fe2067b
-afec0000
-2040c69b
-20202003
-78547c00
-6fe4488e
-c3044e1b
-6ff08132
-c2824e1b
-78347c00
-20204e1b
-204067ff
-20403ea5
-20403eaa
-20203266
-70409910
-6fe4488e
-c3848000
-70409918
-20600000
-20403260
-6fe4488e
-c40a0000
-20203263
-20407384
-20403ebd
-20403ef9
-204040eb
-20406f4e
-20758000
-2040404e
-6fe0c678
-c00249d7
-6fe14500
-c28648c5
-70489600
-204042e3
-70489601
-2020430e
-20758000
-204035c8
-2040323a
-20403edb
-20404161
-20404203
-204041b7
-20402a1f
-449f4007
-6fe4488e
-c287bf31
-c2873f96
-c2863fd5
-20600000
-58009000
-67e142f9
-6fe4488e
-c291e80c
-580095b8
-67e148d6
-6fe4488e
-c290680c
-c290e80c
-580094fc
-67e148d6
-6fe4488e
-c291680c
-5800944a
-67e148d6
-2020680c
-20403ef4
-20403ecb
-20404093
-6fe0cac1
-67e0cac2
-7049a000
-d8a0475f
-df200014
-20407ca3
-6fe0c26d
-1fe67c0c
-24213ef2
-5806ff06
-67e1c75f
-58000300
-e7e18005
-58000080
-e7e08005
-6fe0c26d
-1fe0fe01
-1fe27200
-d8c0436d
-20207cdc
-d8a0475f
-20203eed
-d8400000
-6fe4488e
-c287e81d
-d85fffff
-2020681d
-20407de6
-6848c90f
-20404f0a
-6fe4488e
-2feffe0a
-2040a3a5
-5800491f
-67e14948
-58004927
-67e1494a
-5800493c
-67e1494c
-20403f0f
-6fe1494a
-1fe22400
-df200014
-e8408012
-284ffe07
-2440ef0b
-1a40a401
-c2003f09
-20600000
-6fe14948
-1fe22400
-df200008
-e8408012
-18467cff
-2442bf18
-1a40a401
-c2003f12
-202023e1
-20406f0b
-e8408012
-20206ec0
-d8c08070
-df200010
-efe08006
-243a3f22
-58000040
-18c08bff
-e7e08005
-c2003f1d
-dfe080dc
-98c67c00
-20628000
-df200008
-d8c080d4
-20203f1d
-6fe0c9a0
-203a6eac
-20206ea5
-6fe14abd
-68494abf
-98467c00
-24610000
-2020233e
-6fe0c678
-c0003f35
-c000bf3f
-20600000
-db000008
-6fe14abf
-9b06fc00
-20407d64
-1807fe00
-67e1064e
-dfe01fbc
-d8400004
-dd600004
-20203f49
-db000020
-6fe14abf
-9b06fc00
-20407d64
-1807fe00
-67e1064e
-dfe01fb0
-d8400010
-dd600010
-20203f49
-67e10650
-60488656
-da204aa5
-da600000
-6fe10650
-1fe22400
-6f208656
-da204aa5
-20406b62
-6fe44aa5
-684c4aad
-9841fe00
-684c4ab5
-9841fe00
-203a3f5f
-1a60a601
-6fe1064e
-9a667c00
-6fe10650
-9b067e00
-67e10650
-20203f4d
-1a667c00
-2022bf72
-6fe10650
-9b00fe00
-9d667e00
-67e10650
-6fe10650
-1fe22400
-6f208656
-da204aa5
-20406b62
-6fe44aa5
-684c4aad
-9841fe00
-684c4ab5
-9841fe00
-203a3f74
-6fe10650
-20203f63
-6560cabd
-20600000
-58001fc0
-68490650
-98467e00
-67e14abd
-18427e00
-9d60a400
-6f208656
-da204aa5
-20406b62
-6fe0c678
-c0003f81
-c000bf87
-20600000
-6fe34aa5
-67e246a3
-6fe246a3
-67e245ff
-67e245a6
-20600000
-6fe0caa5
-1fe67c03
-24417dcc
-67e0caa1
-6fe0caa6
-67e0c679
-6fe34aa7
-67e3467a
-6fe34aad
-67e34680
-68494ab3
-180a7e00
-9840fe00
-67e146a7
-202067d5
-6fe4488e
-c31ebf9d
-6848c440
-20404f0a
-6848c440
-20406ee0
-2020bf96
-20404049
-d8400080
-da204678
-da400000
-20406cd7
-449fc007
-20403fc6
-6fe0c678
-c0003faa
-c000bfb0
-c0013fbb
-c001bfbf
-c0023fc3
-704aa100
-6fe0c6a9
-1fe67c01
-2442fdcc
-67e0ca93
-20600000
-6fe0c6aa
-20403fac
-6fe0c6ae
-1fe67c03
-24417dcc
-67e0caa1
-684946a7
-180a7e00
-9840fe00
-67e146a7
-20600000
-6fe0c6ab
-20403fac
-6fe0c6af
-20203fb5
-6fe0c6ac
-20403fac
-6fe0c6b0
-20203fb5
-704aa100
-6fe0c6ad
-20203fac
-6fe146a0
-d840aa55
-98467c00
-2022e7cf
-604946a0
-204067f8
-6fe0c717
-67e0c678
-6fe245fb
-67e245ff
-67e245a6
-6fe0caa2
-79207e00
-67e0caa2
-20203fd7
-204067b6
-20203fa2
-44a04008
-6fe4488e
-c287bfdd
-c2874004
-c28667bb
-20600000
-6fe0c678
-c0003fe1
-c000bfeb
-20600000
-68494abd
-58001fc0
-98462400
-da2046a3
-df200004
-20406b33
-68494abd
-18408404
-60494abd
-20600000
-704aa301
-6fe0caa4
-207a0000
-68494abd
-58001fc0
-98467e00
-67e1064e
-1fe22400
-da204aa1
-df200001
-20406b33
-6fe1064e
-1fe0a401
-da204679
-df20000d
-20406b33
-6fe1064e
-1fe0a40e
-da2046a7
-df200002
-20406b33
-68494abd
-18408410
-60494abd
-20600000
-6fe4488e
-c31ec00b
-6848c440
-20404f0a
-6848c440
-20406ee0
-2020c4b9
-20404049
-6fe0caa2
-c2804014
-c280c019
-c2814025
-c281c02d
-c2824035
-c282c03d
-20600000
-704aa200
-d8400080
-da204678
-da400000
-20206cc9
-6fe0caa2
-793ffe01
-67e0caa2
-d8400027
-da204679
-da400001
-20406cc9
-d8400002
-da2046a7
-da40002f
-20406cc9
-2020400c
-6fe0caa2
-793ffe02
-67e0caa2
-d8400004
-da2046a3
-da40002b
-20406cc9
-2020400c
-6fe0caa2
-793ffe03
-67e0caa2
-d8400005
-da2046a9
-da400031
-20406cc9
-2020400c
-6fe0caa2
-793ffe04
-67e0caa2
-d8400003
-da2046ae
-da400036
-20406cc9
-2020400c
-6fe0caa2
-793ffe05
-67e0caa2
-d8400004
-da2046b1
-da400039
-20406cc9
-2020400c
-d8400001
-da204678
-da400000
-20206cc9
-20406cb2
-6fe4488e
-2feffe0d
-2020ecb7
-20206cba
-44a0c008
-580068c4
-67e143f2
-58004862
-67e14609
-58004871
-67e1460b
-5800478f
-67e1460d
-58004875
-67e143e2
-580047aa
-67e143e0
-58004066
-67e143e6
-580042dd
-67e143e4
-580047ac
-67e143de
-58005420
-67e143e8
-58004075
-67e143ec
-202068cb
-44a14008
-1a627e00
-c01948b3
-c02048bb
-c00ac8a2
-c00a4893
-c00848c0
-c018d406
-c014d408
-c01f379e
-c0225428
-c01cc7b8
-c01e47ca
-c01d47e6
-20600000
-44a1c008
-204040e0
-204040cc
-204040dd
-20404100
-20404186
-204041ab
-20404131
-2040413e
-20404146
-20404267
-2040428f
-204042c4
-2040326c
-20403507
-204058f6
-204042b5
-204042bf
-20404299
-204042a4
-2040550d
-204042ad
-20405510
-204042b2
-204042a1
-20405527
-2040429e
-204042c9
-204042cc
-202042d5
-44a24008
-6fe0c8b1
-c0004098
-c000c09d
-c00140a2
-58560094
-67e1c8ab
-58006d00
-e7e18005
-20600000
-58d4012c
-67e1c8ab
-5800e600
-e7e18005
-20600000
-5ac01270
-67e1c8ab
-58014001
-e7e18005
-20600000
-204040a9
-202040e0
-6fe0c41d
-c1810000
-6fe0c41e
-204040b2
-18427e00
-67e0c64c
-79207e07
-d8400000
-20206f1c
-d8400012
-c1030000
-d840000a
-c1038000
-d8400009
-c1040000
-d840000c
-c1048000
-d8400006
-c1050000
-d8400014
-c1058000
-d8400015
-c1060000
-d8400016
-c1068000
-d840000d
-20600000
-204040a7
-20406fb2
-20406f8e
-1fe6fc0a
-20407d61
-67e1464a
-da204644
-20204ec4
-6fe4488e
-c4058000
-204040c4
-6fe0c422
-c280c7af
-c30040d6
-70464e01
-202040d4
-d8e00002
-20204a25
-d8e00002
-20404a29
-704ac60c
-6fe0c64e
-207a0000
-70464e00
-20204184
-6fe4488e
-c4058000
-20204e5e
-6fe348ab
-67e34644
-6fe0c64e
-203a40e8
-6fe148af
-1fe0fe05
-67e14648
-20600000
-6fe148af
-67e14648
-20600000
-6fe0c678
-c08040f3
-204035d3
-585d4800
-67e2462a
-6fe0c422
-c4000000
-202058fc
-580000a0
-204040f9
-6fe0c422
-c4000000
-58000050
-202040f9
-684942d5
-9846fc00
-20407d61
-67e0c88b
-6fe0c73e
-203a552a
-20600000
-704acb00
-6fe14750
-247a0000
-6fe145ef
-247a0000
-6fe145f5
-247a0000
-6fe0cac2
-247a0000
-6fe4488e
-c4058000
-c4148000
-c4010000
-c295411b
-44a2c008
-6fe0cac6
-1fe0fe01
-67e0cac6
-1fe67c14
-24414119
-c0014182
-c0024184
-c0034182
-c0044184
-20600000
-704ac601
-20204184
-6fe1471e
-68494741
-98460400
-6fe14ac7
-98467c00
-24214184
-704acb01
-6fe0cac9
-1fe0fe01
-67e0cac9
-6848caca
-18408401
-98467c00
-24214182
-20404184
-6fe0cac9
-6848caca
-184f8402
-98467c00
-24628000
-704ac900
-20600000
-6fe0cac2
-207a0000
-1fe0ffff
-67e0cac2
-6fe4488e
-c2944139
-203a4166
-2020416c
-203a413c
-6848c916
-20206ef1
-6848c916
-20206eed
-6fe14741
-207a0000
-6fe0cac5
-207a0000
-1fe0ffff
-67e0cac5
-c280416c
-20204166
-6fe0c678
-c000414b
-6fe14750
-207a0000
-2020414d
-6fe145ef
-207a0000
-6fe4488e
-2fec0028
-2040c15f
-6fe0cacc
-1fe0fe01
-67e0cacc
-6848cacd
-18408401
-98467c00
-2421416c
-20404166
-6fe0cacc
-6848cacd
-184f8402
-98467c00
-24628000
-704acc00
-20600000
-704ac200
-20600000
-44a34008
-2040413c
-20404166
-2040419d
-202041a3
-6fe0c678
-c0004172
-c000c174
-c0014176
-c001c178
-20600000
-6fe0c678
-c000417a
-c000c17c
-c001417e
-c001c180
-20600000
-6848c918
-20206eed
-6848c919
-20206eed
-6848c91a
-20206eed
-6848c91b
-20206eed
-6848c918
-20206ef1
-6848c919
-20206ef1
-6848c91a
-20206ef1
-6848c91b
-20206ef1
-6848c917
-20206ef1
-6848c917
-20206eed
-6fe0cace
-c02d4193
-6fe14741
-207a0000
-6fe1471e
-68494741
-98460400
-6fe14ac3
-98467e00
-20214196
-2040419d
-204041a9
-202041a3
-6fe0c638
-67e0c70d
-20204196
-20404199
-204041a5
-2020419f
-6fe0c70d
-c300419d
-6848c913
-20206ef1
-6848c913
-20206eed
-6fe0c70d
-c300c1a3
-6848c914
-20206ef1
-6848c914
-20206eed
-6fe0c70d
-c30141a9
-6848c915
-20206ef1
-6848c915
-20206eed
-6fe4488e
-c4158000
-6fe14741
-207a0000
-6fe1471e
-68494741
-98460400
-6fe148c2
-98467e00
-20610000
-7046b100
-20204203
-6fe4488e
-c4158000
-da200000
-204070b9
-6fe348b2
-67e3064e
-204070ca
-6fe148b2
-20207103
-6fe0c91c
-20407103
-6fe0c91d
-20407103
-6fe0c91e
-20207103
-6fe348b2
-67e3064e
-202070ca
-44a3c008
-6fe4488e
-c4158000
-6fe0c6b1
-204041de
-6fe0c6b2
-202041ef
-6fe4488e
-c4158000
-204044ca
-6fe0c9ab
-c4000000
-6fe0caa2
-79207e05
-67e0caa2
-204044b7
-7048ca00
-7048b800
-7048b70a
-6fe0c6b1
-1fe0fe01
-1fe67c02
-24417dcc
-67e0c6b1
-20600000
-6fe4488e
-c4158000
-204044ca
-6fe0c9ab
-c4000000
-6fe0c6b1
-c1808000
-6fe0caa2
-79207e05
-67e0caa2
-204044b7
-6fe0c6b2
-1fe0fe01
-1fe67c06
-24417dcc
-67e0c6b2
-20600000
-6fe4488e
-c4158000
-684a48c4
-1c427e00
-98467e00
-684948c8
-9846fc00
-20407d64
-1807fe00
-207a0000
-1c420400
-604a48c4
-6fe0c6b1
-c0014209
-c000c244
-7046b100
-44a44009
-6fe4488e
-c4158000
-204041c0
-7048b900
-2020424e
-6fe0c8b8
-203a4211
-6fe0c8b7
-1fe67c05
-2021421a
-1fe0ffff
-67e0c8b7
-20204221
-6fe0c8b7
-1fe0fe01
-67e0c8b7
-20404221
-6fe0c8b7
-1fe67c5a
-20610000
-7048b801
-20600000
-7048b800
-6fe0c8ca
-1fe0fe01
-1fe67c06
-24417dcc
-67e0c8ca
-20600000
-204041b7
-20404207
-20204224
-6fe0c8ca
-c001422c
-c000c231
-c0004236
-c001c23b
-c002c23d
-c002423f
-c0034241
-6fe0c91c
-67e0c8b2
-58000001
-67e0c8b3
-202041c6
-6fe0c91d
-67e0c8b2
-58000002
-67e0c8b3
-202041c6
-6fe0c91e
-67e0c8b2
-58000004
-67e0c8b3
-202041c6
-20404231
-20204236
-2040422c
-20204231
-2040422c
-20204236
-2040422c
-20404231
-20204236
-204041c0
-6fe0c6b2
-1fe67c06
-24417dcc
-67e0c6b2
-d8c048ba
-98c08c00
-efe08006
-67e0c8b9
-2020424e
-6fe0c8b9
-2feffe02
-2040c25b
-2440c25d
-6fe0c8b9
-2feffe01
-2040c25f
-2440c261
-6fe0c8b9
-2feffe00
-2040c263
-2440c265
-20600000
-6848c91c
-20206eed
-6848c91c
-20206ef1
-6848c91d
-20206eed
-6848c91d
-20206ef1
-6848c91e
-20206eed
-6848c91e
-20206ef1
-6fe0c8a6
-c280426d
-20404278
-6fe0c8a6
-c280c27e
-20204289
-6fe0c8a9
-1fe67c64
-24610000
-1fe0fe01
-67e0c8a9
-c18c8000
-7048a700
-6fe0c678
-c1020000
-204048e6
-20204680
-7048a900
-6fe0c8a7
-207a0000
-7048a700
-20404045
-20206c99
-6fe0c8aa
-1fe67c64
-24610000
-1fe0fe01
-67e0c8aa
-c18c8000
-7048a800
-6fe0c678
-c1020000
-20406824
-20204675
-7048aa00
-6fe0c8a8
-207a0000
-7048a800
-20404045
-20206c99
-6fe0c735
-c1808000
-da604736
-da404294
-20203755
-6fe0ca9b
-c000c680
-c0014675
-c001d3ad
-20600000
-da604750
-da40429c
-2020375c
-204048e9
-202047af
-da604705
-da403fd7
-20203755
-da60490e
-da4048fd
-20203755
-da604720
-da4042aa
-20403755
-6fe0c720
-c000b788
-20600000
-6fe4488e
-c28d48c5
-20204e35
-6fe4488e
-c38c8000
-da60477f
-da40551f
-20203755
-da60490d
-da405408
-20203755
-6fe0ca80
-207a0000
-704a8000
-6fe0c9a0
-247a0000
-6fe145ef
-247a0000
-7049a901
-204035fd
-20204828
-da604a82
-da4042c2
-20203755
-704a8100
-20600000
-da6049a3
-da4042c7
-2020375c
-7049a001
-202047af
-da604a9f
-da404547
-20203755
-6fe4488e
-c4120000
-6fe0cad0
-207a0000
-1fe0ffff
-67e0cad0
-247a0000
-70409401
-202047af
-6fe0cace
-c12d0000
-da604741
-da4042da
-2020375c
-6fe0c678
-c00047fb
-202053c6
-44a4c009
-20404330
-204041f3
-204049fa
-204049ff
-202042e3
-44a54009
-6fe4488e
-c41c0000
-c29dc2f0
-c29e42f0
-6848c665
-20404f0a
-6848c665
-20406ee0
-2020c2fd
-6fe4488e
-c29cc302
-20204308
-6848c665
-20404f06
-6848c665
-20406ee0
-2420c2f8
-6fe4488e
-c29dc302
-20204308
-6848c665
-20404f0a
-6fe4488e
-c29dc308
-20204302
-6848c665
-20404f06
-6fe4488e
-c29cc308
-20204302
-6fe0c678
-c1008000
-70467801
-6fe0c896
-243a6c99
-202048e6
-6fe0c678
-c1000000
-70467800
-6fe0c896
-243a6c99
-20204804
-44a5c009
-6fe4488e
-c305c31a
-204040c4
-6fe14646
-1fe6fc02
-20407d61
-6849464a
-98467c00
-2021430e
-6fe0c422
-c280c7af
-6fe0ca7f
-205a4670
-6fe0ca7e
-247a0000
-6fe0c678
-c000432d
-204053c1
-c000c324
-c0014329
-c001c32b
-6fe3467a
-684b46f8
-98467c00
-2022d3ad
-20204e09
-6fe34687
-20204325
-6fe34694
-20204325
-20403e9a
-20345988
-2020594d
-44a64009
-20404334
-204043b5
-202045b4
-20403ef9
-204043af
-58000000
-67e1499e
-d8c0494e
-d8a04963
-df200014
-20407cdc
-5800494e
-67e14998
-5800498d
-67e1499a
-204043ad
-204043ab
-6fe1499e
-1fe0fe01
-67e1499e
-c284c334
-6848c911
-20406ee0
-2420c342
-204043af
-6848c911
-20406ee0
-2020c34a
-20404372
-20404386
-204043ab
-204043ad
-6fe1494c
-1fe22400
-70499d00
-e8408012
-6fe1494a
-1fe22200
-1a222600
-df200014
-efe08011
-98467c00
-2022c366
-1a20a201
-c2004359
-1a40a401
-6fe0c99d
-1fe0fe01
-67e0c99d
-1fe67c0b
-20214354
-20403f1b
-20203f0f
-6fe14998
-1fe20a00
-1a227e00
-9a667e00
-98a08a00
-6fe1499a
-1fe22600
-6fe0c99d
-9a60a600
-efe08013
-e7e08005
-2020435e
-70499d00
-204043a9
-2040437a
-204043a7
-2040437a
-1fe67c0b
-20214373
-202043a9
-70499c00
-20404399
-6fe1499a
-1fe20a00
-6fe0c99d
-98a08a00
-6fe0c99c
-e7e08005
-6fe0c99d
-1fe0fe01
-67e0c99d
-20600000
-6fe1494a
-1fe22400
-70499d00
-70499c00
-e8408012
-284ffe07
-2020c393
-20406ef1
-20404399
-e8408012
-20406eed
-e8408012
-20404f0a
-1a40a401
-6fe14998
-2040437d
-1fe67c13
-20214389
-20600000
-44a6c009
-20000078
-6fe14948
-1fe22600
-df200008
-e8408013
-20406ee0
-6fe0c99c
-1fe37e00
-7920fe07
-67e0c99c
-1a60a601
-c200439e
-20600000
-6848c911
-20206eed
-6848c911
-20206ef1
-6848c911
-20206ed7
-6848c910
-20206eed
-6848c910
-20206ef1
-7049a000
-6fe149a1
-67e149a3
-20600000
-da20494e
-da404963
-df200014
-20407d66
-2422c3b1
-204043f1
-205a43b1
-204043fd
-6fe0c9a8
-247a0000
-6fe0ca9c
-c1008000
-c1010000
-c1020000
-70499d00
-da20494e
-da404978
-e8408011
-efe08012
-9842fe00
-203a43e9
-67e0c99c
-6048c9ab
-e0408012
-7049a901
-7049ac00
-6fe0c99c
-c30043de
-6fe0c99d
-1feffe08
-6848c9ac
-9840fe00
-d8c049c7
-98c08c00
-efe08006
-67e0c9aa
-44a74009
-2040442e
-20404435
-204044dc
-20404564
-6fe0c99c
-1fe37e00
-67e0c99c
-6fe0c9ab
-1fe37e00
-67e0c9ab
-6fe0c9ac
-1fe0fe01
-67e0c9ac
-1fe67c07
-202143cf
-1a20a201
-1a40a401
-6fe0c99d
-1fe0fe01
-67e0c99d
-1fe67c13
-202143c6
-20600000
-6fe4494e
-243a41c9
-6fe44956
-243a41c9
-6fe2495e
-243a41c9
-6fe0ca9f
-247a0000
-6fe0ca9c
-c1030000
-704a9c00
-20600000
-44a7c009
-7049a800
-7049a600
-da20494e
-df200014
-7049a500
-efe08011
-203a4429
-6848c9a5
-18408401
-6048c9a5
-1fe20400
-1fe0ffff
-98417e00
-2422c405
-6fe0c9a5
-6848c9a6
-98408400
-6048c9a6
-1fe67c01
-20214429
-18467c02
-20214429
-70499d00
-7049a700
-e8408011
-da40494e
-6fe0c99d
-1fe0fe01
-67e0c99d
-1fe67c13
-24214429
-efe08012
-98417c00
-2022c42c
-6fe0c9a7
-1fe0fe01
-67e0c9a7
-1fe67c01
-2021442c
-6fe4488e
-c3908000
-7049a801
-20600000
-1a20a201
-c2004402
-20600000
-1a40a401
-20204418
-6fe0c9aa
-c07341e2
-c073c1d0
-6fe0caa1
-c1000000
-c1008000
-20600000
-6fe0c9ab
-2feffe00
-2040c4f0
-6fe0ca7a
-245a445b
-6fe0c74f
-c17f8000
-6fe4488e
-c31a4440
-6fe0ca93
-20204441
-6fe0ca84
-6848ca7a
-9842fe00
-20628000
-44a8400a
-6fe0c9aa
-c014c451
-c0264459
-1fe67c45
-24610000
-d840003a
-98467e00
-24610000
-d8c04a86
-98c08c00
-efe08006
-202044aa
-6fe4488e
-c31a4457
-6fe0ca85
-6848ca94
-98467c00
-20628000
-6fe0ca85
-202044aa
-6fe0ca92
-202044aa
-44a8c00a
-20404468
-6fe0c9aa
-c029448d
-c028c491
-c0284495
-c027c499
-c070449d
-c01644a7
-c00a44ac
-c00d44bc
-c00444c3
-20600000
-6fe4488e
-c41a0000
-6fe0c9aa
-6848ca94
-98467c00
-24628000
-204044ca
-6fe0c9ab
-c4000000
-6fe0ca93
-1fe0fe01
-1fe17e01
-67e0ca93
-6fe0caa2
-79207e03
-67e0caa2
-6fe0c678
-c000447e
-c000c481
-c0014484
-c001c487
-c002448a
-6fe0ca93
-67e0c6a9
-202044b7
-6fe0ca93
-67e0c6aa
-202044b7
-6fe0ca93
-67e0c6ab
-202044b7
-6fe0ca93
-67e0c6ac
-202044b7
-6fe0ca93
-67e0c6ad
-202044b7
-6fe4488e
-c4180000
-5800004b
-202044aa
-6fe4488e
-c4180000
-5800004e
-202044aa
-6fe4488e
-c4180000
-5800004a
-202044aa
-6fe4488e
-c4180000
-5800004d
-202044aa
-6fe4488e
-c4188000
-6fe0c74f
-c17f8000
-6fe0caa1
-c00044a5
-580000f7
-202044aa
-580000aa
-202044aa
-6fe4488e
-c4190000
-580000ab
-67e0c9aa
-20600000
-6fe4488e
-c4198000
-204044ca
-6fe0c9ab
-c4000000
-704aa101
-704ac506
-204044cc
-6fe0caa2
-79207e04
-67e0caa2
-6fe4488e
-c3878000
-6fe0c706
-67e0c705
-20600000
-6fe4488e
-c4198000
-204044ca
-6fe0c9ab
-c4000000
-704aa100
-202044b2
-6fe4488e
-c4198000
-204044ca
-6fe0c9ab
-c4000000
-704aa102
-202044b2
-58000000
-202044aa
-44a9400a
-6fe0c678
-c1000000
-c1020000
-c000c4d3
-c00144d6
-c001c4d9
-6848caa1
-6048c6ae
-20600000
-6848caa1
-6048c6af
-20600000
-6848caa1
-6048c6b0
-20600000
-6fe0c9aa
-c02344f2
-c025c4f8
-c02744fe
-c0254500
-c026c502
-c052c504
-c053450b
-c053c50d
-c054450f
-c054c511
-c055451c
-c056c523
-c055c52a
-c0564535
-20600000
-6fe0c9ab
-c4000000
-704a9f0a
-20600000
-704a9f00
-20600000
-6fe0caa1
-c1000000
-c1008000
-704a9d0a
-704a9e20
-2020453e
-704a9e52
-6fe0caa1
-c1000000
-c1008000
-704a9d08
-2020453e
-704a9e51
-202044f9
-704a9e50
-202044f9
-704a9e4f
-202044f9
-704a9e04
-704a9d01
-6fe0caa1
-c000453e
-c000c53e
-704a9d08
-2020453e
-704a9e06
-20204505
-704a9e19
-20204505
-704a9e1b
-20204505
-6fe0caa1
-c0004516
-c001c519
-580000fa
-202044aa
-704a9d08
-704a9e0f
-2020453e
-704a9d09
-704a9e14
-2020453e
-6fe0caa1
-c0004520
-580000f7
-202044aa
-704a9d09
-704a9e12
-2020453e
-6fe0caa1
-c001c527
-580000f5
-202044aa
-704a9d08
-704a9e2c
-2020453e
-6fe0caa1
-c0004531
-c000c533
-704a9d01
-704a9e2c
-204044ec
-2020453e
-704a9d08
-2020452e
-704a9d02
-2020452e
-6fe0caa1
-c000453b
-c000c53b
-704a9d01
-704a9e52
-2020453e
-704a9d08
-704a9e2b
-2020453e
-7049aa00
-6fe0c9ab
-c3004545
-6fe0ca9c
-c001c551
-704a9c01
-20600000
-704a9c04
-20600000
-704a9c06
-20600000
-67e0ca70
-6048ca72
-20407dbc
-704a6f00
-202046e6
-6fe0ca9d
-d8400000
-20404549
-704a9c02
-20600000
-704a9c03
-6fe0ca9d
-6848ca9e
-20204549
-704a6f00
-6fe0ca9d
-d8400000
-20404549
-6fe0ca9f
-203a4547
-704a9c05
-20600000
-2020454b
-704a9c00
-dfe00000
-d8400000
-20204549
-6fe0c9aa
-d84000e0
-98467c00
-24214576
-1fe67ce7
-242145ad
-1fe17e07
-1fe20e00
-6fe0c9ab
-c2804572
-6fe0c9ad
-f93ffe00
-67e0c9ad
-20600000
-6fe0c9ad
-f9207e00
-67e0c9ad
-20600000
-7049b500
-6fe0c9ab
-c280458d
-6848c9aa
-df200006
-d8c049af
-efe08006
-98467c00
-2422c585
-efe08006
-18c08dfe
-e7e08006
-207a0000
-18c08c01
-e0408006
-c200457c
-6fe4488e
-c290c58a
-6fe4488e
-c4100000
-2040459f
-f93ffe00
-20207dce
-6848c9aa
-df200006
-d8c049af
-efe08006
-203a459c
-98467c00
-20628000
-c2004590
-6fe4488e
-c290c599
-6fe4488e
-c4100000
-2040459f
-f9207e00
-20207dce
-18c08dff
-e0408006
-20600000
-44a9c00a
-6fe0c9aa
-1fe67c70
-24610000
-7049b701
-7049a901
-1fe6fc08
-20407d64
-1807fe00
-18070e00
-d8a049b9
-98a08a00
-58000000
-20600000
-704aa001
-6fe0c9ab
-2fec0000
-2040c5b2
-20204576
-704aa002
-20600000
-20404660
-204045f2
-704a7a00
-704a7b00
-704a7c00
-704a7d00
-704a7e00
-6fe0c9ad
-245a468f
-d8c049af
-df200006
-efe08006
-1fe67c7f
-2042c699
-1fe67cae
-2042c69b
-c20045bf
-204045c9
-6fe0ca7f
-203a4670
-20600000
-44aa400a
-704a9b00
-6fe0c678
-c08045d7
-6fe4488e
-c4098000
-6fe149af
-68494a97
-98467c00
-2022c5e8
-18508400
-98467c00
-2022c5e8
-202054e6
-6fe149af
-68494a99
-98467c00
-2022c5ec
-18508400
-98467c00
-2022c5ec
-6fe4488e
-c30dd4e6
-6fe149af
-68494a95
-98467c00
-2022c5ea
-18508400
-98467c00
-2022c5ea
-202054e6
-704a9b01
-202045ee
-704a9b02
-202045ee
-704a9b03
-202045ee
-6fe0c735
-c1008000
-70473501
-20600000
-20407dbe
-20404600
-20404616
-20404627
-20404638
-2040464e
-203445fe
-6fe0c8a6
-793ffe00
-793ffe01
-67e0c8a6
-20600000
-7049a900
-20600000
-6fe4488e
-c4080000
-6fe0c897
-207a0000
-6fe149af
-68494898
-98467c00
-2022c60c
-18508400
-98467c00
-2022c60c
-20600000
-20407dbc
-6fe0c8a6
-79207e00
-793ffe01
-67e0c8a6
-6fe0c678
-c1000000
-70467800
-7048a701
-20600000
-6fe0c89a
-207a0000
-6fe149af
-6849489b
-98467c00
-2022c620
-18508400
-98467c00
-2022c620
-20600000
-20407dbc
-20404649
-6fe0c678
-c1008000
-70467801
-7048a801
-20600000
-6fe0c89d
-207a0000
-6fe149af
-6849489e
-98467c00
-2022c631
-18508400
-98467c00
-2022c631
-20600000
-20407dbc
-20404649
-6fe0c678
-c1010000
-70467802
-7048a801
-20600000
-6fe0c8a0
-207a0000
-6fe149af
-684948a1
-98467c00
-2022c642
-18508400
-98467c00
-2022c642
-20600000
-20407dbc
-20404649
-6fe0c678
-c1018000
-70467803
-7048a801
-20600000
-6fe0c8a6
-793ffe00
-79207e01
-67e0c8a6
-20600000
-6fe4488e
-c4120000
-6fe0c8a3
-207a0000
-6fe149af
-684948a4
-98467c00
-2022c65a
-18508400
-98467c00
-2022c65a
-20600000
-20407dbc
-6fe0c678
-c1020000
-70467804
-20404045
-20206c99
-6fe0ca7f
-247a0000
-6848c90f
-18467cff
-20628000
-20406ee0
-2420c66c
-df200008
-d8a049ad
-20407ca3
-7049afae
-20600000
-6fe0c9af
-c1d70000
-7049af00
-20600000
-44aac00a
-6fe0ca7e
-207a0000
-6fe0c678
-c0004680
-44ab400a
-20403f2c
-7049a900
-6fe0c678
-c1000000
-6fe4488e
-c3820000
-d8e00004
-20404a25
-20403745
-202048c0
-44abc00a
-20404161
-20403f2c
-7049a900
-6fe145ef
-247a0000
-58000000
-67e14741
-67e145f5
-67e0c5f9
-d8e00000
-20404a25
-204048e9
-7045a002
-2020326f
-67e0ca7b
-1fe17e44
-245a4697
-6fe0ca7b
-1fe17e22
-207a0000
-704a7d01
-20600000
-704a7c01
-20600000
-704a7a01
-20600000
-704a7e01
-20600000
-44ac400b
-78547c00
-70472b00
-70472c00
-70472d00
-6fe0ca9c
-c000c54e
-c0014553
-c001c553
-c0024557
-c0034560
-6fe0c9a9
-203a46ba
-1fe0ffff
-67e0c9a9
-204046b7
-704a820a
-20405535
-6fe0ca9c
-c002c55f
-d8a04a6f
-df20000a
-20407ca3
-204046ca
-704a7900
-20600000
-7040c003
-70473e0a
-20600000
-6fe0c678
-c1800000
-6fe0ca81
-207a0000
-6fe0ca80
-247a0000
-6848ca83
-6fe0ca82
-98467c00
-67e0ca83
-20628000
-d8a04a6f
-df20000a
-20407ca3
-20407dbc
-202046e6
-44acc00b
-6fe0caa0
-c001474b
-6fe0c9b7
-243a46ec
-d8c049af
-df200006
-efe08006
-1fe67ce7
-242146f5
-c20046d1
-6fe0c9a6
-205a46ef
-704a6f00
-44ad400b
-da2049ad
-d8a04a70
-df200008
-e8408011
-6fe0c74f
-c07fc6e3
-18467c7f
-2422c6e3
-1a20a201
-e8408011
-e0408005
-1a20a201
-c20046dc
-44adc00b
-20404756
-6fe0ca79
-c000fdbc
-2040522c
-20207dbc
-7049b700
-704a6f08
-202046e6
-d8a049b8
-df20000f
-20407ca3
-d8a049ad
-df20000a
-20207ca3
-1fe20400
-44ae400b
-18427e00
-704a6f05
-6848c9a6
-18467c00
-2022c74b
-c0744715
-c074c718
-c075471a
-c075c71c
-c076471e
-c076c720
-c0774722
-c077c724
-c0784726
-c078c728
-c079472a
-c079c72c
-c07a472e
-c07ac730
-c07b4732
-c07bc737
-c07c473d
-c07cc73f
-c07d4741
-c07dc743
-c07e4745
-c07ec747
-c07f4749
-c07fc752
-202046e6
-58000001
-67e1ca70
-202046e6
-58000002
-20204716
-58000004
-20204716
-58000008
-20204716
-58000010
-20204716
-58000020
-20204716
-58000040
-20204716
-58000080
-20204716
-58000100
-20204716
-58000200
-20204716
-58000400
-20204716
-58000800
-20204716
-58001000
-20204716
-58002000
-20204716
-6fe0caa1
-c0014726
-c001c726
-58004000
-20204716
-6fe0caa1
-c000c73b
-58010000
-20204716
-58008000
-20204716
-58020000
-20204716
-58040000
-20204716
-58080000
-20204716
-58100000
-20204716
-58200000
-20204716
-58400000
-20204716
-58800000
-20204716
-7049a902
-6fe0c9a6
-205a46ef
-704aa000
-58000005
-67e1ca6f
-202046e6
-704a6f02
-58000002
-67e0ca70
-202046e6
-6fe0c678
-c080475d
-704a8000
-6fe14a6f
-245a47e4
-6fe34a72
-245a47e4
-2040684b
-704a7900
-44aec00b
-6fe0ca6f
-c000476d
-c000c768
-c001c780
-c002c785
-c0014787
-c004478c
-20600000
-704a7901
-d8c04a70
-d8a0465c
-df200007
-20207cdc
-6fe0c678
-c0804772
-204047d9
-6fe0ca81
-67e0ca71
-6fe4488e
-c2914778
-d8c04a6f
-d8a04721
-df200009
-20207cdc
-704a7800
-6fe0ca7a
-203a477c
-704a7801
-d8c04a6f
-d8a04721
-df20000a
-20207cdc
-58000003
-67e0c721
-6fe1ca70
-67e1c722
-20600000
-58000005
-20204781
-58000002
-67e0c721
-6fe0ca70
-67e0c722
-20600000
-58000008
-67e0c721
-20600000
-44af400b
-20407de6
-6848c90f
-20406eac
-6fe1494a
-1fe22400
-df200014
-e8408012
-284ffe07
-2440eef1
-1a40a401
-c2004796
-20403f1b
-70488c00
-6fe14948
-1fe22400
-df200008
-e8408012
-18467cff
-2442bf29
-1a40a401
-c20047a0
-20406f4b
-6848c666
-20404f0a
-20404f0e
-202040dd
-c6130000
-2020478f
-44afc00b
-20407388
-202047b3
-44b0400c
-20404161
-204047b3
-2020379c
-44b0c00c
-20407de6
-20404161
-20404203
-2020478f
-204047e1
-20405535
-d8e00000
-20404a29
-58000000
-67e145ef
-67e145f5
-67e0c613
-67e0c8fd
-67e0c5f9
-6fe245a6
-67e245ff
-67e246a3
-204047d3
-6fe0caa2
-79207e02
-67e0caa2
-202044b9
-204047e1
-6fe245a6
-67e245ff
-67e246a3
-20403530
-204047d3
-70461300
-7045f900
-20205535
-6fe245a6
-684a45fb
-98467c00
-2422d3c1
-70474fff
-20600000
-df200006
-d8c04a72
-efe08006
-c029c7e1
-c01cc7e1
-c023c7e1
-c20047db
-20600000
-704a8103
-7049a901
-20600000
-704a8001
-20600000
-6fe0c617
-243a47fb
-6fe0c5f9
-c00147f3
-c000c7f3
-c001c7ed
-202047ed
-20404804
-6fe0c73f
-243a5836
-6fe0c678
-c00047af
-20600000
-6fe4488e
-c288d952
-c3095988
-6fe246a3
-684a46f8
-98467c00
-2022c680
-20205988
-44b1400c
-70461700
-20403620
-5fffffff
-67e445c6
-58000000
-67e3c65c
-70473701
-20204821
-793f8026
-70461300
-d8e00000
-20204a29
-6fe145f7
-1fe17ee0
-203a480f
-6fe145f7
-1fe0fe01
-67e145f7
-20600000
-20403557
-2040362a
-242c355e
-2437b55e
-204068bc
-20203540
-204035fd
-2434481a
-20404828
-20404855
-2020485b
-6fe4494e
-243a485b
-6fe44956
-243a485b
-6fe2495e
-243a485b
-2040367c
-20404848
-24740000
-2040369e
-6fe0c737
-245a47b3
-6fe445c6
-202035fa
-44b1c00c
-70461800
-69610040
-34730200
-2040362a
-6fe0c596
-c000b61f
-242c4834
-2437c834
-204068bc
-70473700
-2020361f
-6fe0c619
-247a0000
-6fe14615
-1fe0fe01
-67e14615
-6fe0c615
-c07fb64f
-6fe0c618
-1fe0fe01
-67e0c618
-1fe17e03
-203a4841
-2020482a
-20404330
-6fe0c8a6
-243a6c99
-6fe0ca9b
-243a361f
-20403675
-2020482a
-78347c00
-204023f0
-6fe1c0bd
-203a7dbe
-6fe0ca7a
-243a7dbe
-6fe0ca7b
-243a7dbe
-6fe0ca9f
-243a7dbe
-6fe0c62f
-c000fdbe
-20203699
-6fe245a6
-684a45fb
-98467c00
-2422b6c9
-704141aa
-20600000
-6fe44622
-67e445c6
-6fe14634
-67e14636
-44b2400c
-20404848
-202035f0
-c6930000
-2040469d
-24740000
-6fe0c72b
-243a4868
-202059c7
-7045a002
-6fe0c721
-c004486d
-da20000a
-20206852
-67e0c9b8
-da20000f
-da4049b8
-20600000
-44b2c00c
-6fe4488e
-c40a8000
-20206888
-44b3400c
-20402a06
-247a0000
-6fe0c74f
-c07fc87d
-6fe0c882
-1fe17e03
-c1818000
-6fe4488e
-c2806824
-c281e824
-c2826824
-2040469d
-24740000
-20404fd1
-2020683c
-7047730e
-6849439f
-6fe0c773
-1fe22200
-20402dcc
-6848c773
-18427200
-d8c049b9
-20207cdc
-70477309
-6fe4488e
-c2916831
-70477308
-20206831
-204041c9
-70473d00
-70475301
-20405960
-6fe0c754
-243a489a
-70475514
-6fe143fa
-793ffe00
-67e143fa
-70472000
-6fe1477d
-67e1477f
-20405535
-202048e9
-58000000
-67e1477f
-67e0c90c
-67e0c90d
-67e0c753
-70478100
-204029aa
-70429c00
-202048ab
-6fe143f8
-c283c8af
-c2803771
-202048c5
-70488200
-6fe143f8
-c2803771
-202047af
-6fe0c754
-c000c8b8
-70488314
-70490e05
-2020540f
-20405408
-70488305
-2020540f
-6fe0c90c
-247a0000
-70490c01
-70490d1e
-20600000
-280ffe26
-2040c804
-204053c6
-70488200
-202048c5
-44b3c00c
-20404163
-58000000
-67e1477f
-67e14aa3
-704aa1ff
-6fe14500
-2feffe0b
-2040d565
-204053c1
-6fe14500
-c285c8d9
-6fe4488e
-c30c48d9
-684946a7
-18408401
-604946a7
-604942de
-180a7e00
-67e0c2dd
-6fe1c756
-67e1c2e0
-204037a2
-6fe1464f
-67e14750
-58000000
-67e14741
-67e1477f
-67e0c720
-d8e00001
-20404a25
-20404a2f
-20205455
-6fe14500
-c284b794
-202048e9
-44b4400d
-58000000
-67e14750
-d8e00004
-20404a29
-20405565
-6fe0cac2
-203a4163
-20600000
-44b4c00d
-6fe4488e
-c4008000
-d8e00001
-20404a29
-204067e4
-204067c1
-6fe0caa2
-79207e01
-67e0caa2
-202044b9
-7048fe01
-da200017
-da400004
-204029d9
-58000006
-e7e08005
-58000001
-e7e10005
-5800ffff
-e7e10005
-58002800
-e7e10005
-d8c048ee
-20207c91
-44b5400d
-1a220c00
-efe18006
-67e1c39b
-c000c919
-c003c95c
-c004c938
-c005c952
-c0044971
-c0064986
-c005499f
-c00949c5
-c02949cb
-20202b76
-6fe0c8fe
-207a0000
-6fe0c8fe
-c0014962
-7048fe02
-da200009
-da400004
-204029d9
-58000006
-e7e08005
-58000001
-e7e10005
-5800ffff
-e7e10005
-58002800
-e7e10005
-df200002
-d8c048ff
-20207cdc
-da200007
-da400004
-204029d9
-58000008
-e7e08005
-6849433b
-18408405
-efe20002
-e7e20005
-58002803
-e7e10005
-20600000
-6fe0c8fe
-207a0000
-6fe14337
-1fe0fffe
-1fe6fc07
-20407d64
-1807f200
-6fe1433b
-1fe08c06
-18c08c03
-efe10006
-1fe22600
-efe10006
-d8402a29
-98467c00
-2022c94a
-c2004941
-20204962
-da200003
-da400004
-204029d9
-5800000a
-e7e08005
-1a627e00
-e7e10005
-20600000
-6fe0c8fe
-207a0000
-6fe14337
-df200009
-6fe1433b
-1fe0a205
-da404901
-20407d66
-2022c965
-20204962
-6fe0c8fe
-207a0000
-6fe0c8fe
-c001492c
-704aa102
-20204966
-6fe0c2cd
-67e0caa1
-20204966
-704aa103
-7048fe00
-6fe4488e
-c307c96d
-704aa401
-6fe0caa3
-207a0000
-20203fee
-6fe0caa2
-79207e04
-67e0caa2
-202044b9
-20402e1f
-20402e28
-6849068f
-60490656
-20402ca5
-20402cb0
-18c08dfe
-18c27e00
-67e106a5
-68490694
-58002a50
-98467c00
-2022c97f
-20202c2d
-6fe0c8ce
-203a2c2d
-20402cbe
-203a2de1
-d8c048cf
-18007e0b
-20202c83
-efe10006
-67e10693
-98002200
-6849439c
-6fe14334
-98467c00
-2422ad2e
-6fe10693
-1fe67c42
-2422c999
-58000017
-1fe22200
-1fe22600
-20402dee
-5800000d
-e7e08005
-d8c048d8
-1a60f3ff
-20207cce
-6fe4488e
-c291ad2e
-6fe148d6
-1fe20c00
-efe10006
-20202d31
-6849439c
-6fe0c323
-c281c9bf
-6fe4488e
-c305c9a5
-c30cc9a7
-6fe1439c
-c0182de1
-6fe1439c
-c002c9b7
-c00849ba
-6849439c
-6fe4488e
-c291acfb
-6fe14334
-98467c00
-2422acfb
-20402e24
-684948d6
-18420c00
-e8410006
-18408401
-20407db2
-20202d0b
-d8c0490a
-18007e03
-20202d0b
-6fe0c8ce
-203a49aa
-d8c048cf
-18007e08
-20202d0b
-6fe14334
-98467c00
-2422c9a2
-20402da5
-243449a7
-20202d24
-18c22200
-6fe14337
-1fe0a5fd
-20402908
-204049cc
-20206878
-20402dc8
-6fe0c74f
-c07fc9d1
-6fe1439c
-c012c9d4
-20600000
-6fe1439c
-c010c9d4
-20600000
-6fe08055
-67e0c70d
-20600000
-6fe4488e
-c4060000
-204049db
-202049ec
-6fe4cad1
-67e4883a
-580049e1
-67e10837
-704ace5a
-20600000
-7046775a
-70083901
-20407956
-204049e7
-6fe0c677
-20203d2a
-6fe0883a
-207a0000
-6fe0c677
-c02d3d27
-20203d24
-6fe0cace
-c02d49f1
-6fe0cace
-67e0cacf
-20600000
-204049ee
-58000000
-67e145ef
-67e145f5
-70409400
-6fe0cad0
-205a7902
-704ad032
-20600000
-6fe4488e
-c4120000
-6fe0c678
-c1820000
-202078f6
-6fe4488e
-c4120000
-6fe0c678
-c1820000
-6ff08c01
-67e0c675
-c4038000
-704ad000
-58000000
-67e14741
-20404804
-204048e6
-2040469d
-24740000
-6fe0c72b
-c000e85b
-20206856
-7008e900
-df200009
-6fe4488e
-c2917c24
-20207c22
-20403d53
-7008ea24
-58000008
-67e08911
-d8c049b9
-d8a00912
-df20000e
-20207cdc
-6fe0864d
-df200008
-d8c044ea
-e8408006
-98467c00
-20628000
-c2004a20
-2020781c
-6fe4488e
-f9207e00
-67e4488e
-20600000
-6fe4488e
-f93ffe00
-67e4488e
-20600000
-d8e00003
-20204a25
-d8e00003
-20204a29
-2035ca43
-20402931
-58004a5e
-67e143e4
-58004a61
-67e143e6
-58004a5a
-67e143dc
-58004b0a
-67e143ea
-58004ce1
-67e143e8
-58004cf2
-67e143ec
-44b6400d
-20404a43
-20404a55
-20204c6c
-6ff08060
-793ffe00
-67f08060
-6fe44517
-20406d5b
-6fe1451f
-20406d66
-20406d75
-70807708
-70807649
-7080790a
-70807a0b
-d8400081
-6fe14526
-2feffe00
-79208404
-60588060
-20600000
-6848c50c
-20406ef1
-20404a84
-6848c50a
-20206ed7
-6848c50a
-20406ee0
-2420b77f
-2020377d
-20406935
-247a0000
-20204a86
-1a627e00
-c00a4a73
-c00aca6f
-c0184ca6
-c018cca8
-c0194cb2
-c019ccb0
-c01a4ca0
-c01ecc80
-c020ca79
-c0214a7b
-c021cc9e
-c01dcc89
-20600000
-204029aa
-70452800
-20404a77
-20204c52
-20404a7e
-6fe0c515
-67e0c0c0
-20204c50
-20404ad3
-20204a7c
-204030d1
-20202eb3
-20204cc2
-6848c50c
-20206ef1
-20404a80
-20204a84
-6fe0c50f
-2feffe01
-2040b78a
-20600000
-6848c50c
-20206eed
-6ff0810b
-c3810000
-20406d89
-efe08003
-c080ca9c
-6ff10112
-1fe67c02
-20610000
-efe08003
-67e086c0
-e8408003
-18622200
-604886c1
-18408403
-6ff10112
-98460400
-24610000
-7006c201
-20404aaa
-6fe086c2
-c1000000
-20204aa5
-20407c97
-20404c8f
-20204a9f
-44b6c00d
-20406d89
-6ff10112
-207a0000
-98608600
-20204aa9
-20406d89
-18608602
-efe08003
-98608600
-20206d8f
-44b7400d
-6fe086c0
-c000cac7
-c0014acc
-c0024ada
-c004cade
-c005cb35
-c007cb36
-c0084b3e
-c0094b42
-c0134b46
-c0154b4b
-c015cb7e
-c0164b84
-c0184b8b
-c019cb90
-c01acbbd
-c01b4bc6
-c01bcbcf
-c01c4bd5
-c0204bdd
-c0214be7
-c0244bec
-c028cbf7
-c03b4bfb
-c03bcc01
-c03c4c06
-c03d4c3c
-20204c4a
-6fe086c1
-c0834c4a
-efe30003
-67e342dd
-20204c4d
-6fe086c1
-c080cc4a
-e8408003
-6048c516
-20404c4d
-6fe14500
-c3848000
-6fe0c50f
-2feffe01
-24608000
-6848c516
-284ffe02
-2020b78c
-2020378a
-dfe0001d
-d8a0426d
-20404bc0
-20202931
-6fe14500
-c304cc4a
-20404b32
-20344c4a
-7006c200
-6fe14526
-c2844b03
-6fe0c528
-247a0000
-7006c201
-efe10003
-67e14529
-6061452b
-6fe086c1
-1fe0fffe
-24214c4a
-2022cc4a
-67e0c528
-68494529
-184085ff
-20402cb0
-203a4b06
-e8420006
-59280302
-98467c00
-2422cb06
-efe08006
-67e0c52d
-1fe17e30
-203a4b06
-7006c200
-204029a8
-20404b0a
-20404b0a
-20404b0a
-6fe14526
-c4040000
-7006c201
-20404d07
-20204c4d
-70452800
-7006c201
-20404d07
-20204c4a
-6fe0c528
-207a0000
-20402a06
-247a0000
-20404b2d
-44b7c00d
-6fe142e3
-20407db2
-1fe20400
-6fe0c39a
-c3800000
-1840fffd
-d84000fb
-20407db2
-6848c528
-20407db2
-1fe22200
-18427e00
-9a267e00
-67e0c528
-20404b28
-6fe1452b
-1fe20600
-1a227200
-20406dbd
-18627e00
-67e1452b
-6fe0c528
-247a0000
-20204d05
-68494529
-6fe0c52d
-c282add5
-c2822dcc
-20600000
-d8400017
-6fe14526
-c3808000
-684942e5
-20600000
-6fe14526
-c2812da5
-20207dbe
-20204c70
-6f2086c1
-20407d35
-20406d6a
-67e1451f
-20404c4d
-20406da1
-6fe1451f
-20206d66
-da200002
-da404508
-d8400000
-20204c54
-6fe14500
-c304cc4a
-20404c4d
-20203794
-6f2086c1
-6fe14401
-1fe20a00
-20406dbd
-20204c4d
-df200040
-d8a0434c
-20407ca3
-58000000
-67e08666
-1a220600
-18627e00
-67e1066a
-20404b79
-6fe08666
-68488656
-18408401
-9840fe00
-67e08666
-1fe67c1f
-24214b65
-6848c34c
-5800434d
-9840fe00
-67e1066f
-68488656
-18408401
-6fe0c34c
-9840fe00
-67e0c34c
-20204b6e
-6848c36c
-5800436d
-9840fe00
-67e1066f
-68488656
-18408401
-6fe0c36c
-9840fe00
-67e0c36c
-6fe1066f
-1fe20a00
-6fe1066a
-1fe20600
-18427200
-20406dbd
-6fe086c1
-68488666
-98467c00
-2422cb51
-20204c4d
-efe08003
-67e08656
-efe08003
-67e08662
-20600000
-d8400000
-da200002
-6fe14523
-67e1067f
-da40067f
-20204c54
-6fe086c1
-c080cc4a
-efe08003
-67e0c521
-58000000
-67e14523
-20204c4d
-6fe086c1
-c0824c4a
-6fe14500
-c284cc3c
-20204c4a
-efe08003
-1fe20400
-c040cb9f
-c0414ba3
-c041cba8
-c0424bac
-67e0c300
-204074ed
-20402ea2
-6fe0c300
-c0004bb0
-c000cbb3
-c0014bb5
-c0024bb7
-20204c4a
-6048c300
-20402e9e
-7042c90d
-20204bb1
-6048c300
-20402e9e
-7042c90d
-7042c701
-20204c4d
-6048c300
-20402e9e
-7042c90d
-20204bbb
-6048c300
-20402e9e
-7042c90d
-20204bb9
-7042c900
-7042c703
-20204c4d
-7042c901
-20204bb1
-7042c905
-20204bbb
-7042c905
-20204bb9
-7042c702
-20204c4d
-7042c700
-20204c4d
-dfe0001f
-d8a0436c
-20204bc0
-6f2086c1
-9f267c00
-24214c4a
-e7208005
-20406dbd
-20204c4d
-6fe14500
-c304cc4a
-6fe086c1
-c0844c4a
-efe40003
-67e442d5
-70064d12
-20407824
-20204c4d
-efe10003
-67e1438d
-6048c0a6
-9840fe00
-67e140a4
-20204c4d
-6fe0c300
-203a4c4a
-6fe0c2fe
-c0804c4a
-6fe0c2ff
-c0804c4a
-20407899
-20204c4d
-6fe086c1
-c082cc4a
-efe08003
-67e0c510
-efe20003
-67e24511
-6848c510
-20406ef1
-20404cdf
-20204c4d
-6fe086c1
-c080cc4a
-efe08003
-67e0c141
-20204c4d
-efe08003
-c000cbf5
-6fe0c2fc
-c001cbf3
-c0034bf3
-c003cbf3
-20204c4a
-7042fd01
-20204c4d
-20402f08
-20204c4d
-20404c4d
-20406da1
-70801001
-2020233e
-d8400001
-20402cb0
-18c08bfe
-58000000
-e7e10005
-20204c4d
-20404c0a
-20404c38
-58000000
-e7e10005
-20204cb9
-efe08003
-20404c0e
-20404c15
-20204cb9
-20404c35
-58280002
-e7e18005
-20600000
-67e0864e
-20404c35
-59280302
-e7e20005
-6fe0864e
-e7e18005
-20600000
-20402cd4
-efe08003
-1fe1721f
-1fe22200
-2a2ffe07
-7920840f
-2a2ffe06
-7920840e
-e0410005
-1f227e00
-e7e08005
-20406dd0
-20404c38
-58000000
-e7e10005
-184104ff
-184085ff
-20402cb0
-18c08c04
-efe08006
-c2824c2d
-c282cc2d
-18408401
-20600000
-20402cd4
-2a2ffe05
-7920840f
-e0410005
-5a290202
-e7e40005
-184085ff
-20600000
-20402cd4
-e0410005
-20600000
-efe08003
-1fe27200
-e7e08005
-20206dd0
-6fe0c2fe
-c082cc4a
-6fe0c300
-c0024c48
-c0424c42
-20204c4a
-7042fb02
-7042fc08
-20204c45
-efe20003
-67e24301
-20204c4d
-20404c45
-20202ef1
-d8400001
-da200000
-20204c54
-d8400000
-da200000
-20204c54
-7006c002
-20204c6d
-7006c005
-20204c6d
-6fe086c0
-1fe22600
-7006c006
-58000002
-9a20fe00
-20404cc8
-1a627e00
-e7e08003
-e0408003
-1a227200
-1a420c00
-20406db7
-20204cd2
-7006c008
-1f20fe02
-20404cc8
-6fe106eb
-e7e10003
-6fe106e9
-1fe20c00
-20406da4
-18c27e00
-67e106e9
-20204cd2
-7006c009
-58000000
-20404cc8
-20204cd2
-7006c00a
-58000001
-20404cc8
-20404c7a
-6fe14500
-d8e00009
-afefffff
-79208405
-e0408003
-20204cd2
-d8400000
-6fe0c38c
-d8e00000
-afefffff
-79208402
-20600000
-7006c00d
-6fe0c403
-1feffe22
-1fe27200
-20404cc8
-6fe14401
-1fe20c00
-20406da4
-20204cd2
-7006c00e
-58000004
-20404cc8
-6fe205d8
-e7e20003
-20204cd2
-7006c00f
-6ff10112
-d8400040
-20407db2
-1fe22200
-1fe27200
-20406d89
-d8a0067f
-20406dbd
-1a227e00
-1a227200
-20404cc8
-d8c0067f
-20406da4
-20204cd2
-7006c010
-20204c6d
-7006c011
-58000004
-20404cc8
-6fe24301
-e7e20003
-20204cd2
-da200180
-20204caa
-da200080
-20204caa
-7006c014
-58000002
-20404cc8
-1a227e00
-e7e10003
-20204cd2
-da600000
-20204cb3
-da600001
-7006c015
-58000001
-20404cc8
-1a627e00
-e7e08003
-20204cd2
-60490656
-7006c029
-58000002
-20404cc8
-68490656
-e0410003
-20204cd2
-7006c02b
-20204c6d
-7006c040
-58000002
-20404cc8
-6fe14075
-e7e10003
-20204cd2
-7006bf02
-67e086c1
-604c0656
-44b8400e
-20404cd4
-684c0656
-20406d95
-6fe186bf
-e7e18003
-20600000
-44b8c00e
-20206d97
-20404cdd
-20608000
-20404cdb
-6fe24511
-1feb7e00
-207a0000
-20207c93
-6848c510
-20206ef1
-6848c510
-20206efc
-6848c510
-20206eed
-622106e9
-624106e7
-6fe1439c
-67e106eb
-20404b32
-20740000
-684906e7
-6fe0c525
-20407db2
-1fe27200
-18427e00
-9f267e00
-67e106e7
-20404c61
-6fe106e7
-207a0000
-20204ce7
-20600000
-6fe0c521
-207a0000
-6fe0c522
-207a0000
-1fe0ffff
-67e0c522
-247a0000
-70452205
-20406fb2
-20406f8e
-1fe6fc0a
-20407d61
-1fe6fc64
-20407d61
-18070400
-67e0c523
-6048c524
-20600000
-d8e00008
-20204d0d
-d8e00008
-20204d09
-6fe14526
-f93ffe00
-67e14526
-20600000
-6fe14526
-f9207e00
-67e14526
-20600000
-20407384
-2055cd20
-20404d40
-20404dec
-20405260
-20758000
-20405b83
-2040506b
-20405853
-20404d22
-20405303
-6fe14500
-c2865544
-204057d7
-20204df5
-20405203
-20206f4e
-44b9400e
-58005b02
-67e1460f
-58005af7
-67e14611
-580059f0
-67e143f2
-580059bc
-67e14609
-58006886
-67e1460b
-58004e75
-67e1460d
-58005438
-67e143e2
-58004e70
-67e143e0
-580053da
-67e143e6
-58005759
-67e143e4
-58004e3d
-67e143de
-58005420
-67e143e8
-58005494
-67e143ec
-58004e2d
-67e143dc
-202068cb
-20758000
-204035c8
-2040323a
-20405b7f
-20404ee5
-20404d88
-20405a4b
-20402a1f
-44b9c00e
-6fe4470e
-c288d640
-c2885650
-c2895685
-20600000
-70409910
-6fe4470e
-c3858000
-70409918
-20600000
-20403260
-7048fa00
-7045e100
-70444e00
-6fe4470e
-c41e8000
-7048fa01
-7045e101
-70444e01
-20203263
-4778403e
-6fe0c594
-203a4d65
-6fe245e3
-684a45a6
-98467c00
-2022cd6c
-20203546
-6fe245fb
-684a45a6
-98467c00
-2022cd60
-6fe24576
-207a0000
-20204d60
-6fe4470e
-c298596c
-c29f596c
-2020351f
-6fe4470e
-c31eb658
-6848c618
-6fe0c638
-98467c00
-24213675
-18408401
-6048c618
-6fe0c638
-c007cd7e
-6fe0c618
-c00a366f
-c00f366f
-20600000
-6fe0c618
-c005366f
-c007b66f
-20600000
-44ba400e
-204067ff
-20404d4e
-20404d53
-204058fc
-20203266
-44bac00e
-20404d93
-20404da5
-20404dd3
-58000a77
-67e143fe
-38001224
-38044000
-38080000
-e7e28005
-20600000
-58009000
-67e142f9
-70491700
-58000000
-67e3c65c
-6fe0c502
-67e0c731
-67e0c732
-7045a001
-7045fa01
-704ac400
-20404da0
-2020680c
-d8400000
-6fe4470e
-c289681d
-d85fffff
-2020681d
-20404dae
-6fe1c61f
-67e1c8dc
-6fe4470e
-c40d8000
-58000006
-67e142d5
-67e142d7
-20600000
-6fe4470e
-c28ccdb2
-c28c4db9
-20204dc6
-6fe0c8bf
-67e0c638
-6fe248d0
-67e248cc
-58080606
-67e1c5be
-202036bb
-6fe1c8c0
-67e1c61f
-6fe1c8c3
-67e1c622
-6fe248d4
-67e248cc
-58100c0c
-67e1c5be
-70463805
-6fe4470e
-c41e8000
-7046380f
-20600000
-6fe1c8c6
-67e1c61f
-6fe1c8c9
-67e1c622
-6fe248d8
-67e248cc
-581c1919
-67e1c5be
-7046380b
-6fe4470e
-c41e8000
-7046381e
-20600000
-44bb400e
-20404de9
-6fe0c895
-c17f8000
-6fe0c895
-20405258
-6848c895
-20406ee0
-2020cde5
-6fe0c895
-2040525c
-6848c895
-20406ee0
-2020cde9
-6fe0c895
-20405258
-6fe0c898
-20204dea
-6fe0c895
-2040525c
-6fe0c897
-20204dea
-6fe0c896
-67e0c9fb
-20600000
-44bc400f
-20758000
-6fe0ca1e
-207a0000
-1fe0f201
-d8c04a1e
-d8a0426d
-20407cdc
-20202948
-44bcc00f
-6fe4470e
-c29f594b
-6fe0c678
-c000593a
-20405a70
-204053c1
-6fe0c678
-c000ce00
-c0014e05
-20600000
-6fe3467a
-684b46f8
-98467c00
-2022d3ad
-20204e09
-6fe34687
-684b46f8
-98467c00
-2022d3ad
-44bd400f
-da204679
-6fe0c678
-1fe0ffff
-1feffe0d
-9a20a200
-efe08011
-67e0c3fc
-6fe0c3fc
-c01a4e1e
-202053ad
-44bdc00f
-78547c00
-6fe4470e
-c3054e1b
-6ff08132
-c2824e1b
-78347c00
-6fe0c740
-67e0c73f
-20600000
-70475401
-6848c719
-6fe0c74f
-c07fce23
-6848c653
-6048c720
-204037a2
-6fe1c75c
-67e1c351
-2040545e
-58000004
-e7e08006
-d8c0436d
-20405465
-20207860
-c513377d
-6fe0c9f9
-203a377d
-6fe0c781
-c000b77d
-6fe0c672
-243a377d
-2020377f
-44be400f
-58000006
-20406971
-c281ce3b
-204052f0
-20405303
-20404e42
-2020379c
-44bec00f
-20407388
-2040567d
-6848c667
-20206ecd
-44bf400f
-204053ab
-20407de6
-20404fc9
-6fe0c894
-20405254
-6848c665
-20404f02
-20404e75
-6848c666
-20404f0a
-20404f0e
-204059fc
-20405ace
-20404e5c
-20204e52
-6fe4470e
-c41e0000
-6848c668
-20406ecd
-6848c669
-20406ecd
-6848c668
-20404f06
-6848c669
-20204f06
-6fe4470e
-c4098000
-6fe0c41d
-c1810000
-6848c64c
-20206f05
-d8c08070
-df200010
-efe08006
-243a4e69
-58000080
-18c08bff
-e7e08005
-c2004e64
-dfe080dc
-98c67c00
-20628000
-df200008
-d8c080d4
-20204e64
-c6130000
-20404e75
-6fe08015
-247a0000
-20206ecd
-44bfc00f
-70488c00
-20407de6
-6848c89c
-20406ef1
-6848c89c
-20406ecd
-20404f42
-6fe0c893
-20405254
-20406968
-6848c88d
-20406eac
-6848c88f
-20406eac
-6848c88e
-20406eac
-6848c890
-20406eac
-6848c891
-20406eac
-6848c892
-20406eac
-6848c89d
-20406eac
-6848c89e
-20406eac
-20404e62
-6848c668
-20406ea5
-6848c669
-20406ea5
-6848c89a
-20406ea5
-6848c89b
-20406ea5
-6848c667
-20206eac
-6fe14500
-c4048000
-1a227e00
-243a29b4
-202029b9
-44c04010
-6fe0c41d
-c1810000
-6848c64c
-20206f0b
-44c0c010
-6fe4470e
-c4098000
-20404ea0
-20406fb2
-20406f8e
-67e1464a
-6fe0c41d
-c0814eb4
-6849464a
-184ffe08
-1fe6fc0a
-20407d61
-9840fe00
-67e1464a
-da204644
-20404ec4
-6fe0c422
-c280ce35
-c3004ebd
-70464e01
-20204ebb
-d8e00004
-2020582e
-d8e00004
-20405832
-70464d01
-6fe0c64e
-207a0000
-70464e00
-20205a43
-44c14010
-efe40011
-67e4064e
-20407057
-20407051
-6fe10654
-68490650
-98467c00
-24417054
-68490652
-98467c00
-2441704e
-6fe10654
-6849064e
-98467c00
-20214ee1
-68490650
-98467e00
-24214ee3
-203a4ee3
-1fefa264
-6fe1064e
-68490650
-98460400
-1a227e00
-9846fc00
-20407d61
-67e0c77c
-20600000
-70477c64
-20600000
-70477c00
-20600000
-6848c43e
-20406ef1
-6848c88d
-20404f0a
-6848c88f
-20404f0a
-6848c88e
-20404f0a
-6848c890
-20404f0a
-6848c891
-20404f0a
-6848c892
-20404f0a
-6848c89c
-20404f0a
-6848c89d
-20404f0a
-6848c89e
-20404f0a
-2040591f
-6848c89a
-20404f0a
-6848c89b
-20404f0a
-6848c667
-20404f0a
-6848c665
-20204f0a
-18410e7f
-6ff2011c
-afefffff
-2020cf0a
-18467cff
-20628000
-79200407
-20206ed7
-18467cff
-20628000
-793f8407
-20206ed7
-6fe1c72e
-67e1864e
-df200018
-d8400000
-6fe1864e
-2feffe00
-2040ef05
-6fe1864e
-1fe3fe00
-67e1864e
-18408401
-c2004f12
-20600000
-20404f20
-7043fe73
-20404f1f
-2020696c
-20206bbc
-6fe0c893
-d8400021
-20406f1d
-6fe0c894
-d8400023
-20206f1d
-44c1c010
-2040684e
-78547c00
-58000000
-67e3465d
-2040530c
-58000089
-20406970
-2040506b
-20404f38
-20404f3d
-204050ca
-6fe0c65c
-1fe17e1f
-67e0c65c
-24345853
-20405841
-20205535
-6fe0c671
-207a0000
-67e0c661
-70467100
-20207dbc
-6fe0c66d
-207a0000
-67e0c662
-70466d00
-20207dbc
-44c24010
-2040591f
-20404f51
-20404f8d
-6fe0c66b
-6848c66a
-67e0c66a
-98467c00
-2422b781
-6fe0c66f
-6848c66e
-67e0c66e
-98467c00
-2422b781
-20600000
-6fe0c89a
-c17f8000
-da200000
-6848c89a
-20406ee0
-7920a200
-6848c89b
-20406ee0
-7920a201
-1a227e00
-67e0c66b
-c000cf61
-c0014f65
-6fe0c66c
-c283cf71
-20600000
-6fe0c66a
-c0004f69
-c001cf6b
-20600000
-6fe0c66a
-c0004f6d
-c001cf6f
-20600000
-70466c82
-20600000
-70466c81
-20600000
-70466c80
-20600000
-70466c83
-20600000
-6fe0c66c
-793ffe07
-67e0c66c
-c0004f79
-c000cf7c
-c0014f7f
-c001cf82
-20600000
-6fe0c66b
-c001cf85
-20600000
-6fe0c66b
-c0004f85
-20600000
-6fe0c66b
-c001cf89
-20600000
-6fe0c66b
-c0004f89
-20600000
-6fe0c66d
-1fe0fe01
-67e0c66d
-20600000
-6fe0c66d
-1fe0ffff
-67e0c66d
-20600000
-6fe0c668
-c17f8000
-da200000
-6848c668
-20406ee0
-7920a200
-6848c669
-20406ee0
-7920a201
-1a227e00
-67e0c66f
-c000cf9d
-c0014fa1
-6fe0c670
-c283cfad
-20600000
-6fe0c66e
-c0004fa5
-c001cfa7
-20600000
-6fe0c66e
-c0004fa9
-c001cfab
-20600000
-70467082
-20600000
-70467081
-20600000
-70467080
-20600000
-70467083
-20600000
-6fe0c670
-793ffe07
-67e0c670
-c0004fb5
-c000cfb8
-c0014fbb
-c001cfbe
-20600000
-6fe0c66f
-c001cfc1
-20600000
-6fe0c66f
-c0004fc1
-20600000
-6fe0c66f
-c001cfc5
-20600000
-6fe0c66f
-c0004fc5
-20600000
-6fe0c671
-1fe0fe01
-67e0c671
-20600000
-6fe0c671
-1fe0ffff
-67e0c671
-20600000
-6848c668
-20404f02
-6848c669
-20404f02
-6848c89a
-20404f02
-6848c89b
-20204f02
-6fe14661
-207a0000
-70467201
-7046730a
-20600000
-da604673
-da404fd9
-20203755
-70467200
-20600000
-6fe0c892
-c17f8000
-da200000
-704a0f05
-6848c892
-20404fe8
-67e0ca0c
-6fe0c89c
-c07fcffc
-20405203
-1a227e00
-c282d004
-2020500b
-6fe4470e
-c295d002
-6fe0ca0c
-1fe22600
-6fe0c89c
-c07fcff8
-6fe0ca13
-243a4fff
-20406ee0
-6848c89c
-2020d002
-6848c89c
-20406ef1
-6848c892
-6fe0ca0c
-20205236
-6fe0c892
-20405256
-6848c892
-20205242
-6848c892
-20404f0a
-20204fe5
-70491700
-704a0c00
-20600000
-6fe0ca0c
-20205236
-6fe0c917
-c1008000
-70491701
-6fe4470e
-c3940000
-c39b0000
-2020501b
-6fe0c917
-c1000000
-70491700
-6fe4470e
-c2945012
-c29b5012
-20600000
-6fe0c918
-243a5016
-6fe0c732
-245a501b
-70491800
-6fe0c502
-67e0c732
-67e0c731
-20600000
-44c2c010
-2040504c
-20740000
-6fe0c6a2
-1fe20400
-6fe4470e
-c28ad028
-18427e00
-1fe0fe01
-1fe17e03
-67e0c6a2
-20405068
-2020557a
-6fe0ca1c
-243a5045
-6fe4470e
-c28e5039
-18427e00
-c1008000
-c0005035
-c0015033
-20600000
-58000002
-20205025
-58000000
-20205025
-58000001
-20205025
-58000003
-20205025
-18427e00
-c1008000
-c0005035
-c0015037
-c001d033
-20600000
-18427e00
-c1010000
-c0005037
-c000d033
-c001d031
-20600000
-6fe4470e
-c28e503f
-18427e00
-c1010000
-c0005031
-c000d033
-20600000
-78547c00
-6fe4470e
-c3958000
-202057b1
-6fe4470e
-c2945054
-c29b505b
-20600000
-6fe0c917
-c1808000
-da604732
-da405059
-20203755
-70491801
-202057f6
-6fe0c917
-c1808000
-da604731
-da405060
-20203755
-70491801
-202054b2
-6fe4470e
-c38e0000
-6fe0c6a2
-c1818000
-7046a200
-20600000
-44c34010
-20405062
-20405a1e
-44c3c010
-6fe0c9fa
-c006508f
-c001d0a9
-c005d0bd
-6fe0c6a2
-c0005077
-c000d075
-c0015079
-c001d07b
-6848c906
-2020507c
-6848c905
-2020507c
-6848c907
-2020507c
-6848c908
-6fe0c9fa
-c002508b
-c002d08b
-c004508d
-c003d08d
-c003508b
-6048c916
-58000006
-20406971
-1fe104f8
-6fe0c916
-9840fe00
-1fed7e00
-1fe0fe06
-20206970
-184085ff
-20205082
-18408402
-20205082
-6fe0c6a2
-c0005095
-c000d099
-c001509b
-c001d09d
-20600000
-6fe0c911
-2020509e
-6fe0c912
-2020509e
-6fe0c913
-2020509e
-6fe0c914
-2020509e
-6fe0c915
-1fe22200
-5800c309
-20406970
-1a227e00
-1fed7e00
-1fe0fe23
-20406970
-58000009
-20206970
-58005a09
-20206970
-6fe0c6a2
-c00050b0
-c000d0ae
-c00150b2
-c001d0b4
-6fe0c90a
-202050b5
-6fe0c909
-202050b5
-6fe0c90b
-202050b5
-6fe0c90c
-67e0c916
-1fed7e00
-1fe22200
-1fe0fe0d
-20406970
-1a227e00
-1fe0fe0e
-20206970
-6fe0c6a2
-c00050c4
-c000d0c2
-c00150c6
-c001d0c8
-6fe0c90e
-202050b5
-6fe0c90d
-202050b5
-6fe0c90f
-202050b5
-6fe0c910
-202050b5
-20405170
-6fe0ca19
-243a5184
-6fe0ca14
-243a5183
-204051ac
-204050e0
-20404e9b
-204050db
-1a227e00
-6848c664
-67e0c664
-67e0c65c
-9842fe00
-1fe67c00
-20628000
-20207dbc
-c6930000
-1a227e00
-207a0000
-67e0c65c
-20207dbc
-704a1100
-704a1200
-704a1300
-1fe22400
-6848c88d
-6fe0c890
-98467c00
-2022d0f0
-6fe0c891
-98467c00
-2022d0f5
-6848c88e
-6fe0c890
-98467c00
-2022d104
-20205107
-6848c88e
-6fe0c891
-98467c00
-2022d0fa
-202050fd
-6848c88e
-6fe0c890
-98467c00
-2022d0ff
-20205102
-20405113
-2040511f
-20205109
-20405113
-20205105
-2040511c
-20405116
-20205109
-2040511c
-20205108
-20405116
-20405122
-20205109
-2040511f
-20405119
-20405125
-20405128
-6fe0ca12
-207a0000
-6fe0ca11
-207a0000
-704a1301
-6fe0c664
-1fe22200
-20600000
-1a417e09
-c004d130
-20600000
-1a417e12
-c0095130
-20600000
-1a417e0a
-c0055130
-20600000
-1a417e11
-c008d130
-20600000
-1a417e14
-c00a5130
-20600000
-1a417e12
-c0095130
-20600000
-1a417e18
-c00c512e
-20600000
-18417e07
-c001d12e
-c002d12e
-c003512e
-c003d12e
-20600000
-704a1201
-20600000
-704a1101
-20600000
-6fe4470e
-c40a8000
-c316513a
-6fe0c8a0
-20405254
-20405148
-6848c8a0
-20204f0a
-6fe0c8a0
-20405256
-704a1d00
-6848c8a0
-6fe0ca1a
-20405161
-2040514c
-6848c8a0
-20204f0a
-20404f0a
-6fe0ca1b
-c1008000
-704a1b01
-2020501b
-704a1d00
-6848c8a0
-6fe0ca1a
-20405157
-67e0ca1a
-6fe0ca1c
-203a5153
-6fe0ca1b
-c1008000
-704a1b01
-2020501b
-6fe0ca1b
-c1000000
-704a1b00
-20600000
-1fe3fe00
-1fe22400
-20406ee0
-7920a400
-1a417e07
-6848ca1d
-18420e00
-c003d16c
-c000516e
-20600000
-1fe3fe00
-1fe22400
-20404f06
-20406ee0
-7920a400
-1a417e07
-6848ca1d
-18420e00
-c003d16c
-c000516e
-20600000
-704a1c01
-20600000
-704a1c00
-20600000
-da400000
-6fe0c89f
-c17f8000
-6fe4470e
-c317517d
-6848c89f
-20404f0a
-6848c89f
-20406ee0
-7920a400
-1a427e00
-67e0ca19
-20600000
-6848c89f
-20404f06
-6848c89f
-20406ee0
-7d20a400
-2020517a
-c002519c
-2040519f
-6fe24a15
-d84000a0
-98408400
-1c427e00
-98467c00
-24610000
-67e24a15
-6fe0ca14
-c0005192
-c000d195
-c0015198
-c001d19a
-20600000
-704a1401
-70465c01
-20207dbc
-704a1402
-70465c00
-20207dbc
-704a1403
-20205193
-704a1400
-20205196
-704a1400
-70465c00
-20600000
-684a4a15
-1c427e00
-98467c00
-244151a4
-20600000
-58000000
-67e24a15
-20600000
-204051b9
-204051ac
-58000000
-67e1ca07
-20600000
-44c44011
-6fe0c737
-245a51b9
-da200000
-204051bc
-204051c5
-204051ce
-204051d7
-204051f3
-20405170
-20405210
-1a227e00
-20600000
-58030303
-67e1ca07
-20600000
-6fe0c88d
-20405254
-704a0f00
-6848c88d
-6fe0ca07
-20405236
-67e0ca07
-6848c88d
-20204f0a
-6fe0c88f
-20405254
-704a0f01
-6848c88f
-6fe0ca08
-20405236
-67e0ca08
-6848c88f
-20204f0a
-6fe0c88e
-20405254
-704a0f02
-6848c88e
-6fe0ca09
-20405236
-67e0ca09
-6848c88e
-20204f0a
-6fe0c890
-c17f8000
-704a0f03
-6fe0ca0a
-1fe22600
-6848c890
-6fe0c89c
-c07fd1ec
-20406ee0
-2020d1e8
-6848c89c
-20406ef1
-6848c890
-6fe0ca0a
-20405236
-67e0ca0a
-20205203
-6848c89c
-6fe0ca0a
-20405236
-202051e6
-6fe0c890
-20405256
-6848c890
-20405242
-67e0ca0a
-6848c890
-20204f0a
-6fe0c891
-c17f8000
-704a0f04
-6fe0ca0b
-1fe22600
-6848c891
-6fe0c89c
-c07fd209
-20406ee0
-2020d205
-6848c89c
-20406ef1
-6848c891
-6fe0ca0b
-20405236
-67e0ca0b
-6848c89c
-20204f0a
-6848c89c
-6fe0ca0b
-20405236
-20205202
-6fe0c891
-20405256
-6848c891
-20405242
-67e0ca0b
-6848c891
-20204f0a
-70472b00
-6fe0c89e
-c17f8000
-6fe4470e
-c40a0000
-c297d221
-704a0f07
-6848c89e
-6fe0ca0e
-20405236
-67e0ca0e
-1a227e00
-c283d22c
-2040522f
-6fe0c72c
-67e0c72d
-20600000
-704a0f07
-6fe0ca0e
-1fe22600
-6fe0c89e
-20405256
-6848c89e
-20405242
-67e0ca0e
-2040521b
-6848c89e
-20204f0a
-70472c01
-20405232
-2020521e
-70472c00
-6fe0c72d
-207a0000
-70472b01
-20600000
-f93fa200
-20600000
-1fe3fe00
-1fe22400
-20406ee0
-7920a400
-1a417e07
-6848ca0f
-18420e00
-c003d240
-c0005234
-20600000
-f9202200
-20600000
-44c4c011
-1a627e00
-67e0ca10
-1fe3fe00
-1fe22400
-18422600
-20404f06
-1a620400
-20406ee0
-7d20a400
-2040524e
-2020523a
-6848ca10
-18410401
-1a417e01
-98467c00
-2422d3d5
-20600000
-d840003f
-20206f1d
-d840003e
-20206f1d
-67e0c8a7
-20405254
-6848c8a7
-20204f0a
-67e0c8a7
-20405256
-6848c8a7
-20204f06
-44c54011
-20404f1b
-20758000
-204052fd
-44c5c011
-2040526f
-c0185276
-c018d2dc
-c02c52e5
-2040526c
-20001af4
-20205264
-6848c893
-20406953
-20204f20
-58000001
-20406971
-67e0c8fc
-58000000
-20406971
-67e0c8fb
-20600000
-6fe0c8fc
-c02d5285
-c06c528a
-c068d27f
-c06952a2
-c00152a9
-c02a52b2
-c02852d9
-20205264
-58000049
-20406971
-c050d283
-20205299
-7049fa0c
-20600000
-7049fa05
-204052f0
-20407c97
-da604973
-20205301
-58000016
-20406971
-1fe67cbd
-2422d260
-58000019
-20406971
-1fe67c55
-2422d260
-5800001b
-20406971
-1fe67c1d
-2422d260
-7049fa06
-da6049af
-202052ab
-7049fa00
-da60492d
-204052ab
-da604937
-204052ab
-58000943
-20406970
-da604951
-202052ab
-7049fa02
-da604923
-204052ab
-da604937
-204052ab
-da604951
-202052ab
-7049fa03
-da604919
-efe10013
-d840ffff
-98467c00
-20628000
-20406970
-1a60a602
-202052ab
-204050a7
-58009a5b
-20406970
-5800000d
-20406971
-1fe67c12
-2022d2c6
-1fe67c0a
-2422d2c9
-5800000e
-20406971
-1fe67ce5
-2422d264
-58000010
-20406971
-1fe67ca5
-2022d2c6
-204052d6
-7049fa08
-20600000
-7049fa09
-da604991
-202052ab
-1fe67c10
-2422d264
-5800000e
-20406971
-1fe67cc5
-2422d264
-58000010
-20406971
-1fe67c38
-2422d264
-204052d6
-7049fa0a
-20600000
-5800005b
-20406970
-202050a5
-7049fa07
-da6049d1
-202052ab
-204052fd
-6fe0c8fc
-c03852e3
-c00052e1
-20205264
-7049fa01
-20600000
-7049fa04
-20600000
-204052fd
-6fe0c8fc
-c02bd2ed
-c02cd2ea
-20205276
-7049fa0b
-da6049bf
-202052ab
-7049fa0d
-da6049dd
-20205301
-d8408006
-6fe0c9fa
-c085d2f4
-d8409706
-18427e00
-20406970
-20002ee0
-20600000
-da6049e9
-6fe0c9fa
-c1858000
-da6049f1
-20600000
-44c64011
-20404f1b
-204052f0
-204052f8
-204052ab
-2020506b
-44c6c011
-20405260
-20404f1b
-d8400806
-6fe0c9fa
-c085d30a
-d8401f06
-18427e00
-20206970
-6fe0c437
-c1800000
-6fe0c9fa
-c0005319
-c000d319
-c0045319
-c0015319
-c001d33d
-c0025319
-c0035365
-c005d35b
-c006d35b
-20205319
-20405387
-78547c00
-6fe0c667
-c07fd320
-6848c667
-20406ee0
-24608000
-58000000
-20406971
-c0985333
-58000002
-20406971
-c4038000
-2040539e
-6fe0c65d
-20405397
-67e1465d
-6fe0c65f
-20405397
-67e1465f
-6fe0c9fb
-c0005335
-c000d337
-c0015339
-c001d33b
-20600000
-c018d323
-2020526c
-20405370
-202053a4
-20405378
-202053a4
-20405374
-202053a4
-20405380
-202053a4
-20405387
-6fe0c667
-c07fd343
-6848c667
-20406ee0
-24608000
-58000000
-20406971
-c098526c
-58000002
-20406971
-c4038000
-2040539e
-20405359
-67e0c663
-1ff1fe00
-2040539b
-67e0c65e
-6fe0c663
-1fe17e0f
-2040539b
-67e0c660
-6fe0c9fb
-c0005370
-c000d378
-c0015374
-c001d380
-20600000
-58000012
-20206971
-20405387
-6fe0c667
-c07fd361
-6848c667
-20406ee0
-24608000
-58000000
-20406971
-c0ac526c
-20205346
-20405387
-78547c00
-58000002
-20406971
-c4038000
-58000008
-20406971
-203a5326
-58000000
-67e3465d
-20600000
-6fe1465d
-1fe67e00
-67e1465d
-20207dbc
-6fe1465f
-1fe67e00
-67e1465f
-20207dbc
-6fe1465f
-1fe67e00
-67e1465f
-6fe1465d
-1fe67e00
-67e1465d
-20405382
-20207dbc
-20405382
-20207dbc
-6fe1465f
-6849465d
-67e1465d
-6049465f
-20600000
-6fe0c8fd
-205a539e
-7048fd01
-20600000
-7049f901
-204029a8
-20205260
-6fe0c667
-c1ff8000
-6fe0c73d
-207a0000
-1fe0ffff
-67e0c73d
-58000000
-67e2465d
-2020538d
-c4038000
-d840ff00
-9841fe00
-20600000
-c4018000
-d84000f0
-20205399
-dfe00003
-20406971
-67e1465d
-dfe00004
-20406971
-2020586a
-6848c894
-20406ee0
-20608000
-5800000a
-20406971
-200003e8
-202053a4
-58008100
-20206970
-70474fff
-7043fc34
-580f0f0f
-67e1c2dd
-67e1c2e0
-20204e11
-44c74011
-204067d5
-204053c1
-6fe0c678
-c000d3ba
-c00153bc
-20600000
-6fe3467a
-202053bd
-6fe34687
-684b46f8
-98467c00
-2022d544
-20204e09
-70474f5a
-20600000
-6fe14500
-c284b794
-20205562
-58000000
-67e14741
-6fe14500
-c284b794
-20600000
-6fe4470e
-c40d8000
-243453d3
-6fe0c9fc
-1fe0fe01
-1fe17e0f
-67e0c9fc
-247a0000
-7049fc00
-20207dbe
-6fe0c667
-c1ff8000
-7040c000
-70473e1e
-20600000
-44c7c011
-1a627e00
-c00a53e9
-c00ad3f9
-c008553f
-c018d406
-c014d408
-c019540a
-c01f379e
-c0205415
-c01cd9a8
-c01d5971
-c01e5997
-c0225428
-20600000
-20405a62
-70473d00
-2040538d
-70475301
-20405960
-6fe0c754
-243a53f1
-70475514
-6fe143fa
-793ffe00
-67e143fa
-70472000
-6fe1477d
-67e1477f
-20405535
-20205562
-58000000
-67e1477f
-70475300
-d8400006
-6fe4470e
-c28dd400
-d8400007
-604942d5
-604942d7
-70478100
-7049f900
-204029aa
-20205484
-d8e00002
-20205411
-70064d12
-20207824
-6fe0c754
-c000d40d
-2020540f
-20405408
-70488314
-d8e00001
-20205411
-6fe0c882
-f9207e00
-67e0c882
-20600000
-6fe14340
-c1000000
-6fe0816a
-1feb7e00
-1fe67c0c
-20610000
-58000009
-20404dab
-20405408
-70478101
-20600000
-6fe0c754
-247a0000
-6fe0c39c
-1fe67e22
-24628000
-70488300
-d8e00000
-20205411
-6fe081a2
-1fe67c0c
-2421541e
-20404dab
-6fe081a4
-203a5434
-6848c88b
-98467c00
-20215434
-6fe081a4
-67e0c0c0
-20205436
-6fe0c88b
-67e0c0c0
-70478100
-20600000
-44c84012
-20402a06
-247a0000
-6fe0c74f
-c07fd440
-6fe0c882
-1fe17e03
-c1818000
-6fe0c9f9
-205a538b
-6fe4470e
-c280e824
-c2806824
-c282e824
-c2836824
-20404f26
-204053cb
-24740000
-204053d5
-2040538e
-20404fd1
-6fe4470e
-c30a683e
-2020683c
-da200001
-6849477a
-20402dcc
-6fe0c77c
-20207dce
-70475400
-6fe1c759
-67e1c351
-2040545e
-58000005
-e7e08006
-d8c0475f
-20405465
-20207860
-da20434d
-efe08011
-207a0000
-98c0a200
-efe08006
-c1008000
-2020545f
-d8a04358
-df200013
-20407cdc
-20202948
-44c8c012
-1a220c00
-efe18006
-67e1c39b
-c0055470
-c009547f
-20202b76
-6fe4470e
-c31dacf7
-20402da5
-6849439c
-6fe0c323
-c281d47a
-6fe1439c
-c0182de1
-6849439c
-20202cfb
-6fe14334
-98467c00
-2422d476
-24345476
-20202d24
-18c22200
-6fe14337
-1fe0a5fd
-20402908
-20206878
-44c94012
-2040548a
-6fe143f8
-c283d490
-c2803771
-20205544
-58000000
-67e4466a
-e7e10005
-7048fd00
-70429c00
-20600000
-70488200
-6fe143f8
-c2803771
-20204e35
-44c9c012
-20405a29
-20404ea5
-204059f2
-20405a81
-20405a00
-20405050
-204054ab
-204054d7
-204054ba
-204054cb
-20405527
-20404fd6
-20405538
-2040552f
-204058f6
-2040326c
-20403507
-204054fa
-204054ff
-2040550d
-2040551a
-20205510
-6fe4470e
-c41b8000
-6fe0c734
-c1808000
-da604731
-da4054b2
-20203755
-6fe0c678
-c1000000
-6fe4470e
-c3830000
-d8e00006
-2040582e
-20403745
-2020553f
-6fe0cabf
-c17f8000
-6fe0cac4
-207a0000
-204051ac
-1a217e07
-6848cabf
-98467c00
-2022d4c6
-6fe0cac1
-67e0cac3
-20600000
-da604ac3
-da40501e
-20203755
-6fe0c737
-207a0000
-6fe0cac0
-c17f8000
-204051ac
-1a217e07
-6848cac0
-98467c00
-2022d4d4
-6fe0cac2
-202054c4
-da604ac3
-da4057f6
-20203755
-6fe0c678
-c00054dd
-6fe4470e
-c41a8000
-6848cabd
-202054e0
-6fe4470e
-c4190000
-6848cabe
-6048c733
-204051ac
-1a217e07
-6848c733
-98467c00
-2022d4ec
-6fe0c502
-67e0c736
-6fe0c735
-c1000000
-70473500
-20600000
-204054f1
-6fe0c735
-c1008000
-70473501
-20600000
-da405965
-da604736
-6fe0c678
-c0003755
-da4054b2
-20403755
-6fe0c736
-c000d820
-20600000
-da604750
-da4054fd
-2020375c
-20405562
-20204e35
-da604720
-da405505
-20403755
-6fe0c720
-c000b788
-20600000
-6fe0c74f
-c07fd3b3
-6fe0c73f
-243a5836
-6fe4470e
-c299d544
-c29f595d
-20204e35
-da604883
-da405426
-20203755
-6fe0c753
-207a0000
-da604755
-da405515
-20203755
-6fe0c754
-247a0000
-6fe0c2fe
-c1800000
-20202fab
-6fe4470e
-c39d8000
-da60477f
-da40551f
-20203755
-6fe1477d
-67e1477f
-20205450
-6fe0c882
-c3810000
-20405408
-d8e00000
-20205411
-da60473e
-da40552a
-20203755
-6fe0c88b
-67e0c0c0
-6fe0c73c
-67e0c73d
-20600000
-da604741
-da405532
-2020375c
-6fe0c678
-c000590a
-202053c6
-6fe1471e
-67e14741
-20600000
-da604705
-da40553b
-20203755
-20405574
-6fe0c752
-243a5801
-20600000
-280ffe26
-2040d936
-204053c6
-70488200
-20205544
-44ca4012
-20405a7a
-6fe14500
-2feffe0b
-2040d565
-204053c1
-6fe14500
-c285d554
-6fe4470e
-c3045554
-6848c6a7
-18408401
-6048c6a7
-6048c2df
-180a7e00
-67e142dd
-6fe1c756
-67e1c2e0
-204037a2
-6fe1464f
-67e14750
-58000000
-67e14741
-67e1477f
-67e0c720
-67e0c9f9
-d8e00002
-2040582e
-20405822
-20205455
-44cac012
-d8e00006
-20405832
-58000000
-67e0c720
-67e14750
-20207866
-44cb4012
-6fe4470e
-c4010000
-d8e00002
-20405832
-204067e4
-204067c1
-20205571
-6fe0c706
-67e0c705
-20600000
-44cbc012
-6fe4470e
-c288d580
-c2885588
-c289558a
-20600000
-44cc4013
-6fe4470e
-c288d584
-c2895612
-c2885588
-20600000
-d8400080
-da204678
-da400000
-20206cc9
-d8400001
-da2046a2
-da40005a
-20206cc9
-204067bb
-20204f1b
-2040558e
-20405594
-204055bb
-202055fc
-20405699
-6fe146a0
-d840aa55
-98467c00
-20628000
-2020569d
-6a414a7f
-1a422600
-204056ad
-6fe0c718
-203a55a0
-67e0ca32
-1a60a601
-6fe14a81
-9a667c00
-24610000
-1a622400
-20205596
-6fe0ca32
-1fe17ef0
-203a55aa
-6fe0c678
-204055b8
-67e0ca33
-df200001
-1a622400
-da204a33
-20206b33
-6848ca32
-6fe0c678
-204055b8
-98467c00
-20628000
-1ff27e00
-9840fe00
-67e0ca33
-1a627e00
-68494a7f
-98467c00
-2022d5a6
-1a60a7ff
-202055a6
-c1800000
-1fe0fe04
-20600000
-6fe0c678
-c00055c0
-c000d5d4
-c00155e8
-20600000
-6a414a83
-1a422600
-20405726
-6fe24a6b
-203a55cc
-67e24a67
-1a60a604
-6fe14a85
-9a667c00
-24610000
-1a622400
-202055c2
-6fe24a67
-684a46a3
-98467c00
-20628000
-df200004
-da2046a3
-1a622400
-20206b33
-6a414a87
-1a422600
-204056d3
-6fe34a3a
-203a55e0
-67e34a34
-1a60a606
-6fe14a89
-9a667c00
-24610000
-1a622400
-202055d6
-6fe34a34
-684b467a
-98467c00
-20628000
-df200006
-da20467a
-1a622400
-20206b33
-6a414a73
-1a422600
-204056fc
-6fe34a52
-203a55f4
-67e34a4c
-1a60a606
-6fe14a75
-9a667c00
-24610000
-1a622400
-202055ea
-6fe34a4c
-684b4687
-98467c00
-20628000
-df200006
-da204687
-1a622400
-20206b33
-6fe0c678
-c1000000
-6a414a8f
-1a422600
-20405738
-6fe0ca71
-203a560a
-67e0ca6f
-1a60a601
-6fe14a91
-9a667c00
-24610000
-1a622400
-20205600
-6fe0ca6f
-6848c6a7
-98467c00
-20628000
-df200001
-da2046a7
-1a622400
-20206b33
-6fe4470e
-c4070000
-6a414a7b
-1a422600
-2040574c
-6fe0ca65
-203a5620
-67e0ca64
-1a60a601
-6fe14a7d
-9a667c00
-24610000
-1a622400
-20205616
-6fe0ca64
-1fe17ef0
-203a562a
-6fe0c6a2
-20405638
-67e0ca66
-df200001
-1a622400
-da204a66
-20206b33
-6848ca64
-6fe0c6a2
-20405638
-98467c00
-20628000
-1ff27e00
-9840fe00
-67e0ca66
-1a627e00
-68494a7b
-98467c00
-2022d626
-1a60a7ff
-20205626
-c1800000
-1fe0fe07
-20600000
-6fe0c678
-1fe67c04
-20610000
-20407dcc
-202056bb
-20406cb2
-6fe4470e
-2feffe09
-2440ecba
-2040ecb7
-20405648
-2040563b
-20205689
-d8400080
-da204678
-da400000
-20206cd7
-d8400001
-da2046a2
-da40005a
-20206cd7
-204067b6
-2040563b
-20405689
-20204f1b
-580046f8
-d8404678
-98460400
-6fe1c6fe
-da204678
-20600000
-700656ab
-204070bf
-20406c1c
-da204701
-68488656
-20405663
-202070bf
-700656b9
-2020565b
-e0408011
-1ff10400
-e0408005
-1fec8400
-e0408005
-e7e08005
-1a227e00
-67f10084
-58000000
-67f10088
-70800602
-20206bd6
-6fe1c6fe
-67e1c430
-20206bf0
-1fe22600
-1a227e00
-1fe0fffc
-1fe22400
-efe20012
-67e24701
-1a627e00
-20406c32
-6fe24701
-e7e20012
-20600000
-6fe4470e
-c4080000
-20405661
-2040696c
-6848c438
-20406eed
-6848c43d
-20204f06
-2040573e
-204056a1
-2040563b
-204056bf
-44ccc013
-6fe4470e
-2feffe12
-2040d699
-6fe146a0
-d840aa55
-98467c00
-2022e7cf
-604946a0
-204067f8
-6fe0c717
-67e0c678
-67e0c6a7
-6fe0c899
-67e0c6a2
-20600000
-df200002
-6a414a93
-da2046a0
-20206b62
-df200002
-da2046a0
-6a414a93
-20206b33
-6a414a7f
-1a422600
-204056ad
-6fe0c718
-203a56b0
-67e0ca32
-1a60a601
-6fe14a81
-9a667c00
-242156b0
-1a622400
-202056a3
-df200001
-da204718
-20206b62
-6fe0ca32
-1fe20400
-1fe17ef0
-203a56b6
-1ff1fe00
-202056b7
-18427e00
-1fe67c00
-2022d6bd
-1fe67c04
-2042fdcc
-67e0c678
-20600000
-6fe0c717
-202056bb
-2040571a
-204056c3
-204056c5
-2020572c
-204056c7
-202056d9
-204056f0
-20205702
-6a414a87
-1a422600
-204056d3
-6fe34a3a
-203a56d6
-67e34a34
-1a60a606
-6fe14a89
-9a667c00
-242156d6
-1a622400
-202056c9
-df200006
-da204a3a
-20206b62
-6fe34a34
-67e3467a
-20600000
-6a414a8b
-1a422600
-204056e5
-6fe34a46
-203a56e8
-67e34a40
-1a60a606
-6fe14a8d
-9a667c00
-242156e8
-1a622400
-202056db
-df200006
-da204a46
-20206b62
-6fe34a40
-684b46f8
-98467c00
-2042d6ee
-67e34680
-20600000
-6fe342dd
-20600000
-6a414a73
-1a422600
-204056fc
-6fe34a52
-203a56ff
-67e34a4c
-1a60a606
-6fe14a75
-9a667c00
-242156ff
-1a622400
-202056f2
-df200006
-da204a52
-20206b62
-6fe34a4c
-67e34687
-20600000
-6a414a77
-1a422600
-2040570e
-6fe34a5e
-203a5711
-67e34a58
-1a60a606
-6fe14a79
-9a667c00
-24215711
-1a622400
-20205704
-df200006
-da204a5e
-20206b62
-6fe34a58
-684b46f8
-98467c00
-2042d717
-67e3468d
-20600000
-6fe342dd
-1fe0ff00
-20600000
-6a414a83
-1a422600
-20405726
-6fe24a6b
-203a5729
-67e24a67
-1a60a604
-6fe14a85
-9a667c00
-24215729
-1a622400
-2020571c
-df200004
-da204a6b
-20206b62
-6fe24a67
-67e246a3
-20600000
-6a414a8f
-1a422600
-20405738
-6fe0ca71
-203a573b
-67e0ca6f
-1a60a601
-6fe14a91
-9a667c00
-2421573b
-1a622400
-2020572e
-df200001
-da204a71
-20206b62
-6fe0ca6f
-67e0c6a7
-20600000
-6fe4470e
-c3075696
-6a414a7b
-1a422600
-2040574c
-6fe0ca65
-203a574f
-67e0ca64
-1a60a601
-6fe14a7d
-9a667c00
-2421574f
-1a622400
-20205742
-df200001
-da204a65
-20206b62
-6fe0ca64
-1fe20400
-1fe17ef0
-203a5755
-1ff1fe00
-20205756
-18427e00
-1fe67c07
-2042fdcc
-20205697
-44cd4013
-20405add
-2040789a
-20404fdb
-20405132
-20405767
-204057b8
-20405815
-20404f42
-6fe4470e
-c4060000
-44cdc013
-20405b87
-20205bb0
-6fe4470e
-c294d76b
-c29bd76b
-20600000
-2040576d
-2020577e
-44ce4013
-da200000
-704a0f06
-6848c89d
-20405781
-67e0ca0d
-6fe0c89c
-c07fd77c
-20205203
-6fe0c89d
-c17f8000
-2040576d
-1a227e00
-c28357a4
-20205797
-6848c89d
-20404f0a
-1a227e00
-c28357a2
-20205797
-6fe4470e
-c296d78d
-6fe0ca0d
-1fe22600
-6fe0c89c
-c07fd242
-6fe0ca13
-243a578a
-2020578f
-70473400
-704a0d00
-20600000
-6fe0ca0d
-20205236
-20406ee0
-6848c89c
-2020d78d
-6848c89c
-20406ef1
-6848c89d
-6fe0ca0d
-20205236
-6fe0c734
-c1000000
-70473400
-6fe4470e
-c39a0000
-6fe0c731
-1fe67c14
-244157f6
-6fe0c502
-67e0c731
-20600000
-204057ae
-20740000
-6fe0c734
-c1008000
-70473401
-6fe4470e
-c29a54b2
-6fe0c720
-207a0000
-6fe0c653
-67e0c720
-20600000
-78547c00
-6fe4470e
-c3968000
-6fe0ca07
-207a0000
-6fe0ca08
-207a0000
-6fe0ca09
-207a0000
-20207dbc
-44cec013
-6fe4470e
-c4150000
-c30b57bf
-204057c2
-6fe0c665
-20205258
-204057c8
-6fe0c665
-2020525c
-6fe0c665
-2040525c
-6848c665
-20406ee0
-2020d7ce
-202057d2
-6fe0c665
-20405258
-6848c665
-20406ee0
-2020d7d2
-202057ce
-6fe0c678
-c1008000
-70467801
-202057d5
-6fe0c678
-c1000000
-70467800
-204057f0
-20205801
-44cf4013
-6fe4470e
-c4150000
-c30b57de
-204057e1
-6fe0c665
-20205258
-204057e7
-6fe0c665
-2020525c
-6fe0c665
-2040525c
-6848c665
-20406ee0
-2020d7f2
-202057ed
-6fe0c665
-20405258
-6848c665
-20406ee0
-2020d7ed
-202057f2
-6fe0c678
-c1000000
-70467800
-20405936
-202053c3
-6fe0c678
-c1008000
-70467801
-202057f0
-44cfc013
-6fe0c716
-c1008000
-20405803
-6048c678
-20405818
-204053c3
-20403745
-2040581a
-70475201
-20205571
-20405818
-20206c99
-6848c678
-18408401
-6fe4470e
-c287d80b
-18467c02
-20610000
-d8400001
-20600000
-6fe0c716
-1fe0ffff
-98467c00
-20610000
-d8400000
-20600000
-d8400001
-da204678
-da400000
-20206cc9
-6fe4470e
-c41a0000
-2020576b
-d8e00000
-2020582e
-d8e00000
-20205832
-d8e00003
-2020582e
-d8e00003
-20205832
-d8e00005
-2020582e
-d8e00005
-20205832
-d8e00013
-2020582e
-d8e00018
-2020582e
-d8e0000d
-2020582e
-d8e0000b
-2020582e
-d8e0001c
-2020582e
-6fe4470e
-f9207e00
-67e4470e
-20600000
-6fe4470e
-f93ffe00
-67e4470e
-20600000
-44d04014
-6fe0c73f
-1fe0ffff
-67e0c73f
-6848c678
-18467c01
-2442d803
-6048c678
-20405811
-204067c1
-20204e09
-44d0c014
-6fe0c9fa
-c1018000
-c1058000
-6fe4470e
-c41c0000
-6fe2465d
-207a0000
-204058e6
-58000003
-204058dc
-205a58d8
-245a58da
-58000002
-204058e1
-205a58d8
-6fe0c8fe
-c000d858
-6fe4470e
-c41c0000
-df200005
-d8a048fe
-20207ca3
-2040586c
-6fe148ff
-67e106e9
-6fe1465d
-67e106eb
-204058a2
-6fe106e9
-67e148ff
-6fe106eb
-67e1465d
-6fe14901
-67e106e9
-6fe1465f
-67e106eb
-204058aa
-6fe106e9
-67e14901
-6fe106eb
-67e1465f
-20600000
-6fe4470e
-c41c8000
-44d14014
-6fe148ff
-67e106f0
-2040587f
-67e148ff
-6fe1465d
-67e106f0
-2040588d
-67e1465d
-6fe14901
-67e106f0
-2040587f
-67e14901
-6fe1465f
-67e106f0
-2040588d
-2020586a
-6fe086f1
-203a5882
-20205887
-6fe086f0
-2040589a
-67e086f0
-6fe106f0
-20600000
-6fe086f0
-204058d4
-2040589a
-205a7dca
-204058d0
-20205885
-6fe086f1
-203a5890
-20205894
-6fe086f0
-2040589d
-67e086f0
-20205885
-6fe086f0
-204058d4
-2040589d
-205a7dca
-204058d0
-20205885
-1feffe04
-1fe6fc05
-2020589f
-1feffe0c
-1fe6fc0a
-20407d64
-1807fe00
-20600000
-6fe106e9
-684906eb
-9840fe00
-6848c903
-9840fe00
-1fe10401
-6048c903
-202058b2
-6fe106e9
-684906eb
-9840fe00
-6848c904
-9840fe00
-1fe10401
-6048c904
-202058b2
-67e186ed
-2feffe10
-2020d8bc
-6fe086ee
-c07fd8c3
-6fe086ed
-1fe37e00
-67e106e9
-67e106eb
-20600000
-6fe086ee
-c00058c0
-6fe186ed
-202058b8
-7006ef00
-6fe086ed
-202058b8
-6fe086ed
-204058ce
-67e086e9
-67e086eb
-203a58cc
-580000ff
-67e086ea
-67e086ec
-20600000
-58000000
-202058c9
-204058d4
-1fe37e00
-204058d5
-1fe67e00
-67e086f0
-20600000
-1fe67e00
-67e08662
-6fe08662
-20600000
-7048fe00
-20600000
-7048fe01
-20600000
-9a267c00
-24217dca
-9a467c00
-24217dca
-20207dcc
-9a267c00
-24610000
-9a467c00
-24610000
-20207dcc
-6fe1465d
-204058ed
-1fe22200
-6fe1465f
-204058ed
-1fe22400
-20600000
-67e106eb
-6fe086ec
-c07fd8f3
-6fe086eb
-1fe17eff
-20600000
-6fe106eb
-1fe67e00
-202058f1
-da604636
-da4058f9
-20203755
-6fe2462a
-67e245c6
-2020552c
-6fe0c738
-c0005904
-c000d906
-c0015901
-c001d908
-580ea600
-67e2462a
-20600000
-5805e740
-20205902
-580927c0
-20205902
-58124f80
-20205902
-44d1c014
-704ac400
-70461700
-20403620
-5fffffff
-67e445c6
-58000000
-67e3c65c
-70473701
-20405303
-20404e42
-20205af7
-44d24014
-6fe0c737
-245a591b
-70473700
-20600000
-704ac401
-20405263
-6fe4470e
-c41e0000
-6848c668
-20404f0a
-6848c669
-20204f0a
-20405927
-6fe0c737
-243a5b02
-202035e8
-6fe245ff
-684a45fb
-98467c00
-2022d92d
-704143ff
-20600000
-70414300
-704141aa
-20600000
-6fe0c141
-67e0c656
-20600000
-6fe0c656
-67e0c141
-20600000
-793f8026
-70461300
-d8e00001
-20205832
-6fe4470e
-c307d948
-20405a69
-20404e14
-20345988
-6fe4470e
-c298594d
-c318d94d
-204051a7
-1a217e07
-6848cabe
-98467c00
-2022d965
-2020594d
-6fe0c73f
-243a5836
-20600000
-20404e14
-20345956
-70467800
-6fe1471a
-67e145f5
-7045f901
-2020350a
-6fe145ed
-67e145f5
-7045f904
-2020350a
-6fe0c678
-c0005988
-204053c1
-20405936
-70467801
-204067d5
-20204dfa
-20404e14
-20344e35
-20205544
-20404e14
-20740000
-6fe4470e
-c29f5571
-20600000
-20405a69
-7045f900
-d8e00001
-2040582e
-58000000
-67e145f5
-20405562
-7045a001
-6fe4470e
-c30a326f
-7045a002
-2020326f
-2040592b
-20405933
-6fe0c617
-243a590a
-6fe0c5f9
-c0015980
-c000d980
-c002598c
-c001d991
-20405936
-6fe0c73f
-243a5836
-6fe0c678
-c0004e35
-20600000
-6fe4470e
-c29f5952
-c2985952
-c31d5988
-6fe246a3
-684a46f8
-98467c00
-2022d965
-6fe145f3
-67e145f5
-7045f903
-2020350a
-6fe4470e
-c31f597a
-6fe0c716
-c000d97a
-20205959
-6fe4470e
-c31f597a
-c288d97a
-c288597a
-c289597a
-20205952
-6fe245a6
-67e245ff
-67e246a3
-20403530
-20405535
-20405a62
-2040538d
-70473d00
-70461300
-7045f900
-6fe245ff
-684a45fb
-98467c00
-20628000
-2040592b
-20405933
-20205960
-2040592b
-20405933
-2040538d
-2040539e
-20405a62
-20405535
-d8e00001
-20405832
-58000000
-67e145ef
-67e145f5
-67e0c613
-67e0c8fd
-67e0c5f9
-6fe245a6
-67e245ff
-67e246a3
-20205571
-20407de6
-202023e1
-44d2c014
-c6930000
-20404f26
-24740000
-6fe0c73b
-70473b00
-245a59ba
-6fe4470e
-c30a59c7
-6fe0c72b
-243a59dc
-2040538e
-6fe0c5a0
-c280d9d6
-6848c531
-6fe0c65c
-9841fe00
-67e0c65c
-6848c536
-6fe0c661
-9840fe00
-67e0c661
-6848c537
-6fe0c662
-9840fe00
-67e0c662
-7045a001
-da200007
-da40465c
-6fe14661
-207a0000
-202036bb
-7045a002
-da200009
-20206852
-6fe0c752
-247a0000
-204059e3
-2020363b
-d8e0000c
-20407cf1
-247a0000
-20405776
-204054c9
-204059ed
-20405050
-d8e0000c
-580000a0
-20207ce3
-6fe4470e
-c4140000
-20204fdb
-20406f4b
-202068c4
-6fe0c8a1
-c17f8000
-6fe14741
-207a0000
-6fe1471e
-68494741
-98460400
-6fe148bb
-98467e00
-202159fe
-6848c8a1
-20205ab6
-6848c8a1
-20205ab5
-da6048bd
-da405a03
-20203755
-44d34014
-6fe4470e
-c28e5a0b
-6fe0c6a2
-c0005a13
-c000da15
-c0015a11
-20600000
-6fe0c6a2
-c0005a15
-c000da17
-c0015a11
-c001da13
-20600000
-58000002
-20205a19
-58000004
-20205a19
-58000006
-20205a19
-58000008
-20205a19
-67e0c8b8
-7048ab04
-20405a59
-7048a901
-20205a66
-6fe0cac4
-207a0000
-6fe0c8be
-203a5a03
-67e0c8bd
-20600000
-78547c00
-6fe0c8ab
-1fe67c04
-24628000
-20207dbc
-6fe4470e
-c4118000
-c4020000
-6fe0cac4
-207a0000
-20405a24
-20740000
-6fe0c8ba
-203a5a47
-6848c64d
-18408401
-6048c64d
-6fe0c8b4
-98467c00
-24415a3f
-6fe0c8b5
-98467c00
-24215a43
-6fe4470e
-c2925aaa
-6848c8a5
-20205ab5
-70464d01
-6fe0c8ba
-1fe0ffff
-67e0c8ba
-6fe4470e
-c2925abc
-6848c8a5
-20205ab6
-6fe4470e
-c2915a43
-20405a52
-20205a32
-7048a800
-20405ace
-7048ab00
-6fe0c8b4
-1fe37e00
-67e0c8b5
-20600000
-6fe0c8b9
-67e0c8ba
-20600000
-6fe0c8ab
-c000da5c
-c0015a5e
-c001da60
-6fe0c8b2
-67e0c8b3
-20600000
-6fe0c8af
-20205a5a
-6fe0c8b0
-20205a5a
-6fe0c8b1
-20205a5a
-44d3c014
-6fe0c8ad
-67e0c8ae
-7048a900
-7048aa00
-7048a801
-20600000
-44d44015
-20405a7c
-7048ab01
-6fe0c8ac
-207a0000
-6fe0c8b6
-20205a78
-4769c03a
-6fe4470e
-c4108000
-20405a7c
-7048ab03
-6fe0c8ac
-207a0000
-6fe0c8b7
-67e0c8b8
-20600000
-7048ac00
-7048ab02
-476a403a
-7048b30a
-7048a801
-7048a901
-20205aa9
-6fe0c8a8
-207a0000
-6fe0c8a9
-c000da8e
-6fe0c8ae
-203a5a8a
-1fe0ffff
-67e0c8ae
-20205aaa
-7048a800
-704ac401
-20405a52
-20205abc
-44d4c015
-6fe0c8ab
-207a0000
-c0025a96
-20205a93
-6fe0c8ac
-c000da96
-20205a98
-6fe0c8b8
-203a5ab7
-da6048b3
-da405a9b
-20203755
-6fe0c8ab
-c0025aa3
-6fe0c8ac
-c000daa3
-20405a55
-6fe0c8aa
-c000dab9
-20205aa7
-6fe0c8b8
-1fe0ffff
-67e0c8b8
-20205a9f
-6fe0c8ab
-c0025ad8
-7048aa01
-44d54015
-6fe0c678
-c0005ab0
-c000dab2
-c0015ab4
-20600000
-6848c8a2
-20205ab5
-6848c8a3
-20205ab5
-6848c8a4
-20206ef1
-20206eed
-7048a800
-7048ab00
-6fe0c8ab
-c0025ad3
-7048aa00
-44d5c015
-6fe0c678
-c0005ac2
-c000dac6
-c0015aca
-20600000
-6848c8a2
-6fe4470e
-c3105ab6
-20206f05
-6848c8a3
-6fe4470e
-c3105ab6
-20206f05
-6848c8a4
-6fe4470e
-c3105ab6
-20206f05
-20405ac2
-20405ac6
-20405aca
-20405a43
-20205ad3
-7048aa00
-6fe4470e
-c292dabb
-6848c8a6
-20205ab6
-7048aa01
-6fe4470e
-c292daa9
-6848c8a6
-20205ab5
-6fe4470e
-c4020000
-6fe0c64d
-6848c8b5
-1fe67c02
-20215ae9
-6fe0c678
-c0005ae6
-20206820
-6fe4470e
-c38c0000
-202036aa
-6fe0c678
-c00036bb
-20206822
-6fe08009
-202035a3
-20405aec
-202036c8
-6fe14500
-c4048000
-6fe0c882
-2fe00603
-2420fdca
-204037a0
-20207dcc
-44d64015
-20403694
-24740000
-70473b01
-2040369e
-7048f100
-20405b7f
-6fe0c737
-245a4e42
-6fe445c6
-202035fa
-6fe0c8fa
-203a35ee
-20403694
-24740000
-6fe0c8f1
-7048f100
-1fe67c00
-2422db0f
-68494639
-18467c00
-2022db22
-6fe248e6
-203a5b22
-684a48f6
-284ffe1f
-2020db2e
-6fe248e6
-9840fe00
-684a48cc
-98460400
-604a48f6
-24215b25
-6fe1c61f
-98467e00
-24215b2c
-d8400600
-98467c00
-24215b2c
-7048f0fa
-20407d27
-604a40a9
-20202406
-20405b29
-6fe1c61f
-20205b1e
-18460400
-6fe1c61f
-9840fe00
-20205b1e
-58000000
-67e248f6
-20600000
-7048f101
-20600000
-dfffffff
-98465e00
-6fe248e6
-9de67e00
-20205b14
-20405b35
-20205916
-6fe0c8fa
-207a0000
-6fe0c62f
-c000db7b
-6fe0c8df
-203a5b7b
-1b227e00
-684b48e0
-67e348e0
-20407d12
-67e248e6
-6fe0c8f1
-247a0000
-6fe14639
-247a0000
-6fe248f6
-247a0000
-6fe248e6
-684a48cc
-18438400
-98467c00
-20215b7f
-684ac8ea
-9840fe00
-67e2c8ea
-6848c8df
-6fe0c8ef
-98467c00
-2022db55
-18408401
-6048c8df
-20600000
-7048df01
-d8400000
-6fe2c8ea
-604ac8ea
-6848c8ef
-9846fc00
-20407d64
-1807a200
-6fe248cc
-6848c8f0
-98460400
-1a227e00
-98467e00
-20215b6f
-1fe67e00
-1feb7e00
-6849c61f
-98408400
-44d6c015
-6fe1c8dc
-da201800
-9a20fe00
-98467c00
-24215b79
-6049c61f
-20600000
-1feb0400
-6fe1c61f
-98460400
-44d74015
-6fe1c8dc
-da201800
-9a267e00
-98467c00
-20215b79
-20205b6d
-67e1c61f
-20600000
-7048df01
-1b227e00
-67e348e0
-20600000
-58000000
-67e0c8df
-67e2c8ea
-20600000
-6fe4470e
-c4060000
-704676a5
-20600000
-20405b8b
-6fe0c676
-c1ad0000
-202078f6
-44d7c015
-6848884a
-20406ee0
-2420dba4
-6fe0c676
-c12d0000
-7046765a
-58000000
-67e145ef
-67e145f5
-70409400
-2040712c
-20405936
-204053c3
-7855fc00
-2040538d
-58005bd7
-67e10837
-6fe0ca95
-67e08839
-d8c04a96
-d8a0083a
-df200009
-20407cdc
-20207902
-6fe0c677
-c1528000
-704676a5
-7008ec00
-7006e700
-7008de00
-6ff10050
-79207e0a
-67f10050
-70409401
-2040712c
-20205801
-6ff08c01
-67e0c675
-c4038000
-20405bc2
-24740000
-20404f26
-24740000
-6ff08c25
-c3810000
-20205bba
-6ff08c01
-c4038000
-44d84016
-6fe4470e
-c30a6856
-6fe0c72b
-c000e85b
-20206856
-20407dbe
-684a474b
-1c427e00
-98467c00
-24415bd1
-1fe22400
-6fe2474b
-6848c674
-98408400
-1a427e00
-98467c00
-24610000
-793ffe1c
-67e2474b
-20207dbc
-20628000
-79207e1c
-20600000
-58000000
-67e2474b
-20600000
-44d8c016
-20405be1
-20405bea
-20405be6
-6fe0ca9f
-207a0000
-d8c04a9f
-d8a007fb
-df20001e
-20207cdc
-704677c0
-6fe4470e
-c40a0000
-7046775a
-20600000
-20407956
-20403d20
-6fe0c677
-20203d2a
-20405bd4
-6fe4470e
-c28edbf1
-c28f5bf3
-c28fdbf5
-70467420
-20600000
-70467410
-20600000
-70467408
-20600000
-70467404
-20600000
-58005bfa
-67e143e4
-20600000
-20405bfc
-20600000
-44d94016
-da200000
-684a49f2
-1c422400
-1a427e00
-98467c00
-244177f4
-1a427e00
-18408408
-98467c00
-24215c0e
-1a20a201
-1a217e0f
-243a5c03
-da200000
-20405c13
-644249f2
-20600000
-1a227e00
-207a0000
-184085f8
-793f841c
-604a49f2
-67e0c9f6
-6fe0c9f6
-207a0000
-1fe0ffff
-67e0c9f6
-6fe149f7
-20407d7b
-20205c14
-44d9c016
-6fe0c9fb
-207a0000
-704a0000
-704a1700
-20405d0a
-20405ca3
-6fe0ca22
-247a0000
-20405d1b
-204023e1
-44da4016
-20405c2c
-20405c32
-20405c3f
-20405c77
-20205c7a
-da204a0d
-6fe0ca00
-9a20a200
-622149fd
-e8408011
-20206ef1
-6fe0c9fb
-207a0000
-6848ca00
-98467e00
-98007200
-da204a03
-6fe0ca00
-9a20a200
-efe08011
-20405cf3
-1a20a201
-c2005c3a
-20600000
-7049ff00
-6fe0c9fb
-6848ca00
-98467e00
-67e0ca19
-da204a03
-6fe0ca00
-9a20a200
-e8408011
-6048ca6d
-20405ce4
-24740000
-2040dc5c
-1a20a201
-6fe0c9ff
-1fe0fe01
-67e0c9ff
-6848ca17
-18408401
-6048ca17
-6848ca19
-98467c00
-24215c47
-6fe14a01
-207a0000
-67e14a67
-58000000
-67e14a01
-20600000
-62214a65
-6fe0c9ff
-1fe20e00
-6848ca01
-f9200400
-6048ca01
-6fe0ca00
-1fe20e00
-6848ca02
-f9200400
-6048ca02
-20405c6a
-6a214a65
-20600000
-68494a01
-da204a23
-efe10011
-207a0000
-98467c00
-2042dc72
-1a20a202
-20205c6c
-68e0ca17
-6fe44a55
-f9207e00
-67e44a55
-20600000
-6fe149fd
-efe0803f
-20205cf3
-6fe0ca00
-1fe0fe01
-67e0ca00
-6848c9fc
-98467c00
-24215c26
-6fe14a67
-203a5c8e
-67e14a1c
-6fe0ca1e
-243a5ca0
-6fe0ca1b
-c1008000
-704a1b01
-704a1e01
-44dac016
-20405c9c
-6fe14500
-c3858000
-20205db7
-6fe0ca1b
-c1000000
-704a1b00
-6fe14500
-c285dc96
-6fe08da0
-243a5c96
-20405db9
-58000000
-67e44a55
-67e0ca1e
-704a1f00
-da604bef
-2020618e
-20405d4c
-58000000
-67e14a1c
-20600000
-58000000
-67e14a67
-20600000
-da200000
-da400000
-18007000
-6fe0ca18
-98007200
-da604a0d
-20405d0b
-20405d10
-efe08013
-20405cf3
-20405d12
-20405d0d
-e8408013
-6048ca6d
-20405ce4
-24740000
-1a420e00
-2040dcdc
-2440dcde
-1a60a601
-1a40a401
-c2005ca9
-1a227e00
-203a5cc5
-67e0ca21
-6fe0ca1a
-c1008000
-704a1a01
-704a2201
-44db4016
-20405ccf
-6fe14500
-c3858000
-20205db7
-6fe0ca1a
-c1000000
-704a1a00
-6fe14500
-c285dccd
-6fe08da0
-243a5ccd
-20405db9
-704a2200
-20205c99
-20405cd2
-704a2100
-20600000
-6848ca21
-da204a4b
-da400000
-efe08011
-207a0000
-98467c00
-2022dd3f
-1a20a201
-1a40a401
-20205cd5
-f9202200
-20600000
-f93fa200
-20600000
-704a6b01
-20600000
-704a6c01
-20600000
-20407dbe
-704a6b00
-704a6c00
-6848ca6d
-20406ee0
-2040dce0
-200004b0
-6848ca6d
-20406ee0
-2040dce2
-6fe0ca6b
-6848ca6c
-98467c00
-24628000
-20207dbc
-67e0ca6e
-20405d07
-6fe0ca6e
-da600001
-1fe6fc02
-20407d64
-18078400
-18077e00
-245a5d05
-18427e00
-d8a0814d
-37d98200
-37d98200
-98a08a00
-efe08005
-9a61fe00
-e7e08005
-202023c4
-da600010
-20600000
-1fe1fe80
-d8400000
-20206f1c
-20206f4e
-1a627e00
-20205d15
-20405d18
-1fe22600
-20600000
-1a227e00
-20205d15
-20405d18
-1fe22200
-20600000
-1f00f001
-1fe25e00
-20600000
-1de27e00
-1f00f1ff
-20600000
-20405d21
-20405d24
-20405d0a
-580000f0
-67f08141
-202023c4
-6fe0ca18
-da204a0d
-20205d28
-6a40ca20
-6fe0ca18
-da204a0d
-20205d2e
-1fe27200
-e8408011
-20406f0b
-1a20a201
-c2005d29
-20600000
-1fe27200
-e8408011
-18437e00
-d8a00016
-98a08a00
-20405d3a
-e8408005
-9841fe00
-e7e08005
-1a20a201
-c2005d2f
-20600000
-1a427e00
-284c0000
-20608000
-1ff27e00
-20600000
-44dbc016
-1a427e00
-6848cc07
-9840fe00
-da604bf2
-9a60a600
-efe08013
-67e0ca1f
-1fe0ffff
-1feffe03
-da604bb0
-9a60a600
-20205d59
-68494a1c
-da204a23
-da400000
-efe10011
-207a0000
-98467c00
-2022dd56
-1a20a202
-1a40a401
-20205d4f
-44dc4017
-1a427e00
-20205d43
-44dcc017
-6fe0cc0b
-243a5d5e
-20405d61
-2020618e
-6fe0cc09
-207a0000
-20205d5c
-efe08013
-1a60a601
-c0005d68
-c000dd6a
-c0015d6c
-c001dd6e
-20600000
-704a6f00
-20600000
-704a6f01
-20600000
-704a6f02
-20600000
-704a6f03
-20600000
-44dd4017
-204061a2
-24740000
-67e0cc08
-6fe0ca1f
-205a5e05
-6fe14500
-c304dd7e
-6fe0ca6f
-c0005d88
-c000dd9c
-c0015da9
-c001dd7e
-20600000
-6fe0ca1f
-c0005e05
-6fe0cc08
-1fe0ffff
-1feffe03
-d8404b80
-98408c00
-efe10006
-e8408006
-20205e01
-20402a06
-247a0000
-6fe0cc08
-1fe0ffff
-1feffe03
-d8404b10
-98408c00
-df200003
-d8a0064e
-20407cdc
-704c0a03
-68494c0e
-6fe0cc09
-207a0000
-6a20cc0a
-20402dcc
-6848cc0a
-18427200
-d8c0064e
-20207cdc
-20402a06
-247a0000
-6fe0cc08
-1fe0ffff
-1feffe04
-d8404b40
-98408c00
-df200004
-d8a0064e
-20407cdc
-704c0a04
-68494c12
-20205d94
-20402a06
-247a0000
-6fe0cc08
-1fe0ffff
-1feffe0a
-d8404a70
-98408c00
-efe10006
-df200008
-d8a0064e
-20407cdc
-704c0a08
-68494c0c
-20205d94
-da200000
-202077a8
-da200000
-202077ad
-67e10d96
-60488d98
-18007000
-20405dcd
-20405dd9
-6fe08d96
-20405de5
-6fe08d97
-20405de5
-6fe08d98
-20405de5
-6fe08d98
-1fe47e00
-20405de5
-5800023a
-20405dde
-58000001
-20205ddc
-58000000
-204070bc
-20407103
-20405dd3
-6fe0ce33
-20207100
-da20009d
-da40009d
-dfe00000
-204070de
-70809a00
-20600000
-58002328
-20405dde
-58001194
-70809a00
-20205de0
-70809a01
-20205de0
-207a0000
-1fe0ffff
-20000008
-243a5de1
-20600000
-df200008
-20405d15
-20405dec
-20405d18
-1fe37e00
-c2005de6
-20600000
-c3005def
-c2805df2
-20600000
-da20023a
-da400226
-20205df5
-da20023a
-da400690
-20205df5
-1a227e00
-20405dde
-1a427e00
-20205ddc
-58002328
-20405dde
-580008ca
-20405ddc
-58000230
-20405dde
-58000001
-20205ddc
-20405dbb
-20405e0c
-700d9410
-20600000
-20405e10
-20407103
-6fe0ce33
-d840003e
-20206f1d
-d840003f
-20206f1d
-5800002b
-67e08d95
-67e08d94
-20600000
-58000000
-20205e0d
-6ff10120
-68590066
-98467e00
-24215e17
-20600000
-68590120
-6ff10066
-98460400
-58000100
-98467e00
-20600000
-6ff10066
-e841803f
-60488dd2
-184c8400
-60488dd3
-184c8400
-60488dd4
-6fe08dd2
-1fe17e80
-c0c05e28
-20205e33
-6fe08dd2
-67e08dd5
-6ff10066
-68590064
-98467e00
-20215e5b
-6ff10066
-1fe0fe01
-67f10066
-700dd801
-20600000
-6fe08dd4
-1fe17e80
-c0405e46
-6fe08dd3
-1fed7e00
-1fe37e00
-68488dd2
-1841047f
-9841fe00
-67e10dd5
-6ff10066
-68590064
-98467e00
-20215e5b
-6ff10066
-1fe0fe02
-67f10066
-700dd802
-20600000
-6fe08dd4
-1fe17e7f
-1ff07e00
-1fe32200
-6fe08dd3
-1fed7e00
-1fe37e00
-68488dd2
-1841047f
-9841fe00
-9a21fe00
-67e18dd5
-6ff10066
-68590064
-98467e00
-20215e5b
-6ff10066
-1fe0fe03
-67f10066
-700dd803
-20600000
-d8400a88
-9840fe00
-67f10066
-20600000
-58000b88
-67e10dcc
-67e10dd0
-20600000
-20405e6c
-6fe08dd5
-68490ddc
-9840fe00
-67e10ddc
-58000000
-67e18dd5
-67e08dd8
-20600000
-6fe08db7
-1fe67c14
-20628000
-1fe0fe01
-67e08db7
-6fe08dd5
-68490db5
-e7e08002
-18408401
-60490db5
-20600000
-6ff20100
-684a0dde
-98467e00
-20600000
-684a0de6
-98467c00
-20600000
-6ff20100
-67e20dde
-5800026c
-67e20de6
-20600000
-6fe08d93
-207a0000
-1feffe04
-1fe0fff6
-1fe27200
-67e08c90
-d8c00b88
-18c08c06
-d8a00c93
-20207cdc
-704db528
-6fe14df2
-67e14db6
-58000a24
-67e14db8
-6fe24dad
-67e24dc0
-6fe24db1
-67e24dc4
-6fe0cdc4
-1febfe00
-d8404c49
-98408400
-efe20002
-67e24dbc
-704dd001
-20405f3c
-6fe24dd1
-684a4dc0
-98467e00
-67e24dd9
-20405ed7
-20405ede
-704dbb00
-6fe24dbc
-1fe97e00
-67e24dc8
-20405ee5
-6fe24dbc
-1fe37e00
-67e24dbc
-20405ef3
-6fe24dbc
-1fe37e00
-67e24dbc
-20405efb
-20405f03
-20405f0e
-6fe0cdbb
-6848cdba
-9841fe00
-67e0cdbb
-6fe0cdbb
-d8404c39
-98408400
-efe08002
-20405f49
-684a4dc4
-9840fe00
-67e24dc4
-20405f1b
-20405f20
-6fe24dc4
-1febfe00
-d8404c49
-98408400
-efe20002
-67e24dbc
-20405f2a
-6fe0cdd0
-d8400001
-9842fe00
-67e0cdd0
-6fe0cdb5
-1fe0ffff
-67e0cdb5
-243a5e9d
-6fe0cdd0
-205a5f3a
-6fe24dc0
-67e24dad
-6fe24dc4
-67e24db1
-20600000
-6fe24dd9
-c28fdedc
-58000000
-67e0cdba
-20600000
-58000008
-20205eda
-6fe0cdba
-243a5ee1
-20600000
-6fe24dd9
-1fe67e00
-67e24dd9
-20600000
-6fe24dd9
-684a4dbc
-98467e00
-c38f8000
-704dbb04
-6fe24dd9
-684a4dbc
-98467e00
-67e24dd9
-6fe24dc8
-684a4dbc
-9840fe00
-67e24dc8
-20600000
-6fe24dd9
-684a4dbc
-98467e00
-c38f8000
-6fe0cdbb
-1fe1fe02
-67e0cdbb
-20205eea
-6fe24dd9
-684a4dbc
-98467e00
-c38f8000
-6fe0cdbb
-1fe1fe01
-67e0cdbb
-20205eee
-6fe0cdba
-203a5f0a
-6fe24dc0
-684a4dc8
-98467e00
-67e24dc0
-20600000
-6fe24dc0
-684a4dc8
-9840fe00
-20205f08
-6fe24dc0
-d8407fff
-98467e00
-c30fdf17
-6fe24dc0
-d85f8001
-98467e00
-c28fdf19
-20600000
-58007fff
-20205f08
-5fff8001
-20205f08
-6fe24dc4
-d8400000
-98467e00
-c28fdf25
-20600000
-6fe24dc4
-d8400058
-98467e00
-c30fdf28
-20600000
-58000000
-67e24dc4
-20600000
-58000058
-20205f26
-6fe0cdd0
-203a5f30
-6fe0cdbb
-1fe17e0f
-67e24dd5
-20600000
-6fe0cdbb
-1ff27e00
-1fe17ef0
-684a4dd5
-9841fe00
-68494db8
-e7e08002
-18408401
-60494db8
-20600000
-6fe24dd5
-20205f35
-68494db6
-efe10002
-18408402
-60494db6
-20405f43
-67e24dd1
-20600000
-c287df45
-20600000
-d840ffff
-18500400
-9842fe00
-20600000
-c283df4b
-20600000
-d85fffff
-184d0400
-20205f47
-da200014
-68494df4
-20402dcc
-d8c04dde
-df200014
-20207cdc
-70064e01
-704c0a01
-68494df8
-20205d94
-70064e00
-20205f55
-da200014
-68494df6
-20205f50
-58000221
-67e1864e
-704c0a03
-68494dfa
-20205d94
-5800cccc
-20205f5e
-44ddc017
-1a220c00
-efe08006
-c1dd0000
-efe08006
-67e0ce51
-c0085f77
-c008df7f
-c00adf86
-c00b5fb2
-c00bdfbf
-c00c5fcd
-5fffffff
-67e14e35
-58000000
-67e24e43
-67e14e37
-704e5200
-20600000
-da200005
-20405fc4
-6fe14e48
-e7e10005
-704e6501
-6fe44e5c
-67e442d5
-20202e71
-da200007
-20405fc4
-6fe14e4a
-e7e10005
-6fe14e4c
-e7e10005
-20600000
-efe08006
-67e0ce47
-c0005f92
-da200004
-704e5203
-20405fc5
-6fe0ce47
-20207dce
-da200004
-20405fc4
-6fe0ce47
-20207dce
-20405f8e
-20405f70
-58000000
-67e1ce6b
-704e6601
-58000000
-d8400010
-da200c8c
-20406c43
-20405fa8
-6a21ce68
-df200009
-18007000
-2040608e
-6221c430
-2040609f
-20406bee
-204060a1
-58001000
-9a20a200
-c2005f9f
-20600000
-4778c03e
-6849ce75
-6049ce68
-6049ce40
-6fe08c8c
-c1300000
-6849ce72
-6049ce68
-6049ce40
-20600000
-68494337
-184085f8
-6fe14e37
-9840fe00
-67e14e37
-18427200
-1a220c00
-18c08c05
-20406052
-6fe14e35
-1fe0fe01
-67e14e35
-20600000
-20405fb2
-704e5200
-704e5117
-da200003
-20205fc5
-704e5200
-68494e4f
-20402dcc
-580000ab
-e7e08005
-6fe0ce52
-e7e08005
-6fe0ce51
-20207dce
-18007000
-20406097
-20405ff2
-704e6600
-58000000
-67e1ce6b
-67e24e43
-20406007
-20406099
-18c08c01
-efe20006
-67e2064e
-efe20006
-67e20652
-6fe2064e
-684a4e37
-98467c00
-2422dfee
-6fe24e43
-684a0652
-98467c00
-2422dff0
-20406070
-704e6402
-da20000c
-20405fc5
-6fe0ce47
-e7e08005
-6fe24e37
-e7e20005
-6fe24e43
-e7e20005
-20600000
-704e5205
-20205fe5
-704e5207
-20600000
-6fe0ce66
-207a0000
-20406001
-20610000
-68494e6e
-204060a7
-18427200
-d8a00c8c
-20406061
-2040608e
-204060a9
-204060a7
-20406041
-204060a9
-2020603d
-6fe14e6e
-d8400100
-98467c00
-20600000
-df200100
-20206017
-6fe14e37
-68494e6b
-98467e00
-20628000
-20405d15
-2040601d
-20405d18
-20406013
-6fe24e43
-9840fe00
-67e24e43
-20206007
-d8400100
-98467c00
-20216005
-1fe27200
-d8c00c8c
-d8400000
-efe08006
-98408400
-c2006019
-20600000
-d8400100
-98467c00
-2021602b
-20405d15
-1fe27200
-20406026
-20405d18
-1fe20400
-2020603d
-6fe1ce68
-6a41ce6b
-9a40fe00
-da200c8c
-20206c43
-d8400100
-20406026
-d8400100
-2020603d
-6fe0ce66
-245a6032
-20600000
-6fe0ce66
-207a0000
-20406001
-24610000
-df200100
-d8a00c8c
-20406061
-2040608e
-d8400100
-20406041
-d8400100
-6fe14e6b
-9840fe00
-67e14e6b
-20600000
-6fe1ce68
-6a41ce6b
-9a40fe00
-da200c8c
-20206c29
-580006ef
-68494e70
-184085ff
-1fe20a00
-18a08bf8
-e7e10005
-9840fe00
-e7e10005
-98467e00
-e7e10005
-e7e10005
-20600000
-20406097
-44de4017
-6fe14e6e
-9f20fe00
-67e14e6e
-580006ef
-204060ac
-20406099
-204060c0
-6fe14e6e
-68494e70
-98467c00
-20416060
-20600000
-20600000
-2040609b
-6fe14e6e
-9f267e00
-67e14e6e
-580006ef
-204060b6
-2040609d
-18627e00
-98467c00
-2022a33e
-efe08003
-e7e08005
-c200606b
-e0610011
-20600000
-20406079
-58000000
-20406085
-44dec017
-6fe08c8c
-c030607d
-c0786077
-6fe1ce72
-2020607e
-58000000
-d8400100
-da200c8c
-20206c43
-6fe1ce75
-1fe0fe02
-1ff0fe00
-67e10c8c
-d8400100
-da200c8c
-58000000
-20206c29
-67e1c430
-2040608e
-20406c16
-20406c1c
-da2001bc
-70808204
-6fe1c430
-d8400081
-20206c36
-580001bc
-67f10084
-580001c1
-67f10086
-70808300
-58000005
-20406bcd
-c280608e
-20600000
-18c27e00
-20205d15
-20405d18
-20207c6a
-18a27e00
-20205d15
-20405d18
-20207c67
-204060a5
-20205d10
-20405d12
-20405d18
-1fe27200
-20600000
-1f227e00
-20205d15
-18427e00
-20205d15
-20405d18
-1fe20400
-20600000
-1fe0fff8
-e941003f
-1fe0fe02
-ea01003f
-1fe0fe02
-e841003f
-1fe0fe02
-e861003f
-1fe22200
-20600000
-1fe0fff8
-e941003f
-1fe0fe02
-ea01003f
-1fe0fe02
-e861003f
-1fe22200
-1fe0fe02
-e841003f
-20600000
-efe08006
-e7e08003
-c20060c0
-e0610011
-18627e00
-98467c00
-2022a33e
-20600000
-20407384
-20758000
-58006143
-67e143e4
-580060f3
-67e143e6
-580061a7
-67e143e8
-5800612a
-67e143ec
-58006182
-67e1453b
-204060dc
-44df4017
-204061b3
-6fe0c531
-c00060ea
-6fe0c532
-67e0c503
-202061be
-58006147
-67e143de
-58006145
-67e143e0
-5800615d
-67e14536
-580061b7
-67e14538
-70416007
-20402948
-204061aa
-2040705b
-2040789d
-2020779a
-704503ff
-70453301
-2020615d
-6fe0c533
-c001377d
-20406945
-6fe0c458
-243a377d
-2020377f
-1a627e00
-c00a60fc
-c00ae100
-c01fe103
-c020610b
-c00861d3
-c0166111
-c016e11c
-20600000
-2040614a
-58000000
-67e1450f
-2020379a
-2040789d
-70450800
-2020615d
-2040789d
-70450801
-204065b3
-204037a0
-243a632b
-6fe44ecb
-67e442d5
-20202e71
-6fe14340
-c1000000
-6fe44521
-207a0000
-67e442d5
-20202e71
-6fe0c531
-c1000000
-6fe0c533
-c1808000
-20406117
-20203798
-70469c01
-df20000b
-d8a0469d
-d8c04686
-20207cdc
-6fe0c531
-c1000000
-6fe0c533
-c000e121
-202061cf
-6fe0c69c
-c1808000
-70469c00
-6fe14500
-c284b79a
-df20000b
-d8c0469d
-d8a04686
-20207cdc
-2040612d
-20406134
-2020613e
-da60452f
-da406130
-2020375c
-70453302
-2040379a
-2040616b
-202061bb
-da6046a9
-da406137
-20203755
-6fe14500
-c284e1bb
-6fe0c686
-c000e1bb
-c00261bb
-c002e1bb
-2020379c
-6fe0c533
-c1808000
-da60450f
-da40614e
-2020375c
-20406193
-2020708b
-20406f32
-2020707f
-704503ff
-20406f32
-20207388
-6fe1452b
-67e1452d
-67e1452f
-2020378a
-6fe0c533
-c1808000
-6fe14500
-c3848000
-6fe14529
-67e1452d
-67e1452f
-6fe1450b
-204061e4
-20403796
-6fe24515
-67e24689
-6fe14500
-c3858000
-2020378c
-6fe0c533
-c1808000
-6fe1450f
-6849450d
-6049450f
-247a0000
-6fe14509
-204061e4
-20403796
-6fe24511
-67e24689
-6fe14500
-c3858000
-2020378c
-6fe14500
-c284b794
-2020614a
-20407dbe
-6fe14500
-c284e172
-20600000
-6fe0c508
-207a0000
-20207dbc
-20407dbe
-6fe14500
-c3848000
-20207dbc
-2020615d
-78567c00
-6fe1452d
-67e1452f
-20406175
-20346179
-2040616e
-24740000
-20207dc0
-2040617a
-24760000
-1a227e00
-203a6189
-20403798
-da60453f
-2020618b
-2040379a
-da60454e
-dfe00005
-98effe00
-9a60a600
-efe08013
-207a0000
-2040619f
-1a60a601
-2020618e
-6fe14500
-c284e196
-20600000
-20402a06
-247a0000
-204061a2
-24740000
-1fe0ffff
-1feffe05
-d840455d
-98408c00
-202061e8
-67e0864e
-da20064e
-202078a2
-da20064e
-204078ba
-24740000
-6fe0864e
-20600000
-6fe1439c
-c00c6103
-20600000
-7046a802
-58200008
-67e24519
-592c0005
-e7e20005
-7042e317
-5800001b
-67e14334
-20202a1f
-df200028
-d8a0455d
-d8c097bd
-20207cce
-da200000
-da604691
-204077b8
-2040616b
-6fe0c6a8
-67e0c6a9
-20600000
-58000000
-204061ca
-7044fb01
-20407764
-2040776e
-6fe0c6af
-203a61c7
-6ff08132
-c28261d6
-6fe14500
-c3860000
-2020379c
-68494447
-e7e08002
-efe08005
-67e0c502
-20600000
-6fe14447
-efe0803f
-c1800000
-2020379c
-68494447
-efe08002
-c000e1de
-58000001
-68494447
-e7e08002
-18408c02
-efe08006
-e7e08002
-efe10006
-20207d7b
-58000002
-204061ca
-18408c05
-efe10006
-203a379c
-20207d7b
-67e140a4
-1fe0fffc
-67e1438d
-20600000
-efe08006
-1fe22200
-e8410006
-20407c6f
-20402dcc
-1a227200
-20407c69
-20207cdc
-58009684
-67e142f9
-20600000
-6fe146aa
-67e1453d
-6fe0c6ac
-67e0c688
-67e0c693
-6fe0c6ad
-67e0c531
-6fe0c6ae
-67e0c532
-58000002
-67e1453f
-58000001
-67e14544
-58000006
-67e1454e
-67e14553
-58004533
-67e14447
-58201400
-67e1c533
-70409401
-58000100
-67e140a4
-7040a608
-7040c005
-7040c102
-58000096
-67e14511
-e7e10005
-58000296
-67e14515
-e7e10005
-38000010
-38048008
-380ac000
-380c0004
-67e44521
-70450501
-58004686
-67e14506
-58000000
-67e14686
-380001a0
-38040068
-38080000
-380c0000
-67e44689
-58000301
-67e14691
-380001a0
-380400e8
-38080000
-380c0000
-67e44694
-5800000e
-67e14509
-58000140
-67e1450b
-67e1438d
-58000050
-67e1450d
-70439707
-70438c00
-380000fb
-3806c212
-3808800f
-380c0021
-67e443c4
-38000bb8
-380402ee
-67e24529
-580045b7
-67e14404
-58002001
-67e145b7
-70434c1f
-38010102
-380480c1
-38098120
-380c640c
-67e4c34d
-380003c1
-e7e10005
-70436c1f
-3802090d
-38074c15
-380a8532
-380dd1d5
-67e4c36d
-38026574
-3804001c
-e7e18005
-5800453a
-67e14443
-70453a02
-580045dc
-67e14401
-70440305
-6fe0c6b0
-c00061f0
-c000e283
-20600000
-6fe34eab
-67e3453d
-70453a06
-5800453a
-67e14443
-20600000
-6fe3ceab
-67e3c53d
-70453a07
-5800453a
-67e14443
-20600000
-6fe44eab
-67e4453d
-70453a08
-5800453a
-67e14443
-20600000
-6fe0ceaa
-c0036259
-c003e25f
-c0046265
-20600000
-44dfc017
-6fe44edb
-67e44529
-58000096
-67e1450d
-6fe3cee5
-67e3c686
-6fe3ceec
-67e3c691
-6fe24ef3
-67e24511
-6fe24ef7
-67e24515
-5800000e
-67e14509
-58000140
-67e1450b
-67e1438d
-20600000
-580047a7
-67e142f9
-20600000
-20407384
-20758000
-2040626b
-20406270
-580062c1
-67e143e4
-5800631a
-67e143e6
-58006548
-67e143e8
-580062f2
-67e143ec
-5800634d
-67e1453b
-580062ab
-67e143de
-580062a9
-67e143e0
-5800615d
-67e14536
-580061b7
-67e14538
-70416007
-20402948
-204061aa
-2040705b
-2040789d
-2040779a
-6fe14f12
-67e14334
-6fe44521
-67e44519
-204062cb
-44e04018
-202060d7
-20406f32
-2020707f
-704503ff
-20406f32
-204062af
-20207388
-6fe0c6ad
-207a0000
-6fe0ceaa
-1fe27200
-da20453d
-efe08011
-6848c6ae
-98467c00
-2022e2bc
-1fe67cff
-2022e2bc
-1fe20400
-204062bf
-1a20a201
-c20062b4
-20600000
-79200407
-20206ed7
-204062d8
-d8e00009
-20407cf1
-247a0000
-58000020
-d8e00009
-20407ce3
-78547c00
-2040707f
-202063b7
-5800002b
-1feffe0a
-d8404c4b
-9840a200
-1a20a203
-d8400fff
-e0408011
-1a20a20b
-dfe00fff
-98467e00
-1ff27e00
-e7e10011
-20600000
-6fe14500
-c284e2dd
-d8a045b9
-df200023
-20207ca3
-20402a06
-247a0000
-204078ea
-207a0000
-684a4959
-1c427e00
-98460400
-20628000
-242162e9
-6fe0c958
-98467c00
-20610000
-1c427e00
-67e24959
-204061a2
-24740000
-1fe0ffff
-1feffe0a
-d8404c4b
-98408c00
-202061e8
-204066d9
-204065ef
-204065dd
-204062f9
-2040630e
-2040612d
-20206314
-da604e88
-da4062fc
-20203755
-204078ea
-247a0000
-6fe146bf
-247a0000
-204065b3
-207a0000
-18e27e00
-2fe00e04
-2020e30a
-18e27e00
-2fe00e01
-2020e30c
-da604e7d
-2020618e
-da604e96
-2020618e
-da604ea0
-2020618e
-da604c48
-da406311
-20203755
-df20000a
-d8a04967
-20207ca3
-da6046a9
-da406317
-20203755
-6fe14500
-c284e1bb
-2020379c
-1a627e00
-c00a633c
-c00ae337
-c018e32e
-c0206322
-c1200000
-c019654b
-202060f3
-6fe14340
-c1000000
-6fe44521
-207a0000
-204065b3
-243a632b
-6fe44ecb
-67e442d5
-20202e71
-6fe44ed3
-67e442d5
-20202e71
-704e8901
-20406606
-6fe14eff
-67e14e75
-68494f01
-58000fff
-98467e00
-67e14e77
-20600000
-704e7200
-704e8900
-204063f6
-20406348
-20206100
-1c427e00
-67e24959
-204065ac
-202060fc
-78567c00
-6fe1452d
-67e1452f
-20406175
-20346179
-2040616e
-24740000
-20207dc0
-704e8c00
-20600000
-18e27e00
-c1808000
-20206354
-20406340
-24760000
-1a227e00
-203a637f
-44e0c018
-6fe0cf2a
-243a634a
-704c4901
-20403798
-20406374
-204063a9
-20216348
-18e27e00
-6848ce8c
-98467c00
-2442e36e
-18e27e00
-67e0ce8c
-6848ce8f
-98467c00
-2022e36c
-6fe0ce90
-243a6367
-204065b5
-dfe0000a
-202063a2
-20406602
-18e27e00
-c000e364
-2040648c
-2020643d
-704e8d01
-2020643d
-44e14018
-6fe0ce90
-203a6300
-18e27e00
-c000e300
-20600000
-dfe0000a
-98effe00
-da60495d
-9a60a600
-1c427e00
-e7e20013
-1a60a604
-efe08013
-1fe0fe01
-e7e08013
-20600000
-44e1c018
-6fe0ce90
-205a6393
-dfe0000a
-98effe00
-da60495d
-9a60a600
-e8420013
-18467c00
-20628000
-1c427e00
-98460400
-244177f4
-1a608c09
-efe08006
-243a63ae
-1a60a605
-1c427e00
-e7e20013
-20600000
-6fe0cf2a
-243a3798
-2020379a
-1a608c04
-efe08006
-20206399
-204063b4
-6fe0ce90
-243a63a5
-204063a9
-20216348
-204065bb
-18e27e00
-c001e5c3
-dfe0000f
-98effe00
-9a60a600
-2020618e
-18e27e00
-c000e39c
-c001e39c
-20600000
-204078f2
-e8408006
-98467e00
-1fe67c0a
-20600000
-704e8701
-204063b4
-204065ec
-da604ab3
-dfe00003
-202063a2
-df20000a
-1a620a00
-20207ca3
-6fe146bf
-67e14445
-20406407
-6fe14445
-67e146bf
-d8e00000
-6fe0c53a
-1fe27200
-da60495d
-1f227e00
-67e10656
-1a627e00
-67e1066a
-18e27e00
-67e10658
-204063fd
-6fe1066a
-1fe22600
-6fe10658
-1fe20e00
-204063d4
-6fe10658
-1fe08e01
-6fe1066a
-1fe0a60a
-6fe10656
-1fe27200
-c20063c0
-20600000
-efe20013
-207a0000
-1fe20400
-1c427e00
-98460400
-24610000
-580009c4
-98467c00
-20610000
-1c427e00
-e7e20013
-1a60a609
-58000001
-e7e08013
-6fe0ce87
-207a0000
-704e8700
-44e24018
-204065d8
-6fe0ce8e
-c00063eb
-c000e3ee
-20600000
-204063f8
-dfe00003
-202063a2
-18e27e00
-6848ce8f
-98467c00
-2422e3eb
-6fe0ce90
-79407e00
-67e0ce90
-247a0000
-704e9000
-2020379a
-da604a98
-204065b3
-207a0000
-da604bfd
-20600000
-1a60a405
-efe20012
-207a0000
-1fe20400
-1c427e00
-98460400
-244177f4
-580003e8
-98467c00
-20206396
-6fe14443
-efe0803f
-207a0000
-58000000
-67e106cf
-20407067
-24347793
-20407791
-78547c00
-6fe0c38c
-247a0000
-44e2c018
-6fe0ce8e
-c000e418
-20406472
-20406425
-20740000
-2040641e
-6fe106cf
-67e106d6
-7006d800
-18000e00
-2020709f
-6fe0ce8c
-6848ce8f
-98467c00
-2022b798
-6fe0ce90
-243a379a
-20600000
-d8e00000
-da404ace
-dfe00002
-98effe00
-9a40a400
-efe10012
-207a0000
-684906cf
-9842fc00
-2022e431
-18e08e01
-20206426
-67e14ada
-20403798
-da604adc
-dfe0000a
-98effe00
-9a60a600
-20406439
-2020647d
-20406602
-efe08013
-207a0000
-2040648c
-20406602
-204065b3
-243a6444
-dfe0001c
-2040619f
-dfe0001d
-2020619f
-20406453
-2040645e
-20406468
-dfe00029
-2020619f
-6848ce71
-204065b3
-207a0000
-6848ce74
-18408401
-6fe0ce8d
-207a0000
-6848ce71
-704e8d00
-20600000
-20406449
-18427e00
-207a0000
-67e0ce7a
-dfe0002b
-2040619f
-6fe0ce7a
-1fe0ffff
-67e0ce7a
-207a0000
-20206457
-6fe0ce73
-207a0000
-67e0ce7b
-dfe0002c
-2040619f
-6fe0ce7b
-1fe0ffff
-67e0ce7b
-207a0000
-20206461
-6fe0ce74
-207a0000
-67e0ce7c
-dfe0002d
-2040619f
-6fe0ce7c
-1fe0ffff
-67e0ce7c
-207a0000
-2020646b
-6fe14ada
-207a0000
-684906cf
-18467c00
-2022e480
-98467c00
-20628000
-60494ada
-6fe14e8a
-98467c00
-2042b79a
-6fe106cf
-67e14445
-20207dbc
-704e8701
-2040379a
-da604b18
-20406439
-58000000
-67e14ada
-7046b132
-2040647d
-6fe0c53a
-1feff20a
-d8a0495d
-20207ca3
-44e34018
-6fe0ce8e
-c000e491
-c0006497
-20600000
-18e27e00
-c002e4c0
-c0006507
-c002650f
-c0016539
-20600000
-efe08013
-c000e4c0
-c0016507
-c001e50f
-c0026539
-c002e49e
-20600000
-204065b3
-243a64a8
-5800001b
-1feffe0a
-d8404c4b
-98408a00
-18a08a05
-6fe24b22
-e7e20005
-20600000
-58000029
-1feffe0a
-d8404c4b
-98408a00
-18a08a03
-6fe14e75
-e7e18005
-18a08a07
-6fe14e77
-1ff27e00
-1fed7e00
-e7e18005
-20600000
-6fe0ce73
-207a0000
-1fe0ffff
-67e0ce73
-dfe00fff
-20600000
-d8400055
-204065b3
-207a0000
-d8400007
-20600000
-204064bb
-6fe14e75
-98467c00
-244164b5
-24610000
-98467e00
-67e14e75
-44e3c018
-204065b3
-203a64e2
-6fe14e75
-68494e77
-184d0400
-18520400
-9840fe00
-67e1cb22
-204064d2
-202064da
-58000028
-1feffe0a
-d8404c4b
-98408a00
-18a08a03
-6fe1cb22
-e7e18005
-20600000
-58000029
-1feffe0a
-d8404c4b
-98408a00
-18a08a03
-6fe1cb22
-e7e18005
-20600000
-6fe14e75
-68494e77
-18500400
-9840fe00
-67e24b22
-204064e9
-202064f1
-5800001b
-1feffe0a
-d8404c4b
-98408a00
-18a08a05
-6fe24b22
-e7e20005
-20600000
-5800001c
-1feffe0a
-d8404c4b
-98408a00
-18a08a05
-6fe24b22
-e7e20005
-20600000
-6fe14e75
-d8400fff
-98460400
-24610000
-18427e00
-6848ce73
-18467c03
-2022e504
-18408401
-6048ce73
-202064c6
-704e7300
-dfe00000
-202064c6
-204065b3
-245a64f9
-204064bb
-6fe14e75
-9840fe00
-d8400fff
-20407d6e
-202064c6
-204065b3
-203a6523
-204064bb
-6fe14e77
-98467e00
-67e14e77
-68494e77
-58000fff
-98467e00
-d8400fff
-98460400
-242164c7
-58000fff
-98467e00
-6848ce74
-18467c05
-2022e52a
-18408401
-6048ce74
-20206537
-204064bb
-6fe14e77
-98467c00
-24610000
-98467e00
-67e14e77
-202064c7
-704e7400
-58000fff
-20206537
-204065b3
-203a652b
-6fe0ce74
-203a652b
-1fe0ffff
-67e0ce74
-5800ffff
-d8400fff
-98467e00
-9a20fe00
-67e14e77
-202064c7
-204065b3
-203a6542
-204064bb
-6fe14e77
-9840fe00
-d8400fff
-98462200
-2041652d
-20206537
-204064bb
-6fe14e77
-9840fe00
-d8400fff
-20407d6e
-20206537
-6fe1439c
-c0126103
-20600000
-da200017
-da400004
-204029d9
-58000006
-e7e08005
-58000001
-e7e10005
-5800ffff
-e7e10005
-58002800
-e7e10005
-d8c04947
-20207c91
-44e44019
-1a220c00
-efe18006
-67e1c39b
-c003e587
-c000e5a8
-c0056577
-c0066561
-20202b76
-efe10006
-67e10693
-98002200
-6849439c
-6fe14334
-98467c00
-2422ad2e
-204065b3
-243a656c
-68494943
-2020656d
-68494945
-d8c046c1
-20407c6f
-18427e00
-9a267e00
-24212de1
-1fe0fe01
-1fe67c17
-20212d37
-18007e17
-20202d37
-6849439c
-6fe0c323
-c281e57b
-20202cfb
-6fe14334
-98467c00
-2422acfb
-20402da5
-24346581
-20202d24
-6fe14334
-98467c00
-2422acfb
-d8c046c1
-18007e17
-20202d0b
-44e4c019
-704e7105
-70495701
-704e7901
-704958f0
-704e880a
-704e8d01
-20406642
-6fe0ce89
-207a0000
-20406606
-d8400fff
-6fe14f03
-da204e75
-da404e73
-204065a1
-d8400fff
-6fe14f05
-da204e77
-da404e74
-204065a1
-58000fff
-68494e77
-98467e00
-67e14e77
-20600000
-9846fc00
-20407d64
-1807fe00
-18070400
-e7e08012
-e0410011
-20600000
-18c08dfe
-efe08006
-c00365b1
-20600000
-704e7101
-70495700
-704e7900
-7049580a
-20600000
-204065ac
-20206642
-6fe0c957
-20600000
-da6049b7
-204065b3
-207a0000
-70495878
-da604b26
-20600000
-da604a11
-204065b3
-207a0000
-da604b76
-7049580c
-18e27e00
-c1008000
-20600000
-44e54019
-6fe0cc47
-79407e00
-67e0cc47
-c00065cc
-c000e5ca
-20600000
-204065d3
-2020618e
-204065ce
-2020618e
-da604a3e
-204065b3
-207a0000
-da604ba3
-20600000
-da604c33
-204065b3
-207a0000
-da604c3d
-20600000
-18e27e00
-c000e5fa
-c00165e8
-c00265e4
-20600000
-da604f18
-da4065e0
-20203755
-704f1804
-6fe0cc47
-203a65e4
-202065e8
-704c4700
-704f1804
-da604aa4
-2020618e
-704c4701
-704f1804
-da604a9e
-2020618e
-704c4700
-704f1800
-20600000
-da604f19
-da4065f2
-20203755
-704f1902
-204065f5
-2020618e
-da604f1a
-204065b3
-207a0000
-da604f22
-20600000
-6fe0cf2a
-243a65ff
-704f2a01
-704f1902
-20600000
-704f2a00
-704f1900
-20600000
-6fe0ce72
-247a0000
-704e7201
-202064c7
-58000000
-67e3ce73
-20600000
-204065b3
-c000e611
-c0006623
-20600000
-6fe0cf0b
-c000e62a
-c000663c
-20600000
-6fe0ce73
-1fefffff
-1fe20400
-6fe14e75
-9840fe00
-67e14f07
-6fe0ce74
-1fefffff
-1fe20400
-6fe14e77
-1fe22200
-58000fff
-9a267e00
-9840fe00
-67e14f09
-204065b3
-67e0cf0b
-20600000
-6fe14e75
-67e14f07
-6fe14e77
-67e14f09
-204065b3
-67e0cf0b
-20600000
-6fe14f07
-1fe6fdff
-20407d64
-1807fe00
-18070400
-67e0ce73
-18427e00
-67e14e75
-6fe14f09
-1fe6fdff
-20407d64
-1807fe00
-18070400
-67e0ce74
-58000fff
-98467e00
-67e14e77
-20600000
-6fe14f07
-67e14e75
-6fe14f09
-67e14e77
-20600000
-202066bd
-202066a4
-20406665
-6fe14f0e
-204066d0
-704f1600
-6fe2cf07
-704f1700
-704f1400
-20406669
-6fe0cf14
-c1000000
-20206643
-6fe14efb
-1fe0fffb
-67e14f0e
-20600000
-6fe14f0e
-1fe0fffb
-67e14f0e
-20600000
-6fe14f0e
-1fe0fe05
-67e14f0e
-20600000
-6fe14f10
-1fe0fe05
-67e14f10
-6fe14f10
-1fe20400
-6fe14efb
-98467e00
-d8400005
-98467c00
-24216689
-20600000
-6fe0cf16
-c000e64e
-c0006652
-20600000
-da400000
-1a420400
-6fe14f07
-a843fe00
-2440e679
-da400000
-1a420400
-6fe14f09
-a843fe00
-2440e679
-da400000
-1a420400
-6fe0cf0b
-a841fe00
-2440e679
-20600000
-6fe0cf14
-1fe0fe01
-67e0cf14
-20600000
-704f1401
-2040665a
-6fe14f10
-204066d0
-204065b3
-1fe20400
-6fe0cf0b
-a841fe00
-2040e6a2
-6fe0cf14
-c1000000
-2020667d
-44e5c019
-204066a2
-204065b3
-203a668e
-20206693
-6fe14eff
-67e14e75
-6fe14f01
-67e14e77
-20206641
-d8400fff
-6fe14f03
-da204e75
-da404e73
-204065a1
-d8400fff
-6fe14f05
-da204e77
-da404e74
-204065a1
-58000fff
-68494e77
-98467e00
-67e14e77
-20206641
-704f1400
-20600000
-44e64019
-704f1601
-20406643
-6fe14efd
-1fe20400
-6fe14f0e
-98467e00
-d8400000
-98467c00
-24610000
-6fe14f0e
-1fe20400
-6fe14efb
-1fe0fffb
-98467e00
-6fe14f0e
-67e14f10
-2040667d
-6fe14f10
-2442e6d0
-704f1400
-20406669
-6fe0cf14
-c1000000
-2020660d
-44e6c019
-704f1601
-20406643
-68494efd
-6fe14f0e
-98467e00
-d8400000
-98467c00
-24610000
-68494f0e
-6fe14efb
-98467e00
-d8400000
-98467c00
-24610000
-6fe14f0e
-67e14f0c
-20406609
-202066d5
-1fe22400
-44e74019
-df200005
-da204f07
-20206b62
-df200005
-da204f07
-6a414f0c
-20206b33
-da6046b1
-da406641
-20203755
-6fe0c456
-d840003e
-20206f1c
-6fe0c456
-d840003f
-20206f1c
-204066df
-204066dc
-202066df
-204066e3
-202066dc
-202066e3
-204066e3
-202066e5
-202066dc
-6fe0c457
-202066dd
-6fe0c457
-202066e0
-204066eb
-204066ed
-202066eb
-20800000
-2040711d
-204066fd
-204066ff
-20406713
-2040672f
-20406733
-7006ed01
-7006ea04
-2040673e
-202066fb
-70804204
-20600000
-20406703
-20406707
-2040670b
-2020670f
-6fe0c508
-247a0000
-70450807
-20600000
-6fe0c509
-247a0000
-70450906
-20600000
-6fe0c50a
-247a0000
-70450a09
-20600000
-6fe0c50b
-247a0000
-70450b0a
-20600000
-58000c00
-67e1064e
-58000eff
-e7e10005
-58000f00
-e7e10005
-58000fff
-e7e10005
-6fe4064e
-20406d5b
-20406d75
-d841c200
-20406d68
-6fe0c508
-d8400008
-20406f1d
-6fe0c509
-d8400049
-20406f1d
-6fe0c50a
-d840000a
-20406f1d
-6fe0c50b
-d840000b
-20406f1d
-d8400081
-60588060
-20207d78
-6fe0c50c
-247a0000
-70450c0c
-20600000
-6fe0c50c
-d8400010
-20406f1d
-da200040
-204070b9
-da200000
-da400000
-58000000
-204070de
-d8e00000
-20207106
-6ff10112
-1fe0a3fc
-24610000
-20406d89
-efe08003
-c000e746
-20407c97
-20206d91
-efe10003
-67e106ee
-d84003ff
-98410400
-604906e7
-1feb7e00
-1fecfe00
-67e086e9
-efe08003
-1fe0ffff
-9a267c00
-20610000
-20406754
-202067af
-6fe086e9
-c01fe757
-2020679b
-44e9401a
-6fe086e7
-c000679a
-c000e762
-c0016767
-c001e775
-c002677f
-c002e79a
-c0086790
-c00a6796
-2020679a
-7006f000
-6ff10000
-67e106f1
-df200003
-202067a2
-efe10003
-67f10052
-20600000
-efe08003
-1fe20400
-67f08024
-efe08003
-98408400
-79207e07
-67f08023
-efe08003
-98408400
-1fe27200
-20600000
-2040676a
-efe08003
-67f08025
-98408400
-c2006776
-184104ff
-efe08003
-98467c00
-2422e78e
-2020679a
-df200020
-d8a04000
-d8400000
-efe08003
-e7e08005
-98408400
-c2006782
-184104ff
-efe08003
-98467c00
-2422e78e
-70802300
-2040679a
-20406da1
-20202001
-70802300
-2020679b
-efe08003
-1fe27200
-efe10003
-1fe20a00
-20406dd0
-2020679a
-6ff08060
-79207e04
-67f08060
-2020679a
-2020679f
-7006f001
-202067a0
-7006f00c
-202067a0
-7006f000
-df200001
-202067a2
-7006eb0e
-1f20fe03
-67e086ec
-204067ab
-6fe186ed
-e7e18003
-d8c006f0
-20406db7
-20206d97
-20406d95
-6fe186ea
-e7e18003
-20600000
-20406d89
-18608603
-efe08003
-98608600
-20206d8f
-70411400
-20600000
-20406c16
-2040565a
-20405654
-20406c43
-20205661
-20406c16
-2040565a
-2040566f
-20405654
-20405672
-20205661
-da204679
-6fe0c678
-1fe0ffff
-1feffe0d
-9a20a200
-6fe08032
-e7e08011
-c01a67ca
-20600000
-6fe30178
-e7e30005
-6fe342dd
-e7e30005
-20600000
-44e9c01a
-204067d5
-6fe246a3
-67e245ff
-67e245a6
-20600000
-44ea401a
-da204679
-6fe0c678
-c1000000
-1fe0ffff
-1feffe0d
-9a20a200
-efe08011
-67e0c3fc
-c19a0000
-efe30006
-67e34116
-efe30006
-67e342dd
-20600000
-6fe08032
-c19a0000
-67e0c884
-6fe30178
-67e34885
-6fe3c884
-d8c04679
-df200003
-e8438006
-98467c00
-2022e7f2
-18c08c07
-c20067ec
-20600000
-18c08dfa
-18c20a00
-684b4885
-18408403
-e0430005
-20600000
-6fe342dd
-67e34680
-1fe0ff00
-67e3468d
-1fe0ff00
-67e3469a
-20600000
-704503ff
-70450500
-6fe14651
-67e145ed
-6fe0c654
-67e145f3
-6fe2c657
-67e2c63f
-6fe0c655
-67e0c5e8
-6fe0c5d0
-245a324a
-20600000
-7040c103
-7040a608
-70473400
-70473500
-58000200
-67e140a4
-7042e317
-7042e517
-6fe0c678
-67e0c717
-6fe1c2e0
-67e1c756
-58004782
-67e14343
-58000020
-67e14345
-20205930
-6049c6f8
-6049c6fb
-20600000
-70409401
-20600000
-70409400
-20600000
-70472c00
-44eac01a
-6fe0c72c
-205a684b
-6fe0c721
-c000682e
-c002e833
-c001e836
-c0016839
-c0044885
-6fe0c3cf
-c007c88e
-70477308
-68494774
-20206843
-70477304
-68494776
-20206843
-70477303
-68494776
-20206843
-70477302
-68494778
-20206843
-6fe0c72b
-c000e825
-70477307
-6fe3c65c
-67e3c722
-6849439f
-20206843
-44eb401a
-6fe0c773
-1fe22200
-20402dcc
-6848c773
-18427200
-d8c04722
-20207cdc
-df200009
-d8a04722
-20207ca3
-df20000a
-d8c049fd
-d8a04721
-20207cdc
-6fe0c72c
-205a684b
-da404721
-20600000
-58000001
-67e088f1
-6fe3c65c
-e7e38005
-20203d52
-6fe0c72c
-205a684b
-44b5c00d
-6fe0c721
-c0006864
-c0016869
-c001e86f
-c002e875
-c0044a15
-20403d61
-d8c04722
-d8a00901
-df200009
-20207cdc
-7008ea22
-58000002
-67e08929
-6fe0c722
-e7e08005
-20203d53
-7008ea21
-58000003
-67e08921
-6fe1c722
-e7e18005
-20203d53
-7008ea23
-58000005
-20206871
-6fe0c74f
-c07fad8a
-6fe0c74f
-203a2d8a
-6fe0c882
-c280ad8a
-5800001a
-6849439c
-98467c00
-2422ad8a
-20202d24
-58000000
-67e1c70a
-20600000
-6fe4470e
-c4068000
-6fe0c73d
-207a0000
-6fe0c619
-207a0000
-6fe0c707
-1fe0fe01
-1fe17e03
-67e0c707
-247a0000
-70470800
-44ebc01a
-6fe0c708
-1fe0fe01
-67e0c708
-1fe67c08
-2421689e
-20403557
-2040362a
-242c68a4
-2437e8a4
-204068bc
-204068b1
-20403553
-6fe0c709
-1fe0fe01
-67e0c709
-c00868a6
-20600000
-20403201
-20206892
-44ec401b
-70470900
-6fe0c70a
-c3800000
-79207e00
-67e0c70a
-6fe1471c
-67e14741
-6fe0c3cf
-c0045303
-20600000
-6fe0c619
-203a6883
-70470900
-6fe0c70a
-c4000000
-793ffe00
-67e0c70a
-20405535
-6fe0c3cf
-c0045263
-20600000
-20403647
-6fe0c50f
-2fe1f008
-24608000
-6fe0c510
-c07fd90a
-67e0c70d
-20600000
-6fe0c678
-c1800000
-6fe0c5e1
-207a0000
-70804202
-708130f8
-20600000
-58004f1f
-67e143f0
-58005aee
-67e143ea
-58005af0
-67e143ee
-20600000
-2035e8d7
-58004467
-d8a04458
-98a67200
-20407ca3
-20600000
-d8e00000
-da400000
-18e67c07
-24610000
-aa2fffff
-2020e8df
-202068e3
-18427e00
-203a68e3
-f9202400
-184085ff
-18e08e01
-202068da
-6b014343
-6d614345
-20407dbe
-202068e9
-44ed401b
-20406935
-243a233e
-20406945
-df200008
-6848c458
-1f260e08
-a84fffff
-2020e8f6
-204068fd
-242168f6
-20406913
-202068fa
-1d627e00
-9b00b000
-c20068ee
-2020233e
-1b027e00
-1b020a00
-20600000
-44edc01b
-1f260e08
-d8400000
-d9600000
-18e27e00
-c004690e
-6fe0c458
-afefffff
-2020e90e
-f9201600
-1d627e00
-98408400
-18e08e01
-1a227e00
-98467c00
-2022e90e
-20216901
-18427e00
-9a267c00
-24628000
-f9201600
-20600000
-44ee401b
-20406935
-243a233e
-2040693b
-203a691c
-6fe4c45c
-67e4c459
-58000000
-e7e18005
-6160c462
-63014463
-20600000
-44eec01b
-2040693e
-18c08c01
-efe10006
-20600000
-44ef401b
-2040693e
-18c20a00
-18c20400
-58000000
-e7e18005
-20600000
-44efc01b
-2040693b
-203a233e
-6fe1c45f
-67e1c462
-6fe1c45c
-67e1c45f
-6fe1c459
-67e1c45c
-20600000
-44f0401c
-6fe1c459
-20600000
-44f0c01c
-6fe1c45c
-20600000
-44f1401c
-6fe1c462
-20600000
-2040693b
-203a6943
-d8c04459
-efe18006
-203a6941
-18c08dfd
-20600000
-44f1c01c
-df200004
-d8c04459
-d8400000
-efe18006
-1fe17eff
-98418400
-c2006949
-6048c458
-20600000
-d8e0000c
-202024be
-d8e0000c
-202024c2
-44f2c01c
-18467cff
-20628000
-18427e00
-1fe17eff
-1fe67c0f
-24216965
-d8a08070
-98a08a00
-18a22200
-d840003e
-e0408005
-20406968
-2000001e
-1a220a00
-d840003f
-e0408005
-2020696c
-d8a080d4
-1fe0fff0
-2020695b
-6ff08081
-1fe17e7f
-67f08081
-20600000
-6ff08081
-1fe1fe80
-67f08081
-20600000
-20206bc6
-20206bcd
-6ff0806f
-793ffe07
-67f0806f
-20600000
-2434697a
-6ff0806f
-79207e07
-67f0806f
-18427c00
-2022e97d
-1a627a00
-2fcc0000
-20206ae9
-18000404
-da2001c5
-20406972
-2040697a
-da2055aa
-6fe101c5
-e8410006
-9a267c00
-20600000
-2054699a
-d8400002
-da2043cc
-2040697a
-6fe143cc
-67e101be
-20546990
-20600000
-d8400010
-da2001cb
-20406972
-2040697a
-d8c001cb
-df200010
-20407341
-204072c8
-2040735d
-202072c2
-70802300
-20406972
-2020735d
-58000000
-67e10677
-7856fc00
-2040697f
-24628000
-7836fc00
-58008000
-67f18022
-da208025
-20406976
-70802300
-6fe081bb
-c4000000
-d8400006
-20406980
-2422e9ba
-ea210006
-2040697a
-204069b1
-202069aa
-6fe10677
-df200006
-d8c001c5
-20407dd0
-6f2101c7
-1a220c00
-20407dd0
-67e10677
-20600000
-6fe081fa
-c02d69c8
-da20aa55
-6fe101c5
-9a267c00
-2422e9ca
-da2055aa
-6fe101c7
-9a267c00
-2422e9ca
-6fe101c9
-68490677
-98467c00
-2422e9ca
-7920220f
-2020697d
-7001bb00
-20600000
-1fe17eff
-1ff1fe00
-67e0c3cf
-20206a11
-6ff10143
-243a69cc
-20406a11
-6fe143cf
-207a0000
-204069d7
-2020239c
-6fe0c3cf
-207a0000
-1fe1040f
-6048c3cf
-1ff1fe00
-9842fe00
-c087ebb8
-20206b7b
-6fe081f7
-245a23c2
-6fe081f8
-207a0000
-202023c7
-44f3401c
-24758000
-6fe1415d
-207a0000
-67e101ed
-202069fb
-204069df
-6fe201eb
-207a0000
-37d98200
-6ff08136
-1fe17ef0
-684881eb
-9841fe00
-67f08136
-37d98200
-6ff08138
-1fe17e07
-684881ec
-18498400
-9841fe00
-67f08138
-37d98200
-6ff08acb
-1fe17ef0
-684881ed
-6048c15d
-9841fe00
-67f08acb
-6fe081ee
-67e0c15e
-2feffe03
-6ff08a06
-7920fe07
-67f08a06
-6fe081ee
-1fe10407
-18520400
-18438400
-6048c44f
-6ff08a02
-1fe17e1f
-9841fe00
-67f08a02
-20600000
-78547c00
-6fe0c3ce
-c4018000
-20406a67
-dfe00ff0
-9a40a400
-18007210
-da2001cb
-20406b62
-70800608
-d8c001cb
-2040734d
-d8a001cb
-20407c9b
-20207dbc
-70805025
-20406b28
-da400000
-1800720b
-da2043cc
-20406b63
-6ee2c3cc
-6d6343d1
-6fe0c3ce
-c3026a31
-70806f07
-6ff0815e
-c083ea2b
-6ff08160
-1ff27e00
-67f0806f
-20206a34
-20406adc
-20407d78
-20407d76
-66e2c3cc
-656343d1
-20406a67
-dfe00fd0
-9a40a400
-df200020
-da2001db
-20406b62
-204069ea
-204069d0
-6fe0c3ce
-c301ea49
-6848c3d0
-dfe00000
-79207e06
-79207e07
-98412200
-1a267c00
-2022eaab
-9a267c00
-2022eaab
-70003000
-da606b0c
-20406a9f
-24216aab
-6fe143cc
-203a6a56
-2040698d
-2040699d
-2436ea56
-6fe081bb
-2fe00603
-2420ea4b
-20406a64
-20406b25
-70003000
-20406a9f
-24216aab
-6fe0c3ce
-c2816a77
-20406a91
-20406cba
-20406a99
-2436ea6e
-6fe081bb
-2fe00603
-2420ea58
-20206a77
-580001ff
-dfa00000
-20600000
-da401000
-6ff08144
-c283ea6c
-6fe0c3d0
-c4038000
-da400000
-20600000
-20406cb7
-6fe0c3ce
-c2816a77
-20406a99
-2436ea77
-6fe081bb
-2fe00603
-2420ea58
-20206a87
-70003000
-20406a9f
-24216aab
-6fe0c3ce
-c280ea87
-20406c16
-200000c8
-20406c25
-20000064
-da606c62
-20406988
-2040699d
-2436ea87
-6fe081bb
-2fe00603
-2420ea78
-20406a8b
-6fe0c3ce
-c4000000
-202066f2
-d8a001cb
-20407c9b
-18007004
-2040735e
-70805021
-20600000
-6fe0c440
-6848c43f
-98467c00
-2422ecb2
-70443e04
-70443f08
-70444007
-20206cb2
-58000000
-67e101be
-da606cdd
-20406c9b
-20406988
-2020699d
-20406aa5
-6fe08030
-1fe0fe01
-1fe67c03
-67e08030
-20600000
-6fe08030
-207a0000
-6fe081f9
-207a0000
-1fe27200
-20207c98
-20406a8b
-20406972
-20407d7e
-20600000
-20406adc
-20406ab7
-6ff0806f
-c4030000
-20406ad1
-df200004
-d8c043d8
-20206b07
-6ff0806f
-c4028000
-684943d3
-18490400
-dfe04000
-98408a00
-6fe0c3d7
-20207dce
-4779403e
-6ff0806f
-c4028000
-6a2143d3
-1a292200
-dfe04000
-9a208c00
-efe08006
-67e0c3d7
-20600000
-20758000
-6ff0806f
-c4030000
-20406ad1
-2000000a
-df200004
-d8a043d8
-20206afa
-70802200
-6fe143d5
-1ff1fe00
-1fe37e00
-1ff18400
-184b0400
-79200407
-60588023
-1febfe00
-67f08024
-20600000
-6fe0c3ce
-1fe17ee0
-207a0000
-1fe37e00
-67f0806f
-58000001
-d8c043d1
-e8410006
-6059004c
-67f08020
-1fe3fe00
-c301eae3
-20600000
-6fe081bb
-1fe3fe00
-7920fe00
-2a2c000f
-20608000
-67e081bb
-20600000
-6ff0806f
-c4038000
-20206af6
-6ff08128
-afefffff
-20608000
-6ff08108
-c300eaf3
-204072c2
-20206af3
-6ff08025
-e7e08005
-c2006afa
-70802300
-20600000
-6fe140f0
-207a0000
-70802380
-70802200
-70802400
-684940f2
-184bf200
-98000c00
-efe08006
-67f08025
-c2006b07
-70802300
-20600000
-18427200
-6fe101be
-98408400
-604901be
-98002400
-1a225c00
-70800610
-20406b62
-1dc22200
-2a2c000f
-20608000
-205a7dc8
-20206ae9
-708ac801
-2000012c
-708ac805
-20000064
-708ac825
-200003e8
-708ac827
-2000012c
-20600000
-20406b19
-708ac83f
-20600000
-70804783
-708ac800
-20600000
-20406b19
-70804782
-2000000c
-70804780
-70804782
-20000096
-20600000
-1a49a400
-62510044
-70804600
-20600000
-44f4c01d
-20406b22
-20406b2f
-20406b29
-e8408011
-1a20a201
-18000e00
-a84c0000
-2020eb5a
-6ff08046
-79207e06
-79207e07
-67f08046
-70804702
-70804782
-793ffe07
-67f08046
-7080478a
-2000000b
-708047ca
-20000021
-7080474a
-2000002c
-708047ca
-20000016
-7080478a
-20000021
-70804782
-20000001
-70804792
-2000000a
-708047b2
-6ff08007
-70804792
-20000001
-70804782
-20000001
-afec0000
-2020eb3a
-6ff10044
-1fe0fe01
-67f10044
-18e08e01
-28e01e08
-2420eb3a
-c2006b37
-20206b26
-44f5401d
-20406b2f
-708047a2
-1a40a408
-d8e00000
-5fffffff
-68588007
-e0408011
-984c7e00
-70800620
-62510044
-2a2ffe0f
-2020eb71
-1a20a201
-20206b77
-24346b77
-18e08e01
-28e01e00
-2420eb77
-204072c2
-70800610
-1a40a408
-c2006b68
-70804782
-20600000
-6fe0c3cf
-c0056b8c
-c0026b90
-c0046b96
-c004eba0
-c0036ba0
-c0066b8c
-c006eba7
-c0076ba4
-c007eb89
-c000ebb0
-c0016bb5
-c003eb9c
-20206bb8
-dfe04a31
-d84066d9
-20206bad
-dfe037c1
-d8404a2f
-20406bad
-20206bb5
-dfe03e8f
-d84066d9
-20406bad
-dfe037c1
-d8403cc7
-20206bb2
-dfe037c1
-d8404d0d
-20406bad
-dfe05bf7
-d84066d9
-20206bb2
-dfe037c1
-d8404d0d
-20406bad
-20206bb0
-dfe037c1
-d84060c0
-20406bad
-20206bb5
-dfe03cd1
-d84066d9
-20206bad
-dfe03cd1
-d84066d9
-20406bad
-dfe02ae3
-d84030eb
-20206bb2
-18500400
-9841fe00
-202023b1
-dfe02b6e
-d84030eb
-18500400
-9841fe00
-202023b8
-dfe030f1
-d84036bf
-20206bb2
-20406bb5
-dfe02b6e
-d84030eb
-20206bad
-44f5c01d
-6fe0c3fe
-67f08080
-6fe0c3ff
-67f08081
-580001bc
-67f10084
-580001c1
-67f10086
-20206968
-79207e07
-67e101bc
-44f6401d
-70808202
-70808800
-70800602
-20206bd6
-18000401
-67e081bc
-44f6c01d
-70808201
-60590088
-70800602
-20406bd6
-6fe081c1
-20600000
-20000005
-6ff08128
-c301ebd6
-20600000
-78547c00
-1fe22400
-6fe0c437
-c1800000
-78347c00
-1a427e00
-20206be8
-6fe0c437
-c000ebe8
-c0016bee
-c001ebf6
-c0026bfa
-c002ec01
-20600000
-67e1c430
-1a227e00
-67e14433
-60494435
-70443702
-20206c16
-20406c16
-70443703
-20406c1c
-da2001bc
-70808204
-6fe1c430
-d8400020
-20206c36
-20406c16
-20406c59
-70443704
-20600000
-44f7401d
-20406c16
-70443705
-20406c1c
-20406c0e
-20406c32
-20206c09
-20406c16
-20406c1c
-58000005
-20406bcd
-c3800000
-70443700
-6fe143f0
-20207d7b
-6fe20656
-68494433
-184085fc
-e7e20002
-20600000
-68494433
-18422200
-184085fc
-efe20002
-67e20656
-68494435
-6fe1c430
-20600000
-44f7c01d
-20406c81
-20406968
-58000000
-67e201bc
-20600000
-7001bc06
-58000000
-67f10088
-58000001
-67f10082
-580001bc
-67f10084
-70800602
-20206bd6
-7001bcab
-20206c1d
-7001bcb9
-20206c1d
-67e1864e
-60490656
-62210662
-44f8401e
-20406c1c
-6fe1864e
-68490656
-6a210662
-20206c32
-18408404
-60590082
-d8400002
-1a20a3fc
-e0408011
-1ff10400
-e0408005
-1fec8400
-e0408005
-e7e08005
-1a227e00
-67f10084
-58000000
-67f10088
-70800602
-20406bd6
-20206c59
-60590088
-1ff10400
-604881bd
-1fec8400
-604881be
-67e081bf
-58000004
-67f10082
-7001bc03
-580001bc
-67f10084
-1a227e00
-67f10086
-6ff08080
-2a2c000f
-7920fe06
-67f08080
-70800602
-6ff08128
-c283ec55
-d8e00003
-20206bd6
-580007d0
-20402340
-20406c1c
-580001c1
-67f10086
-58000005
-20406bcd
-c2806c59
-20600000
-60590088
-58000004
-67f10082
-7001bc03
-580001bc
-67f10084
-1a227e00
-67f10086
-6ff08080
-2a2c000f
-7920fe06
-67f08080
-70800602
-6ff08128
-c283ec6f
-d8e00003
-20406af0
-20406bd6
-2feffe02
-20406ae9
-6fe081bd
-1ff02400
-6fe101be
-1ff0fe00
-9a41fe00
-9840fe00
-67e081bf
-1fecfe00
-1ff0fe00
-67e101bd
-20600000
-6fe0c438
-6848c43a
-98467c00
-2422ec86
-20406c92
-6fe0c438
-d8400020
-20406f1d
-6fe0c43b
-d8400021
-20406f1d
-6fe0c439
-d8400022
-20406f1d
-6fe0c43a
-d840001f
-20206f1d
-70443801
-70443903
-70443a00
-70443b02
-70443c0b
-70443d0a
-20600000
-70801001
-20600000
-70808b05
-70808c07
-70808d07
-70808e07
-70808f07
-70809005
-70809100
-20600000
-70808b0c
-70808c0d
-70808d0d
-70808e0d
-70808f0d
-7080900c
-70809100
-20600000
-20406cce
-6fe0c43f
-d840006c
-20406f1d
-6fe0c440
-d840006d
-20206f1d
-20406cd5
-20206cac
-6ff08128
-c302ecb4
-20600000
-79200028
-7043fd08
-20600000
-793f8028
-7043fd20
-20600000
-6fe0c3f4
-9a40fe00
-67e081be
-20206cc4
-6fe101be
-1ff0fe00
-67e081be
-58000003
-67f10092
-7001bda0
-7001bfa1
-20206ce3
-60490656
-20406cce
-68490656
-20406cfa
-20206cd5
-6fe0c43e
-c17f8000
-c3036cd3
-580249f0
-20402340
-6848c43e
-20206ef1
-6848c43e
-20206eed
-44f8c01e
-c5146cbd
-6fe143f4
-9a40fe00
-1ff0fe00
-67e101be
-44f9401e
-c5146cc1
-58000004
-67f10092
-7001bda0
-7001c0a1
-580001bd
-67f10094
-60590098
-62310096
-58000002
-2a2c000f
-7920fe00
-67f0808a
-70800604
-d8e00005
-20406af0
-20406cb4
-2feffe04
-20406ae9
-c5146cf5
-6fe101be
-1ff0fe00
-20206cf6
-6fe081be
-9840fe00
-1ff0fe00
-67e101be
-20600000
-6fe143f4
-9a40fe00
-67e1064e
-44f9c01e
-60490656
-6221066d
-20406d0f
-68490666
-6a21066d
-6fe1064e
-20406d30
-6fe10666
-6849066d
-98408400
-6049066d
-6849064e
-98408400
-6049064e
-6fe10656
-243a6d00
-20600000
-44fa401e
-6fe0c3fd
-1fe0ffff
-6849064e
-9841fe00
-1fe0fe01
-67e1866a
-6fe10656
-9840fe00
-6849866a
-98467e00
-24216d21
-67e10656
-6fe1866a
-6849064e
-98467e00
-67e10666
-20600000
-6fe10656
-67e10666
-58000000
-67e10656
-20600000
-1a427e00
-18408402
-60590092
-1a20a3fe
-e8418011
-18422400
-d84000a0
-e0408011
-e7e08005
-20206d3d
-1fe22400
-44fac01e
-c5146d26
-1a427e00
-18408403
-60590092
-1a20a3fd
-e8418011
-18422400
-d84000a0
-e0408011
-1ff0fe00
-e7e10005
-62310094
-58000000
-67f10098
-70808a01
-70800604
-20406cb4
-e2418011
-44fb401e
-7001c000
-58000001
-67f10092
-7001bda0
-580001bd
-67f10094
-58000000
-67f10098
-67f10096
-58000003
-67f0808a
-70800604
-20406cb4
-6ff08128
-c4030000
-200005dc
-6fe081c0
-1fe0fe01
-67e081c0
-1fe67c28
-24610000
-20206d46
-20407dbc
-20206d5d
-1ff10400
-20546d81
-1fef7e00
-1ff10400
-20546d7d
-6ff10050
-793ffe0f
-67f10050
-20600000
-67f10052
-20600000
-20406d6a
-20206d66
-20406d6f
-9846fc00
-20407d64
-1807fe00
-20600000
-6ff08043
-c3006d73
-5adc6c00
-20600000
-596e3600
-20600000
-6ff08043
-1fe17efe
-67f08043
-20600000
-6ff08043
-1fe1fe01
-67f08043
-20600000
-67f1005a
-67f1005e
-6059005c
-20600000
-67f10054
-67f10058
-60590056
-20600000
-6951005a
-6a11005c
-6871005e
-20600000
-69510054
-6a110056
-68710058
-20600000
-6071005e
-20600000
-60710058
-20600000
-20406d89
-6ff10112
-98608600
-20206d8f
-20406d99
-20206d85
-20406d8d
-20206d9d
-60610675
-61410673
-62010671
-20600000
-68610675
-69410673
-6a010671
-20600000
-6ff1010e
-243a6da1
-20600000
-1f227e00
-207a0000
-1f20f3f8
-20416db1
-20628000
-20216da6
-1f20f208
-1f20f3fc
-20416db4
-20628000
-20216dab
-1f20f204
-20206db7
-efe40006
-e7e40003
-20600000
-efe20006
-e7e20003
-20600000
-1f227e00
-207a0000
-efe08006
-e7e08003
-c2006db9
-20600000
-1f227e00
-207a0000
-1f20f3f8
-20416dca
-20628000
-20216dbf
-1f20f208
-1f20f3fc
-20416dcd
-20628000
-20216dc4
-1f20f204
-20206dd0
-efe40003
-e7e40005
-20600000
-efe20003
-e7e20005
-20600000
-1f227e00
-207a0000
-efe08003
-e7e08005
-c2006dd2
-20600000
-70064d3d
-20207819
-44fbc01e
-6fe0c403
-207a0000
-20406e79
-2042ee7f
-20407dc2
-20406e0b
-6fe0c403
-1fe22600
-68494401
-60490033
-1a627e00
-203a6dd6
-1a60a7ff
-18422200
-efe08011
-68488031
-98467c00
-2042edf3
-20216def
-efe08011
-1fe0fe01
-e7e08011
-68490033
-18408422
-60490033
-20206de3
-58000000
-e7e08011
-6fe08032
-e7e08005
-c099ee00
-efe30006
-e7e40005
-58000000
-e7e40005
-1a420c00
-20407c91
-18007c01
-20600000
-c01b6e04
-c01bee08
-da40428c
-20206df8
-d8c0430f
-20407c91
-d8c0428c
-20206dfd
-d8c04307
-20407c91
-20206e06
-44fc401f
-20407dbe
-6fe0c403
-207a0000
-6fe14500
-c4048000
-6fe0c2cd
-c0006e26
-6fe0817d
-2fe180c0
-2020ee19
-2fe18040
-2020ee2b
-20206e20
-20366e1d
-6fe0c2c4
-c300ee26
-20206e20
-20406e26
-20740000
-20206e20
-6fe0c300
-c283ee23
-20206e29
-6fe30178
-67e44307
-20206e29
-70003235
-6fe30178
-20206e2d
-70003237
-20206e2d
-70003236
-20206e2d
-44fcc01f
-6fe14401
-e840803f
-1fe0fe01
-67e10033
-60488031
-6fe0c403
-1fe22600
-6fe10033
-1fe22200
-20406e45
-20740000
-68490033
-18408422
-60490033
-184085ff
-efe08002
-67e08031
-1a60a7ff
-2422ee35
-6fe0c403
-1fe0ffff
-67e08031
-20600000
-6fe08032
-c099ee4c
-da400032
-df200007
-20407d66
-2022fdbc
-20600000
-c01b6e4f
-c01bee6a
-20206e47
-e8408011
-98467c00
-24628000
-d8a0067f
-df200010
-20407ca3
-6fe1817b
-67e1867f
-20406e61
-6fe1069c
-1ff0fe00
-1fed0400
-efe08006
-9840fe00
-68498178
-98467c00
-2022fdbc
-20600000
-d8c0067f
-2040734f
-efe08011
-20407350
-18006c38
-18006c00
-204072bd
-d8a0068f
-20207363
-e8408011
-98467c00
-24628000
-18c22200
-18c0a608
-da404307
-df200008
-20407d66
-2022fdbc
-1a622200
-da40430f
-df200008
-20407d66
-2022fdbc
-20600000
-6fe14401
-e840803f
-1fe0fe22
-efe0803f
-98467c00
-20600000
-6fe0c403
-1fe27200
-68494401
-58000000
-e7e08002
-18408422
-1fe0fe01
-c2006e83
-20600000
-20407dc0
-20406e0b
-24346e93
-6fe10033
-1fe08c01
-d8a0430f
-20407c91
-d8a0428c
-20407c91
-70429c01
-20600000
-70429c00
-20600000
-70003234
-20206e97
-6fe0c3cf
-c0056dd8
-c0045569
-c007c8f2
-20600000
-18417e1f
-1fe37e00
-d8a00016
-98a08a00
-de0000f0
-284c0000
-20608000
-de00000f
-20600000
-44fd401f
-18467cff
-20628000
-79200407
-20406ee0
-2420eebc
-7d208407
-44fdc01f
-18467cff
-20628000
-d9000004
-284ffe07
-2020eeb3
-d9000002
-20406e9c
-284c0000
-2020eeb7
-19121000
-efe08005
-9e017e00
-9901fe00
-e7e08005
-20600000
-70488c01
-20406f0b
-d9000006
-20206eb3
-44fe401f
-18467cff
-20628000
-d9000001
-20406e9c
-284c0000
-2020eec8
-19121000
-efe08005
-9e017e00
-9901fe00
-e7e08005
-20600000
-44fec01f
-18467cff
-20628000
-20406e9c
-efe08005
-9e017e00
-e7e08005
-20600000
-20406ecd
-20206eda
-18467cff
-20628000
-2455eeac
-20406f10
-58000000
-284ffe07
-7d20fe06
-7920fe07
-20206f09
-44ff401f
-d8a0811c
-18410e07
-18497e00
-1fe17e03
-98a08a00
-efe08005
-284ffe07
-2020eeeb
-afec0000
-20600000
-afefffff
-20600000
-18467cff
-20628000
-2fcffe07
-20206ef4
-18467cff
-20628000
-2fcc0007
-58000000
-7d20fe07
-98428400
-20406f10
-5800003f
-284ffe07
-7920fe00
-20206f09
-18467cff
-2022fdc6
-20406f10
-efe08005
-c2806f03
-284c0007
-20600000
-284ffe07
-20600000
-18467cff
-20628000
-20406f10
-580000c0
-e7e08005
-20600000
-18467cff
-20628000
-20406f10
-58000000
-20206f09
-18417e3f
-1fe67c0f
-24216f16
-d8a08070
-98a08a00
-20600000
-d8a080d4
-1fe0fff0
-20206f14
-1fe104ff
-1fecfe00
-20206f1d
-c4038000
-c17f8000
-1fe17e3f
-1fe67c0f
-24216f25
-d8a08070
-98a08a00
-e0408005
-20600000
-d8a080d4
-1fe0fff0
-20206f22
-1841043f
-18467c0f
-24216f2f
-58008070
-98408c00
-efe08006
-20600000
-580080d4
-184085f0
-20206f2c
-df200010
-d8c08070
-18c20a00
-efe08006
-c00fef45
-c0106f45
-c010ef45
-c0116f45
-c011ef45
-c0166f45
-c016ef45
-c0006f45
-c2006f34
-dfe080dc
-98c67c00
-20628000
-df200008
-d8c080d4
-20206f34
-58000040
-e7e08005
-20206f3e
-58000080
-e7e08005
-20206f3e
-6fe0c88c
-203a6f4e
-20206f51
-58000010
-67f08141
-202023c4
-58000080
-20206f4f
-44ffc01f
-20758000
-708a0777
-708a08c9
-708a0b01
-6fe0c41f
-67f080cd
-7080cc03
-2040700e
-68590164
-7080cc00
-708a08c1
-df200008
-da204428
-708a0a05
-6ff08a0c
-e7e08011
-1a20a201
-6ff08a0a
-1fe0fe20
-67f08a0a
-c2006f62
-708a0700
-20600000
-6ff080cc
-79207e01
-67f080cc
-df200008
-da204428
-708a0a15
-efe08011
-67f08a09
-1a20a201
-6ff08a0a
-1fe0fe20
-67f08a0a
-c2006f71
-6ff080cc
-793ffe01
-67f080cc
-20600000
-47004020
-6fe401db
-207a0000
-67e44406
-20406b28
-20406a67
-dfe00fc0
-9a40a400
-df20000a
-da2001db
-20406b62
-20406b25
-6fe401db
-207a0000
-67e4440e
-efe10006
-e7e10005
-20600000
-4700c020
-6fe0c41a
-c000ef93
-c0016fd1
-20206f93
-6fe0c41d
-c000ef97
-c0016f9e
-20600000
-580003e8
-67e1441b
-68494412
-6fe14414
-da600e10
-2040702a
-20206fa4
-580003e8
-67e1441b
-6849440e
-6fe14410
-da6003e8
-2040702a
-68494416
-984ffe00
-68494418
-9846fc00
-20207d61
-20406f6b
-6ff08a09
-793ffe07
-67f08a09
-708a0777
-708a08c1
-708a0d61
-708a0b00
-20600000
-47014020
-6fe0c41a
-c000efb7
-c0016fee
-20206fb7
-20406fa9
-20407007
-6fe0c41f
-67f080cd
-20407011
-708a0d60
-7080cd00
-20406fa9
-6fe0c41f
-67f080cd
-708a0b50
-708a0ec0
-df00000b
-6de14420
-7080cc03
-2040700e
-68590164
-60494418
-7080cc06
-20407017
-df00000b
-65e14420
-708a0d60
-7080cd00
-7080cc00
-20600000
-6fe0c41d
-c000efd5
-c0016fdb
-20600000
-580007d0
-67e1441b
-68494408
-6fe1440c
-da600a28
-2020702a
-580003e8
-67e1441b
-68494406
-6fe1440a
-da6007d0
-98462200
-6fe14420
-98467e00
-24216fe8
-20407039
-9a467e00
-24217dcc
-20207030
-18427e00
-68494420
-98467e00
-20407039
-9a40fe00
-20207030
-6fe0c41d
-c000eff8
-20406f6b
-6ff08a09
-793ffe07
-67f08a09
-708a0777
-708a0841
-708ac614
-20206fff
-20406f6b
-6ff08a09
-793ffe07
-67f08a09
-708a0777
-708a0841
-708ac610
-708a0b00
-20407007
-6fe0c41f
-67f080cd
-20407011
-7080cd00
-708ac600
-20600000
-6fe0c41e
-1ff27e00
-68588a0b
-1841040f
-98418400
-60588a0b
-20600000
-6ff08129
-c302f00e
-20600000
-4701c020
-7080cc03
-2040700e
-68590164
-60494420
-7080cc06
-6ff08129
-c282f017
-7080cc00
-20600000
-6fe0c427
-207a0000
-6ff08a09
-79207e07
-67f08a09
-6fe0c41f
-67f080cd
-6fe14423
-67f100ce
-6fe14425
-67f100d0
-7080cc0b
-200003e8
-7080cc03
-20600000
-98462200
-6fe14420
-98467e00
-24217032
-20407039
-9a40fe00
-9a26fc00
-20207d61
-18427e00
-68494420
-98467e00
-20407039
-9a467e00
-24217dcc
-20207030
-6849441b
-984fa400
-1a627e00
-9a2ffe00
-20600000
-efe40011
-67e4064e
-6fe1064e
-68490650
-98462200
-6fe10654
-98462400
-68490652
-98467c00
-2441704e
-1a4ffe64
-9a26fc00
-20407d64
-1807fe00
-205a7054
-20600000
-6fe0c422
-79207e00
-20207059
-6fe0c422
-793ffe00
-20207059
-6848c422
-79200401
-20207059
-6848c422
-793f8401
-6048c422
-20600000
-6fe14443
-efe0803f
-207a0000
-1fe27200
-6fe14443
-1fe0fe03
-1fe22200
-e8408011
-20406ed7
-1a20a201
-c2007062
-20600000
-6fe14443
-1fe0fe03
-1fe22200
-18002400
-58000000
-67e106cf
-e8408011
-20406ee0
-47024020
-6fe106cf
-1a420e00
-f920fe00
-67e106cf
-1a20a201
-1a40a401
-6fe14443
-efe0803f
-9a42fc00
-2422f06d
-6fe106cf
-68494445
-9842fc00
-20628000
-20207dbc
-6fe14443
-efe0803f
-207a0000
-1fe27200
-6fe14443
-1fe0fe03
-1fe22200
-e8408011
-20406ea5
-1a20a201
-c2007086
-20600000
-d8e00009
-20407cf1
-247a0000
-58000020
-d8e00009
-20407ce3
-78547c00
-2040707f
-4702c020
-6fe14443
-efe0803f
-207a0000
-20407067
-24347793
-20407791
-78547c00
-6fe106cf
-67e106d6
-7006d800
-18000e00
-6fe14445
-1fe30400
-60494445
-1fe17e01
-684906d6
-18412201
-18430400
-604906d6
-9a22fc00
-2442f0b4
-6fe14443
-efe0803f
-684886d8
-18408401
-604886d8
-18420e00
-98e2fc00
-2422f09f
-6fe106cf
-67e14445
-20600000
-47034020
-6fe14443
-1fe0fe01
-efe1003f
-20207d7b
-6ff08042
-9a21fe00
-67f08042
-6ff10050
-793ffe0d
-67f10050
-20000064
-20600000
-6ff08042
-c28370c6
-c283f0c8
-58b71b00
-20600000
-596e3600
-20600000
-580080e8
-20600000
-68498650
-204070c1
-9846fc00
-20407d64
-18078400
-6fe08653
-984ffe00
-1fe6fc64
-20407d64
-1807a200
-18427e00
-9a262400
-6fe0864f
-204070de
-6fe0864e
-6848864f
-1841040f
-184d0400
-9841fe00
-20207100
-98000e00
-204070ec
-202070e1
-6ff080be
-f9207e00
-67f080be
-68588042
-284ffe07
-2040f0ea
-f93ffe00
-67f080be
-20600000
-200001e0
-20600000
-1fe17e0f
-d8a0809c
-1feffe04
-98a08a00
-1a227e00
-e7e10005
-1a427e00
-e7e10005
-20600000
-28effe06
-18e10e0f
-6ff0809b
-f920fe00
-67f0809b
-20600000
-2040710b
-1fed7e00
-18e08410
-9841fe00
-20206f19
-78347c00
-204070fb
-20207106
-78547c00
-2040710b
-20207106
-18e10e0f
-6ff0809a
-f9347e00
-67f0809a
-20600000
-1fec8e00
-18e10e0f
-20600000
-1fe20400
-4703c020
-2040711b
-58000800
-98467e00
-1fe20400
-18518400
-60588004
-20000578
-1fe20400
-1841040f
-6058800b
-20600000
-78367c00
-2020711f
-47044021
-78567c00
-6ff08043
-79367e03
-67f08043
-20600000
-67f20062
-67f10066
-60588061
-20600000
-70804204
-7041480c
-58000ea5
-67f10040
-20600000
-70804205
-20207128
-4704c021
-70020e50
-d8a0020f
-d8c042ad
-20407c91
-d8c044a6
-20407c8f
-d8c005dc
-20407c8f
-204071e9
-d8c00158
-204071e4
-204071af
-d8a006af
-204071e0
-580f4240
-1fe22200
-6fe206af
-9a26fc00
-20407d64
-18077e00
-67e205d8
-20600000
-70020e41
-d8a0020f
-20407194
-2040718f
-6fe1c2c7
-e7e18005
-20407155
-d8c00158
-20407c91
-d8c042ad
-20407c91
-204071e9
-d8c006cf
-d8a0067f
-20407c91
-202071af
-6fe24301
-e7e20005
-20407c9d
-20207c9c
-47054021
-70020e41
-d8a0020f
-2040718f
-20407194
-6fe1c2c0
-e7e18005
-20407155
-d8c042ad
-20407c91
-d8c00158
-20407c91
-204071e9
-d8c006cf
-d8a0067f
-20407c91
-204071af
-d8a006af
-202071e0
-70020e20
-d8c0061c
-d8a0020f
-20407c8f
-204071e9
-d8c005c7
-204071e4
-204071af
-d8a0067f
-20407363
-d8400001
-2040717e
-d8a0428c
-204071e0
-d8400000
-2040717e
-d8a006cf
-20207363
-4705c021
-70020e35
-58000100
-67e1020f
-2040718f
-20407194
-d8c042ad
-20407c91
-d8c00158
-20407c91
-58006c65
-e7e10005
-58006274
-e7e10005
-e0408005
-204071e9
-202071af
-6fe342dd
-e7e30005
-6fe0c2d4
-e7e08005
-20600000
-6fe30178
-e7e30005
-6fe0c2cd
-e7e08005
-20600000
-70020e41
-6fe0c4e7
-67e0820f
-d8c044a6
-20407c8f
-d8c005dc
-20407c8f
-204071e9
-d8c00158
-204071e4
-202071af
-70020e41
-6fe0c4e7
-67e0820f
-d8c005dc
-20407c8f
-d8c044a6
-20407c8f
-204071e9
-d8c042ad
-204071e4
-202071af
-47064021
-204071fe
-6fe0820e
-1fe20400
-1fe0fe0f
-1ff1fe00
-1fe22400
-203a71c1
-18417e0f
-243a71c4
-da60068f
-dfe0020f
-1fe0fff0
-9840a200
-d8a006bf
-df200004
-20407cab
-202071cf
-da400001
-da200000
-202071c5
-1841220f
-dfe0020f
-9840fe00
-9a260c00
-d8a006af
-20407224
-da60069f
-da2006af
-d8a006bf
-df200004
-20407cab
-2040735d
-204072c8
-d8c0020f
-1a40a5ff
-1a427e00
-203a71d8
-2040734f
-204072c2
-202071d2
-d8a006af
-20407363
-d8c006bf
-2040734f
-204072c8
-d8c006af
-2040734f
-202072c2
-18a22200
-20407363
-df200010
-20207cb3
-d8a0067f
-20407c91
-df200010
-da20067f
-20207cb3
-6fe0820e
-1fe27200
-da20020f
-20207cb3
-efe08011
-1fe3fe00
-2a6ffe00
-7920fe00
-2feffe08
-7920a600
-e7e08011
-1a20a3ff
-c20071ed
-20600000
-da20068f
-1a20a20f
-18007210
-18002600
-202071ed
-da20069f
-202071f8
-d8c0067f
-2040734d
-18007008
-2040735e
-2040735d
-204072bf
-d8a0068f
-20407363
-4706c021
-6fe0868f
-2feffe07
-2420f20f
-204071f7
-da60068f
-d8a0068f
-20407219
-20207210
-204071f7
-d8c0068f
-d8a0069f
-20407c91
-6fe0869f
-2feffe07
-2420f1fc
-204071fc
-da60069f
-d8a0069f
-df200003
-d8400000
-20407220
-1a60a604
-c200721a
-d8408700
-18500400
-efe20013
-9842fe00
-e7e20005
-20600000
-47074021
-df200010
-dfe00000
-9a267c00
-2022f22f
-20217232
-e8408006
-e0408005
-1fe0fe01
-c2007227
-20600000
-d8400080
-e0408005
-2020722c
-d8400000
-20207230
-184d0400
-18500400
-98418400
-20600000
-4707c021
-204072f4
-d8a0428c
-20207363
-d8a042ad
-2034f23f
-d8a00158
-18c22200
-20407c91
-20407309
-d8c0429d
-2020737c
-da200158
-2034f247
-da2042ad
-1a220a00
-20407ded
-20207309
-d8c042e7
-2040734f
-d8c0428c
-20407350
-18006c38
-18006c00
-204072bd
-d8a001a8
-20207363
-18007008
-18007e49
-2020725a
-18007e49
-20207259
-18007e01
-18007000
-184d5e00
-9de1de00
-1f00f001
-184cde00
-1df15e00
-6fe14475
-1ff07e00
-9de1de00
-1f00f001
-ede20006
-1f00f001
-efe10006
-1a30de00
-1df05e00
-9de1de00
-1f00f001
-20600000
-1a608c01
-efe08006
-98002200
-20407256
-204072bf
-18007000
-efe08013
-1fe17e03
-1ff05e00
-79205e08
-20407358
-204072c2
-1a227200
-1a608c02
-20407337
-20407341
-204072c2
-1f227e00
-203a727f
-2020727a
-1800700c
-1de27e00
-67e20150
-20600000
-1a20a201
-20407258
-1a620c00
-2040734b
-204072c5
-2040736a
-1a60a610
-1a40a5f0
-20217283
-20600000
-204072b2
-47084022
-70806c00
-70806d01
-6fe0c16b
-1fe17e03
-67f0806e
-6fe1066d
-67f10068
-5800416d
-67f1006a
-6a20c16c
-684ac467
-20407253
-70800a02
-70800a03
-6fe0c16c
-67f100c0
-1fe0fe04
-67e0c16c
-6fe2c467
-1fe0fe01
-793ffe27
-67e2c467
-20600000
-6ff1011a
-98467c00
-20628000
-247a0000
-202072a6
-6ff08108
-c303233e
-5800416d
-98408a00
-df00000c
-e5e20005
-202072bb
-4708c022
-1800700c
-2040735e
-2040735d
-58000000
-67f100c0
-20600000
-6ff08108
-c30372b9
-70800a00
-20600000
-243bf2bd
-20600000
-18006c30
-18006c00
-202072bd
-18006c32
-18006c02
-202072bd
-18006c34
-18006c04
-202072bd
-18006c01
-18006c00
-20600000
-6ff08155
-c30172cb
-20600000
-67f100d2
-18006cc0
-18006c80
-202072cb
-18007000
-1a420c00
-18007204
-204072e1
-18006d80
-18006c80
-204072bd
-1800700c
-1a620a00
-18007204
-1de27e00
-e7e20005
-1f00f001
-c20072dc
-20600000
-efe10006
-e8410006
-18500400
-9841de00
-1f00f001
-c20072e1
-20600000
-18007008
-1a220c00
-18007204
-204072e1
-18007000
-1a420c00
-18007204
-204072e1
-18006d82
-18006c82
-204072bd
-202072d9
-18007000
-6fe20158
-98005e00
-1f00f001
-efe20006
-98005e00
-1f00f001
-6fe242ad
-98005e00
-1f00f001
-efe20006
-98005e00
-1f00f001
-2040735e
-1f00f1fc
-6fe24301
-1fe25e00
-1f00f004
-18006c38
-18006c08
-202072bd
-47094022
-6fe342dd
-684b0178
-2034f30f
-6fe30178
-684b42dd
-18007008
-18425e00
-1f00f001
-184f5e00
-1ff07e00
-9de1de00
-1f00f001
-1fef5e00
-1f00f001
-18005e00
-18007e00
-6fe0c2cd
-6848c390
-2434f31f
-6fe0c2d4
-6848c2cd
-67e0c2bd
-6048c2be
-18007000
-da4042bd
-18007204
-efe20011
-e8420012
-9842de00
-1f00f001
-1a20a204
-1a40a404
-c2007324
-2040735e
-1f00f1fc
-6fe24301
-1fe25e00
-1f00f004
-18006c38
-18006c0c
-204072bd
-2040735d
-18006c3a
-18006c08
-202072bd
-2f200600
-20608000
-18c27e00
-9f208a00
-18007e00
-e7e08005
-1f20f201
-2f200600
-20608000
-2020733c
-18007000
-1f227e00
-203a7346
-efe20006
-1f20f3fc
-98005e00
-1f00f001
-2f001e04
-20608000
-20207342
-18007008
-20207350
-18007004
-20207350
-18007000
-18007204
-efe20006
-98005e00
-1f00f001
-c2007351
-20600000
-d8c001a8
-2020734d
-18007204
-20207360
-18007000
-18007210
-2020735f
-18007000
-18007204
-18005e00
-1f00f001
-c200735f
-20600000
-1800700c
-18007204
-1de27e00
-e7e20005
-1f00f001
-c2007365
-20600000
-1800700c
-1a620a00
-1a40f201
-1f267c0f
-20217370
-18007210
-1de27e00
-1f267c03
-20217378
-e7e20005
-1f20f3fc
-20628000
-1f00f001
-20207370
-e7e08005
-1fecfe00
-c2007378
-20600000
-1800700c
-18007204
-efe20006
-9de67c00
-24628000
-1f00f001
-c200737e
-20207dba
-6ff08050
-793ffe00
-67f08050
-20600000
-6ff08050
-79207e00
-67f08050
-20600000
-d8a004af
-3803ffff
-3807ffff
-380bffff
-380ffbff
-e7e48005
-3803ffff
-3807ffff
-380bffff
-380fffff
-e7e48005
-3803ffff
-3807ffff
-380bcfff
-380fffff
-e7e48005
-3803ffff
-3807ffff
-380bffef
-380fffff
-e7e48005
-3803ffff
-3807ffff
-380bffff
-380fffff
-e7e48005
-3803ffff
-38066c7f
-3808146b
-380f7bb3
-e7e48005
-3801feb8
-38050c12
-380ab722
-380e9fa6
-e7e48005
-3800e70f
-38056720
-3808519e
-380d9084
-e7e48005
-38031012
-380760bf
-380bf0af
-380c03d3
-e7e48005
-3803a188
-38043ad0
-380bcbf2
-380e43d9
-e7e48005
-3802b030
-38076a03
-38091188
-380de520
-e7e48005
-3803a11e
-3804fe5d
-3808dd57
-380dac93
-e7e48005
-380011ed
-380618c4
-38088da7
-380e57ff
-e7e48005
-3803192b
-38074641
-3809be0c
-380f66ad
-e7e48005
-38001f83
-38055a23
-380bf9b0
-380c3949
-e7e48005
-38013a51
-380553fd
-380b372a
-380cf1bb
-e7e48005
-3803ae85
-3805eed9
-38089e66
-380c01a8
-e7e40005
-20600000
-d8a00547
-3803ffff
-3807ffff
-380bffff
-380fffff
-e7e48005
-3803ffff
-3804003f
-38080000
-380c0000
-e7e48005
-38000000
-38040000
-38081000
-380c0000
-e7e48005
-3803ff00
-3807ffff
-380bffcf
-380fffff
-e7e48005
-3803ffff
-3807ffff
-380bffff
-380c03ff
-e7e48005
-38000000
-38040000
-38080000
-380c0000
-e7e48005
-38010000
-38040000
-380bf000
-380fffff
-e7e48005
-380296ff
-38062630
-380b945d
-380fd284
-e7e48005
-380333a0
-38044b7a
-380837d8
-380fc9dc
-e7e48005
-3803a440
-3805b958
-380b8bce
-380d091f
-e7e48005
-3802e12c
-3805f47c
-380b56b1
-380efd47
-e7e48005
-38006837
-3806ed90
-3809ecec
-380dacc5
-e7e48005
-38023357
-38058af3
-3808f9e1
-380d29f0
-e7e48005
-3802e7eb
-3807e6e3
-380be1a7
-380d0b8b
-e7e48005
-38024fe3
-380420ef
-3809b5a6
-380cdc2f
-e7e48005
-38013860
-3806bd69
-3808391a
-380db222
-e7e48005
-20600000
-202074ea
-4709c022
-6fe0c483
-207a0000
-6fe0c485
-c1018000
-6fe0c484
-c00074ea
-20600000
-70448400
-20600000
-470a4022
-580005dc
-d8a005d7
-98a67200
-20407ca3
-580044e8
-d8a044e6
-98a67200
-20207ca3
-20407464
-da2005fc
-d8a0048f
-2040770a
-da2005dc
-d8a0044f
-2040770a
-da20044f
-da4005dc
-d8a0044f
-20407672
-da200567
-da4005dc
-d8a0046f
-20407672
-da20046f
-da40044f
-d8a0044f
-2040770e
-da20042f
-da40044f
-d8a0042f
-2040770e
-df200020
-da20048f
-da40042f
-20207d66
-da2005a7
-d8a0042f
-2040770a
-da200587
-d8a0044f
-2040770a
-da20044f
-da400587
-d8a0044f
-20407672
-da200567
-da400587
-d8a0046f
-20407672
-da20046f
-da40044f
-d8a0044f
-2040770e
-da20042f
-da40044f
-d8a0042f
-20207727
-18e08fff
-24610000
-180a7e00
-e7e10005
-2020747a
-18e08fff
-2421748a
-efe20011
-1fe20400
-efe20012
-9842fe00
-2422f489
-1a20a204
-1a40a404
-2020747f
-20207dc6
-20207dc8
-1fe10e07
-1fe97e00
-98c08c00
-efe08006
-afec0000
-20600000
-efe40006
-247a0000
-efe40006
-247a0000
-efe40006
-20600000
-efe20011
-98000400
-efe20012
-98467c00
-24628000
-1a20a204
-1a40a404
-c2007497
-20600000
-18007206
-1a20a214
-1a40a414
-efe20012
-98000400
-efe20011
-98467e00
-24610000
-247a0000
-1a20a3fc
-1a40a5fc
-c20074a3
-20600000
-18007206
-18002600
-efe20011
-98000400
-efe20012
-9840fe00
-9a60fe00
-e7e20005
-2feffe20
-7920a600
-1a20a204
-1a40a404
-c20074af
-20600000
-18007206
-18002600
-efe20012
-98000400
-efe20011
-98467e00
-9a667e00
-e7e20005
-2feffe20
-7920a600
-1a20a204
-1a40a404
-c20074bd
-20600000
-18007206
-1a20a214
-18002600
-efe20011
-2feffe00
-7920a601
-1fe37e00
-2a6ffe00
-7920fe1f
-e7e20011
-1a20a3fc
-1a632600
-c20074cc
-20600000
-18007206
-18002600
-efe20011
-2feffe1f
-7920a601
-1fe3fe00
-2a6ffe00
-7920fe00
-e7e20011
-1a20a204
-1a632600
-c20074d9
-20600000
-18007206
-efe20006
-98005e00
-1f00f001
-c20074e5
-20600000
-470ac022
-6fe0c483
-243a750b
-70448400
-70448500
-20600000
-6fe0c483
-207a0000
-6fe0c485
-c1018000
-20407540
-202074f0
-d8a04486
-38001abd
-3805b34f
-38099b8a
-380e6562
-e7e48005
-380340b7
-38041efa
-3808aff6
-380cfd41
-e7e48005
-3803d210
-38066cf8
-380b874c
-380f157c
-e7e48005
-3802d4a3
-3807d27d
-38080003
-e7e28005
-20600000
-6fe0c485
-c1800000
-6fe0c484
-c1800000
-204073e3
-d8a04486
-18000e0f
-2040747a
-180a7e00
-1fe37e00
-e7e10005
-6fe0c482
-245a74f6
-d8a0038f
-d8c04486
-20407c8f
-d8a0026f
-d8c00587
-20407c83
-d8a002af
-20407c9f
-7002af01
-20407558
-70448403
-20600000
-d8a044a6
-d8c002cf
-20407c83
-70448503
-70448400
-20600000
-6fe085d7
-c1800000
-6fe0c484
-c1800000
-d8a0038f
-d8c04486
-20407c8f
-d8a0026f
-d8c005dc
-20407c83
-d8a002af
-20407c9f
-7002af01
-20407558
-70448404
-20600000
-d8a0061c
-d8c002cf
-20407c8f
-7005d703
-70448400
-20600000
-6fe0c483
-207a0000
-6fe0c484
-207a0000
-1fe0fe80
-67e0c484
-c3838000
-6fe1020c
-203a754a
-20207550
-470b4022
-20407565
-6fe0c484
-c001f524
-c002753a
-20600000
-20407577
-6fe1020c
-1fe0ffff
-67e1020c
-d8c0038f
-2040748b
-20608000
-202075c8
-470bc022
-58000100
-67e1020c
-6fe1020c
-207a0000
-1fe0ffff
-67e1020c
-d8c0038f
-2040748b
-2020f55b
-d8c0026f
-d8a0032f
-20207c82
-da20036f
-d8a0046f
-20407634
-da20046f
-d8a0040f
-2040770a
-da20032f
-da40040f
-d8a002cf
-20407672
-da20046f
-da40040f
-d8a0044f
-20407672
-da20034f
-da40044f
-d8a002ef
-20207672
-da20036f
-d8a0044f
-2040770a
-da20044f
-d8a0046f
-2040770a
-da200567
-da40046f
-d8a0046f
-20407672
-da20032f
-d8a0044f
-2040770a
-d8c0044f
-d8a0040f
-20407c8f
-da20040f
-20407711
-da20044f
-da40040f
-d8a0044f
-2040770e
-da20044f
-da40046f
-d8a0044f
-2040770e
-d8c0032f
-d8a0040f
-20407c8f
-da20034f
-d8a0046f
-2040770a
-da20040f
-20407711
-da20040f
-20407711
-da20040f
-da40046f
-d8a0040f
-20407672
-da20046f
-d8a0042f
-2040770a
-da20042f
-20407711
-da20042f
-20407711
-da20042f
-20407711
-d8c0034f
-d8a0046f
-20407c8f
-da20046f
-20407711
-da20046f
-da40036f
-d8a0036f
-20407672
-da20044f
-d8a0046f
-2040770a
-da20046f
-da40040f
-d8a0046f
-20407727
-da20046f
-da40040f
-d8a0032f
-20407727
-da20040f
-da40032f
-d8a0046f
-20407727
-da20046f
-da40044f
-d8a0046f
-20407672
-da20046f
-da40042f
-d8a0034f
-20207727
-da2002af
-d8a0048f
-2040770a
-da20032f
-da40048f
-d8a0042f
-20407672
-da2002af
-da40048f
-d8a0048f
-20407672
-da20034f
-da40048f
-d8a0040f
-20407672
-da20036f
-d8a0048f
-2040770a
-da20026f
-da40048f
-d8a0044f
-20407672
-da20036f
-da40048f
-d8a0048f
-20407672
-da20028f
-da40048f
-d8a0046f
-20407672
-da40042f
-da20044f
-d8a0048f
-20407727
-da20042f
-da40044f
-d8a0042f
-2040770e
-da40040f
-da20046f
-d8a0044f
-20407727
-da20040f
-da40046f
-d8a0040f
-2040770e
-da20040f
-da40048f
-d8a0040f
-20407672
-da20036f
-da4002af
-d8a0046f
-20407672
-da20046f
-da40048f
-d8a0036f
-20407672
-da20048f
-d8a0048f
-2040770a
-da20048f
-da40042f
-d8a0046f
-20407672
-da20048f
-da40040f
-d8a0040f
-20407672
-da20044f
-d8a0032f
-2040770a
-da20032f
-da40046f
-d8a0032f
-20407727
-d8c0032f
-d8a0048f
-20407c8f
-da20048f
-20407711
-da20046f
-da40048f
-d8a0046f
-20407727
-da20046f
-da40044f
-d8a0044f
-20407672
-da20044f
-da40040f
-d8a0034f
-20407727
-da20034f
-da400547
-d8a0034f
-18002600
-6fe0834f
-2feffe00
-2040f70c
-1a626000
-da20034f
-2040773c
-6fe0836e
-2e0ffe00
-7920fe07
-67e0836e
-20600000
-18a21600
-d8a0042f
-20407c9f
-18007e00
-67e2044f
-70042f01
-d8a003af
-20407ca1
-d8c00547
-d8a003ef
-20407c8f
-1a220c00
-d8a0040f
-20407c8f
-d8c0040f
-20407746
-203a766b
-da20040f
-da40042f
-20407749
-da2003ef
-da4003af
-20407749
-da20040f
-da4003ef
-20407742
-2021765d
-da2003ef
-da40040f
-1a220a00
-2040773a
-da20042f
-da4003af
-1a420a00
-2040770c
-efe08011
-9a60a600
-efe08012
-9a60fe00
-e7e08012
-20207642
-da20040f
-da4003ef
-1a220a00
-2040773a
-da2003af
-da40042f
-1a420a00
-2040770c
-efe08011
-9a60a600
-efe08012
-9a60fe00
-e7e08012
-20207642
-da2003af
-19620a00
-2040769b
-da200547
-19622400
-19620a00
-20207727
-18a21600
-18007000
-d8a003af
-20407ca1
-d8a0068f
-20407ca1
-1a220c00
-70068f00
-58000000
-20407704
-1a420c00
-20407708
-18000e00
-d8a003af
-d840068f
-18e22400
-1a4bfe00
-9840a400
-18000400
-18002600
-efe20005
-98002200
-efe20012
-1a627000
-9deffe00
-9a20fe00
-9840fe00
-e7e20005
-1fef0400
-1a60a601
-2a61fe08
-2420f686
-18427e00
-e7e20005
-18a08be0
-18e08e01
-28e1fe08
-2420f680
-da2003af
-19620a00
-2020769b
-470c4023
-18a21600
-1a226000
-da4003ef
-1a420a00
-20407c9d
-e7e40005
-1a208c2c
-20407c8b
-20407c85
-1a422200
-20407711
-da4003ef
-1e022200
-19620a00
-2040770e
-da4003ef
-1a420a00
-20407c9d
-e7e40005
-1e008c30
-20407c91
-20407c9d
-1a422200
-20407711
-da4003ef
-19622200
-1a220a00
-2040770e
-da4003ef
-1a420a00
-1e008c20
-20407c85
-20407c9d
-e7e40005
-1e008c38
-20407c8b
-19622200
-1a220a00
-2040770e
-da4003ef
-1a420a00
-1e008c24
-20407c85
-1e008c34
-20407c85
-1e008c34
-20407c86
-1e008c20
-20407c86
-19622200
-1a220a00
-2040770e
-da4003ef
-1a420a00
-1e008c2c
-20407c85
-20407c9d
-e7e40005
-1e008c20
-20407c86
-1e008c28
-20407c86
-19622200
-1a220a00
-20407727
-da4003ef
-1a420a00
-1e008c30
-20407c8b
-20407c8b
-18007e00
-e7e40005
-1e008c24
-20407c86
-1e008c2c
-20407c86
-19622200
-1a220a00
-20407727
-da4003ef
-1a420a00
-1e008c34
-20407c85
-1e008c20
-20407c85
-20407c9d
-1e008c30
-20407c86
-19622200
-1a220a00
-20407727
-da4003ef
-1a420a00
-1e008c38
-20407c8b
-20407c9d
-1e008c24
-20407c85
-20407c9d
-1e008c34
-20407c86
-19622200
-1a220a00
-20207727
-18007220
-d8a0068f
-98a08a00
-20207cdc
-18007208
-202074e5
-1a222400
-20207672
-18007208
-202074ae
-2040770c
-18a22200
-20207712
-2040773f
-2a6ffe00
-2020f71b
-da400547
-1a222600
-1a20a3e0
-20407742
-24610000
-1a622200
-20207723
-20407723
-1a222600
-1a20a3e0
-da400547
-20407742
-24610000
-1a622200
-20207723
-1a20a3e0
-da400547
-1a220a00
-2020773a
-2040773a
-2020f731
-18a0a3e0
-da400547
-20407742
-24610000
-da400547
-18a0a3e0
-1a220a00
-2020773a
-18a0a3e0
-da400547
-1a220a00
-2040770c
-20608000
-18a0a3e0
-da400547
-1a220a00
-2020770c
-18007208
-202074bc
-18007208
-1a20a21c
-202074cb
-18007208
-18002600
-202074d9
-18007208
-1a20a21c
-1a40a41c
-202074a3
-efe40006
-247a0000
-20207491
-1a226000
-1e022200
-efe08011
-2feffe00
-20608000
-2040773c
-efe08012
-2fec0000
-2020f759
-da200547
-1a420a00
-2040770c
-efe08012
-9a60fe00
-e7e08012
-1a40a5e0
-1a40a220
-18007209
-204074cb
-2020774a
-20758000
-204023ba
-20407764
-20407809
-2020779a
-204077bd
-202077f8
-6fe0c503
-c17f8000
-98000400
-20406ef1
-6848c503
-20406eed
-20000064
-6848c503
-20406ed7
-2020776e
-470cc023
-6fe0c503
-c17f8000
-1fe20400
-20406ee0
-2420f780
-2040778a
-6fe14500
-79207e0c
-67e14500
-6fe0c4fb
-c1000000
-7044fb00
-6fe0c502
-67e0c4fa
-20407791
-70064d2c
-20207819
-6fe14500
-793ffe0c
-67e14500
-6fe0c4fb
-c1008000
-7044fb01
-7044fa00
-20407793
-70064d2d
-20207819
-6fe0c4fa
-207a0000
-1fe0ffff
-67e0c4fa
-247a0000
-70064d10
-20207819
-d8e00007
-202024be
-d8e00007
-202024c2
-470d4023
-6fe14506
-1a2fa40b
-9a40a400
-20600000
-6fe0c505
-207a0000
-1fe27200
-6fe14506
-1fe22400
-1a40a602
-e8408013
-204077a5
-1a40a40b
-c200779f
-20600000
-6fe0c504
-203a6eed
-20206ef1
-20407795
-58000002
-e7e08012
-204077f2
-202077c9
-20407795
-58000003
-e7e08012
-204077f2
-202077c6
-20407795
-58000001
-e7e08012
-580000ff
-e7e08005
-202077c6
-20407795
-df20000b
-1a620c00
-1a420a00
-20207cce
-6fe0c505
-207a0000
-da200000
-204077cc
-1a20a201
-6fe0c505
-9a267c00
-20628000
-202077c0
-1a40a602
-e8408013
-20206eed
-1a40a602
-e8408013
-20206ef1
-1a208e0b
-20407cf1
-247a0000
-20407795
-efe08012
-c00177c9
-c001f7c6
-c00077c6
-c002f7e0
-204077c9
-1a40a607
-20407c4b
-efe10013
-20407d7b
-20407c57
-58000005
-e7e08012
-1a40a603
-efe10013
-202077f0
-204077c6
-1a40a609
-20407c4b
-efe10013
-20407d7b
-20407c57
-1a40a601
-efe08013
-c07ff7ec
-1fe0ffff
-e7e08013
-203a77ad
-58000004
-e7e08012
-1a40a605
-efe10013
-1a208e0b
-20207ce3
-58000000
-202077f0
-58001000
-1ff07e00
-9a40a400
-20600000
-470dc023
-da200000
-684a44fc
-1c422400
-1a427e00
-98467c00
-244177f4
-1a427e00
-184084a0
-184084a0
-98467c00
-2421780c
-1a20a201
-1a217e0f
-243a77ff
-da200000
-20407812
-1c427e00
-67e244fc
-20600000
-1a227e00
-207a0000
-18408560
-18408560
-793f841c
-604a44fc
-20203749
-7044e801
-6fe0c4e9
-243a7814
-20600000
-7044e800
-20600000
-470e4023
-6fe0c3cf
-c007ca1d
-20407813
-1a227e00
-67e20662
-da2044ea
-20407d8d
-6fe20662
-1fe22200
-20207817
-470ec023
-20407813
-1a227e00
-67e20662
-da2044f2
-20407d8d
-6fe20662
-1fe22200
-20207817
-58000000
-67e444f2
-67e444ea
-20600000
-470f4023
-6fe0c114
-247a0000
-da2044f2
-20407da5
-207a0000
-70064c00
-2040783c
-6fe0864c
-203a7831
-20600000
-20407813
-da2044f2
-20407d99
-1fe20400
-20407817
-470fc023
-18427e00
-207a0000
-c006f860
-c0077866
-c007f86b
-c0087871
-c009f87b
-c00a787d
-c00af87f
-c00b7889
-c00bf88c
-c00c788e
-c00cf891
-67e0864d
-6fe0864d
-c584f859
-47104024
-6fe0864d
-c008f876
-c00df899
-c009787a
-c00fee95
-20600000
-67e0864d
-2040205d
-2022f85e
-20402062
-24628000
-70064c01
-20207824
-70438c01
-70438f00
-6fe14500
-79207e0b
-67e14500
-20600000
-6fe14500
-793ffe0b
-67e14500
-70438c00
-20600000
-70438c01
-70438f01
-6fe14500
-79207e0b
-67e14500
-20600000
-6fe14500
-793ffe0b
-67e14500
-70438c00
-20600000
-58000014
-67e10196
-67e142f7
-202030a3
-20202e71
-da200000
-202077ad
-da200000
-202077a8
-da200000
-20407795
-efe08012
-c000f886
-c0027886
-c002f886
-202077b2
-efe08006
-c17f8000
-202077b2
-70434701
-7041141b
-20600000
-70434701
-20600000
-70434700
-70411400
-20600000
-6fe143de
-20407d7b
-6fe0c503
-c07ff897
-1fe20400
-20406ed7
-2040782d
-202023ff
-20202eb3
-6fe0c500
-c4060000
-20600000
-6fe14404
-1fe08a02
-58000000
-e7e18005
-20600000
-4710c024
-20407dbe
-204078ee
-207a0000
-6fe14404
-1fe0a402
-e8408012
-18408401
-e0408012
-e840803f
-18427200
-1fe0a404
-efe08012
-984ffe00
-98c08a00
-1a220c00
-20407cdc
-204078f2
-1fe0ffff
-e8408012
-18408401
-98410400
-e0408012
-20207dbc
-47114024
-20407dbe
-204078ea
-207a0000
-6fe14404
-1fe0a402
-e8408012
-184085ff
-e0408012
-e840803f
-18427200
-1fe0a403
-efe08012
-984ffe00
-98c08c00
-18c08c01
-1a220a00
-202078b2
-20407dbe
-204078ea
-207a0000
-6fe14404
-e840803f
-18427200
-1fe0a403
-efe08012
-984ffe00
-98c08c00
-18c08c01
-18c22400
-1a220a00
-20407cdc
-20207dbc
-20407dbe
-204078ea
-207a0000
-6fe14404
-e840803f
-18427200
-1fe0a403
-efe08012
-984ffe00
-98c08c00
-18c08a02
-1a220c00
-1f20f3ff
-20407cdc
-20207dbc
-6fe14404
-1fe08c02
-efe08006
-20600000
-204078f2
-e8408006
-98467e00
-20600000
-6fe14404
-1fe08c01
-efe08006
-20600000
-4711c024
-6ff08c22
-2feffe03
-2040f905
-6ff10c22
-67f10c22
-67e106e7
-20407963
-20407994
-20407b8a
-20407bd3
-2020795b
-47124024
-20407384
-20407922
-708c0000
-20002710
-708c1200
-6ff10050
-793ffe0a
-67f10050
-708c1021
-708c119d
-708c003c
-58000741
-67f10c02
-67f10c06
-58000781
-67f10c04
-708c1280
-708c0100
-708c22ff
-5800093d
-d8a0084b
-98a67200
-20207ca3
-6848884a
-20206ed7
-6fe088ec
-207a0000
-6848884a
-20406ee0
-2020f905
-20600000
-70084902
-58000000
-67e08784
-67e10843
-1fe0fe01
-67e10845
-1fe0fe01
-67e10847
-d8a007d8
-58030404
-e7e18005
-58000409
-e7e10005
-d8a007dd
-38015906
-380610d2
-38090494
-380c0001
-e7e48005
-d8a007fb
-3801570f
-38055c9a
-380a56c6
-380dcdcd
-e7e48005
-38014420
-38065d99
-380a5636
-380c0001
-e7e38005
-d8a00819
-3801620a
-38040c8c
-380b0333
-380cc0c0
-e7e48005
-38003130
-e7e10005
-580092aa
-67e10785
-58009307
-67e10787
-d8c093fb
-d8a00789
-df200013
-20407cdc
-d8c0940e
-d8a0079c
-df20003c
-20407cdc
-6fe10837
-20207d7b
-6fe08839
-207a0000
-67e087be
-67e087d7
-20600000
-d8e00001
-20407cf1
-247a0000
-6fe088ed
-247a0000
-6fe088ec
-245a7c3a
-20600000
-6fe086e7
-c2817966
-20600000
-2040796b
-20407cf0
-58000280
-d8e00001
-20207ce3
-6fe088de
-c0817970
-7008ed00
-7008ee00
-20600000
-6fe088f0
-207a0000
-7008f000
-7008de02
-7008ec01
-20600000
-6fe086e7
-c28079a1
-20600000
-69510c02
-6a110c04
-68710c06
-efe10003
-1fec8400
-18518400
-d8c00fff
-98c17200
-672106ea
-20600000
-6ff08c25
-c3830000
-20407979
-efe08003
-e7e08005
-c2007986
-60710c06
-20600000
-d8a0093d
-20407986
-d8400941
-60590c0e
-6fe0893e
-1fe0fe06
-e7e08002
-708c1808
-20600000
-4712c024
-6fe086e7
-c4028000
-20407979
-2841fe0d
-2020f98b
-d8a0084b
-20407986
-6fe086ea
-c0007976
-c000f9a8
-1fe67c07
-20610000
-47134024
-793f8023
-6fe0884b
-1fe17e80
-c04079ac
-c00079b4
-2020233e
-6fe0884b
-c3838000
-20407b5e
-202079db
-6fe0884b
-1ff1fe00
-1fe37e00
-1fe17e03
-c00079bc
-c000f9c2
-c00179c7
-2020233e
-6fe0884b
-1ff1fe00
-1fe37e00
-1fe17e03
-c00079c8
-c000f9d0
-c00179d5
-2020233e
-6fe0884c
-c00479dd
-c00379f3
-c0057a38
-c0007a4a
-202079d6
-6fe0884c
-c0017a7f
-c000fa83
-c001fa95
-202079d6
-202079d6
-6fe0884c
-c000fa9f
-c001facf
-c002fafb
-c004fb14
-c005fb2f
-c003f9d6
-202079d6
-6fe0884c
-c0057b40
-c004fb52
-c005fb70
-202079d6
-202079d6
-4713c024
-6ff08c19
-79207e00
-67f08c19
-202079db
-708c1b01
-20600000
-6fe0884b
-c0c079d6
-6fe0884f
-c08079d6
-6fe08850
-c08079d6
-6fe08851
-c080f9d6
-6fe08852
-c08079d6
-6fe0884d
-c08079d6
-6fe0884e
-c08079d6
-6fe08849
-c00279ef
-c001f9f1
-202079d6
-da400001
-20207a64
-da400001
-20207a62
-47144025
-6fe0884e
-c000fa06
-c0017a1f
-c001fa22
-c010f9fb
-c0117a30
-202079d6
-7008db00
-6fe0884f
-c0007a00
-c000fa03
-202079d6
-6a4087af
-da2007af
-20207b7f
-6a4087c8
-da2007c8
-20207b7f
-6fe088ef
-245a7a17
-58000789
-68488789
-67e108e6
-604888e8
-6fe08851
-98467c00
-24217a15
-6fe088e8
-98002400
-6fe108e6
-1fe0fe01
-98002200
-20207b7f
-6fe08851
-20207a10
-6ff08c01
-245a7a1b
-7008ef00
-20600000
-6ff08c01
-79207e07
-67f08c01
-20600000
-5800079c
-6848879c
-20207a0a
-6fe0884d
-1fe67c03
-242179d6
-6fe0884d
-da2007d8
-c0007b7d
-79200023
-da2007dd
-c000fb7d
-da2007fb
-c0017b7d
-da200819
-c001fb7d
-20600000
-6fe1084f
-c000fa34
-6a210785
-20207b7d
-7008ec01
-7008de01
-6a210787
-20207b7d
-6fe08849
-c08279d6
-6fe0884b
-c0c0f9d6
-6fe0884d
-c08079d6
-6fe0884e
-c08079d6
-6fe08851
-c080f9d6
-6fe08852
-c08079d6
-6fe0884f
-c08079d6
-6fe08850
-c08079d6
-da400001
-20207a62
-6fe08849
-c00179d6
-6fe0884d
-c08079d6
-6fe0884e
-c08079d6
-6fe08851
-c08179d6
-6fe08852
-c08079d6
-6fe08850
-c08079d6
-6fe0884b
-c0407a5d
-c040fa68
-c0417a6c
-202079d6
-7008e101
-20207a66
-6fe0884f
-c08079d6
-da400002
-6fe088df
-c000fa5b
-da200843
-20207b7f
-da200845
-20207b7f
-da200847
-20207b7f
-6fe08849
-c08279d6
-da400002
-20207a62
-6fe08849
-c08279d6
-6fe0884f
-c040fa79
-c0417a7b
-c041fa7d
-1fe17e7f
-c0007a75
-202079d6
-6fe088e2
-da400002
-c000fa64
-20207a62
-6fe088e3
-20207a76
-6fe088e4
-20207a76
-6fe088e5
-20207a76
-7008d901
-da2008da
-da400001
-20207b7f
-4714c025
-6fe1084d
-d84001ba
-98467c00
-2422f9d6
-6fe088d6
-243a7a92
-70089300
-6fe08851
-98002400
-da200893
-20407b7f
-d8a00893
-df200040
-20207ca5
-7008d600
-70089301
-20207a8b
-6fe08851
-c080f9d6
-7008db01
-da400001
-6fe088dd
-c0007a9d
-c000fa9e
-20207a62
-20207a64
-20207a62
-6fe08849
-c08279d6
-6fe08851
-c08079d6
-6fe08852
-c08079d6
-6fe0884e
-c08079d6
-6fe08850
-c08079d6
-6fe0884b
-c0007aae
-c000fabc
-c0017abd
-202079d6
-47154025
-6fe0884d
-c080f9d6
-6ff08c00
-793ffe07
-67f08c00
-7008df00
-7008e001
-6fe088e1
-203a79db
-7008e100
-7008e000
-7008de02
-202079db
-202079d6
-6fe0884d
-c08079d6
-6fe0884f
-c040fac8
-c0417acb
-c041facd
-1fe17e7f
-c0007ac6
-202079d6
-7008e200
-202079db
-7008e300
-7008f001
-202079db
-7008e400
-20207ac9
-7008e500
-20207ac9
-6fe08851
-c08079d6
-6fe08852
-c08079d6
-6fe0884b
-c0007ad8
-c000fae7
-c0017ae8
-202079d6
-4715c025
-6fe0884d
-c080f9d6
-20403dd6
-6ff08c00
-79207e07
-67f08c00
-7008df01
-7008de03
-7008d700
-204079db
-20407cf0
-58001388
-d8e0000f
-20207ce3
-202079d6
-6fe0884d
-c08079d6
-6fe0884e
-c08079d6
-6fe0884f
-c040faf5
-c0417af7
-c041faf9
-1fe17e7f
-c0007af3
-202079d6
-7008e201
-202079db
-7008e301
-202079db
-7008e401
-202079db
-7008e501
-202079db
-6fe0884b
-c08079d6
-6fe0884f
-c08079d6
-6fe08850
-c08079d6
-6fe08851
-c08079d6
-6fe08852
-c08079d6
-6fe0884e
-c08079d6
-6fe0884d
-1fe17e80
-c08079d6
-6fe0884d
-c0807b12
-70084902
-6fe0884d
-67f08c01
-204079db
-7008ef01
-20600000
-70084903
-20207b0d
-6fe08849
-c00179d6
-6fe0884b
-c08079d6
-6fe0884f
-c08079d6
-6fe08850
-c08079d6
-6fe08851
-c08079d6
-6fe08852
-c08079d6
-6fe0884e
-c08079d6
-6fe0884d
-1fe67c01
-242179d6
-6fe08849
-c001fb29
-c0027b29
-202079d6
-6fe0884d
-c0007b2d
-70084904
-202079db
-70084903
-202079db
-6fe08849
-c08279d6
-6fe0884b
-c080f9d6
-6fe0884d
-c08079d6
-6fe0884e
-c08079d6
-6fe08851
-c08079d6
-6fe08852
-c08079d6
-6fe0884f
-c08079d6
-6fe08850
-c08079d6
-202079db
-47164025
-7008d901
-6fe0884e
-67e088da
-6fe0884f
-1fe67c01
-2042fb4e
-6fe088de
-c08279db
-7008de02
-204079db
-20007530
-20007530
-20600000
-7008ec01
-7008e000
-7008de04
-20600000
-4716c025
-20003a98
-d8a00853
-20407983
-7008d501
-20407b62
-6fe1084d
-67e108d3
-708c1b02
-6fe088d7
-207a0000
-6fe08853
-67e0c638
-7008d700
-70462803
-20600000
-6fe1084d
-d8400200
-98467c00
-24628000
-6fe1084f
-d8400000
-98467c00
-24628000
-6fe10851
-d8400001
-98467c00
-24628000
-7008d701
-20600000
-6fe08851
-c08079d6
-6fe0884d
-c0007b76
-c000fb79
-202079d6
-7008dc00
-7008dd01
-202079db
-7008d801
-7008dc01
-7008dd00
-202079db
-ea408011
-1a20a201
-47174025
-7920000e
-c591fb84
-1a40a401
-1a43a400
-62210782
-62408784
-20207b8a
-20600000
-d8e00000
-20207bcb
-4717c025
-6ff08c25
-c3800000
-6fe08784
-207a0000
-1fe27200
-98000400
-6fe10851
-1fe67c40
-20217b98
-1f267c40
-20217b9c
-18007240
-20207b9c
-9f267c00
-20217b9c
-98007200
-67e08784
-6fe08784
-9f267e00
-67e08784
-1f20ffff
-67e086ec
-c591fbae
-1fe37e00
-1f20ffff
-67e086ec
-c5877bae
-793f800e
-e0408005
-58000003
-e7e08005
-1f20f3ff
-1f227e00
-2422fbae
-1f20f201
-6fe10782
-1fe20c00
-efe08006
-e7e08005
-c591fbb5
-58000000
-e7e08005
-c2007bb0
-18c27e00
-67e10782
-580006ec
-67f10c08
-d8e00000
-20407bcb
-6fe08784
-247a0000
-708c1b02
-6fe088de
-c1808000
-7008de02
-20600000
-da20072d
-d8e00001
-62310c0a
-1f20ffff
-e7e08011
-efe08006
-e7e08005
-c2007bc8
-58000000
-f9207e00
-67f08c18
-20600000
-d8e00002
-da200737
-62310c0c
-20207bc6
-47184026
-6fe088eb
-207a0000
-6ff08c25
-1fe17e0f
-243a7c32
-6fe088ec
-203a7bfe
-6fe088de
-c001fc42
-c0817bfe
-6fe088e0
-243a7bfe
-20407be2
-20207bee
-6ff08c25
-c3808000
-6fe088eb
-c4008000
-6fe088eb
-793ffe01
-67e088eb
-4718c026
-6fe088e9
-207a0000
-c0087c20
-2020233e
-6ff08c25
-c3810000
-6fe088eb
-c4010000
-6fe088eb
-793ffe02
-67e088eb
-47194026
-6fe088ea
-207a0000
-c0107c01
-c010fc1c
-c0117c26
-c011fc2a
-c0127c2e
-2020233e
-d8a008f1
-df200040
-20207ca5
-6fe088d9
-684888db
-98417e00
-203a7c18
-684888dc
-9840fe00
-c000fc09
-20207c18
-7008ea00
-6fe088f2
-c0017c19
-c001fc19
-6fe088f2
-67e088f1
-6fe088f3
-e7e08005
-6fe088f5
-e7e08005
-6fe088f7
-e7e08005
-df200004
-d8c008f1
-20207bcf
-7008ea00
-df200008
-d8c008f1
-20207bcf
-7008ea00
-df200003
-d8c00921
-20207bcf
-6fe0c3cf
-c007ca10
-7008e900
-df200008
-d8c00901
-20207bc3
-7008ea00
-df200002
-d8c00929
-20207bcf
-7008ea00
-df200004
-d8c00921
-20207bcf
-7008ea00
-df20000f
-d8c00911
-20207bcf
-6fe088de
-c0017c35
-20600000
-6ff08c00
-79207e07
-67f08c00
-7008ee01
-20600000
-6fe088de
-c1018000
-c0017c3e
-20600000
-6fe088ee
-207a0000
-7008ed01
-20207c45
-d8e0000f
-20407cf1
-247a0000
-6ff08c00
-c4038000
-708c00fc
-20007530
-708c003c
-20600000
-60a1066f
-604c0656
-6162065e
-20407c53
-60c1066d
-67210679
-60e10677
-20600000
-62220662
-62420666
-6261866a
-20600000
-4719c026
-6fe1066f
-98000a00
-684c0656
-6962065e
-20407c62
-6f210679
-68e10677
-6fe1066d
-98000c00
-20600000
-6a220662
-6a420666
-6a61866a
-20600000
-6fe1066f
-1fe20a00
-20600000
-6fe1066d
-1fe20c00
-20600000
-18a27e00
-67e1066f
-20600000
-18c27e00
-67e1066d
-20600000
-18a27e00
-67e1066f
-18c27e00
-67e1066d
-20600000
-6fe1066f
-1fe20a00
-6fe1066d
-1fe20c00
-20600000
-98462200
-20610000
-da200100
-9a20fe00
-98462200
-20600000
-20407c8f
-20407c8f
-20207c8f
-20407c8b
-efe08006
-e7e08005
-efe18006
-e7e18005
-20600000
-efe40006
-e7e40005
-20600000
-20407c91
-20407c8b
-20407c8b
-20407c8b
-20207c8b
-1fe0ffff
-20000026
-243a7c93
-20600000
-df20000a
-20002ee0
-c2007c98
-20600000
-20407c9c
-20407c9d
-18007204
-20207ca5
-18007220
-20207ca5
-18007240
-20207ca5
-1f227e00
-207a0000
-18007e00
-e7e00005
-20600000
-df200020
-d8a0067f
-20207ca3
-efe20013
-e8420011
-9842fe00
-e7e20005
-1a20a204
-1a60a604
-c2007cab
-20600000
-471a4026
-1f227e00
-1fe67c01
-20610000
-9a20a400
-1a40a5ff
-1f237200
-e8408011
-efe08012
-e7e08011
-e0408012
-1a40a5ff
-1a20a201
-c2007cba
-20600000
-1fef0400
-20407cc8
-18508400
-1ff07e00
-9841fe00
-20600000
-1ff10c00
-18d08c00
-1ff0fe00
-1ff07e00
-98c1fe00
-20600000
-471ac026
-1f227e00
-207a0000
-1f20f3f8
-20417c8b
-20628000
-20217cd1
-1f20f208
-1f20f3fc
-20417c86
-20628000
-20217cd6
-1f20f204
-20207cdc
-1f227e00
-207a0000
-efe08006
-e7e08005
-c2007cde
-20600000
-58000000
-67e1064e
-471b4026
-20407cf1
-6849064e
-d8a040f4
-18e3fe00
-98a08a00
-e0410005
-20600000
-d9600800
-19701600
-9960fe00
-20600000
-d8e00000
-471bc026
-684a4095
-1c437e00
-67e24095
-98467c00
-24417cec
-98461600
-19620400
-d8c040f4
-18c20a00
-df200010
-efe10006
-98467e00
-20217d00
-18007e00
-e7e10005
-c2007cfc
-d8c040f4
-18e3fe00
-98c08c00
-efe10006
-20600000
-98408400
-18427200
-6fe10044
-9f267e00
-20610000
-1fe67e00
-18510400
-18408401
-18500400
-98418400
-20600000
-20407d14
-20207d21
-78547c00
-98467e00
-00020001
-18000228
-03020002
-030a0128
-2a000200
-00000014
-00000000
-00000000
-00000000
-00000000
-02000400
-02012803
-01020005
-03c2022a
-03020006
-07020128
-2a040200
-06000608
-2c006400
-02000801
-01022800
-02000918
-20012803
-0502000a
-000b002a
-02290202
-000c0000
-02280002
-000d180a
-01280302
-02000e02
-59062a29
-69684369
-02000f70
-02012803
-50020010
-3502072a
-01aa2212
-02001100
-12022800
-02001218
-06012803
-4e020013
-1401012a
-28030200
-00151201
-082a4d02
-00000000
-00000000
-02020016
-00000229
-08020017
-01020229
-03020018
-191a0128
-2a4d0200
-00000007
-00000000
-0202001a
-00000229
-0802001b
-01010229
-0302001c
-1d120128
-2a4d0200
-1e000002
-29020200
-1f000002
-29080200
-20010302
-28030200
-00211201
-022a4d02
-00220000
-02290202
-00230000
-02290802
-00240104
-01280302
-0200250e
-00022a4d
-02002600
-02022908
-02002702
-02012803
-4b020028
-0c05f52a
-01a10109
-00150585
-01750125
-830a1895
-09ea0901
-09e209e9
-09b509b6
-0ab709cd
-8a0a0223
-01940a01
-0a022a0a
-210a0192
-02240a02
-0a03070a
-700901ae
-30096f09
-250ab809
-02260a02
-8102270a
-0105c002
-01a10609
-01750285
-07050895
-e729e019
-01250015
-01950281
-03810875
-01750595
-01190805
-02910529
-03750195
-06950391
-00150875
-0500ff26
-2a001907
-008100ff
-090105c0
-8501a102
-a1010901
-19090500
-15082901
-75012500
-81089501
-09010502
-16310930
-ff26f801
-95107507
-09068102
-25811538
-9508757f
-05068101
-02380a0c
-06810195
-0105c0c0
-01a18009
-00150485
-01750125
-81190395
-02818329
-05750195
-29c00381
-28030200
-002a1a01
-082a3302
-00000000
-00000000
-0202002b
-00010229
-0302002c
-2d020128
-2a4a0200
-00010104
-02002e03
-0f022800
-02002f18
-12012803
-19020030
-3164012a
-29020200
-32000002
-28030200
-00330401
-002a4c02
-061a0000
-8809ffbc
-048501a1
-ff2a0019
-26001500
-087500ff
-00810195
-010541c0
-01a10609
-08950175
-e0190705
-0015e729
-02810125
-08750195
-05950381
-08050175
-05290119
-01950291
-03910375
-08750695
-ff260015
-19070500
-00ff2a00
-f3c00081
-02090105
-018501a1
-00a10109
-01190905
-00150529
-05950125
-02810175
-03750195
-01050181
-31093009
-26F80116
-107507FF
-06810295
-81153809
-08757f25
-06810195
-380a0c05
-81019502
-05c0c006
-a1800901
-05028501
-29811901
-25001588
-75089501
-c0068101
-09ff0006
-8501a10e
-751f95BA
-00ff2608
-01090015
-BA850291
-08751f95
-1500ff26
-81010900
-0c05C002
-01a10109
-00150585
-01750125
-830a1895
-09ea0901
-09e209e9
-09b509b6
-0ab709cd
-8a0a0223
-01940a01
-0a022a0a
-210a0192
-02240a02
-0a03070a
-700901ae
-30096f09
-250ab809
-02260a02
-8102270a
-0c05c002
-01a10109
-00150385
-19038026
-03802a00
-01951075
-12c00081
-02000112
-40000000
-10203151
-02010002
-093b0100
-02003b02
-32a00001
-00000409
-01010301
-00210900
-22010002
-0507001a
-00400381
-01040902
-01030100
-21090002
-01000200
-0700f322
-40038205
-00b00200
-01090c05
-058501a1
-01250015
-18950175
-0901830a
-09e909ea
-09b609e2
-09cd09b5
-02230ab7
-0a018a0a
-2a0a0194
-01920a02
-0a02210a
-070a0224
-01ae0a03
-6f097009
-b8093009
-0a02250a
-270a0226
-c0028102
-06090105
-028501a1
-08950175
-e0190705
-0015e729
-02810125
-08750195
-05950381
-08050175
-05290119
-01950291
-03910375
-08750695
-ff260015
-19070500
-00ff2a00
-05c00081
-a1800901
-15048501
-75012500
-19039501
-81832981
-75019502
-c0038105
-0c0500ba
-01a10109
-00150585
-01750125
-830a1895
-09ea0901
-09e209e9
-09b509b6
-0ab709cd
-8a0a0223
-01940a01
-0a022a0a
-210a0192
-02240a02
-0a03070a
-700901ae
-30096f09
-250ab809
-02260a02
-8102270a
-0105c002
-01a10609
-01750285
-07050895
-e729e019
-01250015
-01950281
-03810875
-01750595
-01190805
-02910529
-03750195
-06950391
-00150875
-0500ff26
-2a001907
-008100ff
-0309ff05
-01950875
-05c00281
-a1800901
-15048501
-75012500
-19039501
-81832981
-75019502
-c0038105
-0c0500ca
-01a10109
-00150585
-01750125
-830a1895
-09ea0901
-09e209e9
-09b509b6
-0ab709cd
-8a0a0223
-01940a01
-0a022a0a
-210a0192
-02240a02
-0a03070a
-700901ae
-30096f09
-250ab809
-02260a02
-8102270a
-0105c002
-01a10609
-01750285
-07050895
-e729e019
-01250015
-01950281
-03810875
-01750595
-01190805
-02910529
-03750195
-06950391
-00150875
-0500ff26
-2a001907
-008100ff
-090105c0
-8501a106
-75709501
-25001501
-19070501
-00ff2a00
-05c00281
-a1800901
-15048501
-75012500
-19039501
-81832981
-75019502
-c0038105
-00020001
-18010228
-03020002
-03200128
-2a050200
-00040001
-02290202
-00050000
-02280002
-00061800
-01280302
-02000702
-43132a00
-73706968
-422d6165
-2020454c
-20202020
-00082020
-01280302
-02000902
-c1022a01
-02000a03
-02012803
-0402000b
-0006082a
-00640006
-000c012c
-02280002
-000d180a
-01280302
-02000e02
-02072a50
-8266248a
-000f0001
-02280002
-00101812
-01280302
-02001106
-01012a4e
-03020012
-13120128
-2a4d0200
-14000002
-29020200
-15000002
-29080200
-16010202
-28030200
-00171201
-022a4d02
-00180000
-02290202
-00190000
-02290802
-001a0103
-01280302
-02001b02
-051b2a4b
-a101090c
-09028501
-09ea09e9
-153009e2
-750c2501
-81019510
-001cc000
-01280302
-02001d02
-11042a4a
-1e010001
-28030200
-001f0401
-012a4c02
-02002000
-0f022800
-02002118
-12012803
-19020022
-0063012a
-00130200
-13020002
-02000100
-00040013
-06001302
-00130200
-13020005
-02000000
-28000017
-00001702
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-0000f934
\ No newline at end of file
Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/output/zcode.rom
===================================================================
--- /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/output/zcode.rom	(revision 5679)
+++ /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/output/zcode.rom	(nonexistent)
@@ -1,448 +0,0 @@
-20200040
-c0300004
-c0308027
-20600000
-6fe0ccbb
-203a0007
-20200017
-6fe0c5a0
-79207e07
-67e0c7c2
-7047c300
-6fe0cce5
-1fe0fe02
-67e0c7c4
-7047c516
-6f20cce5
-d8c04ce6
-d8a047c6
-20407cdc
-6fe0cce5
-1fe0fe04
-67e0c59f
-20600000
-6fe0c5a0
-79207e07
-67e0cc76
-704c7700
-6fe0cce5
-1fe0fe02
-67e0cc78
-704c7916
-6f20cce5
-d8c04ce6
-d8a04c7a
-20407cdc
-6848cce5
-18408404
-da204c76
-202004e5
-6fe0ccbb
-203a002a
-20200033
-6fe0c5a0
-79207e07
-67e0c7c2
-7047c300
-7047c402
-7047c514
-7047c601
-70459f05
-20600000
-6fe0c5a0
-79207e07
-67e0cc76
-704c7700
-704c7802
-704c7914
-704c7a01
-d8400005
-da204c76
-202004e5
-00000000
-00000000
-00000000
-20200040
-c0280004
-c028801c
-20600000
-6fe0ccbb
-203a0007
-20200011
-6fe0c5a0
-79207e07
-67e0c7c2
-7047c300
-7047c402
-7047c512
-6fe0cce3
-67e0c7c6
-70459f05
-20600000
-6fe0c5a0
-79207e07
-67e0cc76
-704c7700
-704c7802
-704c7912
-6fe0cce3
-67e0cc7a
-d8400005
-da204c76
-202004e5
-6fe0ccbb
-203a001f
-2020002b
-6fe0c5a0
-79207e07
-67e0c7c2
-7047c300
-7047c403
-7047c513
-6fe0c77c
-67e0c7c6
-6fe0cce4
-e7e08005
-70459f06
-20600000
-6fe0c5a0
-79207e07
-67e0cc76
-704c7700
-704c7803
-704c7913
-6fe0c77c
-67e0cc7a
-6fe0cce4
-e7e08005
-d8400006
-da204c76
-202004e5
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-20200040
-c0200004
-c0208021
-20600000
-6fe0ccbb
-203a0007
-20200013
-6fe0c5a0
-79207e07
-67e0c7c2
-7047c300
-7047c430
-7047c510
-70459f33
-df20001f
-d8c04853
-d8a047c6
-20407cdc
-202004bd
-6fe0c5a0
-79207e07
-67e0cc76
-704c7700
-704c7830
-704c7910
-df20001f
-d8c04853
-d8a04c7a
-20407cdc
-204004bd
-d8400034
-da204c76
-202004e5
-6fe0ccbb
-203a0024
-20200030
-6fe0c5a0
-79207e07
-67e0c7c2
-7047c300
-7047c403
-7047c511
-6fe0c6a2
-67e0c7c6
-6fe0cce1
-e7e08005
-70459f06
-20600000
-6fe0c5a0
-79207e07
-67e0cc76
-704c7700
-704c7803
-704c7911
-6fe0c6a2
-67e0cc7a
-6fe0cce1
-e7e08005
-d8400006
-da204c76
-202004e5
-00000000
-00000000
-00000000
-20200040
-c0180003
-20600000
-6fe0ccbb
-203a000d
-6fe0c5a0
-79207e04
-67e0cc76
-704c77ff
-d8400002
-da204c76
-202004e5
-20600000
-70459f02
-6fe0c5a0
-79207e04
-67e0c7c2
-7047c3ff
-20600000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-20200040
-c0100003
-20600000
-6fe0c577
-c003000c
-c008000e
-c0088010
-c0090012
-c0098016
-c00b0019
-c00a001b
-20600000
-d8e00004
-202003dc
-d8e00006
-202003dc
-704ce101
-20200370
-d8c04575
-204003aa
-d8e00008
-202003dc
-704ce401
-d8e00009
-202003dc
-d8e0000c
-202003dc
-704e5e00
-d8c04575
-20400376
-d8e0000a
-202003dc
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-20200040
-c0080005
-c0088018
-c0090024
-20600000
-20400024
-20405640
-20400010
-6fe0ce5e
-205a0014
-6fe0c6a2
-67e0cce2
-d8400008
-da20486a
-da400082
-20206cd7
-d8400001
-da204e5e
-da400099
-20206cd7
-d840000f
-da204e4f
-da40008a
-20206cd7
-6fe0c5f9
-c002d98c
-c000801c
-20205975
-6fe4470e
-c29f0020
-c2980020
-20205983
-6fe145ed
-67e145f5
-7045f905
-2020350a
-d8400334
-da2006f2
-da400000
-6fe14e9b
-20206cda
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-20200040
-c0000005
-c000800b
-c0010015
-20600000
-6fe4470e
-c29f594b
-6fe0c678
-c000593a
-204002b6
-20204dfa
-20404d89
-58004d00
-67e14343
-58000050
-67e14345
-580006f2
-67e142f9
-7042e346
-7046380f
-20600000
-20404d83
-7045e101
-70444e01
-700ea200
-7048fa01
-7048ef10
-20600000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/app.prog
===================================================================
--- /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/app.prog	(revision 5679)
+++ /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/app.prog	(nonexistent)
@@ -1,331 +0,0 @@
-app_init:
-	bpatch patch19_7,mem_patch19
-	fetch 1,mem_device_option
-	branch app_init,blank				/* wait ram to be initialized */
-	beq DVC_OP_DONGLE,dongle_init
-	beq DVC_OP_SHUTTER,shutter_init
-	beq DVC_OP_MODULE,module_init
-	beq DVC_OP_CAR,car_init
-	beq DVC_OP_SHUTTER_DY,shutter_dy_init
-	beq DVC_OP_REMOTE_CAR,remote_car_init
-	beq DVC_OP_KEYBOARD,keyboard_init
-	beq DVC_OP_HCI_BOOT,hci_init
-//	beq DVC_OP_TEST,test_init
-	beq DVC_OP_MOUSE,mouse_init
-	rtn
-
-
-app_param_init:
-	rtn wake
-	call adc_init_data
-	fetch 1,mem_device_option
-	beq DVC_OP_SHUTTER,shutter_default_init
-	beq DVC_OP_SHUTTER_DY,shutter_default_init
-	beq DVC_OP_DONGLE,dongle_default_init
-	beq DVC_OP_MOUSE,mouse_default_init
-	beq DVC_OP_KEYBOARD,keyboard_default_init
-	beq DVC_OP_REMOTE_CAR,remote_car_default_init
-	beq DVC_OP_CAR,car_default_init
-	rtn
-	
-app_process_idle:
-	call ui_dispatch
-	call check_51cmd
-	call app_process_bb_event
-	fetch 2,mem_cb_idle_process
-	branch callback_func
-
-app_process_ble:
-	fetch 2,mem_cb_le_process
-	branch callback_func
-
-app_process_bb_event:
-	bpatch patch1a_0,mem_patch1a
-	//return if c51 need to process bb event
-	arg mem_ipc_fifo_bt2c51,rega
-	call fifo_out
-	rtn blank
-	//reaching here mains c51 cannot get bb event.
-	copy pdata,regc
-	call app_event_normal_process
-	branch app_process_bb_event_priority
-	
-app_discard_event:
-	arg 0,regc
-	rtn
-
-//************************************************//
-//*APP BB EVENT NORMAL PROCESS**//
-//************************************************//
-app_event_normal_process:
-	beq BT_EVT_BUTTON_LONG_PRESSED,app_evt_button_long_pressed
-	beq BT_EVT_LE_CONNECTED,app_le_event_bb_connected
-	beq BT_EVT_LE_DISCONNECTED,app_le_event_bb_disconn
-	rtn
-
-
-
-app_process_bb_event_priority:
-	fetch 2,mem_cb_bb_event_process
-	branch callback_func
-	
-app_check_wake_lock:
-	fetch 2,mem_cb_check_wakelock
-	branch callback_func
-	
-app_will_enter_lpm:
-	fetch 2,mem_cb_before_lpm
-	branch callback_func
-
-app_le_event_bb_connected:
-	fetch 2,mem_ui_state_map
-	set1 UI_STATE_BLE_CONNECTED,pdata
-	store 2,mem_ui_state_map
-	rtn
-	
-app_le_event_bb_disconn:
-	jam 0,mem_le_l2cap_att_states
-	fetch 2,mem_ui_state_map
-	set0 UI_STATE_BLE_CONNECTED,pdata
-	store 2,mem_ui_state_map
-	branch app_lpm_mult_disable
-	
-
-app_evt_button_long_pressed:
-	fetch APP_DISC_RSN_SIZE,mem_app_disconn_reason_flag
-	set1 APP_DISC_BY_BUTTON,pdata
-	store APP_DISC_RSN_SIZE,mem_app_disconn_reason_flag
-	rtn
-	
-
-app_evt_timer:
-	store 1,mem_app_evt_timer_count
-app_evt_100ms_loop:
-	bpatch patch1a_1,mem_patch1a
-	fetch 1,mem_app_evt_timer_count
-	rtn blank
-	increase -1,pdata
-	store 1,mem_app_evt_timer_count
-	call ui_button_polling
-	call app_lpm_wake_auto_lock_timer
-	call flash_write_spi_sm_timer
-	fetch 2,mem_cb_event_timer
-	call callback_func
-	branch app_evt_100ms_loop
-
-
-//regc:timer addr
-//regb:timer up call back fuction
-timer_single_step:
-	ifetch 1,regc
-	rtn blank
-	pincrease -1
-	istore 1,regc
-	nrtn blank
-	copy regb,pdata
-	branch callback_func
-
-//regc:timer addr
-//regb:timer up call back fuction
-timer_single_step_2B:
-	ifetch 2,regc
-	rtn blank
-	pincrease -1
-	istore 2,regc
-	nrtn blank
-	copy regb,pdata
-	branch callback_func
-	
-app_power_timer:
-	fetcht 2,mem_power_param_ptr
-	add temp,power_timer_offset,regc
-	arg app_power_timer_timeout,regb
-	branch timer_single_step
-	
-app_power_timer_timeout:
-	call app_got_power_state_common
-	beq POWER_STARTING,app_enter_power_stanby_state
-app_enter_power_off_state:
-	branch app_enter_hibernate
-app_enter_power_stanby_state:
-	setarg POWER_STANDBY
-	istore 1,regc
-	add temp,power_standby_cb_offset,regb
-app_power_cb_common:
-	ifetch 2,regb
-	branch callback_func
-
-
-app_bb_hibernate:
-	call app_disconn_reason_clear
-	branch app_enter_hibernate
-
-	
-app_disconn_reason_clear:
-	setarg 0
-	store APP_DISC_RSN_SIZE,mem_app_disconn_reason
-	rtn
-app_disconn_reason_flag_clear:
-	setarg 0
-	store APP_DISC_RSN_SIZE,mem_app_disconn_reason_flag
-	rtn
-
-
-	
-app_disconn_reason_collect_ble:
-	fetch APP_DISC_RSN_SIZE,mem_app_disconn_reason_flag
-	set1 APP_DISC_BLE,pdata
-	store APP_DISC_RSN_SIZE,mem_app_disconn_reason
-	setarg 0
-	store APP_DISC_RSN_SIZE,mem_app_disconn_reason_flag
-	rtn
-
-	
-//************************************************//
-//********APP SHARED FUNCSIONS*******//
-//************************************************//
-
-
-app_get_lpm_wake_lock:
-	arg wake_lock_app,queue
-	branch lpm_get_wake_lock
-
-app_put_lpm_wake_lock:
-	arg wake_lock_app,queue
-	branch lpm_put_wake_lock
-	
-app_lpm_wake_auto_lock:
-	jam  LPM_WAKE_UP_DELAY_TIMER,mem_wake_up_delay_timer
-	branch app_get_lpm_wake_lock
-	
-app_lpm_wake_auto_lock_timer:
-	arg mem_wake_up_delay_timer,regc
-	arg app_put_lpm_wake_lock,regb
-	branch timer_single_step
-
-
-app_ble_start_direct_adv:
-	jam BT_CMD_START_DIRECT_ADV,mem_fifo_temp
-	branch ui_ipc_send_cmd
-
-app_ble_stop_direct_adv:
-	jam BT_CMD_STOP_DIRECT_ADV,mem_fifo_temp
-	branch ui_ipc_send_cmd
-	
-app_ble_stop_adv:
-	jam BT_CMD_STOP_ADV,mem_fifo_temp
-	branch ui_ipc_send_cmd
-	
-app_ble_start_adv:	
-	jam BT_CMD_START_ADV,mem_fifo_temp
-	branch ui_ipc_send_cmd
-	
-app_ble_start_scan:
-	jam BT_CMD_LE_START_SCAN,mem_fifo_temp
-	branch ui_ipc_send_cmd
-	
-app_ble_stop_scan:
-	jam BT_CMD_LE_STOP_SCAN,mem_fifo_temp
-	branch ui_ipc_send_cmd
-	
-app_ble_start_conn:
-	jam BT_CMD_LE_START_CONN,mem_fifo_temp
-	branch ui_ipc_send_cmd
-	
-app_ble_disconnect:
-	jam BT_CMD_LE_DISCONNECT,mem_fifo_temp
-	branch ui_ipc_send_cmd
-	
-app_led_start_blink:	
-	jam BT_CMD_LED_BLINK,mem_fifo_temp
-	branch ui_ipc_send_cmd
-
-app_led_on:
-	jam BT_CMD_LED_ON,mem_fifo_temp
-	branch ui_ipc_send_cmd
-	
-app_led_stop_blink:
-app_led_off:
-	jam BT_CMD_LED_OFF,mem_fifo_temp
-	branch ui_ipc_send_cmd
-	
-app_enter_hibernate:
-	jam BT_CMD_ENTER_HIBERNATE,mem_fifo_temp 
-	branch ui_ipc_send_cmd
-	
-
-app_ble_store_reconn_info:
-	jam BT_CMD_STORE_RECONN_INFO_LE,mem_fifo_temp
-	branch ui_ipc_send_cmd
-
-
-app_lpm_mult_enable:
-	set1 mark_lpm_mult_enable,mark
-	rtn
-
-app_lpm_mult_disable:
-	set0 mark_lpm_mult_enable,mark
-	rtn
-
-
-/*
-
-mem_power_param struct
-{
-	usigned char     mem_power_state
-	usigned char     mem_power_timer
-	usigned char	 mem_power_off_timeout
-	usigned char	 mem_power_starting_timeout
-	usigned long	 mem_power_off_cb
-	usigned long	 mem_power_starting_cb
-	usigned long	 mem_power_standby_cb
-	usigned long 	 mem_ui_butten_up_cb
-}
-    	functions:power state switching by mem_app_power_timer timeout or by button_long_pressed event
-    	(power off -> power starting->power standby->power off) and power timer initialization 
- input parameters:mem_power_param_ptr should be point to the variable(mem_power_param) address where the input parameters stored in with its format
-output parameters:switched power state will be stored in variable mem_power_state*/
-app_button_long_pressed:
-	call app_got_power_state_common
-	beq POWER_STANDBY,app_power_shutting_down
-app_power_starting:
-	setarg POWER_STARTING
-	istore 1,regc
-	add temp,power_starting_timeout_offset,rega
-	add temp,power_starting_cb_offset,regb
-app_power_common:
-	ifetcht 1,rega
-	increase 1,regc
-	istoret 1,regc
-	branch app_power_cb_common
-	
-app_power_shutting_down:
-	setarg POWER_OFF
-	istore 1,regc
-	fetch 2,mem_ui_state_map
-	bbit0 UI_STATE_BLE_CONNECTED,app_power_off_end
-	call le_send_terminate_ind_user_terminated
-	call app_ble_disconnect
-app_power_off_end:
-	fetcht 2,mem_power_param_ptr
-	add temp,power_off_timeout_offset,rega
-	add temp,power_off_cb_offset,regb
-	branch app_power_common
-	
-app_got_power_state_common:
-	fetcht 2,mem_power_param_ptr
-	add temp,power_state_offset,regc
-	ifetch 1,regc
-	rtn
-
-app_event_button_up:
-	call app_got_power_state_common
-	bne POWER_OFF,app_power_release
-	branch app_enter_hibernate
-app_power_release:
-	add temp,ui_butten_up_cb_offset,regb
-	branch app_power_cb_common
-
-
-
-
Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/app_adpcm.prog
===================================================================
--- /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/app_adpcm.prog	(revision 5679)
+++ /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/app_adpcm.prog	(nonexistent)
@@ -1,132 +0,0 @@
-
-ifdef COMPLIE_ADPCM
-/*
-input:
-	mem_ad_in_numSamples
-	mem_ad_in_ptr
-	mem_ad_out_ptr
-*/
-adpcm_decode:
-	fetch 8,mem_ad_state_valpred
-	store 8,mem_ad_valpred
-	jam  0,mem_ad_bufferstep
-	fetch 1,mem_ad_index
-	lshift2 pdata,pdata
-	arg mem_ad_stepsizeTable,temp
-	iadd temp,temp
-	ifetch 4,temp
-	store 4,mem_ad_step
-adpcm_decode_loop:
-	fetch 1,mem_ad_bufferstep
-	nbranch adpcm_next_byte,blank
-	fetcht 2,mem_ad_in_ptr
-	ifetch 1,temp
-	store 1,mem_ad_inputbuffer
-	increase 1,temp
-	storet 2,mem_ad_in_ptr
-	rshift4 pdata,pdata
-	store 1,mem_ad_delta
-	branch adpcm_cal
-adpcm_next_byte:
-	fetch 1,mem_ad_inputbuffer
-	and pdata,0x0f,pdata
-	store 1,mem_ad_delta
-adpcm_cal:	
-	fetch 1,mem_ad_bufferstep
-	setflip 0,pdata
-	store 1,mem_ad_bufferstep
-	arg mem_ad_indexTable,temp
-	fetch 1,mem_ad_delta
-	iadd temp,temp
-	ifetch 1,temp
-	fetcht 1,mem_ad_index
-	call adpcm_cal_index
-	store 1,mem_ad_index
-
-	fetch 1,mem_ad_delta
-	and pdata,0x08,temp
-	storet 1,mem_ad_sign
-	and pdata,0x07,temp
-	storet 1,mem_ad_delta
-
-	call adpcm_cal_vpdiff
-	storet 4,mem_ad_vpdiff
-	
-	fetch 1,mem_ad_sign
-	branch adpcm_cal_valpred,blank
-	fetch 4,mem_ad_valpred
-	fetcht 4,mem_ad_vpdiff
-	isub temp,pdata
-	branch adpcm_cal_valpred_end
-adpcm_cal_valpred:
-	fetch 4,mem_ad_valpred
-	fetcht 4,mem_ad_vpdiff
-	iadd temp,pdata
-adpcm_cal_valpred_end:	
-	store 4,mem_ad_valpred
-	arg 32767,temp
-	isub temp,pdata
-	bbit1 31,adpcm_cal_valpred_overflow
-	storet 4,mem_ad_valpred
-	branch adpcm_cal_valpred_overflow_end
-adpcm_cal_valpred_overflow:	
-	fetch 4,mem_ad_valpred
-	arg 32768,temp
-	iadd temp,pdata
-	bbit0 31,adpcm_cal_valpred_overflow_end
-	arg -32768,temp
-	storet 4,mem_ad_valpred
-adpcm_cal_valpred_overflow_end:	
-	fetch 1,mem_ad_index
-	lshift2 pdata,pdata
-	arg mem_ad_stepsizeTable,temp
-	iadd temp,temp
-	ifetch 4,temp
-	store 4,mem_ad_step
-
-	fetch 2,mem_ad_out_ptr
-	fetcht 2,mem_ad_valpred
-	istoret 2,pdata
-	increase 2,pdata
-	store 2,mem_ad_out_ptr
-
-	fetch 1,mem_ad_in_numSamples
-	increase -1,pdata
-	store 1,mem_ad_in_numSamples
-	nbranch adpcm_decode_loop, blank
-	fetch 8,mem_ad_valpred
-	store 8,mem_ad_state_valpred
-	rtn
-
-adpcm_cal_index:
-	iadd temp,pdata
-	bbit0 7,adpcm_cal_bigger_zero
-	setarg 0
-	rtn
-adpcm_cal_bigger_zero:
-	and pdata,0xff,pdata
-	sub pdata,88,null
-	rtn positive
-	setarg 88
-	rtn
-
-adpcm_cal_vpdiff:
-	fetchr rega,4,mem_ad_step
-	rshift3 rega,temp
-	fetch 1,mem_ad_delta
-	bbit0 2,adpcm_cal_vpdiff1
-	copy rega,pdata
-	iadd temp,temp
-adpcm_cal_vpdiff1:
-	fetch 1,mem_ad_delta
-	bbit0 1,adpcm_cal_vpdiff2
-	rshift rega,pdata
-	iadd temp,temp
-adpcm_cal_vpdiff2:
-	fetch 1,mem_ad_delta
-	rtnbit0 0
-	rshift2 rega,pdata
-	iadd temp,temp
-	rtn
-endif
-
Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/app_car.prog
===================================================================
--- /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/app_car.prog	(revision 5679)
+++ /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/app_car.prog	(nonexistent)
@@ -1,1051 +0,0 @@
-ifdef COMPILE_CAR
-
-car_init:
-	call enable_authrom
-	rtn wake
-	setarg car_idle_process
-	store 2,mem_cb_idle_process
-
-	setarg car_cb_event_timer
-	store 2,mem_cb_event_timer
-	
-	setarg car_cb_24g_ackpayload
-	store 2, mem_cb_24g_ackpayload
-
-	setarg car_ble_receive_data
-	store 2,mem_cb_att_write
-
-	setarg car_process_bb_event 
-	store 2,mem_cb_bb_event_process
-	
-	bpatch patch05_6,mem_patch05
-	call car_init_environment
-	call car_add_mac_to_local_name
-	call le_modified_name
-	call car_le_param_init
-	branch queue_init
-	
-car_default_init:	
-	
-	jam 0x0a,mem_tx_power
-	jam 0x84,mem_24g_tx_phy
-	jam 0x84,mem_24g_rx_phy
-	setarg 0xffffff
-	store 3,mem_car_full_control_remote_lap
-	jam 0xff,mem_car_full_control_remote_lap+3
-	setarg 0
-	store 3,mem_le_lap
-	setarg 0x220101
-	store 3,mem_le_lap+3
-	setarg 0xffffff
-	store 3,mem_car_motor_gpio_map
-	jam 0xff,mem_car_motor_gpio_map+3
-	jam 0x01,mem_factory_control_flag
-	setarg 0x241404
-	store 3,mem_24g_ch_map1
-	jam 0x34,mem_24g_ch_map1+3
-	jam 0x10,mem_car_pwm_gpio
-	jam 0x01,mem_stop_4w1_flag
-	jam 0x07,mem_le_adv_channel_map
-	jam 0x01,mem_le_adv_enable
-	setarg 0xf0
-	store 2,mem_le_adv_interval
-	setarg 0x801
-	store 2,mem_le_local_feature
-	jam 0x84,mem_le_tx_phys
-	jam 0x84,mem_le_rx_phys
-	
-
-	setarg 0x504708
-	store 3,mem_le_name_len
-	setarg 0x435734
-	store 3,mem_le_name_len+3
-	setarg 0x5f5241
-	store 3,mem_le_name_len+6
-	jam 0x1f,mem_le_adv_data_len
-	setarg 0x50102
-	store 3,mem_le_adv_data
-	setarg 0x08
-	store 2,mem_le_interval_min
-	setarg 0x10
-	store 2,mem_le_interval_max
-	setarg 0
-	store 2,mem_le_latency
-	setarg 0x12c
-	store 2,mem_le_timeout
-	setarg mem_car_le_queue_each_size
-	store 2,mem_queue_ptr
-	setarg 0x414
-	store 5,mem_car_le_queue_each_size
-	setarg mem_car_ble_att_list
-	store 2,mem_ui_le_uuid_table
-
-//att list
-	setsect 0,0x20001
-	setsect 1,0x20000
-	setsect 2,0x1022
-	setsect 3,0x60
-	store 9,mem_car_ble_att_list
-	setsect 0,0x20002
-	setsect 1,0x200c0
-	setsect 2,0x20012
-	setsect 3,0xc
-	store 9,mem_car_ble_att_list+8
-
-	setsect 0,0x20502
-	setsect 1,0x4a
-	setsect 2,0x40
-	setsect 3,0x808
-	store 9,mem_car_ble_att_list+17
-
-	setsect 0,0x10229
-	setsect 1,0x14000
-	setsect 2,0x2000
-	setsect 3,0xa000
-	store 9,mem_car_ble_att_list+26
-
-	setsect 0,0x02
-	setsect 1,0x186
-	setsect 2,0x3020
-	setsect 3,0x4a0
-	store 9,mem_car_ble_att_list+35
-
-	setsect 0,0x74e
-	setsect 1,0x80
-	setsect 2,0x132a0
-	setsect 3,0x1cd04
-	store 9,mem_car_ble_att_list+44
-
-	setsect 0,0x2074
-	setsect 1,0x1153
-	setsect 2,0x2f4d2
-	setsect 3,0x1cdd5
-	store 9,mem_car_ble_att_list+53
-
-	setsect 0,0x2065
-	setsect 1,0x808
-	setsect 2,0x20202
-	setsect 3,0x2080
-	store 9,mem_car_ble_att_list+62
-
-	setsect 0,0x30200
-	setsect 1,0x4a00
-	setsect 2,0x94e0
-	setsect 3,0x800
-	store 9,mem_car_ble_att_list+71
-
-	setsect 0,0x22a01
-	setsect 1,0x0
-	setsect 2,0xa0
-	setsect 3,0xc08
-	store 9,mem_car_ble_att_list+80
-
-	setsect 0,0x20128
-	setsect 1,0x2c0
-	setsect 2,0x4020
-	setsect 3,0x20a8
-	store 9,mem_car_ble_att_list+89
-
-	setsect 0,0x10
-	setsect 1,0x14008
-	setsect 2,0x2c000
-	setsect 3,0x3004
-	store 9,mem_car_ble_att_list+98
-
-	setsect 0,0x200
-	setsect 1,0x8a00
-	setsect 2,0x3ff00
-	setsect 3,0x37 
-	store 9,mem_car_ble_att_list+107
-
-	setsect 0,0x302
-	setsect 1,0x804a
-	setsect 2,0xe1
-	setsect 3,0x3c408
-	store 9,mem_car_ble_att_list+116
-
-	setsect 0,0x4ff
-	setsect 1,0x0
-	setsect 2,0xf000
-	setsect 3,0x800
-	store 9,mem_car_ble_att_list+125
-
-	setsect 0,0x22902
-	setsect 1,0x0
-	setsect 2,0x100
-	setsect 3,0xc08
-	store 9,mem_car_ble_att_list+134
-
-	setsect 0,0x128
-	setsect 1,0x442
-	setsect 2,0x32020
-	setsect 3,0x7ff
-	store 9,mem_car_ble_att_list+143
-	setarg 0
-	store 3,mem_car_ble_att_list+152
-	
-	jam 0x0c,mem_system_clk
-	setarg 0x643f35
-	store 3,mem_lpm_xtalcnt
-	setarg 0x3b2f8f
-	store 3,mem_lpm_isogate
-	jam 0x20,mem_lpm_hibernate_switch
-	jam 0x00,mem_lpm_ldo_sel
-	jam 0x08,mem_lpm_sysctl
-	jam 0xb4,mem_lpm_hv_sel
-	jam 0x18,mem_fcomp_div
-	jam 0x3e,mem_xtal_c_sel
-	setarg 0x50e08
-	store 3,mem_version
-	setarg 0x3
-	store 2,mem_version+3
-	jam 0x20,mem_le_tx2m_delay
-	jam 0xff,mem_gain_fix
-	setarg 0xc00
-	store 2,mem_rx_window_sniff
-	setarg 0x4
-	store 3,mem_gain_table
-	jam 0x08,mem_gain_second_agc_en
-	jam 0xa0,mem_ring_ibias_trim
-	setarg 0x2bc
-	store 2,mem_ring_ibias_vtune_high
-	setarg 0x190
-	store 2,mem_ring_ibias_vtune_low
-	jam 0x03,mem_ring_ibias_calc_adc_gpio
-	jam 0x09,mem_ring_ibias_calc_adc_channel
-	jam 0xff,mem_rf_init_data
-	setarg mem_rf_init_data
-	store 2,mem_rf_init_ptr
-
-	
-	call enable_otp_read
-	arg mem_otp_sys_cfg_temp,rega
-	arg OTP_SYS_PARAM_CFG,regb
-	arg 60,loopcnt
-	call otp_read_data
-	call disable_otp
-	fetch 1,mem_otp_sys_cfg_temp
-	ncall car_system_clk,blank
-
-	fetch 3,mem_otp_sys_cfg_temp+1
-	ncall car_lpm_xtalcnt,blank
-
-	fetch 3,mem_otp_sys_cfg_temp+4
-	ncall car_lpm_isogate,blank
-
-	fetch 1,mem_otp_sys_cfg_temp+7
-	ncall car_lpm_hibernate_switch,blank
-
-	fetch 1,mem_otp_sys_cfg_temp+8
-	ncall car_lpm_ldo_sel,blank
-
-	fetch 1,mem_otp_sys_cfg_temp+9
-	ncall car_lpm_sysctl,blank
-
-	fetch 1,mem_otp_sys_cfg_temp+10
-	ncall car_lpm_hv_sel,blank	
-
-	fetch 1,mem_otp_sys_cfg_temp+11
-	ncall car_fcomp_div,blank	
-	
-	fetch 1,mem_otp_sys_cfg_temp+12
-	ncall car_xtal_c_sel,blank
-
-	fetch 5,mem_otp_sys_cfg_temp+13
-	ncall car_version,blank
-
-	fetch 1,mem_otp_sys_cfg_temp+18
-	ncall car_le_tx2m_delay,blank
-
-	fetch 1,mem_otp_sys_cfg_temp+19
-	ncall car_gain_fix,blank
-
-	fetch 2,mem_otp_sys_cfg_temp+20
-	ncall car_rx_window_sniff,blank
-
-	fetch 3,mem_otp_sys_cfg_temp+22
-	ncall car_gain_table,blank
-
-	fetch 1,mem_otp_sys_cfg_temp+25
-	ncall car_gain_second_agc_en,blank
-
-	fetch 1,mem_otp_sys_cfg_temp+26
-	ncall car_ring_ibias_trim,blank
-
-	fetch 2,mem_otp_sys_cfg_temp+27
-	ncall car_ring_ibias_vtune_high,blank
-
-	fetch 2,mem_otp_sys_cfg_temp+29
-	ncall car_ring_ibias_vtune_low,blank
-
-	fetch 1,mem_otp_sys_cfg_temp+31
-	ncall car_ring_ibias_calc_adc_gpio,blank
-
-	fetch 1,mem_otp_sys_cfg_temp+32
-	ncall car_ring_ibias_calc_adc_channel,blank
-
-	fetch 1,mem_otp_sys_cfg_temp+37
-	ncall car_tx_power,blank
-
-	fetch 1,mem_otp_sys_cfg_temp+38
-	ncall car_24g_tx_phy,blank
-
-	fetch 1,mem_otp_sys_cfg_temp+39
-	ncall car_24g_rx_phy,blank
-
-	fetch 4,mem_otp_sys_cfg_temp+40
-	ncall car_motor_gpio_map,blank
-
-	fetch 1,mem_otp_sys_cfg_temp+44
-	ncall car_pwm_gpio,blank
-
-	fetch 4,mem_otp_sys_cfg_temp+46
-	ncall car_24g_addr,blank
-	
-	fetch 4,mem_otp_sys_cfg_temp+50
-	ncall car_24g_ch_map1,blank
-	rtn
-	
-car_system_clk:
-	store 1,mem_system_clk
-	rtn
-car_lpm_xtalcnt:
-	store 3,mem_lpm_xtalcnt
-	rtn
-car_lpm_isogate:
-	store 3,mem_lpm_isogate
-	rtn
-car_lpm_hibernate_switch:
-	store 1,mem_lpm_hibernate_switch
-	rtn
-car_lpm_ldo_sel:
-	store 1,mem_lpm_ldo_sel
-	rtn
-car_lpm_sysctl:
-	store 1,mem_lpm_sysctl	
-	rtn
-car_lpm_hv_sel:	
-	store 1,mem_lpm_hv_sel	
-	rtn
-car_fcomp_div:
-	store 1,mem_fcomp_div
-	rtn
-car_xtal_c_sel:
-	store 1,mem_xtal_c_sel
-	rtn
-car_version:
-	store 5,mem_version
-	rtn	
-car_le_tx2m_delay:
-	store 1,mem_le_tx2m_delay
-	rtn
-car_gain_fix:
-	store 1,mem_gain_fix
-	rtn
-car_rx_window_sniff:
-	store 2,mem_rx_window_sniff
-	rtn
-car_gain_table:
-	store 3,mem_gain_table
-	rtn
-car_gain_second_agc_en:
-	store 1,mem_gain_second_agc_en
-	rtn
-car_ring_ibias_trim:
-	store 1,mem_ring_ibias_trim
-	rtn
-car_ring_ibias_vtune_high:
-	store 2,mem_ring_ibias_vtune_high
-	rtn
-car_ring_ibias_vtune_low:
-	store 2,mem_ring_ibias_vtune_low
-	rtn
-car_ring_ibias_calc_adc_gpio:
-	store 1,mem_ring_ibias_calc_adc_gpio
-	rtn
-car_ring_ibias_calc_adc_channel:
-	store 1,mem_ring_ibias_calc_adc_channel
-	rtn
-car_tx_power:
-	store 1,mem_tx_power
-	rtn
-car_24g_tx_phy:
-	store 1,mem_24g_tx_phy
-	rtn
-car_24g_rx_phy:
-	store 1,mem_24g_rx_phy
-	rtn
-car_motor_gpio_map:
-	store 4,mem_car_motor_gpio_map
-	jam 1,mem_car_gpio_control_mode  //pwm con:0  h&l output:1
-	rtn
-car_pwm_gpio:
-	fetch 1,mem_car_gpio_control_mode
-	nrtn blank
-	fetch 1,mem_otp_sys_cfg_temp+44
-	store 1,mem_car_pwm_gpio
-	rtn
-
-car_24g_addr:
-	store 4,mem_24g_addr
-	rtn
-car_24g_ch_map1:
-	store 4,mem_24g_ch_map1
-	rtn
-
-
-car_init_environment:
-	setarg 15
-	store 2, mem_100ms_adv_control_timer
-	setarg 300
-	store 2, mem_100ms_factory_test_control_timer
-	call car_whitening_24g_addr
-	call car_get_rxid
-	call car_rxid_check
-	branch car_pwm_control_init
-	
-car_rxid_check:
-	arg mem_le_lap,rega
-	arg mem_car_full_control_remote_lap,regb
-	arg 4,loopcnt
-	call string_compare
-	nrtn zero
-	fetch 1,mem_le_lap
-	pincrease -1
-	store 1,mem_le_lap
-	rtn
-	
-car_add_mac_to_local_name:
-	fetch 1, mem_le_name_len
-	arg mem_le_name_len+1, contw
-	iadd contw, regb
-	add pdata, 16, pdata
-	store 1, mem_le_name_len
-
-	arg 6, loopcnt
-	arg mem_le_lap+5, rega   //big endian
-	copy regb, contw
-car_add_mac_to_local_name_loop:
-	ifetcht 1, rega
-	and temp, 0xf0, pdata
-	rshift4 pdata, pdata
-	call car_convert_hex_to_ascii
-	
-	istore 1, contw
-	and temp, 0x0f, pdata
-	call car_convert_hex_to_ascii
-	istore 1, contw
-	increase -1, rega
-	loop car_add_mac_to_local_name_loop
-	rtn
-car_convert_hex_to_ascii:
-	sub pdata, 9, null
-	branch car_convert_hex_to_ascii_0_9, positive
-car_convert_hex_to_ascii_a_f:
-	add pdata, 0x37, pdata    
-	rtn
-car_convert_hex_to_ascii_0_9:
-	add pdata, 0x30, pdata  
-	rtn	
-
-
-	
-car_le_param_init:
-	jam 0x17,mem_le_local_mtu
-	setarg 0x1b
- 	store 2,mem_le_pairing_handle
- 	call le_set_config_fixed_ltk
-	call le_set_fixed_ltk
-	call le_set_justwork
-	branch le_set_config_read_authentication
-
-
-car_process_bb_event:
-	deposit regc
-	beq BT_EVT_LE_CONNECTED, car_ble_connted
-	beq BT_EVT_LE_DISCONNECTED, car_ble_disconnted
-	rtn
-
-car_ble_disconnted:
-	jam 0,mem_car_ble_connted_flag
-	call car_gpio_control_stop
-	jam 0x0,mem_period_count
-	jam 1,mem_stop_4w1_flag
-	setarg 0
-	store 3,mem_car_ble_write_data
-	call queue_init
-	branch app_ble_start_adv
-
-car_ble_connted:
-	jam 1,mem_car_ble_connted_flag
-	call car_check_close_ice
-	branch app_lpm_mult_enable
-
-
-car_ble_receive_data:
-	fetch 2,mem_le_att_handle
-	beq HANDLE_OF_WRITE,car_ble_receive_writeatt
-	rtn
-	
-
-car_ble_receive_writeatt:
-	bpatch patch05_7,mem_patch05
-	copy regb, loopcnt
-	copy rega, contr
-	arg mem_car_ble_write_data, contw   
-	call memcpy
-	fetch 1,mem_car_ble_write_data
-	rtn blank	
-car_ble_receive_writeatt_parse:
-	call car_gpio_control_stop
-	jam 0x4,mem_period_count
-	fetch 1,mem_car_ble_write_data+2
-	rtnne 0x02
-	fetch 1,mem_car_ble_write_data+8
-	beq 0x01,car_f+3
-	beq 0x02,car_b+3	 
-	beq 0x03,car_r+3	
-	beq 0x04,car_l+3	
-	beq 0xa1,car_fr
-	beq 0xa2,car_fl
-	beq 0xa3,car_br
-	beq 0xa4,car_bl
-	rtn
-
-car_gpio_control_stop:
-	fetch 1,mem_car_gpio_control_mode
-	rtn blank
-	call car_fb_motor_stop
-	branch car_lr_motor_stop
-
-car_whitening_24g_addr:
-	arg 4,loopcnt
-	arg mem_24g_addr,regc
-	arg 0xae,regb
-//	call car_24g_whitening_loop
-//	rtn
-car_24g_whitening_loop:
-	call car_24g_whitening_byte
-	increase 1, regc
-	loop car_24g_whitening_loop
-	rtn
-car_24g_whitening_byte:
-	arg 1, rega     //rega is m
-car_24g_whitening_byte_loop:
-	lshift regb, regb    //regb is seed
-	isolate1 7, regb
-	call car_24g_whitening_byte_xor, true
-	lshift rega, rega
-	deposit rega
-	rtnbit1 8
-	branch car_24g_whitening_byte_loop
-car_24g_whitening_byte_xor:	
-	ifetch 1,regc
-	ixor rega, pdata
-	istore 1, regc
-	xor regb, 0x11, regb
-	rtn
-
-
-
-car_get_rxid:
-	call enable_otp_read
-	arg mem_otp_lot_xy_temp,rega
-	arg OTP_MAC_ADDR,regb
-	arg 6,loopcnt
-	call otp_read_data
-	call disable_otp
-	fetch 6,mem_otp_lot_xy_temp
-	rtn blank
-	fetch 2,mem_otp_lot_xy_temp
-	store 2,mem_le_lap
-	fetch 1,mem_otp_lot_xy_temp+3
-	store 1,mem_le_lap+2
-	fetch 1,mem_otp_lot_xy_temp+5
-	store 1,mem_le_lap+3
-
-	fetch 1,mem_otp_lot_xy_temp+1
-	sub pdata,26,null  //	piece num max is 25
-	nrtn positive
-	
-	fetch 1,mem_otp_lot_xy_temp+2
-	rtn blank
-	random pdata
-	and_into 0x07,pdata
-	lshift pdata,pdata
-	lshift4 pdata,pdata
-	fetcht 1,mem_otp_lot_xy_temp+1
-	iadd temp,pdata
-	store 1,mem_le_lap+1
-	arg mem_le_lap+1,rega
-	arg OTP_MAC_ADDR_PIECENUM,regb
-	arg 1,loopcnt
-	branch otp_write	
-
-
-
-car_pwm_control_init:
-	fetch 1,mem_car_gpio_control_mode
-	nrtn blank
-	arg 0, rega
-	call pwm_init
-	
-	arg 18000,rega
-	arg 6000, regb
-	arg 0, pdata
-	call pwm_duty_cycle_set
-	fetch 1,mem_car_pwm_gpio
-	branch pwm_enable	
-
-
-car_idle_process:
-//call ice_break
-	bpatch patch06_0,mem_patch06
-	arg 10, pdata //约96ms
-	call wdt_init_config 
-
-	call car_pwm_io_control
-	fetch 1,mem_car_ble_connted_flag
-	nrtn blank
-	fetch 2,mem_car_le_24g_ch_count
-	increase 1,pdata
-	store 2,mem_car_le_24g_ch_count
-	rshift4 pdata,pdata
-	call car_set_24g_ch
-	
-	call car_g24_sim_rx
-	call car_stop_run			
-	setarg mem_24g_rxbuf
-	increase 2,pdata
-	copy pdata,contr
-	arg LEN_OF_24G_PAYLOAD,loopcnt
-	arg 0,pdata	
-	call cal_sum
-	and pdata ,0xff,pdata
-	fetcht 1,mem_24g_rxbuf+14
-	isub temp,null
-	nrtn zero
-
-	fetch 1,mem_24g_rxbuf+2
-	bpatch patch06_1,mem_patch06
-	beq G24_TX_PAIR_REQUEST,car_recive_pair_request
-	beq G24_TX_REMOTE_CONTROL,car_set_motor
-	rtn
-car_pwm_io_control:
-	fetch 1,mem_car_gpio_control_mode
-	nrtn blank
-	call car_soft_timer_process	
-	call car_pwm_change_500hz
-	call car_period_change_timer	
-	call car_pwm_change_1khz
-	rtn
-
-car_g24_sim_rx:
-	arg 4,temp
-	arg 5,queue
-	call sniff_check_window
-	rtn user
-	set1 mark_24g_rxmode,mark
-	setarg 0x8ca0   //2.5ms
-	store 2, mem_24g_rx_window
-	jam 1,mem_24g_ackpayload_enable
-	fetch 1,mem_24g_rx_phy
-	call le_enable_phy_by_pdata
-	call g24_syncword_crc8
-	call g24_receive_transmit_ack
-	call g24_read_len_pid_crc
-	call g24_end_of_packet	
-	nrtn user3
-	rtn
-
-car_cb_24g_ackpayload:
-	jam LEN_OF_ACK_PAYLOAD, mem_24g_datalen
-	fetch 7,mem_car_24g_tx_payload_temp
-	store 7, mem_24g_txbuf
-	fetch 4,mem_car_24g_tx_payload_temp+7
-	store 4, mem_24g_txbuf+7	
-	rtn
-	
-car_soft_timer_process:	
-	arg 8, rega
-car_soft_timer_process_check_timer:
-	arg 12,queue
-	call timer_check
-	branch car_soft_timer_timeout,blank
-	isub rega, null
-	branch car_soft_timer_process_wait_timeout,zero
-	rtn positive
-car_soft_timer_process_wait_timeout:
-	arg 12,queue
-	call timer_check
-	branch car_soft_timer_timeout,blank
-	branch car_soft_timer_process_wait_timeout
-	
-car_soft_timer_timeout:
-	fetch 1,mem_pwm_flag
-	beq 2,car_timer_500hz_enable	
-	beq 3,car_timer_1khz_enable
-	rtn	
-car_timer_1khz_enable:
-	jam 1,mem_pwm_flag
-	rtn
-car_timer_500hz_enable:
-	jam 0,mem_pwm_flag
-	rtn
-
-car_pwm_change_1khz:
-	fetch 1,mem_period_count
-	rtn blank
-	fetcht 1,mem_pwm_flag
-	compare 1,temp,0xff
-	nrtn true
-	jam 2,mem_pwm_flag
-	arg 6000,rega
-	arg 6000, regb
-	arg 0, pdata
-	call pwm_duty_cycle_set	
-	fetch 1,mem_timer_count
-	arg 12,queue
-	call timer_init
-	rtn
-car_pwm_change_500hz:
-	fetcht 1,mem_pwm_flag
-	compare 0,temp,0xff
-	nrtn true
-	jam 3,mem_pwm_flag
-	arg 18000,rega
-	arg 6000, regb
-	arg 0, pdata
-	call pwm_duty_cycle_set
-	setarg 12
-	arg 12,queue
-	call timer_init
-	rtn
-car_period_change_timer:
-	fetch 1,mem_period_count
-	arg 0x3e8,temp
-	imul32 temp,pdata
-	arg 0x271,temp
-	idiv temp
-	call wait_div_end
-	quotient pdata
-	pincrease 1
-	store 1,mem_timer_count
-	rtn
-
-
-
-car_set_24g_ch:
-	beq 0,car_set_ch0
-	beq 1,car_set_ch1
-	beq 2,car_set_ch2
-	beq 3,car_set_ch3
-	branch car_set_ch_reset
-car_set_ch0:
-	fetch 1,mem_24g_ch_map1
-	store 1,mem_24g_ch
-	rtn
-car_set_ch1:
-	fetch 1,mem_24g_ch_map1+1
-	store 1,mem_24g_ch
-	rtn
-car_set_ch2:
-	fetch 1,mem_24g_ch_map1+2
-	store 1,mem_24g_ch
-	rtn
-car_set_ch3:
-	fetch 1,mem_24g_ch_map1+3
-	store 1,mem_24g_ch
-	rtn        
-car_set_ch_reset:
-	setarg 0
-	store 2,mem_car_le_24g_ch_count
-	rtn
-
-
-
-car_stop_run:
-	fetch 1,mem_car_le_24g_tx_pair_mode
-	rtn blank
-	fetch 1,mem_car_24g_loselink_count
-	arg 15,temp
-	isub temp,null
-	nrtn positive
-	jam 0,mem_car_24g_loselink_count
-	setarg 0
-	store 2,mem_car_24g_rx_payload_temp+9
-	call car_gpio_control_stop
-
-	jam 0x4,mem_period_count
-	jam 0,mem_le_adv_enable
-	jam 1,mem_adv_control_start_flag
-	fetch 1,mem_stop_4w1_flag
-	rtn blank
-	jam 0x0,mem_period_count
-	jam 1,mem_le_adv_enable
-	rtn
-
-
-car_set_motor:
-	bpatch patch06_2,mem_patch06
-	fetch 7,mem_24g_rxbuf+2
-	store 7,mem_car_24g_rx_payload_temp
-	fetch 5,mem_24g_rxbuf+9
-	store 5,mem_car_24g_rx_payload_temp+7        
-	arg mem_car_24g_rx_payload_temp+1,rega
-	fetch 4,mem_car_24g_addr_other
-	branch car_reconnect,blank
-ifndef FULL_CONTROL
-	arg mem_car_24g_addr_other,regb
-	arg 4,loopcnt
-	call string_compare
-	nrtn zero
-endif
-	arg mem_car_24g_rx_payload_temp+5,rega	
-	arg mem_car_full_control_remote_lap,regb
-	arg 4,loopcnt
-	call string_compare
-	branch car_run_factory_mode_select,zero	
-
-	arg mem_car_24g_rx_payload_temp+5,rega
-	arg mem_le_lap,regb
-	arg 4,loopcnt
-	call string_compare  
-	nbranch car_set_unconnect, zero
-	branch car_run_mode_select
-	
-car_set_unconnect:
-	jam G24_UNCONNECT,mem_car_le_24g_tx_pair_mode
-	setarg 0
-	store 4,mem_car_24g_addr_other       
-	rtn
-
-car_run_factory_mode_select:
-	fetch 1,mem_factory_control_flag
-	beq 0,car_set_unconnect
-	beq 1,car_run_mode_select
-	rtn
-	
-car_run_mode_select:
-	jam 0,mem_car_24g_loselink_count
-	fetch 2,mem_car_24g_rx_payload_temp+9
-	branch car_stop_run+9,blank
-	call car_pwm_mode_adv_flag_init
-	call car_factory_mode_time
-	call car_motor_mode_1
-	branch car_motor_mode_2
-
-car_pwm_mode_adv_flag_init:
-	fetch 1,mem_car_gpio_control_mode
-	nrtn blank
-	jam 1,mem_le_adv_enable
-	jam 1,mem_le_adv_channel_map
-	jam 0,mem_stop_4w1_flag
-	jam 0,mem_adv_control_start_flag
-	setarg 15
-	store 2, mem_100ms_adv_control_timer
-	rtn
-	
-car_factory_mode_time:
-	fetch 1,mem_factory_control_flag
-	rtn blank
-	setarg 300
-	store 2, mem_100ms_factory_test_control_timer
-	rtn
-	
-car_motor_mode_1:
-	fetch 1,mem_car_24g_rx_payload_temp+10
-	beq 1,car_b
-	beq 2,car_f
-	rtn
-car_motor_mode_2:
-	fetch 1,mem_car_24g_rx_payload_temp+9
-	beq 1,car_l
-	beq 2,car_r
-	rtn
-
-car_f:
-	fetch 1,mem_car_24g_rx_payload_temp+9
-	beq 1,car_fl
-	beq 2,car_fr
-	jam 0x0a,mem_period_count
-	branch car_lr_motor_right
-	
-car_b:
-	fetch 1,mem_car_24g_rx_payload_temp+9
-	beq 1,car_bl
-	beq 2,car_br
-	jam 0x28,mem_period_count
-	branch car_lr_motor_left
-
-car_l:
-	fetch 1,mem_car_24g_rx_payload_temp+10
-	beq 1,car_bl
-	beq 2,car_fl
-	jam 0x3a,mem_period_count
-	branch car_fb_motor_back
-	
-car_r:
-	fetch 1,mem_car_24g_rx_payload_temp+10
-	beq 1,car_br
-	beq 2,car_fr
-	jam 0x40,mem_period_count
-	branch car_fb_motor_front
-
-car_fl:
-	jam 0x1c,mem_period_count
-	call car_lr_motor_right
-	branch car_fb_motor_back
-car_fr:
-	jam 0x22,mem_period_count
-	call car_lr_motor_right
-	branch car_fb_motor_front
-car_bl:
-	jam 0x34,mem_period_count
-	call car_lr_motor_left
-	branch car_fb_motor_back
-car_br:
-	jam 0x2e,mem_period_count
-	call car_lr_motor_left
-	branch car_fb_motor_front	
-
-
-car_reconnect:
-	arg mem_car_24g_rx_payload_temp+5,rega	
-	arg mem_car_full_control_remote_lap,regb
-	arg 4,loopcnt
-	call string_compare 
-	branch car_recive_pair_request,zero
-
-	arg mem_car_24g_rx_payload_temp+5,rega
-	arg mem_le_lap,regb
-	arg 4,loopcnt
-	call string_compare
-	nrtn zero
-	branch car_recive_pair_request
-car_recive_pair_request:
-	fetch 7,mem_24g_rxbuf+2
-	store 7,mem_car_24g_rx_payload_temp
-	fetch 1,mem_car_le_24g_tx_pair_mode
-	beq G24_UNCONNECT,car_send_pair_response
-	beq G24_CONNECTED, car_send_pair_response_juge
-	rtn
-car_send_pair_response:
-	call car_check_close_ice
-	
-	jam G24_CONNECTED,mem_car_le_24g_tx_pair_mode
-	jam G24_RX_PAIR_RESPONES,mem_car_24g_tx_payload_temp
-	fetch 4,mem_car_24g_rx_payload_temp+1
-	store 4,mem_car_24g_addr_other
-	store 4,mem_car_24g_tx_payload_temp+5
-	fetch 4,mem_le_lap
-	store 4,mem_car_24g_tx_payload_temp+1
-	rtn
-
-car_send_pair_response_juge:
-ifndef FULL_CONTROL
-	arg mem_car_24g_rx_payload_temp+1,rega
-	arg mem_car_24g_addr_other,regb
-	arg 4,loopcnt
-	call string_compare        
-	branch car_send_pair_response,zero
-endif
-
-ifdef FULL_CONTROL
-	branch car_send_pair_response
-endif
-
-car_cb_event_timer:
-	fetch 1,mem_car_24g_loselink_count		
-	increase 1,pdata
-	store 1,mem_car_24g_loselink_count
-	call car_100ms_timer_adv_control
-	branch car_100ms_timer_factory_test_control
-	
-
-car_100ms_timer_adv_control:
-	fetch 1,mem_car_gpio_control_mode
-	nrtn blank
-	fetch 1,mem_adv_control_start_flag
-	rtn blank
-	arg mem_100ms_adv_control_timer,regc
-	arg car_100ms_timer_adv_control_timeout, regb
-	branch timer_single_step_2B
-car_100ms_timer_adv_control_timeout:
-	setarg 15
-	store 2, mem_100ms_adv_control_timer
-	jam 7,mem_le_adv_channel_map
-	jam 0,mem_adv_control_start_flag
-	jam 1,mem_stop_4w1_flag
-	rtn		
-
-car_100ms_timer_factory_test_control:
-	fetch 1,mem_factory_control_flag
-	rtn blank
-	arg mem_100ms_factory_test_control_timer,regc
-	arg car_100ms_timer_factory_test_timeout, regb
-	branch timer_single_step_2B
-car_100ms_timer_factory_test_timeout:
-	setarg 300
-	store 2, mem_100ms_factory_test_control_timer
-	jam 0,mem_factory_control_flag
-	rtn		
-
-car_motor1_status_select:
-	ifetch 1,contr
-	beq TURN_FRONT,car_lr_motor_stop
-	beq TURN_LEFT,car_lr_motor_left
-	beq TURN_RIGHT,car_lr_motor_right
-	rtn
-car_motor2_status_select:
-	ifetch 1,contr
-	beq MOTOR_STOP,car_fb_motor_stop
-	beq GO_BACK,car_fb_motor_front
-	beq GO_FRONT,car_fb_motor_back
-	rtn
-
-car_lr_motor_stop:
-	fetcht 1,mem_car_motor_left_gpio
-	call gpio_out_inactive
-	fetcht 1,mem_car_motor_right_gpio
-	branch gpio_out_inactive
-car_lr_motor_left:
-	fetcht 1,mem_car_motor_left_gpio
-	call gpio_out_active
-	fetcht 1,mem_car_motor_right_gpio
-	branch gpio_out_inactive
-car_lr_motor_right:
-	fetcht 1,mem_car_motor_left_gpio
-	call gpio_out_inactive
-	fetcht 1,mem_car_motor_right_gpio
-	branch gpio_out_active
-car_fb_motor_stop:
-	fetcht 1,mem_car_motor_front_gpio
-	call gpio_out_inactive
-	fetcht 1,mem_car_motor_back_gpio
-	branch gpio_out_inactive
-car_fb_motor_front:
-	fetcht 1,mem_car_motor_front_gpio
-	call gpio_out_active
-	fetcht 1,mem_car_motor_back_gpio
-	branch gpio_out_inactive
-car_fb_motor_back:
-	fetcht 1,mem_car_motor_front_gpio
-	call gpio_out_inactive
-	fetcht 1,mem_car_motor_back_gpio
-	branch gpio_out_active
-
-car_le_stop_random_delay_check:
-	fetch 1,mem_stop_4w1_flag
-	branch le_adv_not_match+13,blank
-	branch le_adv_not_match+8
-
-car_check_close_ice:
-	fetch 1,mem_car_gpio_control_mode
-	rtn blank
-	branch lpm_write_ice_disable
-	
-endif
-
-
-
Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/app_car_remote.prog
===================================================================
--- /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/app_car_remote.prog	(revision 5679)
+++ /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/app_car_remote.prog	(nonexistent)
@@ -1,712 +0,0 @@
-ifdef COMPILE_REMOTE_CAR
-//define REMOTE_TEST_FUNCTION
-remote_car_init:
-	call enable_authrom
-	bpatch patch06_3,mem_patch06
-
-	fetch 1,mem_remote_le_24g_tx_pair_mode
-	call lpm_write_ice_enable,blank
-	call remote_car_set__lpm_timer_set
-	rtn wake
-	call wdt_set_disable
-	setarg remote_car_idle_process
-	store 2,mem_cb_idle_process
-
-	setarg remote_car_cb_event_timer
-	store 2,mem_cb_event_timer
-	call remote_car_get_txid
-	call remote_car_txid_check
-	call remote_car_whitening_24g_addr
-	branch remote_car_lpm_gpio_config_flag_init
-
-
-remote_car_default_init:
-	jam 0x0a,mem_tx_power
-	jam 0x84,mem_24g_tx_phy
-	jam 0x84,mem_24g_rx_phy
-	setarg 0xffffff
-	store 3,mem_remote_full_control_remote_lap
-	jam 0xff,mem_remote_full_control_remote_lap+3
-	setarg 0
-	store 3,mem_le_lap
-	setarg 0x220101
-	store 3,mem_le_lap+3
-	setarg 0x858c0c
-	store 3,mem_remote_car_key_conf0
-	jam 0x05,mem_remote_car_key_conf0+3
-	jam 0x0d,mem_24g_tx_led_map
-	jam 0x12,mem_key_public_gpio
-	setarg 0x241404
-	store 3,mem_24g_ch_map1
-	jam 0x34,mem_24g_ch_map1+3
-
-	jam 0x0c,mem_system_clk
-	setarg 0x643f35
-	store 3,mem_lpm_xtalcnt
-	setarg 0x3b2f8f
-	store 3,mem_lpm_isogate
-	jam 0x20,mem_lpm_hibernate_switch
-	jam 0x00,mem_lpm_ldo_sel
-	jam 0x08,mem_lpm_sysctl
-	jam 0xb4,mem_lpm_hv_sel
-	jam 0x18,mem_fcomp_div
-	jam 0x3e,mem_xtal_c_sel
-	setarg 0x50e08
-	store 3,mem_version
-	setarg 0x3
-	store 2,mem_version+3
-	jam 0x20,mem_le_tx2m_delay
-	jam 0xff,mem_gain_fix
-	setarg 0xc00
-	store 2,mem_rx_window_sniff
-	setarg 0x4
-	store 3,mem_gain_table
-	jam 0x08,mem_gain_second_agc_en
-	jam 0xa0,mem_ring_ibias_trim
-	setarg 0x2bc
-	store 2,mem_ring_ibias_vtune_high
-	setarg 0x190
-	store 2,mem_ring_ibias_vtune_low
-	jam 0x03,mem_ring_ibias_calc_adc_gpio
-	jam 0x09,mem_ring_ibias_calc_adc_channel
-	jam 0xff,mem_rf_init_data
-	setarg mem_rf_init_data
-	store 2,mem_rf_init_ptr
-	
-	call enable_otp_read
-	arg mem_otp_sys_cfg_temp,rega
-	arg OTP_SYS_PARAM_CFG,regb
-	arg 60,loopcnt
-	call otp_read_data
-	call disable_otp
-	fetch 1,mem_otp_sys_cfg_temp
-	ncall remote_car_system_clk,blank
-
-	fetch 3,mem_otp_sys_cfg_temp+1
-	ncall remote_car_lpm_xtalcnt,blank
-
-	fetch 3,mem_otp_sys_cfg_temp+4
-	ncall remote_car_lpm_isogate,blank
-
-	fetch 1,mem_otp_sys_cfg_temp+7
-	ncall remote_car_lpm_hibernate_switch,blank
-
-	fetch 1,mem_otp_sys_cfg_temp+8
-	ncall remote_car_lpm_ldo_sel,blank
-
-	fetch 1,mem_otp_sys_cfg_temp+9
-	ncall remote_car_lpm_sysctl,blank
-
-	fetch 1,mem_otp_sys_cfg_temp+10
-	ncall remote_car_lpm_hv_sel,blank	
-
-	fetch 1,mem_otp_sys_cfg_temp+11
-	ncall remote_car_fcomp_div,blank	
-	
-	fetch 1,mem_otp_sys_cfg_temp+12
-	ncall remote_car_xtal_c_sel,blank
-
-	fetch 5,mem_otp_sys_cfg_temp+13
-	ncall remote_car_version,blank
-
-	fetch 1,mem_otp_sys_cfg_temp+18
-	ncall remote_car_le_tx2m_delay,blank
-
-	fetch 1,mem_otp_sys_cfg_temp+19
-	ncall remote_car_gain_fix,blank
-
-	fetch 2,mem_otp_sys_cfg_temp+20
-	ncall remote_car_rx_window_sniff,blank
-
-	fetch 3,mem_otp_sys_cfg_temp+22
-	ncall remote_car_gain_table,blank
-
-	fetch 1,mem_otp_sys_cfg_temp+25
-	ncall remote_car_gain_second_agc_en,blank
-
-	fetch 1,mem_otp_sys_cfg_temp+26
-	ncall remote_car_ring_ibias_trim,blank
-
-	fetch 2,mem_otp_sys_cfg_temp+27
-	ncall remote_car_ring_ibias_vtune_high,blank
-
-	fetch 2,mem_otp_sys_cfg_temp+29
-	ncall remote_car_ring_ibias_vtune_low,blank
-
-	fetch 1,mem_otp_sys_cfg_temp+31
-	ncall remote_car_ring_ibias_calc_adc_gpio,blank
-
-	fetch 1,mem_otp_sys_cfg_temp+32
-	ncall remote_car_ring_ibias_calc_adc_channel,blank
-
-	fetch 1,mem_otp_sys_cfg_temp+37
-	ncall remote_car_tx_power,blank
-
-	fetch 1,mem_otp_sys_cfg_temp+38
-	ncall remote_car_24g_tx_phy,blank
-
-	fetch 1,mem_otp_sys_cfg_temp+39
-	ncall remote_car_24g_rx_phy,blank
-
-	fetch 4,mem_otp_sys_cfg_temp+40
-	ncall remote_car_key_conf0,blank
-
-	fetch 1,mem_otp_sys_cfg_temp+44
-	ncall remote_car_key_public_gpio,blank
-
-	fetch 1,mem_otp_sys_cfg_temp+45
-	ncall remote_car_24g_tx_led_map,blank
-
-	fetch 4,mem_otp_sys_cfg_temp+46
-	ncall remote_car_24g_addr,blank
-	
-	fetch 4,mem_otp_sys_cfg_temp+50
-	ncall remote_car_24g_ch_map1,blank
-	rtn
-	
-remote_car_system_clk:
-	store 1,mem_system_clk
-	rtn
-remote_car_lpm_xtalcnt:
-	store 3,mem_lpm_xtalcnt
-	rtn
-remote_car_lpm_isogate:
-	store 3,mem_lpm_isogate
-	rtn
-remote_car_lpm_hibernate_switch:
-	store 1,mem_lpm_hibernate_switch
-	rtn
-remote_car_lpm_ldo_sel:
-	store 1,mem_lpm_ldo_sel
-	rtn
-remote_car_lpm_sysctl:
-	store 1,mem_lpm_sysctl	
-	rtn
-remote_car_lpm_hv_sel:	
-	store 1,mem_lpm_hv_sel	
-	rtn
-remote_car_fcomp_div:
-	store 1,mem_fcomp_div
-	rtn
-remote_car_xtal_c_sel:
-	store 1,mem_xtal_c_sel
-	rtn
-remote_car_version:
-	store 5,mem_version
-	rtn	
-remote_car_le_tx2m_delay:
-	store 1,mem_le_tx2m_delay
-	rtn
-remote_car_gain_fix:
-	store 1,mem_gain_fix
-	rtn
-remote_car_rx_window_sniff:
-	store 2,mem_rx_window_sniff
-	rtn
-remote_car_gain_table:
-	store 3,mem_gain_table
-	rtn
-remote_car_gain_second_agc_en:
-	store 1,mem_gain_second_agc_en
-	rtn
-remote_car_ring_ibias_trim:
-	store 1,mem_ring_ibias_trim
-	rtn
-remote_car_ring_ibias_vtune_high:
-	store 2,mem_ring_ibias_vtune_high
-	rtn
-remote_car_ring_ibias_vtune_low:
-	store 2,mem_ring_ibias_vtune_low
-	rtn
-remote_car_ring_ibias_calc_adc_gpio:
-	store 1,mem_ring_ibias_calc_adc_gpio
-	rtn
-remote_car_ring_ibias_calc_adc_channel:
-	store 1,mem_ring_ibias_calc_adc_channel
-	rtn
-remote_car_tx_power:
-	store 1,mem_tx_power
-	rtn
-remote_car_24g_tx_phy:
-	store 1,mem_24g_tx_phy
-	rtn
-remote_car_24g_rx_phy:
-	store 1,mem_24g_rx_phy
-	rtn
-remote_car_key_conf0:
-	store 4,mem_remote_car_key_conf0
-	rtn
-remote_car_key_public_gpio:
-	store 1,mem_key_public_gpio
-	rtn
-remote_car_24g_tx_led_map:
-	store 1,mem_24g_tx_led_map
-	rtn
-remote_car_24g_addr:
-	store 4,mem_24g_addr
-	rtn
-remote_car_24g_ch_map1:
-	store 4,mem_24g_ch_map1
-	rtn
-
-
-
-
-	
-remote_car_set__lpm_timer_set:
-	fetch 1,mem_remote_le_24g_tx_pair_mode
-	beq G24_UNCONNECT,remote_car_set_uconnect_lpm_time
-	beq G24_CONNECTED, remote_car_set_connected_lpm_time      
-	rtn
-remote_car_set_uconnect_lpm_time:
-	setarg 0
-	store 2,mem_24g_lpm_timer_count
-	setarg 300
-	store 2,mem_24g_lpm_enter_count     
-	rtn
-remote_car_set_connected_lpm_time:
-	setarg 0
-	store 2,mem_24g_lpm_timer_count
-	setarg 15
-	store 2,mem_24g_lpm_enter_count     
-	rtn
-
-
-remote_car_get_txid:
-ifdef FULL_CONTROL
-	jam 0x94,mem_tx_power
-	setarg 0xffffff
-	store 3,mem_le_lap
-	jam 0xff,mem_le_lap+3
-	rtn
-endif
-	call enable_otp_read
-	arg mem_remote_otp_lot_xy_temp,rega
-	arg OTP_MAC_ADDR,regb
-	arg 6,loopcnt
-	call otp_read_data
-	call disable_otp
-	fetch 6,mem_remote_otp_lot_xy_temp
-	rtn blank
-	fetch 2,mem_remote_otp_lot_xy_temp
-	store 2,mem_le_lap
-	fetch 1,mem_remote_otp_lot_xy_temp+3
-	store 1,mem_le_lap+2
-	fetch 1,mem_remote_otp_lot_xy_temp+5
-	store 1,mem_le_lap+3
-
-	fetch 1,mem_remote_otp_lot_xy_temp+1
-	sub pdata,26,null  //	piece num max is 25
-	nrtn positive
-	
-	fetch 1,mem_remote_otp_lot_xy_temp+2
-	rtn blank
-	random pdata
-	and_into 0x07,pdata
-	lshift pdata,pdata
-	lshift4 pdata,pdata
-	fetcht 1,mem_remote_otp_lot_xy_temp+1
-	iadd temp,pdata
-	store 1,mem_le_lap+1
-	arg mem_le_lap+1,rega
-	arg OTP_MAC_ADDR_PIECENUM,regb
-	arg 1,loopcnt
-	branch otp_write	
-
-remote_car_txid_check:
-ifdef FULL_CONTROL
-	rtn
-endif
-	arg mem_le_lap,rega
-	arg mem_remote_full_control_remote_lap,regb
-	arg 4,loopcnt
-	call string_compare
-	nrtn zero
-	fetch 1,mem_le_lap
-	pincrease -1
-	store 1,mem_le_lap
-	rtn
-
-remote_car_whitening_24g_addr:
-	arg 4,loopcnt
-	arg mem_24g_addr,regc
-	arg 0xae,regb
-remote_car_24g_whitening_loop:
-	call remote_car_24g_whitening_byte
-	increase 1, regc
-	loop remote_car_24g_whitening_loop
-	rtn
-
-remote_car_24g_whitening_byte:
-	arg 1, rega     //rega is m
-remote_car_24g_whitening_byte_loop:
-	lshift regb, regb    //regb is seed
-	isolate1 7, regb
-	call remote_car_24g_whitening_byte_xor, true
-	lshift rega, rega
-	deposit rega
-	rtnbit1 8
-	branch remote_car_24g_whitening_byte_loop
-	
-remote_car_24g_whitening_byte_xor:	
-	ifetch 1,regc
-	ixor rega, pdata
-	istore 1, regc
-	xor regb, 0x11, regb
-	rtn
-
-	
-remote_car_lpm_gpio_config_flag_init:
-	arg 0,temp
-	arg mem_remote_car_key_conf0+1,contr
-	arg 2,loopcnt	
-remote_car_iocfg_pullup_loop:
-	ifetch 1,contr
-	set0 7,pdata
-	copy pdata,queue
-	setarg 0
-	qset1 pdata
-	iadd temp,temp
-	loop remote_car_iocfg_pullup_loop
-	storet 4,mem_remote_lpm_gpio_config_flag
-	rtn
-
-
-remote_car_idle_process:	
-	bpatch patch06_4,mem_patch06
-	fetch 2,mem_remote_le_24g_ch_count
-	increase 1,pdata
-	store 2,mem_remote_le_24g_ch_count
-	rshift2 pdata,pdata
-	call remote_car_set_24g_ch
-	call remote_car_g24_recved_ack_parse
-remote_car_24g_matching_process:
-	fetch 1,mem_remote_le_24g_tx_pair_mode
-	beq G24_UNCONNECT,remote_car_send_pair_request
-	beq G24_CONNECTED, remote_car_send_remote_control
-	rtn
-
-
-remote_car_set_24g_ch:
-	beq 0,remote_car_set_ch0
-	beq 1,remote_car_set_ch1
-	beq 2,remote_car_set_ch2
-	beq 3,remote_car_set_ch3
-	branch remote_car_set_ch_reset
-	
-remote_car_set_ch0:
-	fetch 1,mem_24g_ch_map1
-	store 1,mem_24g_ch
-	rtn
-remote_car_set_ch1:
-	fetch 1,mem_24g_ch_map1+1
-	store 1,mem_24g_ch
-	rtn
-remote_car_set_ch2:
-	fetch 1,mem_24g_ch_map1+2
-	store 1,mem_24g_ch
-	rtn
-remote_car_set_ch3:
-	fetch 1,mem_24g_ch_map1+3
-	store 1,mem_24g_ch
-	rtn    
-remote_car_set_ch_reset:
-	setarg 0
-	store 2,mem_remote_le_24g_ch_count
-	rtn
-
-        
-remote_car_send_pair_request:
-	jam G24_TX_PAIR_REQUEST,mem_remote_24g_tx_payload_temp
-	fetch 4,mem_le_lap
-	store 4,mem_remote_24g_tx_payload_temp+1
-	branch remote_car_g24_sim_tx_with_datalen_set
-
-
-remote_car_g24_sim_tx_with_datalen_set:	
-	set0 mark_24g_rxmode,mark
-	setarg 0x2ee0    
-	store 2, mem_24g_rx_window //unit:1/12us
-	fetch 7,mem_remote_24g_tx_payload_temp
-	store 7,mem_24g_txbuf
-	fetch 5,mem_remote_24g_tx_payload_temp+7
-	store 5,mem_24g_txbuf+7	
-	arg LEN_OF_24G_PAYLOAD,loopcnt
-	arg 0,pdata
-	arg mem_24g_txbuf,contr
-	call cal_sum	
-	istore 1,contw
-	setarg LEN_OF_24G_PAYLOAD
-	increase 1,pdata
-	store 1,mem_24g_datalen
-	branch remote_car_g24_sim_tx
-
-
-
-remote_car_g24_sim_tx:
-	fetch 1,mem_24g_tx_phy
-	call le_enable_phy_by_pdata
-	call g24_syncword_crc8
-	jam 0x88,mem_rssi_hex
-//	call ice_break
-	call g24_transmit_prep
-	call g24_transmit_receive_ack
-	call g24_end_of_packet
-	fetch 1,mem_24g_no_ack	//tx noack
-	beq no_ack_24g,remote_car_g24_transmit_no_ack
-	nbranch remote_car_g24_transmit_no_ack, user3    //if(user3 == 0) means a invaild packet.
-	nbranch remote_car_g24_transmit_no_ack,sync
-	call remote_car_24g_recved_ack
-remote_car_g24_transmit_no_ack:	
-	random pdata 
-	arg 0x1ff,temp
-	iand temp,pdata
-	add pdata,250,pdata
-	branch delay
-
-
-remote_car_24g_recved_ack:
-	jam 1, mem_remote_le_24g_recv_ack_flag
-	rtn
-
-remote_car_g24_recved_ack_parse:
-	fetch 1, mem_remote_le_24g_recv_ack_flag
-	rtn blank
-	jam 0, mem_remote_le_24g_recv_ack_flag
-	fetch 1,mem_24g_rxbuf+2
-	beq G24_RX_PAIR_RESPONES,remote_car_g24_tx_connected
-	rtn
-
-
-remote_car_g24_tx_connected:
-	fetch 1,mem_remote_le_24g_tx_pair_mode
-	nrtn blank
-	arg mem_24g_rxbuf+7,rega
-	arg mem_le_lap,regb
-	arg 4,loopcnt
-	call string_compare
-	nrtn zero
-	call lpm_write_ice_disable
-	jam G24_CONNECTED,mem_remote_le_24g_tx_pair_mode
-	fetch 4,mem_24g_rxbuf+3
-	store 4,mem_remote_24g_addr_other
-	store 4,mem_remote_24g_tx_payload_temp+5
-	
-ifdef FULL_CONTROL
-	fetch 4,mem_remote_full_control_remote_lap
-	store 4,mem_remote_24g_addr_other
-	store 4,mem_remote_24g_tx_payload_temp+5
-endif
-	branch remote_car_set_connected_lpm_time
-		
-
-
-remote_car_send_remote_control:
-	bpatch patch06_5,mem_patch06
-	fetch 1,mem_le_24g_tx_send_flag
-	increase 1,pdata
-	store 1,mem_le_24g_tx_send_flag
-	jam 0,mem_remote_24g_tx_payload_temp
-	setarg 0
-	store 3,mem_remote_24g_tx_payload_temp+9
-	jam G24_TX_REMOTE_CONTROL,mem_remote_24g_tx_payload_temp
-	call remote_car_scan_key
-	call remote_car_set_tx_key_led
-	fetch 1,mem_le_24g_tx_send_flag
-	beq 200,remote_car_24g_tx_send_none
-	branch remote_car_g24_sim_tx_with_datalen_set
-
-
-remote_car_scan_key:
-	fetcht 1,mem_key_public_gpio
-	call gpio_out_inactive
-	call remote_car_key_scan_fb
-	call remote_car_key_scan_lr
-	//call remote_car_key_scan_mult
-	fetcht 1,mem_key_public_gpio
-	branch gpio_set_high_impedance
-		
-
-remote_car_key_scan_lr:
-	fetcht 1,mem_remote_car_key_conf3
-	call gpio_out_inactive
-
-	fetcht 1,mem_remote_car_key_conf3
-	call gpio_config_input
-	call gpio_get_bit
-	branch remote_car_set_keyR,true
-	
-	fetcht 1,mem_remote_car_key_conf3
-	call gpio_out_active
-	nop 1200
-	fetcht 1,mem_remote_car_key_conf2
-	call gpio_config_input
-	call gpio_get_bit
-	branch remote_car_set_keyL,true
-	rtn
-remote_car_key_scan_fb:
-	fetcht 1,mem_remote_car_key_conf0
-	call gpio_out_inactive
-
-	fetcht 1,mem_remote_car_key_conf0 
-	call gpio_config_input
-	call gpio_get_bit
-	branch remote_car_set_keyF,true
-	
-	fetcht 1,mem_remote_car_key_conf0
-	call gpio_out_active
-	nop 1200
-	fetcht 1,mem_remote_car_key_conf1
-	call gpio_config_input
-	call gpio_get_bit
-	branch remote_car_set_keyB,true
-	rtn
-/*remote_car_key_scan_mult:
-	fetcht 1,mem_key_public_gpio
-	call gpio_out_active	
-	fetcht 1,mem_remote_mult_key
-	call gpio_config_input
-	call gpio_get_bit
-	branch remote_car_set_keyM,true
-	rtn	*/
-
-remote_car_set_keyF:
-	jam 1,mem_remote_24g_tx_payload_temp+9
-	jam 0,mem_le_24g_tx_send_flag
-	rtn
-	
-remote_car_set_keyB:
-	jam 2,mem_remote_24g_tx_payload_temp+9
-	jam 0,mem_le_24g_tx_send_flag
-	rtn
-	
-remote_car_set_keyL:
-	jam 1,mem_remote_24g_tx_payload_temp+10
-	jam 0,mem_le_24g_tx_send_flag
-	rtn
-	
-remote_car_set_keyR:
-	jam 2,mem_remote_24g_tx_payload_temp+10
-	jam 0,mem_le_24g_tx_send_flag
-	rtn
-
-remote_car_set_keyM:
-	jam 1,mem_remote_24g_tx_payload_temp+11
-	jam 0,mem_le_24g_tx_send_flag
-	rtn
-
-remote_car_set_tx_key_led:
-	fetch 3,mem_remote_24g_tx_payload_temp+9
-	branch remote_car_24g_led_off+1,blank
-	setarg 0
-	store 2,mem_24g_lpm_timer_count
-	setarg 15
-	store 2,mem_24g_lpm_enter_count        
-	branch remote_car_24g_led_on
-
-remote_car_24g_tx_send_none:
-	fetch 1,mem_le_24g_tx_send_flag
-	increase -1,pdata
-	store 1,mem_le_24g_tx_send_flag
-	rtn
-
-
-remote_car_24g_set_led:
-	fetch 1,mem_remote_le_24g_tx_pair_mode
-	rtneq G24_CONNECTED
-	fetch 1,mem_24g_led_count
-	increase 1,pdata
-	store 1,mem_24g_led_count
-	beq 2,remote_car_24g_led_on
-	beq 4,remote_car_24g_led_off
-	rtn	
-	
-remote_car_24g_led_on:
-	fetcht 1,mem_24g_tx_led_map
-	branch gpio_out_inactive
-        
-remote_car_24g_led_off:
-	jam 0,mem_24g_led_count
-	fetcht 1,mem_24g_tx_led_map
-	branch gpio_out_active	
-
-	
-remote_car_lpm_timeout_set:
-	fetch 2,mem_24g_lpm_enter_count
-	rtn blank
-	fetcht 2,mem_24g_lpm_timer_count
-	ixor temp,pdata
-	call remote_car_enter_lpm,blank
-	fetch 2,mem_24g_lpm_timer_count
-	increase 1,pdata
-	store 2,mem_24g_lpm_timer_count
-	rtn
-        
-remote_car_cb_event_timer:
-	call remote_car_24g_set_led
-	branch remote_car_lpm_timeout_set
-
-
-remote_car_enter_lpm:	
-	call lpm_write_ice_disable
-	call remote_car_enter_lpm_gpio_config
-	call remote_car_wakeup_config	
-	arg -1,temp
-	branch lpm_sleep
-
-
-remote_car_enter_lpm_gpio_config:
-	arg 24, loopcnt
-	jam 0, mem_remote_lpm_gpio_config_io_temp   
-remote_car_enter_lpm_gpio_config_loopcnt:
-	fetcht 1, mem_remote_lpm_gpio_config_io_temp
-	copy temp, queue
-	fetch 4, mem_remote_lpm_gpio_config_flag    
-	qisolate1 pdata
-	branch remote_car_enter_lpm_gpio_config_pull_up, true
-	or temp, 0x80, temp
-  
-remote_car_enter_lpm_gpio_config_pull_up: 
-	call gpio_config_input
-	fetch 1, mem_remote_lpm_gpio_config_io_temp
-	pincrease 1
-	store 1, mem_remote_lpm_gpio_config_io_temp
-	loop remote_car_enter_lpm_gpio_config_loopcnt
-	rtn
-
-remote_car_set_value:
-	setarg 0x30
-remote_car_gpio_wakeup_cfg:	
-	copy contw,contr
-	ifetcht 1,contr
-	iadd temp,pdata
-	istore 1,contw
-	arg mem_gpio_wakeup_cfg,contw
-	arg mem_remote_car_key_conf0+2,contr
-	loop remote_car_wakeup_config_loop
-	rtn
-
-remote_car_wakeup_config:
-	setarg 0
-	store 0x0c,mem_gpio_wakeup_cfg
-	arg mem_gpio_wakeup_cfg,contw
-	arg mem_remote_car_key_conf0+1,contr
-	arg 2,loopcnt
-remote_car_wakeup_config_loop:
-	ifetch 1,contr
-	set0 7,pdata
-	div pdata,2
-	call wait_div_end
-	quotient pdata	
-	iadd contw,contw
-	remainder pdata
-	nbranch remote_car_set_value,blank
-	setarg 0x03
-	branch remote_car_gpio_wakeup_cfg
-
-	
-	
-	
-endif
-
-
Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/app_dongle.prog
===================================================================
--- /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/app_dongle.prog	(revision 5679)
+++ /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/app_dongle.prog	(nonexistent)
@@ -1,605 +0,0 @@
-ifdef COMPILE_DONGLE
-
-dongle_init:
-	setarg dongle_dispatch
-	store 2,mem_cb_24g_receive_process
-	setarg dongle_g24_mouse
-	store 2,mem_cb_24g_data_device1
-	setarg dongle_g24_kb
-	store 2,mem_cb_24g_data_device2
-	setarg dongle_ackpayload_prep
-	store 2,mem_cb_24g_ackpayload
-	setarg dongle_usb_config
-	store 2,mem_cb_usb_config
-	branch usb_init
-
-
-dongle_default_init:
-	bpatch patch06_6,mem_patch06
-	//sys init
-	call dongle_read_kb_bind_status
-	call dongle_xtal_select
-	fetch 1,mem_dg_sys_config
-	isolate1 DG_ENABLE_EEPROM,pdata
-	branch dongle_default_no_eeprom,true
-	fetch 1,mem_dg_sys_config
-	isolate1 DG_ENABLE_NEW_CHMAP,pdata
-	call g24_chamap_param_update,true
-dongle_default_no_eeprom:	
-	fetch 1,mem_dg_24g_tx_power_default
-	store 1,mem_tx_power
-	//24g init
-	jam 0xff,mem_rssi_buff_index
-	setarg mem_dg_rssi_noise_buffer
-	store 2,mem_rssi_noise_buffer_ptr
-	setarg mem_dg_rssi_noise_dg_buffer
-	store 2,mem_rssi_noise_self_buffer_ptr
-	setarg mem_dg_rssi_noise_ms_buffer
-	store 2,mem_rssi_noise_device1_buffer_ptr
-	setarg mem_dg_rssi_noise_kb_buffer
-	store 2,mem_rssi_noise_device2_buffer_ptr
-	jam TX_POWER_F5DB,mem_24g_pair_tx_power
-	jam 0,mem_dg_kb_bind_success
-	jam 0,mem_24g_bind_device_living
-	call g24_enable_1M
-	fetch 1,mem_dg_sys_config
-	isolate1 DG_ENABLE_24G_2M,pdata
-	call g24_enable_2M,true
-	call g24_receive_init
-	call g24_pair_param_init
-	call g24_chmap_param_init
-	//usb init
-	fetch 1,mem_dg_usb_tx_interval
-	store 1,mem_usb_tx_interval
-	fetch 9,mem_dg_usb_vid_pid
-	store 9,mem_usb_vid_pid
-	rtn
-	
-dongle_xtal_select:
-	jam XTAL_24M,mem_fcomp_div
-	fetch 1,mem_dg_sys_config
-	rtnbit0 DG_ENABLE_XTAL_24M
-	jam XTAL_16M,mem_fcomp_div
-	rtn
-
-dongle_dispatch:
-	fetch 1,mem_24g_pair_mode
-	beq 0x00,dongle_auto_bind
-	beq 0x01,dongle_pc_bind
-	beq 0x0f,dongle_all_powerful
-	rtn
-
-
-dongle_read_kb_bind_status:
-	bpatch patch06_7,mem_patch06
-	arg DONGLE_KB_BIND_EFUSE_OFFECT,regb
-	arg mem_dg_kb_bind_flag,rega
-	arg 1,loopcnt
-	branch otp_read_data
-
-dongle_write_kb_bind_status:
-	bpatch patch07_0,mem_patch07
-	arg 1,loopcnt
-	arg mem_dg_kb_bind_flag,rega
-	arg DONGLE_KB_BIND_EFUSE_OFFECT,regb
-	branch otp_write
-
-dongle_usb_config:
-	fetch 1,mem_dg_sys_config
-	bbit1 DG_ENABLE_KB_ICON,dongle_usb_config_kb
-	fetch 1,mem_dg_kb_bind_flag
-	bne DONGLE_KB_BIND_SUCCESS,dongle_usb_config_param
-dongle_usb_config_kb:
-	jam DONGLE_KB_BIND_SUCCESS,mem_dg_kb_bind_flag
-	fetch 4,USB_DEVICEDATA_ADDR+9
-	set1 29,pdata
-	store 4,mem_devicedesc+9
-dongle_usb_config_param:
-	bpatch patch07_1,mem_patch07
-	call dongle_usb_device_name
-	call usb_tx_interval_config
-	call dongle_usb_vid_pid_config
-	branch dongle_usb_hid_icon_config
-
-dongle_usb_vid_pid_config:
-	fetch 1,mem_usb_vid_pid
-	rtn blank
-	fetch 1,mem_dg_kb_bind_flag
-	beq DONGLE_KB_BIND_SUCCESS,dongle_usb_vid_pid_for_suit
-dongle_usb_vid_pid_for_mouse_only_auto_pair:	
-	fetch 4,mem_usb_vid_pid+1
-dongle_usb_vid_pid_store:	
-	store 4,mem_devicedesc+9
-	rtn
-dongle_usb_vid_pid_for_suit:
-	fetch 4,mem_usb_vid_pid+5
-	branch dongle_usb_vid_pid_store
-
-dongle_usb_hid_icon_config:
-	fetch 1,mem_dg_kb_bind_flag
-	beq DONGLE_KB_BIND_SUCCESS,dongle_usb_kb_hidreportdesc
-	setarg USB_KBDATA_VENDOR_DEFINE_ADDR
-	store 2,mem_hidreportdesc_kb
-	jam 0x1a,mem_confdesc+26//hid_descriptor--keyboard length
-	rtn
-dongle_usb_kb_hidreportdesc:
-	setarg USB_KBDATA_ADDR
-	store 2,mem_hidreportdesc_kb
-	jam 0x41,mem_confdesc+26//hid_descriptor--keyboard length	
-	rtn
-
-dongle_usb_device_name:
-	fetch 1,mem_dg_usb_device_name
-	rtn blank
-	arg mem_dg_usb_device_name,contr
-	arg mem_string2,contw
-	arg 32,loopcnt
-	branch memcpy
-
-
-dongle_all_powerful:
-	call g24_switch_work_mode
-dongle_all_powerful_loop:
-	call dongle_work_mode_auto
-	call dongle_usb_dispatch
-	branch dongle_all_powerful_loop
-
-dongle_pc_bind:
-	call g24_switch_work_mode
-dongle_pc_bind_loop:	
-	call dongle_work_mode_auto
-	call g24_bind_mode_auto
-	call dongle_usb_dispatch
-	branch dongle_pc_bind_loop
-
-dongle_g24_blank_data_process:
-	bpatch patch07_2,mem_patch07
-	call dongle_g24_ms_blank_data
-	call dongle_g24_kb_blank_data
-	call dongle_g24_kb_sys_ctrl_blank_data
-	call dongle_g24_kb_bit_consumer_blank_data
-	branch dongle_g24_kb_mul_blank_data
-
-dongle_g24_ms_blank_data:
-	fetch 1,mem_dg_ms_blank_data_enable
-	rtn blank
-	arg G24_TIMER_MS_BLANK,queue
-	call timer_check
-	nrtn blank
-	jam 0,mem_dg_ms_blank_data_enable
-	setarg MS_REPORT_ID
-	store 1,mem_usb_mouse_data
-	setarg 0
-	istore 7,contw
-dongle_usb_tx_ms_data:
-	jam USB_EP2_MS,mem_usb_ep2_data
-dongle_usb_tx_enable_ep2:
-	fetch 1,mem_usb_tx_enable
-	set1 2,pdata
-	store 1,mem_usb_tx_enable
-	rtn
-
-dongle_g24_kb_blank_data:
-	fetch 1,mem_dg_kb_blank_data_enable
-	rtn blank
-	arg G24_TIMER_KB_BLANK,queue
-	call timer_check
-	nrtn blank
-	jam 0,mem_dg_kb_blank_data_enable
-	arg mem_usb_kb_data,contw
-	call memset0_16
-	fetch 8,mem_usb_kb_data
-	store 8,mem_dg_kb_data_last_data
-dongle_usb_tx_kb_data:	
-	jam KB_NORMAL_REPORT_ID,mem_usb_kb_data
-dongle_usb_tx_enable_ep1:
-	jam USB_EP1_KB,mem_usb_ep1_data
-	fetch 1,mem_usb_tx_enable
-	set1 1,pdata
-	store 1,mem_usb_tx_enable
-	rtn
-
-dongle_g24_kb_sys_ctrl_blank_data:
-	fetch 1,mem_dg_kb_system_crtl_blank_data_enable
-	rtn blank
-	arg G24_TIMER_KB_SYS_CRTL_BLANK,queue
-	call timer_check
-	nrtn blank
-	jam 0,mem_dg_kb_system_crtl_blank_data_enable
-	arg mem_usb_kb_system,contw
-	call memset0_16
-	jam KB_SYSTEM_CONCTRL_REPORT_ID,mem_usb_kb_system
-	fetch 2,mem_usb_kb_system
-	store 2,mem_dg_kb_system_sta_data
-dongle_usb_tx_sys_ctrl_data:
-	jam USB_EP2_SYSTEMKEY,mem_usb_ep2_data
-	branch dongle_usb_tx_enable_ep2
-
-dongle_g24_kb_mul_blank_data:
-	fetch 1,mem_dg_kb_mul_blank_data_enable
-	rtn blank
-	arg G24_TIMER_KB_MUL_BLANK,queue
-	call timer_check
-	nrtn blank
-	jam 0,mem_dg_kb_mul_blank_data_enable
-	arg mem_usb_kb_multikey,contw
-	call memset0_16
-	jam KB_MULTIKEY_REPORT_ID,mem_usb_kb_multikey
-	fetch 3,mem_usb_kb_multikey
-	store 3,mem_dg_kb_multikey_last_data	
-dongle_usb_tx_multikey_data:
-	jam USB_EP2_MULTIKEY,mem_usb_ep2_data
-	branch dongle_usb_tx_enable_ep2
-
-dongle_g24_kb_bit_consumer_blank_data:
-	fetch 1,mem_dg_kb_bit_consumer_blank_data_enable
-	rtn blank
-	arg G24_TIMER_KB_BIT_CONSUMER_BLANK,queue
-	call timer_check
-	nrtn blank
-	jam 0,mem_dg_kb_bit_consumer_blank_data_enable
-	arg mem_usb_kb_multikey,contw
-	call memset0_16
-	jam KB_BIT_CONSUMER_REPORT_ID,mem_usb_kb_multikey
-	fetch 4,mem_usb_kb_multikey
-	store 4,mem_dg_kb_bit_consumer_last_data	
-dongle_usb_tx_bit_consumer_data:
-	jam USB_EP2_BIT_CONSUMER,mem_usb_ep2_data
-	branch dongle_usb_tx_enable_ep2
-
-
-dongle_usb_dispatch:
-	bpatch patch07_3,mem_patch07
-	fetch 1,mem_usb_remote_wakeup
-	call dongle_clear_pc_sleep_flag,blank
-	call usb_isr
-	fetch 1,mem_usb0_get_set_report
-	rtn blank
-	jam 0,mem_usb0_get_set_report
-	fetch 2,mem_usb_setup_bValue_temp
-	arg PC_SET_REPORT,temp
-	isub temp,null
-	nrtn zero
-	//get usb host command
-	fetch 1,mem_usb0_set_report_data
-	rtnne PC_REPORT_ID
-	fetch 1,mem_usb0_set_report_data+1
-	beq COMMAND_MODE,dongle_dispose_cmd_mode
-	beq COMMAND_BIND,dongle_dispose_cmd_bind
-	beq COMMAND_CURRENT_PROJECT,dongle_dispose_cmd_current_project
-	beq COMMAND_CURRENT_MODE,dongle_dispose_cmd_current_mode
-	beq COMMAND_CURRENT_FW_VERSION,dongle_dispose_cmd_current_fw_version
-//	beq COMMAND_USER_DEFINED,dongle_dispose_cmd_user_defined
-dongle_usb0_data_ready_report_set0:
-	jam 0,mem_usb0_data_ready_report
-	rtn
-
-dongle_dispose_cmd_mode:
-	fetch 1,mem_usb0_set_report_data+2
-	beq COM_MODE_BIND,dongle_enter_bind_mode
-	branch dongle_usb0_data_ready_report_set0
-dongle_enter_bind_mode:
-	call g24_bind_mode_enable
-dongle_usb0_data_ready_report_set1:
-	jam 1,mem_usb0_data_ready_report
-	rtn
-
-dongle_dispose_cmd_bind:
-	fetch 1,mem_usb0_set_report_data+2
-	beq COM_BIND_GET,dongle_dispose_cmd_get_bind
-	beq COM_BIND_EXIT,dongle_dispose_cmd_exit_bind
-	beq COM_READ_MODE,dongle_dispose_cmd_read_mode
-	branch dongle_usb0_data_ready_report_set0
-dongle_dispose_cmd_get_bind:
-	fetch 1,mem_24g_bind_device_status
-	store 1,mem_usb0_get_report_data+1
-	branch dongle_usb0_data_ready_report_set1
-dongle_dispose_cmd_exit_bind:
-	call g24_work_mode_enable
-	branch dongle_dispose_cmd_get_bind
-dongle_dispose_cmd_read_mode:
-dongle_dispose_in_bind_mode:
-	jam COMMAND_BIND,mem_usb0_get_report_data+1
-	branch dongle_usb0_data_ready_report_set1	
-
-dongle_dispose_cmd_current_project:
-	jam PRODUCT_ID,mem_usb0_get_report_data+1
-	branch dongle_usb0_data_ready_report_set1
-
-dongle_dispose_cmd_current_mode:
-	fetch 1,mem_24g_work_mode
-	beq DONGLE_WORK,dongle_dispose_in_work_mode
-	beq DONGLE_BIND,dongle_dispose_in_bind_mode
-	rtn
-dongle_dispose_in_work_mode:
-	jam COMMAND_MODE,mem_usb0_get_report_data+1
-	branch dongle_usb0_data_ready_report_set1
-	
-dongle_dispose_cmd_current_fw_version:
-	fetch 4,mem_dg_device_version
-	store 4,mem_usb0_get_report_data+1
-	branch dongle_usb0_data_ready_report_set1
-
-//dongle_dispose_cmd_user_defined:
-//	call g24_ackpayload_disable
-//	fetch 1,mem_usb0_set_report_data+2
-//	beq 0xff,soft_reset_chip
-//	rtn
-
-dongle_auto_bind:
-	call g24_mode_switch_init
-dongle_auto_bind_loop:
-	call g24_mode_switch_bind_work
-	call g24_mode_switch_bind_search
-	call dongle_work_mode_auto
-	call g24_bind_mode_auto
-	call g24_search_mode_auto
-	call dongle_usb_dispatch
-	branch dongle_auto_bind_loop
-
-dongle_work_mode_auto:
-	bpatch patch07_4,mem_patch07
-	fetch 1,mem_24g_work_mode
-	rtnne DONGLE_WORK
-	call g24_work_mode_start
-	call dongle_g24_blank_data_process
-	fetch 1,mem_24g_pair_mode
-	nrtn blank
-	branch g24_nodata_process
-
-dongle_ackpayload_prep:
-	fetch 1,mem_24g_data_type
-	beq DATATYPE_DEVICE1,dongle_ackpayload_prep_mouse
-	beq DATATYPE_DEVICE2,dongle_ackpayload_prep_keyboard
-dongle_ackpayload_prep_mouse:
-	fetch 1,mem_dg_pc_sleep_flag
-	bbit1 0,dongle_pc_sleep_ackpayload_prep_mouse
-	branch dongle_ackpayload_prep_end
-
-dongle_set_pc_sleep_flag:
-	fetch 1,mem_device_option
-	rtnne DVC_OP_DONGLE
-	jam 3,mem_dg_pc_sleep_flag
-	rtn
-dongle_clear_pc_sleep_flag:
-	jam 0,mem_dg_pc_sleep_flag
-	rtn
-
-dongle_ackpayload_prep_keyboard:
-	fetch 1,mem_dg_pc_sleep_flag
-	bbit1 1,dongle_pc_sleep_ackpayload_prep_keyboard
-dongle_ackpayload_prep_end:
-	fetch 1,mem_24g_ackpayload_enable
-	beq BIND_ACKPAYLOAD,dongle_g24_bind_ackpayload_prep
-	beq KB_LED_ACKPAYLOAD,dongle_g24_kb_led_ackpayload_prep
-	rtn
-
-dongle_pc_sleep_ackpayload_prep_mouse:
-	fetch 1,mem_dg_pc_sleep_flag
-	set0 0,pdata
-	store 1,mem_dg_pc_sleep_flag
-	branch dongle_pc_sleep_ackpayload_prep
-
-dongle_pc_sleep_ackpayload_prep_keyboard:
-	fetch 1,mem_dg_pc_sleep_flag
-	set0 1,pdata
-	store 1,mem_dg_pc_sleep_flag
-dongle_pc_sleep_ackpayload_prep:
-	jam 0x01,mem_24g_datalen
-	setarg 0xff
-	store 1,mem_24g_txbuf
-	rtn
-
-
-dongle_g24_bind_ackpayload_prep:
-	bpatch patch07_5,mem_patch07
-	jam 1,mem_24g_ackpayload_enable
-	fetch 1,mem_24g_work_mode
-	rtneq DONGLE_WORK
-	fetch 1,mem_24g_pair_mode
-	nrtn blank
-	call g24_binding_device_check	//works on auto pair only
-	nrtn user3
-	branch g24_bind_ackpayload_prep
-
-dongle_g24_kb_led_ackpayload_prep:
-	fetch 1,mem_24g_rxbuf+2
-	beq DATATYPE_DEVICE1,g24_bind_ackpayload_prep
-	beq DATATYPE_ATTEMP,g24_bind_ackpayload_prep
-	jam 0,mem_usb_tx_win_enable
-	jam 0x01,mem_24g_datalen
-	fetch 1,mem_24g_led_status
-	store 1,mem_24g_txbuf
-	rtn
-
-dongle_g24_mouse:
-	setarg MS_REPORT_ID
-	store 1,mem_usb_mouse_data	//report id
-	fetch 7,mem_24g_rxdata_temp+3	//key
-	istore 7,contw
-	fetch 1,mem_24g_rxdata_temp+3	//key
-	ncall dongle_g24_ms_enable_blank_data_forcibly,blank//get kb data
-	fetch 1,mem_24g_rxdata_temp+3	//key
-	call dongle_g24_ms_disable_blank_data_forcibly,blank
-	branch dongle_usb_tx_ms_data
-
-dongle_g24_ms_enable_blank_data_forcibly:
-	jam 1,mem_dg_ms_blank_data_enable
-	setarg TIMER_MS_BLANK_DELAY
-	arg G24_TIMER_MS_BLANK,queue
-	branch timer_init
-
-dongle_g24_ms_disable_blank_data_forcibly:
-	jam 0,mem_dg_ms_blank_data_enable
-	setarg 0
-	arg G24_TIMER_MS_BLANK,queue
-	branch timer_init
-
-dongle_g24_kb:
-	fetch 1,mem_24g_rxdata_temp+3
-	beq 0,dongle_g24_kb_type0	//normal key
-	beq 2,dongle_g24_kb_type2	//system key
-	beq 3,dongle_g24_kb_type3	//multikey
-	beq 5,dongle_g24_kb_type_bit_consumer
-	branch g24_rx_interrupt_clear
-
-dongle_g24_kb_type0:
-	fetch 1,mem_24g_rxdata_temp+5
-	store 1,mem_24g_ackpayload_enable
-	jam 0,mem_24g_rxdata_temp+5
-	arg mem_usb_kb_data,contw
-	arg mem_24g_rxdata_temp+4,contr
-	arg 8,loopcnt
-	call memcpy
-	fetch 8,mem_usb_kb_data
-	ncall dongle_g24_kb_enable_blank_data_forcibly,blank//get kb data
-	fetch 8,mem_usb_kb_data	
-	call dongle_g24_kb_disable_blank_data_forcibly,blank
-	fetch 8,mem_usb_kb_data
-	store 8,mem_dg_kb_data_sta_data
-	fetcht 8,mem_dg_kb_data_last_data
-	isub temp,null
-	ncall dongle_usb_tx_enable_ep1,zero
-	fetch 8,mem_dg_kb_data_sta_data
-	store 8,mem_dg_kb_data_last_data
-	branch g24_rx_interrupt_clear
-
-dongle_g24_kb_enable_blank_data_forcibly:
-	jam 1,mem_dg_kb_blank_data_enable
-	setarg TIMER_KB_BLANK_DELAY
-	arg G24_TIMER_KB_BLANK,queue
-	branch timer_init
-
-dongle_g24_kb_disable_blank_data_forcibly:
-	jam 0,mem_dg_kb_blank_data_enable
-	setarg 0
-	arg G24_TIMER_KB_BLANK,queue
-	branch timer_init
-
-dongle_g24_kb_type3:
-	arg mem_usb_kb_multikey,contw
-	arg mem_24g_rxdata_temp+3,contr
-	arg 3,loopcnt
-	call memcpy
-	fetch 2,mem_usb_kb_multikey+1
-	ncall dongle_g24_kb_mul_enable_blank_data_forcibly,blank//get multikey data
-	fetch 2,mem_usb_kb_multikey+1
-	call dongle_g24_kb_mul_disable_blank_data_forcibly,blank
-	fetch 3,mem_usb_kb_multikey
-	store 3,mem_dg_kb_multikey_sta_data
-	fetcht 3,mem_dg_kb_multikey_last_data
-	isub temp,null
-	ncall dongle_usb_tx_multikey_data,zero
-	fetch 3,mem_dg_kb_multikey_sta_data
-	store 3,mem_dg_kb_multikey_last_data
-	branch g24_rx_interrupt_clear
-
-dongle_g24_kb_mul_enable_blank_data_forcibly:
-	jam 1,mem_dg_kb_mul_blank_data_enable
-	setarg TIMER_KB_MUL_BLANK_DELAY
-	arg G24_TIMER_KB_MUL_BLANK,queue
-	branch timer_init
-	
-dongle_g24_kb_mul_disable_blank_data_forcibly:
-	jam 0,mem_dg_kb_mul_blank_data_enable
-	setarg 0
-	arg G24_TIMER_KB_MUL_BLANK,queue
-	branch timer_init
-
-dongle_g24_kb_type_bit_consumer:
-	arg mem_usb_kb_multikey,contw
-	arg mem_24g_rxdata_temp+3,contr
-	arg 4,loopcnt
-	call memcpy
-	fetch 3,mem_usb_kb_multikey+1
-	ncall dongle_g24_kb_bit_consumer_enable_blank_data_forcibly,blank//get multikey data
-	fetch 3,mem_usb_kb_multikey+1
-	call dongle_g24_kb_bit_consumer_disable_blank_data_forcibly,blank
-	fetch 3,mem_usb_kb_multikey+1
-	store 3,mem_dg_kb_bit_consumer_sta_data
-	fetcht 3,mem_dg_kb_bit_consumer_last_data
-	isub temp,null
-	ncall dongle_usb_tx_bit_consumer_data,zero
-	fetch 3,mem_dg_kb_bit_consumer_sta_data
-	store 3,mem_dg_kb_bit_consumer_last_data
-	branch g24_rx_interrupt_clear
-
-dongle_g24_kb_bit_consumer_enable_blank_data_forcibly:
-	jam 1,mem_dg_kb_bit_consumer_blank_data_enable
-	setarg TIMER_KB_MUL_BLANK_DELAY
-	arg G24_TIMER_KB_BIT_CONSUMER_BLANK,queue
-	branch timer_init
-
-dongle_g24_kb_bit_consumer_disable_blank_data_forcibly:
-	jam 0,mem_dg_kb_bit_consumer_blank_data_enable
-	setarg 0
-	arg G24_TIMER_KB_BIT_CONSUMER_BLANK,queue
-	branch timer_init
-
-
-dongle_g24_kb_type2:
-	arg mem_usb_kb_system,contw
-	arg mem_24g_rxdata_temp+3,contr
-	arg 2,loopcnt
-	call memcpy
-	fetch 2,mem_usb_kb_system
-	ncall dongle_g24_kb_sys_enable_blank_data_forcibly,blank
-	fetch 2,mem_usb_kb_system
-	call dongle_g24_kb_sys_disable_blank_data_forcibly,blank
-	fetch 2,mem_usb_kb_system
-	store 2,mem_dg_kb_system_sta_data
-	fetcht 2,mem_dg_kb_system_last_data
-	isub temp,null
-	ncall dongle_usb_tx_sys_data,zero
-	fetch 2,mem_dg_kb_system_sta_data
-	store 2,mem_dg_kb_system_last_data
-	branch g24_rx_interrupt_clear
-
-dongle_g24_kb_sys_enable_blank_data_forcibly:
-	jam 1,mem_dg_kb_system_crtl_blank_data_enable
-	setarg TIMER_KB_SYS_CRTL_BLANK_DELAY
-	arg G24_TIMER_KB_SYS_CRTL_BLANK,queue
-	branch timer_init
-dongle_g24_kb_sys_disable_blank_data_forcibly:
-	jam 0,mem_dg_kb_system_crtl_blank_data_enable
-	setarg 0
-	arg G24_TIMER_KB_SYS_CRTL_BLANK,queue
-	branch timer_init
-
-dongle_usb_tx_sys_data:
-	jam USB_EP2_SYSTEMKEY,mem_usb_ep2_data
-	branch dongle_usb_tx_enable_ep2
-
-
-dongle_g24_store_dvc2_bind_flag:
-	fetch 1,mem_device_option
-	rtnne DVC_OP_DONGLE
-	fetch 1,mem_dg_kb_bind_flag
-	rtneq DONGLE_KB_BIND_SUCCESS
-dongle_prep_soft_reset:
-	jam 1,mem_dg_kb_bind_success
-	rtn
-
-
-dongle_kb_bind_soft_reset:
-	fetch 1,mem_device_option
-	rtnne DVC_OP_DONGLE
-	fetch 1,mem_dg_kb_bind_success
-	rtn blank
-	jam 0,mem_temp
-dongle_wirte_efuse_bind_status:	
-	jam DONGLE_KB_BIND_SUCCESS,mem_dg_kb_bind_flag
-	call dongle_write_kb_bind_status
-	call dongle_read_kb_bind_status
-	fetch 1,mem_temp
-	increase 1,pdata
-	store 1,mem_temp
-	beq 0xff,soft_reset_chip
-	fetch 1,mem_dg_kb_bind_flag
-	bne DONGLE_KB_BIND_SUCCESS,dongle_wirte_efuse_bind_status
-	branch soft_reset_chip
-
-
-endif
-
-
Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/app_kb.prog
===================================================================
--- /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/app_kb.prog	(revision 5679)
+++ /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/app_kb.prog	(nonexistent)
@@ -1,3926 +0,0 @@
-
-keyboard_softreset_process:
-	call keyboard_wakeup_from_power_check
-	nbranch soft_reset+1,user
-	fetch 1,mem_power_on_flag
-	branch soft_reset+1,blank
-	fetch 1,mem_keyboard_pb_button_gpio
-	rtneq UI_BUTTON_GPIO_DISABLE
-	copy pdata,queue
-	fetch 4,mem_saved_gpio_in
-	qisolate0 pdata					// bt button gpio num
-	call keyboard_pb_set,true
-	branch soft_reset+2	
-
-keyboard_wakeup_from_power_check:
-	disable user
-	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
-	bbit0 KEYBOARD_ENABLE_WAKEUP_FROM_POWER,mouse_wakeup_from_poweron
-	fetch 1,core_lpm_isogate
-	bbit1 cold_wake,mouse_wakeup_from_poweron
-	enable user	//wake from hibernate
-	branch mouse_wakeup_from_poweron
-
-keyboard_default_init:
-	call hid_device_default_parm_init
-	call keyboard_xtal_init
-	call keyboard_24g_phy_select
-	branch g24_pair_param_init
-
-keyboard_xtal_init:
-	jam XTAL_16M,mem_fcomp_div		// 0x08--16M 
-	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
-	rtnbit1 KEYBOARD_ENABLE_16M
-	jam XTAL_24M,mem_fcomp_div		// 0x18--24M
-	rtn
-
-keyboard_24g_phy_select:
-	call g24_enable_1M
-	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
-	rtnbit0 KEYBOARD_ENABLE_24G_2M_PHY
-	branch g24_enable_2M
-
-
-keyboard_init:
-	call enable_authrom
-	call keyboard_setting_config
-	
-	call keyboard_gpio_init
-	call keyboard_low_vol_mult_set
-	call lpm_config_puchk_disable
-	rtn wake
-	call keyboard_cb_fuction
-	fetch 1,mem_device_flag
-	beq MODE_USB_DEVICE,keyboard_usb_mode_start
-keyboard_init_wireless:	
-	fetch 2,mem_ui_state_map
-	bbit1 UI_STATE_BTN_DOWN,keyboard_start_discovery
-	jam 0,mem_keyboard_switch_count_temp
-	call keyboard_check_select_device_by_switch
-	jam 1,mem_keyboard_switch_count_temp
-	branch keyboard_start_work
-
-keyboard_setting_config:
-	rtn wake
-	call g24_transmit_init
-	call g24_chmap_param_init
-	call keyboard_param_init
-	call keyboard_device_led_all_off
-	call keyboard_rgb_off
-	call keyboard_pwm_init
-	call le_set_fixed_ltk_justwork
-	bpatch patch07_6,mem_patch07
-	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
-	bbit1 KEYBOARD_ENABLE_OTP,keyboard_load_otp_info	
-	bbit1 KEYBOARD_ENABLE_EEPROM,keyboard_load_eeprom_info
-	bbit1 KEYBOARD_ENABLE_FLASH,keyboard_load_flash_info
-	rtn
-
-keyboard_param_common_init:
-	setarg MOUSE_BLE_ATT_LIST_ADDR				//ble attlist start address
-	store 2,mem_ui_le_uuid_table
-	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
-	bbit1 KEYBOARD_ENABLE_MOUSE,hid_device_param_common_init
-	setarg KEYBOARD_BLE_HID_MAP_N_KEY_ROLLOVER_KEYBOARD_ADDR
-	store 2,mem_keyboard_le_hid_map
-	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
-	bbit1 KEYBOARD_ENABLE_26_N_KEY_ROLLOVER,hid_device_param_common_init
-	bbit1 KEYBOARD_ENABLE_FULL_N_KEY_ROLLOVER,hid_device_param_common_init
-	setarg KEYBOARD_BLE_HID_MAP_MAGIC_KEYBOARD_ADDR
-	store 2,mem_keyboard_le_hid_map
-	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
-	bbit1 KEYBOARD_ENABLE_MAGIC_KEYBOARD,hid_device_param_common_init
-	setarg KEYBOARD_BLE_HID_MAP_ONLY_KEYBOARD_ADDR
-	store 2,mem_keyboard_le_hid_map
-	branch hid_device_param_common_init
-
-	
-keyboard_param_init:
-	call keyboard_compare_addr_init
-	call keyboard_param_common_init	
-	call keyboard_adc_vol_init
-	fetch 1,mem_keyboard_device_poweron_timer_init
-	store 1,mem_keyboard_device_poweron_timer
-	jam 0,mem_same_keyvalue_timerout_flag	
-	arg mem_le_adv_swift_pair,contw
-	arg 20,loopcnt
-	call clear_mem
-
-	fetch 1,mem_le_name_len
-	sub pdata,12,null
-	nbranch keyboard_ble_name_set_no_swift_pair,positive
-	setarg 0x06ff06
-	store 3,mem_le_adv_swift_pair
-	setarg 0x000300
-	istore 3,contw
-	setarg 0x80
-	istore 1,contw
-keyboard_ble_store_le_name:
-	fetch 1,mem_le_name_len
-	increase 1,pdata
-	copy pdata,loopcnt
-	arg mem_le_scan_data,contr			// 7byte + mem_le_scan_data
-	branch memcpy
-	
-keyboard_ble_name_set_no_swift_pair:
-	arg mem_le_adv_swift_pair,contw
-	branch keyboard_ble_store_le_name
-
-keyboard_compare_addr_init:
-	arg 0,temp
-	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
-	bbit1 KEYBOARD_ENABLE_OTP,hid_device_compare_addr_store
-	arg 0xffffff,temp
-	branch hid_device_compare_addr_store
-	
-/////////////////////////////////////////////////////////------gpio------///////////////////////////////////////////////////////////
-keyboard_gpio_init:
-	call clear_wake
-	fetcht 1,mem_keyboard_pb_button_gpio
-	call device_gpio_config_input_pu
-
-	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
-	isolate1 KEYBOARD_DISABLE_ICE,pdata
-	call lpm_write_ice_disable,true
-	
-	//row init
-	setarg mem_key_row_gpio
-	store 2,mem_kb_row_ptr
-	//col init
-	setarg mem_key_col_gpio
-	store 2,mem_kb_col_ptr
-	//portA and B init
-	setarg mem_key_excol_gpio
-	store 2,mem_kb_excol_ptr
-	call keyboard_key_row_init
-	fetch 2,mem_kb_col_ptr
-	copy pdata,regb
-	arg 20,loopcnt	
-keyboard_key_cow_init:
-	ifetcht 1,regb
-	isolate1 7,temp						// exmcu gpio
-	ncall gpio_set_high_impedance,true
-	increase 1,regb
-	loop keyboard_key_cow_init
-	rtn
-
-keyboard_key_row_init:
-	fetch 2,mem_kb_row_ptr
-	copy pdata,regb
-	arg 8,loopcnt
-keyboard_key_row_init_loop:
-	ifetcht 1,regb
-	sub temp,UI_BUTTON_GPIO_DISABLE,null
-	ncall keyboard_gpio_set_low_pullup,zero
-	increase 1,regb
-	loop keyboard_key_row_init_loop
-	branch lpm_write_gpio_wakeup
-	
-keyboard_gpio_set_low_pullup:
-	call gpio_set_high_impedance
-	ifetcht 1,regb
-	branch gpio_set_low_pullup
-
-keyboard_gpio_pu_idle:
-	arg core_gpio_conf,contr
-	arg GPIO_NUMBER,loopcnt
-keyboard_gpio_pu_idle_loop:
-	ifetch 1,contr
-	nbranch keyboard_gpio_pu_idle_configured,blank
-	setarg gpcfg_pullup
-	add contr,-1,contw
-	istore 1,contw
-keyboard_gpio_pu_idle_configured:
-	loop keyboard_gpio_pu_idle_loop
-	arg core_gpio_conf_hi+GPIO_NUMBER_EXT,pdata
-	isub contr,null
-	rtn zero
-	arg GPIO_NUMBER_EXT,loopcnt
-	arg core_gpio_conf_hi,contr
-	branch keyboard_gpio_pu_idle_loop	
-
-keyboard_key_row_wake_set:
-	fetch 1,mem_same_keyvalue_timerout_flag
-	branch gpio_set_wake,blank
-	branch gpio_set_wake_by_current_state
-	
-//////////////////////////////////////////////////////////////////////////////////////////////////////////
-
-	
-///////////////////////////////////////otp  eeprom flash/////////////////////////////////////////////////////////////
-keyboard_pairing_check_otp_offset:
-	fetch 2,mem_otp_read_retention_offset
-	//arg 0x320,temp   //50*16 or 4*200
-	fetcht 2,mem_otp_read_retention_max_size
-	isub temp,null
-	nrtn positive
-	branch assert
-	
-//  otp process	
-keyboard_load_otp_info:
-	fetch 1,mem_device_flag
-	beq MODE_24G_DEVICE,keyboard_load_otp_device_info_g24_init
-	beq MODE_BT_DEVICE1,keyboard_load_otp_device_info_ble_init
-	rtn	
-	
-keyboard_load_otp_device_info_g24_init:
-	arg 8,regd
-	//setarg 0x400
-	fetch 2,mem_otp_read_retention_max_size
-	idiv regd
-	call wait_div_end
-	quotient pdata
-	store 2,mem_pdatatemp
-	arg 0x1fbc,pdata
-	arg 4,temp
-	arg 4,rege
-	branch keyboard_load_otp_device_info
-keyboard_load_otp_device_info_ble_init:
-	arg 32,regd
-	//setarg 0x400
-	fetch 2,mem_otp_read_retention_max_size
-	idiv regd
-	call wait_div_end
-	quotient pdata
-	store 2,mem_pdatatemp
-	arg 0x1fb0,pdata
-	arg 16,temp		
-	arg 16,rege
-	branch keyboard_load_otp_device_info
-keyboard_load_otp_device_info:
-	store 2,mem_pdatatemp+2
-	storet 1,mem_temp
-	arg mem_otp_read_retention_memory,rega
-	arg 0,regc
-keyboard_load_otp_info_check_page_loop:
-	fetch 2,mem_pdatatemp+2
-	copy pdata,regb
-	fetchr loopcnt, 1,mem_temp
-	arg mem_otp_read_retention_memory,rega
-	call otp_read_data
-	fetch 8,mem_otp_read_retention_memory
-	fetcht 8,mem_otp_read_retention_memory+8
-	ior temp,pdata
-	fetcht 8,mem_otp_read_retention_memory+16
-	ior temp,pdata	
-	branch keyboard_load_otp_info_check_first_time,blank
-	increase 1,regc
-	fetch 2,mem_pdatatemp
-	isub regc,null
-	fetch 2,mem_pdatatemp+2
-	isub regd,pdata
-	store 2,mem_pdatatemp+2
-	branch keyboard_load_otp_info_check_page_loop
-	
-keyboard_load_otp_info_check_first_time:
-	sub regc,0,null
-	branch keyboard_load_otp_info_check_first_time_process,zero
-keyboard_load_otp_info_check_first_time_loop_init:
-	fetch 2,mem_pdatatemp+2
-	iadd regd,pdata
-keyboard_load_otp_info_check_first_time_loop:	
-	isub rege,pdata
-	store 2,mem_pdatatemp+2
-	fetch 2,mem_pdatatemp+2
-	copy pdata,regb
-	fetchr loopcnt, 1,mem_temp
-	arg mem_otp_read_retention_memory,rega
-	call otp_read_data
-	fetch 8,mem_otp_read_retention_memory
-	fetcht 8,mem_otp_read_retention_memory+8
-	ior temp,pdata
-	fetcht 8,mem_otp_read_retention_memory+16
-	ior temp,pdata	
-	branch keyboard_load_otp_info_check_offset_process,blank
-	fetch 2,mem_pdatatemp+2
-	branch keyboard_load_otp_info_check_first_time_loop
-	
-keyboard_load_otp_info_check_first_time_process:
-	storer rege,1,mem_otp_read_retention_offset
-	rtn
-keyboard_load_otp_info_check_offset_process:
-	setarg 0x1fc0
-	fetcht 2,mem_pdatatemp+2
-	isub temp,pdata
-	store 2,mem_otp_read_retention_offset		//store the next field offset ,convenient for next storage
-	copy temp,pdata
-	iadd rege,regb
-	fetchr loopcnt, 1,mem_temp
-	arg mem_otp_read_retention_memory,rega
-	call otp_read_data
-	fetch 1,mem_device_flag
-	beq MODE_24G_DEVICE,keyboard_load_otp_info_check_offset_process_g24
-	beq MODE_BT_DEVICE1,keyboard_load_otp_info_check_offset_process_ble
-	rtn
-
-keyboard_load_otp_info_check_offset_process_g24:	
-	fetch 6,mem_otp_read_retention_memory
-	store 4,mem_device_24g_addr
-	fetch 4,mem_device_24g_addr
-	store 4,mem_24g_receiver_addr
-	store 4,mem_24g_addr
-	rtn
-
-keyboard_load_otp_info_check_offset_process_ble:
-	fetch 1,mem_otp_read_retention_memory
-	sub pdata,SYSTEM_OS_MAC,null
-	ncall set_pdata_0,positive
-	store 1,mem_kb_computer_system
-	fetch 1,mem_otp_read_retention_memory+1
-	store 1,mem_device1_type
-	fetch 6,mem_otp_read_retention_memory+2
-	store 6,mem_device1_addr
-	fetch 6,mem_otp_read_retention_memory+8
-	store 6,mem_device1_locall_addr
-	fetcht 2,mem_otp_read_retention_memory+14
-	random pdata
-	iadd temp,pdata
-	store 2,mem_random_addr_increase_count
-	branch hid_device_select_reconn_device
-
-
-keyboard_load_eeprom_info:
-	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
-	bbit0 KEYBOARD_ENABLE_SDA_MULTI_R_LINE,keyboard_load_eeprom_device_info_next
-	fetcht 1,mem_eeprom_sda_gpio
-	call device_gpio_config_input_pu
-	fetcht 1,mem_eeprom_sda_gpio
-	call gpio_get_bit
-	branch keyboard_load_eeprom_info,true
-keyboard_load_eeprom_device_info_next:
-	call keyboard_eeprom_init
-	arg 128,temp
-	arg mem_device_flag,rega
-	arg KEYBOARD_INFO_EEPROM_OFFECT,regb
-	call iicd_read_eep_data
-keyboard_load_info_check:
-	bpatch patch07_7,mem_patch07
-	call keyboard_app_initflag_check
-	fetch 1,mem_device_flag
-	beq MODE_24G_DEVICE,keyboard_load_info_24g
-	beq MODE_BT_DEVICE1,keyboard_load_info_bt1
-	beq MODE_BT_DEVICE2,keyboard_load_info_bt2
-	beq MODE_BT_DEVICE3,keyboard_load_info_bt3
-	beq MODE_USB_DEVICE,keyboard_load_info_usb
-keyboard_load_info_24g:
-	jam SYSTEM_OS_WINDOWS,mem_kb_computer_system
-	fetch 1,mem_keyboard_24g_fn_lock
-keyboard_load_info_fn_lock:	
-	sub pdata,1,null
-	ncall set_pdata_0,zero
-	store 1,mem_keyboard_fn_lock_flag
-	rtn
-keyboard_load_info_bt1:
-	fetch 1,mem_keyboard_bt1_fn_lock
-	call keyboard_load_info_fn_lock
-	fetch 1,mem_keyboard_bt1_computer_system
-	sub pdata,SYSTEM_OS_MAC,null
-	ncall set_pdata_0,positive
-keyboard_load_info_bt:	
-	store 1,mem_kb_computer_system
-	fetcht 2,mem_random_addr_increase_count
-	random pdata
-	iadd temp,pdata
-	store 2,mem_random_addr_increase_count
-	rtn
-keyboard_load_info_bt2:
-	fetch 1,mem_keyboard_bt2_fn_lock
-	call keyboard_load_info_fn_lock
-	fetch 1,mem_keyboard_bt2_computer_system
-	branch keyboard_load_info_bt
-keyboard_load_info_bt3:
-	fetch 1,mem_keyboard_bt3_fn_lock
-	call keyboard_load_info_fn_lock
-	fetch 1,mem_keyboard_bt3_computer_system
-	branch keyboard_load_info_bt
-keyboard_load_info_usb:
-	jam SYSTEM_OS_WINDOWS,mem_kb_computer_system
-	fetch 1,mem_keyboard_usb_fn_lock
-	branch keyboard_load_info_fn_lock
-
-keyboard_app_initflag_check:
-	fetch 2,mem_store_flag
-	arg EEPROM_INIT_FLAG,temp
-	isub temp,null
-	branch hid_device_load_device_info,zero
-	storet 2,mem_store_flag
-	call hid_device_ble_init_address
-	fetch 1,mem_device_flag_temp
-	store 1,mem_device_flag
-	fetch 4,mem_24g_fast_conn_addr
-	store 4,mem_24g_receiver_addr
-	store 4,mem_24g_addr
-	fetch 1,mem_keyboard_device_info_store_flag
-	set1 KEYBOARD_STORE_EEPROMM_FLAG_ALL_INFO,pdata
-	store 1,mem_keyboard_device_info_store_flag
-	branch keyboard_store_device_info
-
-keyboard_load_flash_info:
-	call hid_device_load_flash_info_check
-	branch keyboard_load_info_check
-
-keyboard_store_device_info:
-	bpatch patch08_0,mem_patch08
-	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
-	bbit1 KEYBOARD_ENABLE_OTP,keyboard_store_otp_device_info
-	bbit1 KEYBOARD_ENABLE_EEPROM,keyboard_store_eeprom_device_info
-	bbit1 KEYBOARD_ENABLE_FLASH,hid_device_store_flash_device_info
-	rtn
-	
-keyboard_store_otp_device_info:
-	fetch 1,mem_device_flag
-	beq MODE_24G_DEVICE,keyboard_store_otp_device_info_g24
-	beq MODE_BT_DEVICE1,keyboard_store_otp_device_info_ble
-	rtn
-
-keyboard_store_otp_device_info_g24:
-	fetcht 2,mem_otp_read_retention_offset
-	setarg 0x1fc0
-	isub temp,regb
-	arg mem_device_24g_addr,rega
-	arg 4,loopcnt
-	call otp_write   
-	fetcht 2,mem_otp_read_retention_offset
-	increase 4,temp
-	storet 2,mem_otp_read_retention_offset
-	rtn
-
-keyboard_store_otp_device_info_ble:
-	jam 1,mem_otp_store_device_info_flag
-	fetch 1,mem_otp_store_system_flag
-	rtn blank
-keyboard_wirte_otp_ble:	
-	fetcht 2,mem_otp_read_retention_offset
-	setarg 0x1fc0
-	isub temp,pdata
-	store 2,mem_pdatatemp
-
-	copy pdata,regb
-	arg mem_kb_computer_system,rega
-	arg 1,loopcnt
-	call otp_write   /* regb = otp address, rega pointers data, loopcnt is count */	
-
-	fetch 2,mem_pdatatemp
-	add pdata,1,regb
-	arg mem_device1_type,rega
-	arg 13,loopcnt
-	call otp_write   /* regb = otp address, rega pointers data, loopcnt is count */
-
-	fetch 2,mem_pdatatemp
-	add pdata,14,regb
-	arg mem_random_addr_increase_count,rega
-	arg 2,loopcnt
-	call otp_write  /* regb = otp address, rega pointers data, loopcnt is count */
-	
-	fetcht 2,mem_otp_read_retention_offset
-	increase 16,temp
-	storet 2,mem_otp_read_retention_offset
-	rtn	
-
-keyboard_store_eeprom_device_info:
-	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
-	bbit0 KEYBOARD_ENABLE_SDA_MULTI_R_LINE,keyboard_store_eeprom_device_info_next
-	fetcht 1,mem_eeprom_sda_gpio
-	call device_gpio_config_input_pu
-	fetcht 1,mem_eeprom_sda_gpio
-	call gpio_get_bit
-	branch keyboard_store_device_info_delay,true
-keyboard_store_eeprom_device_info_next:	
-	call keyboard_eeprom_init
-keyboard_store_eeprom_device_info_typer_check:	
-	fetch 1,mem_keyboard_device_info_store_flag
-	bbit1 KEYBOARD_STORE_EEPROMM_FLAG_ALL_INFO,keyboard_store_eeprom_device_all_info
-	bbit1 KEYBOARD_STORE_EEPROMM_FLAG_BLE_ADDR,keyboard_store_eeprom_device_info_ble_addr
-	bbit1 KEYBOARD_STORE_EEPROMM_FLAG_G24_ADDR,keyboard_store_eeprom_device_info_g24_addr	
-	bbit1 KEYBOARD_STORE_EEPROMM_FLAG_FN_LOCK,keyboard_store_eeprom_device_info_fn_lock
-	bbit1 KEYBOARD_STORE_EEPROMM_FLAG_COMPUTER_SYSTEM,keyboard_store_eeprom_device_info_device_os
-	bbit1 KEYBOARD_STORE_EEPROMM_FLAG_RGB_TYPE,keyboard_store_eeprom_device_info_rgb_tpye
-	rtn
-keyboard_store_eeprom_device_all_info:
-	jam 0,mem_keyboard_device_info_store_flag
-	arg 128,temp
-	arg mem_device_flag,rega
-	arg KEYBOARD_INFO_EEPROM_OFFECT,regb
-	branch iicd_write_protect_eep_data	
-keyboard_store_eeprom_device_info_ble_addr:
-	fetch 1,mem_keyboard_device_info_store_flag
-	set0 KEYBOARD_STORE_EEPROMM_FLAG_BLE_ADDR,pdata
-	store 1,mem_keyboard_device_info_store_flag
-	arg 39,temp
-	arg mem_device1_type,rega
-	arg KEYBOARD_BLE_ADDR_EEPROM_OFFECT,regb
-	call iicd_write_protect_eep_data
-	arg 2,temp
-	arg mem_random_addr_increase_count,rega
-	arg KEYBOARD_RANDOM_ADDR_COUNT_EEPROM_OFFSET,regb
-	call iicd_write_protect_eep_data
-	branch keyboard_store_eeprom_device_info_typer_check
-keyboard_store_eeprom_device_info_g24_addr:
-	fetch 1,mem_keyboard_device_info_store_flag
-	set0 KEYBOARD_STORE_EEPROMM_FLAG_G24_ADDR,pdata
-	store 1,mem_keyboard_device_info_store_flag
-	arg 4,temp
-	arg mem_device_24g_addr,rega
-	arg KEYBOARD_G24_ADDR_EEPROM_OFFECT,regb
-	call iicd_write_protect_eep_data
-	branch keyboard_store_eeprom_device_info_typer_check
-keyboard_store_eeprom_device_info_fn_lock:
-	fetch 1,mem_keyboard_device_info_store_flag
-	set0 KEYBOARD_STORE_EEPROMM_FLAG_FN_LOCK,pdata
-	store 1,mem_keyboard_device_info_store_flag
-	arg 5,temp
-	arg mem_keyboard_24g_fn_lock,rega
-	arg KEYBOARD_FN_FLAG_EEPROM_OFFSET,regb
-	call iicd_write_protect_eep_data
-	branch keyboard_store_eeprom_device_info_typer_check	
-keyboard_store_eeprom_device_info_device_os:
-	fetch 1,mem_keyboard_device_info_store_flag
-	set0 KEYBOARD_STORE_EEPROMM_FLAG_COMPUTER_SYSTEM,pdata
-	store 1,mem_keyboard_device_info_store_flag
-	arg 3,temp
-	arg mem_keyboard_bt1_computer_system,rega
-	arg KEYBOARD_COMPUTER_SYSTEM_EEPROM_OFFSET,regb
-	call iicd_write_protect_eep_data
-	branch keyboard_store_eeprom_device_info_typer_check
-keyboard_store_eeprom_device_info_rgb_tpye:
-	fetch 1,mem_keyboard_device_info_store_flag
-	set0 KEYBOARD_STORE_EEPROMM_FLAG_RGB_TYPE,pdata
-	store 1,mem_keyboard_device_info_store_flag
-	arg 4,temp
-	arg mem_backlight_on_flag,rega
-	arg KEYBOARD_RGB_TPYE_OFFSET,regb
-	call iicd_write_protect_eep_data
-	branch keyboard_store_eeprom_device_info_typer_check
-	
-keyboard_store_device_number:
-	arg 1,temp
-	arg mem_device_flag,rega
-	arg KEYBOARD_DEVICE_NUMBER_EEPROM_OFFECT,regb
-	branch iicd_write_protect_eep_data
-
-keyboard_eeprom_init:
-	call iicd_read_init_pin
-	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
-	isolate1 KEYBOARD_ENABLE_2K_EEPROM,pdata
-	branch set_eeprom_size_2k,true
-	branch clear_eeprom_size_2k	
-////////////////////////////////////////////////////////////////////////////////////////////////////////////
-
-/////////////////////////////////////cb_function//////////////////////////////////////////////////////
-keyboard_cb_fuction:
-	bpatch patch08_1,mem_patch08
-	setarg hid_device_before_lpm_set
-	store 2,mem_cb_before_lpm_sleep
-	setarg keyboard_24g_package_data
-	store 2,mem_cb_24g_transmit_data
-	setarg keyboard_24g_search_dongle
-	store 2,mem_cb_24g_search_receiver
-	setarg keyboard_lpm_before_common
-	store 2,mem_cb_24g_lpm_before
-	setarg keyboard_le
-	store 2,mem_cb_le_process
-	
-	setarg keyboard_process_lpm_before
-	store 2,mem_cb_before_lpm
-	
-	setarg keyboard_priority_bb_event
-	store 2,mem_cb_bb_event_process
-	setarg keyboard_idle
-	store 2,mem_cb_idle_process
-	setarg keyboard_before_hibernate
-	store 2,mem_cb_before_hibernate
-	setarg mouse_le_bb_event_connect_complete
-	store 2,mem_cb_att_write	
-	setarg keyboard_bb_event_timer
-	store 2,mem_cb_event_timer
-	branch hid_device_cb_fuction
-
-/////////////////////////////////////keyboard event/////////////////////////////////////////////////////////////////////
-
-keyboard_priority_bb_event:	
-	bpatch patch08_2,mem_patch08
-	copy regc,pdata	
-
-	beq BT_EVT_LE_START_ENC,keyboard_le_ll_start_encryt
-	beq BT_EVT_LE_PARSE_CONN_PAPA_UPDATE_RSP,keyboard_le_conn_param_update_rsp_recieved
-	beq BT_EVT_LE_DISCONNECTED,keyboard_le_bb_disconnected
-
-	beq BT_EVT_LE_CONNECTED,keyboard_le_bb_event_connected
-	beq BT_EVT_BUTTON_LONG_PRESSED,keyboard_bb_event_discovery_btn
-	beq BT_EVT_LE_PAIRING_SUCCESS,mouse_le_pairing_success
-	beq BT_EVT_LE_ENC_INFO,mouse_le_enc_info
-
-	beq BT_EVT_LE_PAIRING_COMPLETE,app_ble_store_reconn_info	
-	beq BT_EVT_LE_PARSE_CONN_PARAM_ACCEPTED,mouse_le_parse_conn_param_accepted
-
-	beq BT_EVT_24G_PAIRING_COMPLETE,keyboard_24g_pairing_complete
-	beq BT_EVT_24G_ATTEMPT_SUCCESS,keyboard_24g_attempt_success
-	beq BT_EVT_24G_ATTEMPT_FAIL,keyboard_24g_attempt_fail
-
-	rtn
-
-
-/////////////////////////////////////keyboard timer/////////////////////////////////////////////////////////////////////
-
-keyboard_bb_event_timer:
-	bpatch patch08_3,mem_patch08
-	call keyboard_low_voltage_param_set
-	call keyboard_adc_read
-	call keyboard_adc_gpio_set_before_hibernate
-
-	//led
-	call keyboard_low_voltage_led_timer
-	call keyboard_num_capslock_led_on_timer
-	call keyboard_rgb_on_timer
-	call keyboard_device_poweron_timer
-	call keyboard_mode_led_timer
-	call keyboard_device_pair_led_timer
-
-	//key
-	call keyboard_key_press_timer
-	call keyboard_commbination_key_process
-	call keyboard_same_key_long_press_timer
-	
-	// g24
-	call g24_pair_timeout_timer
-	call g24_reconn_timeout_timer
-	call mouse_24g_long_sleep_param_update_timer
-	call keyboard_24g_repeat_send_data
-	call keyboard_24g_led_status_get_timer
-
-	//le
-	call keyboard_check_discovery_timeout_timer
-	call keyboard_check_direct_timeout_timer
-	call mouse_le_enable_att_list_timer
-	call keyboard_le_battery_updata_timer
-	call mouse_le_send_smp_security_request_timer
-	call keyboard_le_send_conn_param_update_timer	
-	call keyboard_le_auto_recognize_timer
-
-	call mouse_current_mult_update_timer
-	call keyboard_store_information_delay_timer
-	call keyboard_commbination_delay_release_timer
-	call keyboard_usb_updata_timer
-	branch keyboard_check_no_data_timeout_timer
-
-////////////////////////////////////////////////////////////////adc/////////////////////////////////////////////
-keyboard_adc_vol_init:
-	bpatch patch08_4,mem_patch08
-	fetch 1,mem_keyboard_power_type
-	beq KEYBOARD_BATTARY_1V5,keyboard_adc_vol_1v5_init
-	beq KEYBOARD_BATTARY_3V0,keyboard_adc_vol_3v0_init
-	beq KEYBOARD_BATTARY_4V2,keyboard_adc_vol_4v2_init
-keyboard_adc_vol_1v5_init:
-	setarg 0x560094		// 0x0094--1.5V  0x0056--0.9V  0x0060--1.0V  0x006d--1.1V
-	store 3,mem_keyboard_vdd_full_vol
-	setarg 0x006d00
-	istore 3,contw
-	rtn
-keyboard_adc_vol_3v0_init:
-	setarg 0xd4012c		// 0x0094--3.0V  0x00d4--2.1V  0x00dc--2.2V  0x00e6--2.3V
-	store 3,mem_keyboard_vdd_full_vol
-	setarg 0x00e600
-	istore 3,contw
-	rtn
-keyboard_adc_vol_4v2_init:
-	setarg 0x2c01270		// 0x0170--3.7V  0x012c--3.0V  0x0140--3.2V  0x014a--3.3V
-	store 3,mem_keyboard_vdd_full_vol
-	setarg 0x014001
-	istore 3,contw
-	rtn
-
-keyboard_adc_init:
-	call keyboard_adc_gpio_set
-	branch keyboard_low_voltage_param_set
-
-keyboard_adc_gpio_set:
-	fetch 1,mem_adc_config_flag
-	rtnne ADC_CONFIG_GPIO
-	fetch 1,mem_adc_channel
-	call keyboard_channel_set_gpio	
-	copy temp,pdata
-	store 1,mem_adc_channel_gpio
-	set1 GPIO_ACTIVE_BIT,pdata
-	arg gpcfg_input,temp
-	branch gpio_config_function	
-	
-keyboard_channel_set_gpio:
-	arg 18,temp 
-	rtneq 0x6
-	arg 10,temp 	
-	rtneq 0x7
-	arg 9,temp 	
-	rtneq 0x8
-	arg 12,temp 	
-	rtneq 0x9
-	arg 6,temp 	
-	rtneq 0xa
-	arg 20,temp 	
-	rtneq 0xb
-	arg 21,temp 	
-	rtneq 0xc
-	arg 22,temp 	
-	rtneq 0xd
-	arg 13,temp 	
-	rtn
-
-keyboard_adc_read_start:
-	call keyboard_adc_init
-	call enable_adc
-	call vdd_calculate_by_mode
-	div pdata,10
-	call get_div_result
-	store 2,mem_device_vdd_now_vol
-	arg mem_device_vdd_calculate_set,rega
-	branch mouse_adc_bat_percent_lowpower_out
-	
-keyboard_adc_read:
-	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
-	rtnbit0 KEYBOARD_ENABLE_ADC
-	call keyboard_adc_read_start
-keyboard_adc_data_process:	
-	fetch 1,mem_adc_power_flag
-	bbit1 1,keyboard_power_down
-	bbit0 0,keyboard_adc_no_low_voltage
-	jam 1,mem_device_adc_last_low_voltage_flag
-	branch keyboard_adc_low_voltage
-
-keyboard_adc_low_voltage:
-	arg KEYBOARD_LOW_VOLTAGE_FLAG,queue
-	branch keyboard_enable_function_flag
-keyboard_adc_no_low_voltage:
-	arg KEYBOARD_LOW_VOLTAGE_FLAG,queue
-	call keyboard_disable_function_flag
-	jam 12,mem_keyboard_adc_low_volatage_led_timer_count
-	fetch 1,mem_device_adc_last_low_voltage_flag
-	rtn blank
-	jam 0,mem_device_adc_last_low_voltage_flag
-	branch keyboard_low_voltage_led_off
-
-keyboard_adc_gpio_set_before_hibernate:
-	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
-	rtnbit0 KEYBOARD_ENABLE_ADC
-	branch mouse_adc_gpio_set_before_hibernate+2
-
-keyboard_low_voltage_param_set:
-	fetch 6,mem_keyboard_vdd_full_vol
-	store 6,mem_device_vdd_full_vol
-	fetch 1,mem_device_adc_last_low_voltage_flag
-	branch keyboard_low_voltage_param_reset,blank
-	fetch 2,mem_keyboard_vdd_low_vol
-	increase 5,pdata
-	store 2,mem_device_vdd_low_vol
-	rtn	
-keyboard_low_voltage_param_reset:
-	fetch 2,mem_keyboard_vdd_low_vol
-	store 2,mem_device_vdd_low_vol
-	rtn	
-	
-keyboard_low_vol_mult_set:
-	fetch 1,mem_device_flag
-	bne MODE_24G_DEVICE,keyboard_low_vol_mult_ble_set
-	call g24_interval_param_8ms
-	setarg 0x5d4800
-	store 4,mem_24g_long_sleep_set1
-	fetch 1,mem_adc_power_flag
-	rtnbit0 0
-	branch mouse_24g_long_sleep_set
-keyboard_low_vol_mult_ble_set:
-	setarg 160			// 320ms
-	call keyboard_mult_auto_get
-	fetch 1,mem_adc_power_flag
-	rtnbit0 0
-	setarg 80			// 100ms
-	branch keyboard_mult_auto_get
-
-keyboard_mult_auto_get:
-	fetcht 2,mem_le_interval_min
-	idiv temp
-	call get_div_result
-	store 1,mem_lpm_mult_init	
-	fetch 1,mem_mouse_current_mult_timer
-	branch mouse_current_mult_reinit,blank
-	rtn
-
-
-////////////////////////////////////////////////////adc end///////////////////////////////////////////////
-
-///////////////////////////////////////////////////led///////////////////////////////////////////////////////
-keyboard_low_voltage_led_timer:
-	jam 0,mem_keyboard_low_volatage_led_blink_new_data_enable
-	fetch 2,mem_device_discovery_timer
-	nrtn blank
-	fetch 2,mem_24g_pair_timeout
-	nrtn blank
-	fetch 2,mem_24g_reconn_timeout
-	nrtn blank
-	fetch 1,mem_keyboard_device_poweron_timer
-	nrtn blank
-	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
-	rtnbit0 KEYBOARD_ENABLE_ADC
-	rtnbit0 KEYBOARD_ENABLE_LOW_LED
-	rtnbit0 KEYBOARD_LOW_VOLTAGE_FLAG
-	bbit1 KEYBOARD_ENABLE_LOW_VOLTAGE_LED_BLINK_N_SECOND,keyboard_low_voltage_led_blink_new_data
-	bpatch patch08_5,mem_patch08
-	fetch 1,mem_keyboard_adc_low_volatage_led_timer_count
-	increase 1,pdata
-	store 1,mem_keyboard_adc_low_volatage_led_timer_count
-	sub pdata,20,null
-	ncall keyboard_adc_low_volatage_led_timer_count_clean,positive
-	beq 2,keyboard_low_voltage_led_on
-	beq 4,keyboard_low_voltage_led_off
-	beq 6,keyboard_low_voltage_led_on
-	beq 8,keyboard_low_voltage_led_off
-	rtn
-keyboard_adc_low_volatage_led_timer_count_clean:
-	jam 1,mem_keyboard_adc_low_volatage_led_timer_count
-	branch keyboard_low_voltage_led_off
-	
-keyboard_low_voltage_led_blink_new_data:
-	fetch 2,mem_device_no_data_timeout
-	fetcht 2,mem_device_no_data_timer
-	isub temp,temp
-	fetch 2,mem_adc_low_volatage_led_blink_timer
-	isub temp,null
-	nbranch keyboard_low_voltage_led_off,positive
-	jam 1,mem_keyboard_low_volatage_led_blink_new_data_enable
-	fetch 1,mem_keyboard_low_volatage_led_flag
-	increase 1,pdata
-	store 1,mem_keyboard_low_volatage_led_flag
-	fetcht 1,mem_keyboard_low_volatage_led_blink_count
-	increase 1,temp
-	isub temp,null
-	nbranch keyboard_low_voltage_led_on,positive
-	call keyboard_low_voltage_led_off
-	fetch 1,mem_keyboard_low_volatage_led_flag
-	fetcht 1,mem_keyboard_low_volatage_led_blink_count
-	mul32 temp,2,temp
-	isub temp,null
-	nrtn zero
-	jam 0,mem_keyboard_low_volatage_led_flag
-	rtn
-
-
-keyboard_device_poweron_timer:
-	fetch 1,mem_keyboard_device_poweron_timer
-	rtn blank
-	increase -1,pdata
-	store 1,mem_keyboard_device_poweron_timer
-	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
-	bbit1 KEYBOARD_ENABLE_030_POWER_LED,keyboard_device_poweron_030_led
-	branch keyboard_device_led_off,blank
-	branch keyboard_device_led_on
-
-keyboard_device_poweron_030_led:
-	branch keyboard_power_led_off,blank
-keyboard_power_led_on:
-	fetcht 1,mem_keyboard_power_led_gpio
-	branch gpio_out_active
-keyboard_power_led_off:
-	fetcht 1,mem_keyboard_power_led_gpio
-	branch gpio_out_inactive
-
-keyboard_mode_led_timer:
-	fetch 2,mem_device_no_data_timer
-	rtn blank
-	fetch 1,mem_keyboard_mode_led_on_timer
-	rtn blank
-	increase -1,pdata
-	store 1,mem_keyboard_mode_led_on_timer
-	bbit1 0,keyboard_device_led_on
-	branch keyboard_device_led_off
-
-
-keyboard_device_pair_led_timer:
-	fetch 1,mem_device_flag
-	beq MODE_24G_DEVICE,keyboard_device_24g_pair_led
-	fetch 2,mem_device_discovery_timer
-	rtn blank
-	branch keyboard_device_pair_led
-
-keyboard_device_24g_pair_led:
-	fetch 2,mem_24g_pair_timeout
-	rtn blank
-keyboard_device_pair_led:
-	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
-	isolate0 KEYBOARD_ENABLE_030_POWER_LED,pdata
-	call keyboard_device_clear_power_timer,true
-	fetch 1,mem_keyboard_pair_led_flag
-	increase 1,pdata
-	store 1,mem_keyboard_pair_led_flag
-	fetcht 1,mem_keyboard_pair_led_blink_count
-	increase 1,temp
-	isub temp,null
-	nbranch keyboard_device_led_on,positive
-	call keyboard_device_led_off
-	fetch 1,mem_keyboard_pair_led_flag
-	fetcht 1,mem_keyboard_pair_led_blink_count
-	mul32 temp,2,temp
-	isub temp,null
-	nrtn zero
-	jam 0,mem_keyboard_pair_led_flag
-	rtn
-
-keyboard_device_clear_power_timer:
-	jam 0,mem_keyboard_device_poweron_timer
-	rtn
-
-keyboard_device_led_all_off:
-	bpatch patch08_6,mem_patch08
-	call keyboard_power_led_off	
-	call keyboard_device_led_off
-	call keyboard_numlock_led_off
-	branch keyboard_capslock_led_off
-
-keyboard_device_led_off:
-	fetch 1,mem_device_flag
-	beq MODE_24G_DEVICE,keyboard_device_24g_led_off
-	beq MODE_BT_DEVICE1,keyboard_device_bt1_led_off
-	beq MODE_BT_DEVICE2,keyboard_device_bt2_led_off
-	beq MODE_BT_DEVICE3,keyboard_device_bt3_led_off
-	rtn
-
-keyboard_device_led_on:
-	fetch 1,mem_device_flag
-	beq MODE_24G_DEVICE,keyboard_device_24g_led_on
-	beq MODE_BT_DEVICE1,keyboard_device_bt1_led_on
-	beq MODE_BT_DEVICE2,keyboard_device_bt2_led_on
-	beq MODE_BT_DEVICE3,keyboard_device_bt3_led_on
-	rtn	
-	
-keyboard_device_24g_led_off:
-	fetcht 1,mem_keyboard_24g_led_gpio
-	branch gpio_out_inactive
-
-keyboard_device_bt1_led_off:
-	fetcht 1,mem_keyboard_bt1_led_gpio
-	branch gpio_out_inactive
-	
-keyboard_device_bt2_led_off:
-	fetcht 1,mem_keyboard_bt2_led_gpio
-	branch gpio_out_inactive
-	
-keyboard_device_bt3_led_off:
-	fetcht 1,mem_keyboard_bt3_led_gpio
-	branch gpio_out_inactive	
-
-keyboard_device_24g_led_on:
-	fetcht 1,mem_keyboard_24g_led_gpio
-	branch gpio_out_active
-
-keyboard_device_bt1_led_on:
-	fetcht 1,mem_keyboard_bt1_led_gpio
-	branch gpio_out_active
-	
-keyboard_device_bt2_led_on:
-	fetcht 1,mem_keyboard_bt2_led_gpio
-	branch gpio_out_active
-	
-keyboard_device_bt3_led_on:
-	fetcht 1,mem_keyboard_bt3_led_gpio
-	branch gpio_out_active
-	
-keyboard_low_voltage_led_on:
-	fetcht 1,mem_keyboard_low_voltage_alarm_gpio
-	branch gpio_out_active
-	
-keyboard_low_voltage_led_off:
-	fetcht 1,mem_keyboard_low_voltage_alarm_gpio
-	branch gpio_out_inactive	
-
-
-keyboard_num_capslock_led_on_timer:
-	fetch 1,mem_usb_vdd_status_current
-	beq USB_INTERFACE_INSERT,keyboard_usb_led_check
-	fetch 2,mem_device_no_data_timer
-	rtn blank
-	fetch 2,mem_device_no_data_timeout
-	fetcht 2,mem_device_no_data_timer
-	isub temp,temp
-	fetch 2,mem_keyboard_num_caps_scoll_led_on_timer
-	isub temp,pdata
-	branch keyboard_num_cap_scoll_led_check,positive
-	call keyboard_numlock_led_off
-	call keyboard_scrolllock_led_off
-	branch keyboard_capslock_led_off
-
-keyboard_usb_led_check:
-	fetch 1,mem_24g_led_status
-	store 1,mem_keyboard_led_status
-	branch keyboard_num_cap_scoll_led_check
-	
-keyboard_num_cap_scoll_led_check:
-	call keyboard_numlock_led_check_on
-	call keyboard_scrolllock_led_check_on
-	branch keyboard_capslock_led_check_on
-
-keyboard_numlock_led_check_on:
-	fetch 1,mem_keyboard_led_status
-	bbit0 KB_PC_KEYSEL_NUMLOCK,keyboard_numlock_led_off
-keyboard_numlock_led_on:	
-	fetcht 1,mem_keyboard_num_led_gpio
-	branch gpio_out_active
-keyboard_numlock_led_off:
-	fetcht 1,mem_keyboard_num_led_gpio
-	branch gpio_out_inactive
-
-keyboard_capslock_led_check_on:
-	fetch 1,mem_keyboard_led_status
-	bbit0 KB_PC_KEYSEL_CAPSLOCK,keyboard_capslock_led_off
-	fetcht 1,mem_keyboard_caps_led_gpio
-	branch gpio_out_active
-keyboard_capslock_led_off:
-	fetcht 1,mem_keyboard_caps_led_gpio
-	branch gpio_out_inactive
-
-keyboard_scrolllock_led_check_on:
-	fetch 1,mem_keyboard_led_status
-	bbit0 KB_PC_KEYSEL_SCROLLLOCK,keyboard_scrolllock_led_off
-	fetcht 1,mem_keyboard_scroll_led_gpio
-	branch gpio_out_active
-keyboard_scrolllock_led_off:
-	fetcht 1,mem_keyboard_scroll_led_gpio
-	branch gpio_out_inactive
-
-keyboard_rgb_on_timer:
-	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
-	rtnbit0 KEYBOARD_ENABLE_BACKLIGHT
-	fetch 2,mem_device_no_data_timer
-	rtn blank
-	fetch 2,mem_device_no_data_timeout
-	fetcht 2,mem_device_no_data_timer
-	isub temp,temp
-	fetch 2,mem_keyboard_rgb_on_timer
-	isub temp,pdata
-	rtn positive
-	jam 0,mem_backlight_on_flag
-	branch keyboard_rgb_off
-	
-////////////////////////////////////////backlight pwm//////////////////////////////////////////////////////////
-keyboard_pwm_init:
-	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
-	rtnbit0 KEYBOARD_ENABLE_BACKLIGHT
-	arg 0,rega 	//sys clk 12mhz
-	call pwm_init
-	fetch 6,mem_rgb_pwm_conf
-	store 6,mem_pdatatemp
-	call pwm_out_set
-	fetch 2,mem_rgb_pwm_conf
-	branch pwm_disable
-
-keyboard_rgb_pwm_disable:
-	fetch 1,mem_keyboard_led_r_gpio
-	call pwm_disable
-	fetch 1,mem_keyboard_led_g_gpio
-	call pwm_disable
-	fetch 1,mem_keyboard_led_b_gpio
-	branch pwm_disable
-
-keyboard_rgb_pwm_set:	
-	fetch 6,mem_rgb_pwm_conf
-	store 6,mem_pdatatemp
-	branch pwm_out_set	
-
-keyboard_load_rgb:
-	bpatch patch08_7,mem_patch08
-	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
-	rtnbit0 KEYBOARD_ENABLE_BACKLIGHT
-	fetch 1,mem_backlight_on_flag
-	call keyboard_rgb_mode_switch_next
-	fetch 1,mem_backlight_on_type
-	branch keyboard_rgb_on_type_switch_next	
-
-keyboard_rgb_mode_switch:
-	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
-	rtnbit0 KEYBOARD_ENABLE_BACKLIGHT
-	call keyboard_keyvalue_clear_temp
-	fetch 1,mem_keyboard_press_flag_temp
-	rtnbit0 0
-	fetch 1,mem_keyboard_device_info_store_flag
-	set1 KEYBOARD_STORE_EEPROMM_FLAG_RGB_TYPE,pdata
-	store 1,mem_keyboard_device_info_store_flag	
-	call keyboard_store_eeprom_or_flash
-	jam 0,mem_backlight_breathe_type
-	jam 0,mem_rgb_pwm_breathe_flag
-	jam 10,mem_rgb_pwm_conf+5
-	fetch 1,mem_backlight_on_flag
-	increase 1,pdata
-keyboard_rgb_mode_switch_next:	
-	sub pdata,RGB_BACKLIGHT_STATUS_BREATHE,null
-	ncall set_pdata_0,positive
-	store 1,mem_backlight_on_flag
-	rtn
-	
-keyboard_rgb_on_type_switch:
-	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
-	rtnbit0 KEYBOARD_ENABLE_BACKLIGHT
-	call keyboard_keyvalue_clear_temp
-	fetch 1,mem_keyboard_press_flag_temp
-	rtnbit0 0
-	fetch 1,mem_backlight_on_flag
-	rtnne RGB_BACKLIGHT_STATUS_ON
-	fetch 1,mem_keyboard_device_info_store_flag
-	set1 KEYBOARD_STORE_EEPROMM_FLAG_RGB_TYPE,pdata
-	store 1,mem_keyboard_device_info_store_flag	
-	call keyboard_store_eeprom_or_flash
-	fetch 1,mem_backlight_on_type
-	increase 1,pdata
-keyboard_rgb_on_type_switch_next:	
-	sub pdata,RGB_BACKLIGHT_ON_TPYE_WHITE,null
-	ncall set_pdata_0,positive
-	store 1,mem_backlight_on_type
-	rtn
-
-keyboard_rgb_process:
-	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
-	rtnbit0 KEYBOARD_ENABLE_BACKLIGHT
-	fetcht 4,mem_ui_check_timer_setup
-	copy clkn_bt,pdata
-	isub temp,pdata
-	fetcht 2,mem_customize_timer_setup		// * 0.3125ms
-	idiv temp
-	call wait_div_end
-	quotient pdata
-	rtn blank
-	copy clkn_bt,temp
-	storet 4,mem_ui_check_timer_setup
-	fetch 1,mem_backlight_on_flag
-	beq RGB_BACKLIGHT_STATUS_BREATHE,keyboard_rbg_breathe_process
-	beq RGB_BACKLIGHT_STATUS_ON,keyboard_rgb_on_process
-	jam 0,mem_backlight_on_flag
-keyboard_rgb_off:
-	bpatch patch09_0,mem_patch09
-	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
-	rtnbit0 KEYBOARD_ENABLE_BACKLIGHT
-	call keyboard_rgb_pwm_disable
-	jam 0,mem_rgb_on_color_temp
-	branch keyboard_rgb_led_control
-
-keyboard_rbg_breathe_process:
-	fetch 1,mem_rgb_pwm_breathe_flag
-	branch keyboard_rbg_breathe_up,blank
-	fetch 1,mem_rgb_pwm_conf+5
-	sub pdata,5,null
-	branch keyboard_rbg_breathe_color_switch,positive
-	increase -1,pdata
-	store 1,mem_rgb_pwm_conf+5
-	branch keyboard_rgb_pwm
-
-keyboard_rbg_breathe_up:
-	fetch 1,mem_rgb_pwm_conf+5
-	increase 1,pdata
-	store 1,mem_rgb_pwm_conf+5
-	call keyboard_rgb_pwm
-	fetch 1,mem_rgb_pwm_conf+5
-	sub pdata,90,null
-	rtn positive
-	jam 1,mem_rgb_pwm_breathe_flag
-	rtn
-
-keyboard_rbg_breathe_color_switch:
-	jam 0,mem_rgb_pwm_breathe_flag
-	fetch 1,mem_backlight_breathe_type
-	increase 1,pdata
-	sub pdata,RGB_BACKLIGHT_BREATHE_TPYE_WHITE,null
-	ncall set_pdata_0,positive
-	store 1,mem_backlight_breathe_type
-	rtn
-
-keyboard_rgb_pwm:
-	call keyboard_pwm_init
-	call keyboard_rgb_off+4
-	branch keyboard_breathe_tpye_select	
-
-keyboard_breathe_tpye_select:
-	fetch 1,mem_backlight_breathe_type
-	beq RGB_BACKLIGHT_BREATHE_TPYE_RED,keyboard_breathe_tpye_red
-	beq RGB_BACKLIGHT_BREATHE_TPYE_GREEN,keyboard_breathe_tpye_green
-	beq RGB_BACKLIGHT_BREATHE_TPYE_BLUE,keyboard_breathe_tpye_blue
-	beq RGB_BACKLIGHT_BREATHE_TPYE_CYAN,keyboard_breathe_tpye_cyan
-	beq RGB_BACKLIGHT_BREATHE_TPYE_ORANGE,keyboard_breathe_tpye_orange
-	beq RGB_BACKLIGHT_BREATHE_TPYE_PURPLE,keyboard_breathe_tpye_purple
-	beq RGB_BACKLIGHT_BREATHE_TPYE_WHITE,keyboard_breathe_tpye_white
-keyboard_breathe_tpye_red:
-	fetch 1,mem_keyboard_led_r_gpio
-	store 1,mem_rgb_pwm_conf
-	setarg 0x01
-	store 1,mem_rgb_pwm_conf+1
-	branch keyboard_rgb_pwm_set
-
-keyboard_breathe_tpye_green:
-	fetch 1,mem_keyboard_led_g_gpio
-	store 1,mem_rgb_pwm_conf
-	setarg 0x02
-	store 1,mem_rgb_pwm_conf+1
-	branch keyboard_rgb_pwm_set
-
-keyboard_breathe_tpye_blue:
-	fetch 1,mem_keyboard_led_b_gpio
-	store 1,mem_rgb_pwm_conf
-	setarg 0x04
-	store 1,mem_rgb_pwm_conf+1
-	branch keyboard_rgb_pwm_set
-
-keyboard_breathe_tpye_cyan:
-	call keyboard_breathe_tpye_green
-	branch keyboard_breathe_tpye_blue
-
-keyboard_breathe_tpye_orange:
-	call keyboard_breathe_tpye_red
-	branch keyboard_breathe_tpye_green
-	
-keyboard_breathe_tpye_purple:
-	call keyboard_breathe_tpye_red
-	branch keyboard_breathe_tpye_blue
-
-keyboard_breathe_tpye_white:
-	call keyboard_breathe_tpye_red
-	call keyboard_breathe_tpye_green
-	branch keyboard_breathe_tpye_blue
-
-keyboard_rgb_on_process:
-	call keyboard_rgb_pwm_disable
-	fetch 1,mem_backlight_on_type
-	sub pdata,RGB_BACKLIGHT_ON_TPYE_WHITE,null
-	ncall set_pdata_0,positive
-	store 1,mem_backlight_on_type
-	arg mem_rgb_on_color,contr
-	iadd contr,contr
-	ifetch 1,contr
-	store 1,mem_rgb_on_color_temp
-	branch keyboard_rgb_led_control
-
-
-keyboard_rgb_led_control:
-	fetch 1,mem_rgb_on_color_temp
-	isolate1 KEYBOARD_RGB_RED_STATUS,pdata
-	call keyboard_rgb_red_led_on,true
-	ncall keyboard_rgb_red_led_off,true
-	fetch 1,mem_rgb_on_color_temp
-	isolate1 KEYBOARD_RGB_GREEN_STATUS,pdata
-	call keyboard_rgb_green_led_on,true
-	ncall keyboard_rgb_green_led_off,true
-	fetch 1,mem_rgb_on_color_temp
-	isolate1 KEYBOARD_RGB_BLUE_STATUS,pdata
-	call keyboard_rgb_blue_led_on,true
-	ncall keyboard_rgb_blue_led_off,true
-	rtn
-	
-keyboard_rgb_red_led_on:
-	fetcht 1,mem_keyboard_led_r_gpio
-	branch gpio_out_inactive
-
-keyboard_rgb_red_led_off:
-	fetcht 1,mem_keyboard_led_r_gpio
-	branch gpio_out_active
-
-keyboard_rgb_green_led_on:
-	fetcht 1,mem_keyboard_led_g_gpio
-	branch gpio_out_inactive
-
-keyboard_rgb_green_led_off:
-	fetcht 1,mem_keyboard_led_g_gpio
-	branch gpio_out_active
-
-keyboard_rgb_blue_led_on:
-	fetcht 1,mem_keyboard_led_b_gpio
-	branch gpio_out_inactive
-
-keyboard_rgb_blue_led_off:
-	fetcht 1,mem_keyboard_led_b_gpio
-	branch gpio_out_active	
-
-////////////////////////////////////////////////////led end////////////////////////////////////////////////////////
-
-///////////////////////////event timer///////////////////////////////////////////////////////////////////////////
-keyboard_key_press_timer:
-	fetch 1,mem_keyboard_switch_device_flag
-	bbit1 KEYBOARD_FLAG_G24_DEVICE_BUTTON,keyboard_device_select_g24_press_timer
-	call keyboard_device_select_g24_nopress_timer
-	fetch 1,mem_keyboard_switch_device_flag
-	bbit1 KEYBOARD_FLAG_BT_DEVICE_BUTTON,keyboard_device_select_bt_press_timer
-	branch keyboard_device_select_bt_nopress_timer
-
-keyboard_device_select_g24_press_timer:
-	fetch 1,mem_keyboard_switch_g24_press_timer
-	sub pdata,100,null
-	nrtn positive
-	increase 1,pdata
-	store 1,mem_keyboard_switch_g24_press_timer
-	rtnne 25
-	jam 0,mem_keyboard_switch_g24_enable
-	fetch 1,mem_device_flag
-	rtneq MODE_USB_DEVICE
-	call keyboard_stop_bluetooth_mode
-	branch keyboard_24g_start_pair_mode
-
-keyboard_device_select_g24_nopress_timer:
-	jam 0,mem_keyboard_switch_g24_press_timer
-	fetch 1,mem_keyboard_switch_g24_enable
-	rtn blank
-	jam 0,mem_keyboard_switch_g24_enable
-	call keyboard_store_device_number
-	branch soft_reset_chip
-
-keyboard_device_select_bt_press_timer:
-	fetch 1,mem_keyboard_switch_bt_press_timer
-	sub pdata,100,null
-	nrtn positive
-	increase 1,pdata
-	store 1,mem_keyboard_switch_bt_press_timer
-	rtnne 25
-	jam 0,mem_keyboard_switch_bt_enable
-	fetch 1,mem_device_flag
-	rtneq MODE_USB_DEVICE
-	call hid_device_le_send_empty_packet
-	branch keyboard_long_button_bt_discovery
-
-keyboard_device_select_bt_nopress_timer:
-	jam 0,mem_keyboard_switch_bt_press_timer
-	fetch 1,mem_keyboard_switch_bt_enable
-	rtn blank
-	jam 0,mem_keyboard_switch_bt_enable
-	call keyboard_store_device_number
-	branch soft_reset_chip
-
-keyboard_commbination_key_process:
-	fetch 1,mem_commbination_key_statue
-	rtnne COMMBINATION_KEY_STATE_DOWN	
-	arg mem_combination_ui_button_count,regc
-	arg keyboard_commbination_key_press_type_check,regb
-	branch timer_single_step
-
-keyboard_commbination_key_press_type_check:
-	fetch 1,mem_keyboard_commbination_press_type
-	beq KEYBOARD_COMMBINATION_PRESS_TYPE_24G_PAIR,keyboard_24g_start_pair_mode
-	beq KEYBOARD_COMMBINATION_PRESS_TYPE_BT_PAIR,keyboard_long_button_bt_discovery
-	beq KEYBOARD_COMMBINATION_PRESS_TYPE_BT_FAST_CONN,mouse_bluetooth_fast_conn_init
-	rtn
-
-
-keyboard_check_discovery_timeout_timer:
-	arg mem_device_discovery_timer,regc
-	arg keyboard_check_discovery_timeout,regb
-	branch timer_single_step_2B
-
-keyboard_check_discovery_timeout:
-	call keyboard_stop_discovery
-	branch keyboard_power_down	
-
-keyboard_store_information_delay_timer:
-	arg mem_store_information_delay_timer,regc
-	arg keyboard_store_device_info,regb
-	branch timer_single_step
-	
-keyboard_le_auto_recognize_timer:
-	arg mem_le_start_auto_reco_timer,regc
-	arg keyboard_le_send_att_find_by_type_value_request_ancs,regb
-	branch timer_single_step
-
-keyboard_check_direct_timeout_timer:	
-	arg mem_device_direct_timer,regc
-	arg keyboard_check_direct_timeout,regb
-	call timer_single_step
-	fetch 1,mem_device_direct_timer
-	beq 1,app_ble_stop_direct_adv
-	rtn
-
-keyboard_check_direct_timeout:
-	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
-	bbit1 KEYBOARD_ENABLE_BT_RECONNECT_TIMEOUT_ENTER_DISCOVERY,keyboard_start_discovery
-	branch mouse_app_enter_hibernate
-
-
-keyboard_le_battery_updata_timer:
-	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
-	rtnbit1 KEYBOARD_ENABLE_LE_BATTERY_SERVICE_CANCEL
-	arg mem_le_battery_level_updata_timer,regc
-	arg mouse_le_battery_level_updata,regb
-	branch timer_single_step
-
-keyboard_le_send_conn_param_update_timer:
-	arg mem_keyboard_le_send_conn_param_update_timer,regc
-	arg mouse_updata_le_param,regb
-	branch timer_single_step
-
-keyboard_24g_repeat_send_data:
-	fetch 1,mem_24g_repeat_send_flag
-	rtn blank
-	jam 0,mem_24g_repeat_send_flag
-	fetch 1,mem_same_keyvalue_timerout_flag
-	nrtn blank
-	fetch 2,mem_24g_pair_timeout
-	nrtn blank
-	jam 1,mem_keyboard_data_change_flag
-	call g24_txdata_prep
-	branch keyboard_g24_transmit_process
-
-keyboard_24g_led_status_get_timer:
-	arg mem_keyboard_led_status_get_timer,regc
-	arg keyboard_24g_led_status_clear,regb
-	branch timer_single_step
-
-keyboard_24g_led_status_clear:
-	jam 0,mem_keyboard_led_status_get
-	rtn
-
-
-keyboard_same_key_long_press_timer:
-	arg mem_same_keyvalue_timer,regc
-	arg keyboard_long_press_timerout,regb
-	branch timer_single_step_2B
-
-keyboard_long_press_timerout:
-	jam 1,mem_same_keyvalue_timerout_flag	
-	branch keyboard_power_down
-
-keyboard_commbination_delay_release_timer:	
-	arg mem_keyboard_commbination_control_key_delay_release_timer,regc
-	arg keyboard_commbination_key_null_set,regb
-	branch timer_single_step
-
-keyboard_usb_updata_timer:
-	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
-	rtnbit0 KEYBOARD_ENABLE_USB
-	fetch 1,mem_usb_wait_updata_timer
-	rtn blank
-	increase -1,pdata
-	store 1,mem_usb_wait_updata_timer
-	nrtn blank
-	jam 1,mem_lpm_mode
-	branch keyboard_power_down
-
-keyboard_check_no_data_timeout_timer:
-	fetch 1,mem_usb_vdd_status_current
-	rtneq USB_INTERFACE_INSERT
-	arg mem_device_no_data_timer,regc
-	arg keyboard_check_no_data_timeout,regb
-	branch timer_single_step_2B
-
-keyboard_check_no_data_timeout:
-	fetch 1,mem_device_flag
-	beq MODE_24G_DEVICE,keyboard_24g_hibernate_set
-	branch mouse_disconnect
-	
-/////////////////////////////////////keyboard process///////////////////////////////////////////////////////////////////////////////
-keyboard_idle:
-	bpatch patch09_1,mem_patch09
-	call kscan_dispatch
-	call keyboard_rgb_process
-	call keyboard_usb_isr
-	call keyboard_usb_mode
-	branch keyboard_check_select_device_by_switch
-
-keyboard_check_select_device_by_switch:
-	bpatch patch09_2,mem_patch09
-	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
-	rtnbit0 KEYBOARD_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO
-	bbit1 KEYBOARD_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO_G24_CONNECT_VDD,keyboard_check_select_device_by_switch_vdd_check
-	bbit1 KEYBOARD_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO_BT_CONNECT_VDD,keyboard_check_select_device_by_switch_vdd_check
-	fetcht 1,mem_device_switch_gpio
-	call device_gpio_config_input_pu
-	fetcht 1,mem_device_switch_gpio
-	call gpio_get_bit
-	branch keyboard_check_select_device_by_switch_gnd,true
-	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
-	bbit1 KEYBOARD_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO_G24_CONNECT_GND,keyboard_select_btdevice
-	branch keyboard_check_select_24g_device
-
-keyboard_check_select_device_by_switch_vdd_check:
-	fetcht 1,mem_device_switch_gpio
-	call device_gpio_config_input_pd
-	fetcht 1,mem_device_switch_gpio
-	call gpio_get_bit
-	nbranch keyboard_check_select_device_by_switch_vdd,true
-	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
-	bbit1 KEYBOARD_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO_G24_CONNECT_VDD,keyboard_select_btdevice
-	branch keyboard_check_select_24g_device
-
-keyboard_check_select_device_by_switch_vdd:
-	fetcht 1,mem_device_switch_gpio
-	call device_gpio_config_input_pu
-	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
-	bbit1 KEYBOARD_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO_G24_CONNECT_VDD,keyboard_check_select_24g_device
-	branch keyboard_select_btdevice
-
-keyboard_check_select_device_by_switch_gnd:
-	fetcht 1,mem_device_switch_gpio
-	call device_gpio_config_input_pd
-	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
-	bbit1 KEYBOARD_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO_G24_CONNECT_GND,keyboard_check_select_24g_device
-	branch keyboard_select_btdevice
-
-keyboard_select_btdevice:
-	fetch 1,mem_device_flag
-	rtneq MODE_BT_DEVICE1
-	jam MODE_BT_DEVICE1,mem_device_flag
-	fetch 1,mem_keyboard_switch_count_temp
-	nbranch soft_reset_chip,blank
-	branch keyboard_stop_bluetooth_mode
-keyboard_check_select_24g_device:	
-	fetch 1,mem_device_flag
-	rtneq MODE_24G_DEVICE
-	jam MODE_24G_DEVICE,mem_device_flag
-	fetch 1,mem_keyboard_switch_count_temp
-	nbranch soft_reset_chip,blank
-	branch keyboard_24g_stop
-
-keyboard_start_work:
-	bpatch patch09_3,mem_patch09
-	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
-	bbit0 KEYBOARD_ENABLE_ADC,keyboard_start_work_next
-	call keyboard_adc_read_start
-	fetch 2,mem_device_vdd_empty_vol
-	div pdata,2
-	call get_div_result
-	fetcht 2,mem_device_vdd_now_vol
-	isub temp,null
-	branch keyboard_start_work,positive 	// now vol < empty vol/2  check again
-	fetch 1,mem_adc_power_flag
-	bbit1 1,keyboard_power_down	
-keyboard_start_work_next:
-	fetch 1,mem_keyboard_pairing_type
-	call keyboard_enable_bt_button_pairing,blank
-	fetch 1,mem_keyboard_bt_button_flag
-	nrtn blank
-	fetch 1,mem_device_flag
-	beq MODE_24G_DEVICE,keyboard_24g_start_mode
-	call mouse_bluetooth_fast_conn_disable
-	beq MODE_BT_DEVICE1,keyboard_start_ble1_reconnect
-	beq MODE_BT_DEVICE2,keyboard_start_ble2_reconnect
-	beq MODE_BT_DEVICE3,keyboard_start_ble3_reconnect
-keyboard_start_ble1_reconnect:	
-	fetch 6,mem_device1_addr
-keyboard_start_ble_reconnect:	
-	fetcht 6,mem_device_compare_addr
-	isub temp,null
-	branch mouse_bluetooth_fast_conn_init,zero
-	branch mouse_start_reconnect_device
-
-keyboard_start_ble2_reconnect:
-	fetch 6,mem_device2_addr
-	branch keyboard_start_ble_reconnect
-
-keyboard_start_ble3_reconnect:
-	fetch 6,mem_device3_addr
-	branch keyboard_start_ble_reconnect
-
-keyboard_24g_start_mode:
-	call keyboard_wakeup_from_power_check	// wake from hibernate :enble user
-	branch mouse_24g_reconn_dongle_start,user
-	branch mouse_24g_reconn_general_dongle
-
-/***********************************kscan and value process***********************************************/
-kscan_dispatch:
-	bpatch patch09_4,mem_patch09
-	call keyboard_keyscan
-	call keyboard_key_process
-	branch keyboard_special_key_check
-
-keyboard_keyscan:
-	call keyboard_gpio_init
-	call keyboard_stb_state_low							// exmcu wake up
-	setarg 0
-	store 2,mem_keyscan_exmcu_wait_wake_count
-	arg mem_keyscan_value_current,contr
-	arg mem_keyscan_value_check,contw
-	arg 20,loopcnt
-	call memcpy
-	setarg mem_keyscan_value_current
-	store 2,mem_keyscan_value_ptr
-	setarg mem_keyscan_exmcu_value
-	store 2,mem_keyscan_exmcu_value_ptr
-	call keyboard_stb_state_high	
-	call keyboard_clk_input
-keyboard_keyscan_exmcu_start_check:
-	fetch 2,mem_keyscan_exmcu_wait_wake_count
-	increase 1,pdata
-	store 2,mem_keyscan_exmcu_wait_wake_count
-	bbit1 9,keyboard_keyscan 								// 953us restart
-	fetcht 1,mem_mcu_clk_gpio							// waiting for exmcu wake done
-	call gpio_get_bit
-	nbranch keyboard_keyscan_exmcu_start_check,true
-	call keyboard_stb_state_low
-keyboard_keyscan_wait_wake_next:	
-	fetcht 1,mem_mcu_clk_gpio							// waiting for exmcu clk done
-	call gpio_get_bit
-	branch keyboard_keyscan_wait_wake_next,true	
-	
-	call keyboard_keyscan_get_exmcu_value
-	call keyboard_keyscan_get_mcu_value
-	call keyboard_clk_input
-	call keyboard_stb_state_high							// exmcu sleep
-keyboard_keyscan_copy_value:
-	fetch 2,mem_kb_excol_ptr
-	copy pdata,regb
-	jam 0,mem_keyscan_col_loop_count
-keyboard_compare_col_excol_gpio_loop:		// loop 12 times
-	ifetcht 1,regb
-	fetch 2,mem_kb_col_ptr
-	copy pdata,rega
-	copy rega,regc
-	arg 20,loopcnt
-keyboard_compare_col_gpio_loop:
-	ifetch 1,rega
-	isub temp,null
-	branch keyboard_copy_value_exmcu_to_mcu,zero
-	increase 1,rega
-	loop keyboard_compare_col_gpio_loop
-keyboard_compare_col_excol_gpio_loop_next:	
-	increase 1,regb
-	fetch 1,mem_keyscan_col_loop_count
-	increase 1,pdata
-	store 1,mem_keyscan_col_loop_count
-	sub pdata,11,null
-	branch keyboard_compare_col_excol_gpio_loop,positive
-	call keyboard_gpio_pu_idle
-	branch keyboard_key_row_init
-	
-keyboard_copy_value_exmcu_to_mcu:
-	fetch 2,mem_keyscan_value_ptr
-	copy pdata,contw
-	copy rega,pdata	
-	isub regc,pdata 
-	iadd contw,contw							// offset = rega-regc
-	fetch 2,mem_keyscan_exmcu_value_ptr
-	copy pdata,regc
-	fetch 1,mem_keyscan_col_loop_count
-	iadd regc,regc	
-	ifetch 1, regc								// offset = mem_keyscan_col_loop_count
-	istore 1,contw
-	branch keyboard_compare_col_excol_gpio_loop_next
-	
-keyboard_keyscan_get_exmcu_value:	//	8*12 times
-	jam 0,mem_keyscan_col_loop_count
-keyboard_keyscan_exmcu_start_loop:	// clk:0 1 0 1 0 1 0 1 0 1 0 1
-	call keyboard_clk_state_low
-	call keyboard_keyscan_exmcu_get_col_value
-	call keyboard_clk_state_high
-	call keyboard_keyscan_exmcu_get_col_value
-	sub pdata,11,null
-	branch keyboard_keyscan_exmcu_start_loop,positive
-	branch keyboard_clk_state_low
-	
-	
-keyboard_keyscan_exmcu_get_col_value:
-	jam 0,mem_keyscan_value_temp
-	call keyboard_keyscan_get_col_value
-	fetch 2,mem_keyscan_exmcu_value_ptr
-keyboard_keyscan_value_store:
-	copy  pdata,contw
-	fetch 1,mem_keyscan_col_loop_count
-	iadd contw,contw
-	fetch 1,mem_keyscan_value_temp
-	istore 1,contw
-	fetch 1,mem_keyscan_col_loop_count
-	increase 1,pdata
-	store 1,mem_keyscan_col_loop_count
-	rtn	
-
-	
-keyboard_keyscan_get_mcu_value: 
-	fetch 2,mem_kb_col_ptr
-	copy pdata,regb
-	jam 0,mem_keyscan_col_loop_count
-keyboard_keyscan_mcu_start:		// loop 20 times
-	jam 0,mem_keyscan_value_temp
-	ifetcht 1,regb
-	isolate1 7,temp								// exmcu gpio
-	branch keyboard_keyscan_mcu_start_loop,true	
-	call gpio_out_active
-	call keyboard_keyscan_get_col_value
-	ifetcht 1,regb
-	call gpio_out_inactive
-	ifetcht 1,regb
-	call device_gpio_config_input_pu
-keyboard_keyscan_mcu_start_loop:
-	increase 1,regb
-	fetch 2,mem_keyscan_value_ptr	
-	call keyboard_keyscan_value_store
-	sub pdata,19,null						//sub pdata,19,null
-	branch keyboard_keyscan_mcu_start,positive
-	rtn	
-
-	
-keyboard_keyscan_get_col_value:
-	bpatch patch09_5,mem_patch09
-	nop 120
-	fetch 2,mem_kb_row_ptr
-	copy pdata,regc
-	arg 8,loopcnt
-keyboard_keyscan_get_col_value_loop:		// loop 8 times
-	ifetcht 1,regc
-	call gpio_get_bit
-	fetch 1,mem_keyscan_value_temp
-	rshift pdata,pdata
-	setflag true,7,pdata
-	store 1,mem_keyscan_value_temp
-	increase 1,regc
-	loop keyboard_keyscan_get_col_value_loop
-	rtn
-
-keyboard_clk_state_high:
-	fetcht 1,mem_mcu_clk_gpio
-	branch gpio_out_inactive
-
-keyboard_clk_state_low:
-	fetcht 1,mem_mcu_clk_gpio
-	branch gpio_out_active
-
-keyboard_clk_input:
-	fetcht 1,mem_mcu_clk_gpio
-	branch gpio_config_input
-	
-keyboard_stb_state_high:
-	fetcht 1,mem_mcu_stb_gpio
-	branch gpio_out_inactive
-
-keyboard_stb_state_low:
-	fetcht 1,mem_mcu_stb_gpio
-	branch gpio_out_active
-/***********************************kscan process***********************************************/
-
-
-/**********************************key value process*******************************/
-// same key press check	
-keyboard_press_change_or_no_key:
-	jam 0,mem_same_keyvalue_timerout_flag
-	fetch 2,mem_same_keyvalue_timer_init
-	store 2,mem_same_keyvalue_timer
-	rtn
-
-keyboard_key_process:
-	// key deshake
-	arg mem_keyscan_value_current,rega
-	arg mem_keyscan_value_check,regb
-	arg 20,loopcnt
-	call string_compare
-	nbranch keyboard_press_change_or_no_key,zero	
-	call keyboard_keyscan_value_current_zero_check
-	call keyboard_press_change_or_no_key,blank
-
-	call keyboard_ghost_key_check
-	fetch 1,mem_keyboard_ghost_flag
-	nrtn blank
-	fetch 1,mem_keyboard_commbination_key_step
-	rtneq CAMMBINATION_KEY_PRESS
-	rtneq CAMMBINATION_KEY_HOLD
-	rtneq CAMMBINATION_KEY_WAIT_RELEASE
-
-	// keyvalue get from map,and in or out process
-	jam 0,mem_keyscan_col_loop_count
-	arg mem_keyscan_value_current,rega
-	arg mem_keyscan_value_old,regb
-keyboard_keyvalue_process:		// loop 20 times
-	ifetcht 1,rega
-	ifetch 1,regb
-	ixor  temp,pdata
-	branch keyboard_keyvalue_process_loop,blank
-	store 1,mem_keyscan_value_temp
-	storet 1,mem_keyboard_press_flag_temp
-	istoret 1,regb
-	jam 1,mem_keyboard_data_change_flag
-	jam 0,mem_keyboard_keyvalue_bit_loop_count
-keyboard_keyvalue_change:			// loop 8 times
-	fetch 1,mem_keyscan_value_temp
-	bbit0 0,keyboard_keyvalue_change_loop
-	fetch 1,mem_keyscan_col_loop_count
-	mul32 pdata,8,pdata
-	fetcht 1,mem_keyboard_keyvalue_bit_loop_count
-	iadd temp,pdata									// map offset
-	arg mem_keyboard_keyvalue_map,contr
-	iadd contr,contr
-	ifetch 1,contr
-	store 1,mem_keyboard_keyvalue_temp				// keyvalue
-	bpatch patch09_6,mem_patch09
-	call keyboard_keyvalue_normal_replace
-	call keyboard_keyvalue_fn_replace
-	call keyboard_keyvalue_commbination_replace
-	call keyboard_keyvalue_in_out
-keyboard_keyvalue_change_loop:
-	fetch 1,mem_keyscan_value_temp
-	rshift pdata,pdata
-	store 1,mem_keyscan_value_temp
-	fetch 1,mem_keyboard_press_flag_temp
-	rshift pdata,pdata
-	store 1,mem_keyboard_press_flag_temp
-	fetch 1,mem_keyboard_keyvalue_bit_loop_count
-	increase 1,pdata
-	store 1,mem_keyboard_keyvalue_bit_loop_count
-	sub pdata,7,null
-	branch keyboard_keyvalue_change,positive
-keyboard_keyvalue_process_loop:
-	increase 1,rega
-	increase 1,regb	
-	fetch 1,mem_keyscan_col_loop_count
-	increase 1,pdata
-	store 1,mem_keyscan_col_loop_count
-	sub pdata,19,null
-	branch keyboard_keyvalue_process,positive
-	rtn
-
-keyboard_keyscan_value_current_zero_check:
-	fetch 8,mem_keyscan_value_current
-	nbranch keyboard_load_rgb,blank
-	fetch 8,mem_keyscan_value_current+8
-	nbranch keyboard_load_rgb,blank
-	fetch 4,mem_keyscan_value_current+16
-	nbranch keyboard_load_rgb,blank
-
-	fetch 1,mem_keyboard_commbination_control_key_delay_release_timer
-	nrtn blank
-	fetch 1,mem_keyboard_commbination_key_step
-	rtneq CAMMBINATION_KEY_NULL
-	jam CAMMBINATION_KEY_FREE,mem_keyboard_commbination_key_step
-	rtn
-
-/************************************ghost key ******************************************/
-//**input:mem_keyscan_value_current   **output:mem_keyboard_ghost_flag   	mem_keyboard_all_press_key_count
-keyboard_ghost_key_check:	// (col[i] press >= 2) && (row[j] press >=2) && (c[i]_r[j] press) 
-	bpatch patch09_7,mem_patch09
-	jam 0,mem_keyboard_ghost_flag
-	jam 0,mem_keyboard_all_press_key_count
-	arg mem_keyscan_value_current,rega
-	arg 20,loopcnt
-keyboard_ghost_key_check_loop:
-	jam 0,mem_keyboard_current_col_press_key_count
-	ifetch 1,rega
-	branch keyboard_ghost_key_check_next_loop,blank
-keyboard_current_col_press_key_count_check:	
-	fetcht 1,mem_keyboard_current_col_press_key_count
-	increase 1,temp
-	storet 1,mem_keyboard_current_col_press_key_count
-	copy pdata,temp
-	increase -1,pdata
-	iand temp,pdata									// pdata &= pdata -1;  check pdata bit1 count
-	nbranch keyboard_current_col_press_key_count_check,zero
-	fetch 1,mem_keyboard_current_col_press_key_count
-	fetcht 1,mem_keyboard_all_press_key_count
-	iadd temp,temp
-	storet 1,mem_keyboard_all_press_key_count
-	sub pdata,1,null
-	branch keyboard_ghost_key_check_next_loop,positive
-	sub temp,2,null
-	branch keyboard_ghost_key_check_next_loop,positive
-	jam 0,mem_keyscan_col_loop_count					// col[i] press key count >= 2
-	jam 0,mem_keyboard_same_row_press_key_count
-	ifetcht 1,rega
-	arg mem_keyscan_value_current,regb
-keyboard_same_row_key_check:
-	fetch 1,mem_keyscan_col_loop_count
-	increase 1,pdata
-	store 1,mem_keyscan_col_loop_count
-	sub pdata,19,null
-	nbranch keyboard_ghost_key_check_next_loop,positive		// end col[i] row[0~7] check
-	ifetch 1,regb
-	iand temp,null												// col[i] & col[0~19]
-	branch keyboard_same_row_key_check_loop,zero
-	fetch 1,mem_keyboard_same_row_press_key_count		
-	increase 1,pdata
-	store 1,mem_keyboard_same_row_press_key_count
-	sub pdata,1,null
-	branch keyboard_same_row_key_check_loop,positive
-	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
-	rtnbit1 KEYBOARD_ENABLE_FULL_N_KEY_ROLLOVER
-	jam 1,mem_keyboard_ghost_flag
-	rtn	
-	
-keyboard_ghost_key_check_next_loop:
-	increase 1,rega
-	loop keyboard_ghost_key_check_loop
-	rtn
-
-keyboard_same_row_key_check_loop:
-	increase 1,regb
-	branch keyboard_same_row_key_check
-	
-/******************************ghost key*********************************************/
-
-
-
-
-/******************************fn replace*********************************************/
-keyboard_keyvalue_normal_replace:
-	fetch 1,mem_keyboard_keyvalue_temp
-	beq HID_KEY_RIGHT_ALT,keyboard_rgb_on_type_switch
-	beq HID_KEY_RIGHT_GUI,keyboard_rgb_mode_switch
-	fetch 1,mem_kb_computer_system
-	rtneq SYSTEM_OS_WINDOWS
-	rtneq SYSTEM_OS_ANDROID
-	rtn
-
-keyboard_keyvalue_fn_replace:
-	fetch 1,mem_keyboard_press_flag_temp
-	isolate1 0,pdata
-	call keyboard_commbination_delay_release_clear,true
-	fetch 1,mem_keyboard_fn_flag
-	ncall keyboard_keyvalue_fn_replace_press,blank
-	fetch 1,mem_device_fast_conn_flag
-	rtneq 0xff
-	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
-	bbit0 KEYBOARD_ENABLE_FN_LOCK,keyboard_fn_lock_check
-	fetch 1,mem_keyboard_fn_lock_flag
-	branch keyboard_fn_lock_check+1
-keyboard_fn_lock_check:
-	fetch 1,mem_keyboard_fn_first
-	fetcht 1,mem_keyboard_fn_flag
-	ixor temp,pdata
-	rtn zero
-	bpatch patch0a_0,mem_patch0a
-	fetch 1,mem_keyboard_keyvalue_temp
-	beq HID_KEY_ESC,keyboard_keyvalue_fn_esc
-	beq HID_KEY_DELETE,keyboard_keyvalue_fn_delete
-	sub pdata,HID_KEY_F12,null
-	nrtn positive
-	arg HID_KEY_F1,temp	
-	isub temp,pdata
-	nrtn positive			
-	arg mem_keyboard_fn_f1,contr		//  HID_KEY_F1 <= keyvalue <= HID_KEY_F12
-	iadd contr,contr
-	ifetch 1,contr
-	branch keyboard_keyvalue_store_temp
-
-keyboard_keyvalue_fn_esc:
-	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
-	bbit0 KEYBOARD_ENABLE_FN_LOCK,keyboard_keyvalue_fn_esc_next
-	fetch 1,mem_keyboard_fn_esc
-	fetcht 1,mem_keyboard_fn_lock_keyvalue
-	isub temp,null
-	rtn zero
-keyboard_keyvalue_fn_esc_next:	
-	fetch 1,mem_keyboard_fn_esc
-	branch keyboard_keyvalue_store_temp
-	
-keyboard_keyvalue_fn_delete:
-	fetch 1,mem_keyboard_fn_del
-	branch keyboard_keyvalue_store_temp
-	
-keyboard_keyvalue_fn_replace_press:
-	bpatch patch0a_1,mem_patch0a
-	call keyboard_keyvalue_fn_lock_replace
-	fetch 1,mem_keyboard_keyvalue_temp
-	beq HID_KEY_UP_ARROW,keyboard_keyvalue_fn_up_arrow
-	beq HID_KEY_DOWN_ARROW,keyboard_keyvalue_fn_down_arrow
-	beq HID_KEY_LEFT_ARROW,keyboard_keyvalue_fn_left_arrow
-	beq HID_KEY_RIGHT_ARROW,keyboard_keyvalue_fn_right_arrow
-	beq HID_KEY_LEFT_CTRL,keyboard_keyvalue_fn_left_ctrl
-	beq HID_KEY_SPACE,keyboard_keyvalue_fn_space
-	beq HID_KEY_Q,keyboard_keyvalue_os_android
-	beq HID_KEY_W,keyboard_keyvalue_os_windows
-	beq HID_KEY_E,keyboard_keyvalue_os_ios
-	rtn
-
-keyboard_keyvalue_fn_lock_replace:
-	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
-	rtnbit0 KEYBOARD_ENABLE_FN_LOCK
-	fetch 1,mem_keyboard_keyvalue_temp
-	fetcht 1,mem_keyboard_fn_lock_keyvalue
-	isub temp,null
-	nrtn zero
-	call keyboard_keyvalue_clear_temp
-	fetch 1,mem_keyboard_press_flag_temp
-	rtnbit0 0
-	fetch 1,mem_keyboard_fn_lock_flag
-	increase 1,pdata
-	and_into 0x01,pdata
-	store 1,mem_keyboard_fn_lock_flag
-	fetch 1,mem_keyboard_device_info_store_flag
-	set1 KEYBOARD_STORE_EEPROMM_FLAG_FN_LOCK,pdata
-	store 1,mem_keyboard_device_info_store_flag
-	fetch 1,mem_device_flag
-	beq MODE_24G_DEVICE,keyboard_keyvalue_fn_lock_24g
-	beq MODE_BT_DEVICE1,keyboard_keyvalue_fn_lock_bt1
-	beq MODE_BT_DEVICE2,keyboard_keyvalue_fn_lock_bt2
-	beq MODE_BT_DEVICE3,keyboard_keyvalue_fn_lock_bt3
-	beq MODE_USB_DEVICE,keyboard_keyvalue_fn_lock_usb
-keyboard_keyvalue_fn_lock_24g:
-	fetch 1,mem_keyboard_fn_lock_flag
-	store 1,mem_keyboard_24g_fn_lock
-	branch keyboard_store_eeprom_or_flash
-keyboard_keyvalue_fn_lock_bt1:
-	fetch 1,mem_keyboard_fn_lock_flag
-	store 1,mem_keyboard_bt1_fn_lock
-	branch keyboard_store_eeprom_or_flash
-keyboard_keyvalue_fn_lock_bt2:
-	fetch 1,mem_keyboard_fn_lock_flag
-	store 1,mem_keyboard_bt2_fn_lock
-	branch keyboard_store_eeprom_or_flash
-keyboard_keyvalue_fn_lock_bt3:
-	fetch 1,mem_keyboard_fn_lock_flag
-	store 1,mem_keyboard_bt3_fn_lock
-	branch keyboard_store_eeprom_or_flash
-keyboard_keyvalue_fn_lock_usb:
-	fetch 1,mem_keyboard_fn_lock_flag
-	store 1,mem_keyboard_usb_fn_lock
-	branch keyboard_store_eeprom_or_flash
-
-keyboard_keyvalue_fn_up_arrow:
-	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
-	rtnbit0 KEYBOARD_ENABLE_FN_ARROW
-	setarg HID_KEY_PAGE_UP
-	branch keyboard_keyvalue_store_temp
-	
-keyboard_keyvalue_fn_down_arrow:
-	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
-	rtnbit0 KEYBOARD_ENABLE_FN_ARROW
-	setarg HID_KEY_PAGE_DOWN
-	branch keyboard_keyvalue_store_temp
-
-keyboard_keyvalue_fn_left_arrow:
-	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
-	rtnbit0 KEYBOARD_ENABLE_FN_ARROW
-	setarg HID_KEY_HOME
-	branch keyboard_keyvalue_store_temp
-
-keyboard_keyvalue_fn_right_arrow:
-	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
-	rtnbit0 KEYBOARD_ENABLE_FN_ARROW
-	setarg HID_KEY_END
-	branch keyboard_keyvalue_store_temp
-
-keyboard_keyvalue_fn_left_ctrl:
-	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
-	rtnbit0 KEYBOARD_ENABLE_FN_LEFT_CTRL_OSK
-	fetch 1,mem_device_fast_conn_flag
-	rtneq 0xff
-	fetch 1,mem_kb_computer_system
-	beq SYSTEM_OS_WINDOWS,keyboard_keyvalue_windows_osk
-	setarg HID_KEY_OS_SOFT_KB
-	branch keyboard_keyvalue_store_temp
-keyboard_keyvalue_windows_osk:	
-	setarg HID_KEY_OSK
-	branch keyboard_keyvalue_store_temp
-
-keyboard_keyvalue_fn_space:
-	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
-	rtnbit0 KEYBOARD_ENABLE_FN_SPACE_LANGUAGE
-	setarg HID_KEY_LANGUAGE
-keyboard_keyvalue_store_temp:
-	store 1,mem_keyboard_keyvalue_temp
-	rtn
-
-keyboard_keyvalue_os_android:
-	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
-	rtnbit0 KEYBOARD_ENABLE_FN_OS_SWITCH
-	call keyboard_keyvalue_clear_temp
-	fetch 1,mem_keyboard_press_flag_temp
-	rtnbit0 0
-	jam SYSTEM_OS_ANDROID,mem_kb_computer_system
-keyboard_keyvalue_os_switch_end:	
-	jam 6,mem_keyboard_mode_led_on_timer
-	call keyboard_store_computer_system
-	fetch 1,mem_keyboard_device_info_store_flag
-	set1 KEYBOARD_STORE_EEPROMM_FLAG_COMPUTER_SYSTEM,pdata
-	store 1,mem_keyboard_device_info_store_flag
-keyboard_store_eeprom_or_flash:	
-	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
-	rtnbit1 KEYBOARD_ENABLE_OTP
-keyboard_store_device_info_delay:	
-	fetch 1,mem_store_information_delay_timer_init
-	store 1,mem_store_information_delay_timer
-	rtn
-
-keyboard_keyvalue_os_windows:
-	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
-	rtnbit0 KEYBOARD_ENABLE_FN_OS_SWITCH
-	call keyboard_keyvalue_clear_temp
-	fetch 1,mem_keyboard_press_flag_temp
-	rtnbit0 0
-	jam SYSTEM_OS_WINDOWS,mem_kb_computer_system
-	branch keyboard_keyvalue_os_switch_end
-
-keyboard_keyvalue_os_ios:
-	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
-	rtnbit0 KEYBOARD_ENABLE_FN_OS_SWITCH
-	call keyboard_keyvalue_clear_temp
-	fetch 1,mem_keyboard_press_flag_temp
-	rtnbit0 0
-	jam SYSTEM_OS_IOS,mem_kb_computer_system
-	branch keyboard_keyvalue_os_switch_end
-
-keyboard_keyvalue_clear_temp:
-	setarg 0
-	branch keyboard_keyvalue_store_temp
-
-keyboard_store_computer_system:
-	bpatch patch0a_2,mem_patch0a
-	fetch 1,mem_device_flag
-	rtneq MODE_24G_DEVICE
-	rtneq MODE_USB_DEVICE
-	beq MODE_BT_DEVICE1,keyboard_store_computer_system_bt1
-	beq MODE_BT_DEVICE2,keyboard_store_computer_system_bt2
-	beq MODE_BT_DEVICE3,keyboard_store_computer_system_bt3
-keyboard_store_computer_system_bt1:	
-	fetcht 1,mem_kb_computer_system
-	storet 1,mem_keyboard_bt1_computer_system
-	rtn
-keyboard_store_computer_system_bt2:	
-	fetcht 1,mem_kb_computer_system
-	storet 1,mem_keyboard_bt2_computer_system
-	rtn
-keyboard_store_computer_system_bt3:	
-	fetcht 1,mem_kb_computer_system
-	storet 1,mem_keyboard_bt3_computer_system
-	rtn	
-/**********************************key value process*******************************/	
-
-
-
-/*******************************commbine keyvalue *************************************/
-keyboard_keyvalue_commbination_replace:
-	fetch 1,mem_keyboard_keyvalue_temp
-	beq HID_KEY_PRINT_SCREEN,keyboard_commination_screen_shot_replace
-	beq HID_KEY_PAGE_UP,keyboard_commination_pageup_replace
-	beq HID_KEY_PAGE_DOWN,keyboard_commination_pagedown_replace
-	beq HID_KEY_HOME,keyboard_commination_home_replace
-	beq HID_KEY_END,keyboard_commination_end_replace
-	beq HID_KEY_SELECT_ALL,keyboard_commination_select_all
-	beq HID_KEY_COPY,keyboard_commbination_copy
-	beq HID_KEY_PASTE,keyboard_commbination_paste
-	beq HID_KEY_CUT,keyboard_commbination_cut
-	beq HID_KEY_ALL_OS_LOCK,keyboard_commination_os_lock
-	beq HID_KEY_OSK,keyboard_commbination_osk
-	beq HID_KEY_SEARCH,keyboard_commbination_search
-	beq HID_KEY_LANGUAGE,keyboard_commbination_language
-	beq HID_KEY_APP_TILING,keyboard_commbination_app_tiling
-	rtn
-
-keyboard_commbination_delay_release_set:
-	fetch 1,mem_keyboard_press_flag_temp
-	rtnbit0 0
-	jam 10,mem_keyboard_commbination_control_key_delay_release_timer
-	rtn
-
-keyboard_commbination_delay_release_clear:
-	jam 0,mem_keyboard_commbination_control_key_delay_release_timer
-	rtn
-
-keyboard_commination_screen_shot_replace:
-	fetch 1,mem_kb_computer_system
-	rtneq SYSTEM_OS_WINDOWS
-	rtneq SYSTEM_OS_ANDROID
-	jam LEFT_SHIFT_GUI,mem_keyboard_commbination_control_key_value
-	jam HID_KEY_3,mem_keyboard_commbination_standard_key_value
-	branch keyboard_commbination_keypress
-
-keyboard_commination_pageup_replace:
-	jam HID_KEY_UP_ARROW,mem_keyboard_commbination_standard_key_value
-keyboard_commination_ios_mac_command_commiation:	
-	fetch 1,mem_kb_computer_system
-	rtneq SYSTEM_OS_WINDOWS
-	rtneq SYSTEM_OS_ANDROID
-	jam LEFT_GUI,mem_keyboard_commbination_control_key_value
-	branch keyboard_commbination_keypress
-
-keyboard_commination_pagedown_replace:
-	jam HID_KEY_DOWN_ARROW,mem_keyboard_commbination_standard_key_value
-	branch keyboard_commination_ios_mac_command_commiation	
-
-keyboard_commination_home_replace:
-	jam HID_KEY_LEFT_ARROW,mem_keyboard_commbination_standard_key_value
-	branch keyboard_commination_ios_mac_command_commiation
-
-keyboard_commination_end_replace:
-	jam HID_KEY_RIGHT_ARROW,mem_keyboard_commbination_standard_key_value
-	branch keyboard_commination_ios_mac_command_commiation
-
-keyboard_commination_select_all:
-	jam HID_KEY_A,mem_keyboard_commbination_standard_key_value
-keyboard_commbination_text_edit:
-	jam LEFT_CONTROL,mem_keyboard_commbination_control_key_value
-	fetch 1,mem_kb_computer_system
-	beq SYSTEM_OS_WINDOWS,keyboard_commbination_keypress
-	beq SYSTEM_OS_ANDROID,keyboard_commbination_keypress
-	jam LEFT_GUI,mem_keyboard_commbination_control_key_value
-	branch keyboard_commbination_keypress
-
-keyboard_commbination_copy:
-	jam HID_KEY_C,mem_keyboard_commbination_standard_key_value
-	branch keyboard_commbination_text_edit
-
-keyboard_commbination_paste:
-	jam HID_KEY_V,mem_keyboard_commbination_standard_key_value
-	branch keyboard_commbination_text_edit
-
-keyboard_commbination_cut:	
-	jam HID_KEY_X,mem_keyboard_commbination_standard_key_value
-	branch keyboard_commbination_text_edit
-
-keyboard_commination_os_lock:
-	fetch 1,mem_kb_computer_system
-	beq SYSTEM_OS_WINDOWS,keyboard_commination_windows_lock
-	beq SYSTEM_OS_MAC,keyboard_commination_mac_lock
-	setarg HID_KEY_IOS_ANDROID_OS_LOCK
-	branch keyboard_keyvalue_store_temp
-keyboard_commination_windows_lock:	
-	jam LEFT_GUI,mem_keyboard_commbination_control_key_value
-	jam HID_KEY_L,mem_keyboard_commbination_standard_key_value
-	branch keyboard_commbination_keypress
-keyboard_commination_mac_lock:
-	jam LEFT_GUI_CONTROL,mem_keyboard_commbination_control_key_value
-	jam HID_KEY_Q,mem_keyboard_commbination_standard_key_value
-	branch keyboard_commbination_keypress
-	
-keyboard_commbination_osk:
-	fetch 1,mem_kb_computer_system
-	beq SYSTEM_OS_WINDOWS,keyboard_commbination_windows_osk
-	setarg HID_KEY_OS_SOFT_KB
-	branch keyboard_keyvalue_store_temp
-keyboard_commbination_windows_osk:	
-	jam LEFT_GUI_CONTROL,mem_keyboard_commbination_control_key_value
-	jam HID_KEY_O,mem_keyboard_commbination_standard_key_value
-	branch keyboard_commbination_keypress
-
-keyboard_commbination_search:
-	fetch 1,mem_kb_computer_system
-	beq SYSTEM_OS_MAC,keyboard_commbination_mac_search
-	setarg HID_KEY_AC_SEARCH
-	branch keyboard_keyvalue_store_temp
-keyboard_commbination_mac_search:	
-	jam LEFT_GUI,mem_keyboard_commbination_control_key_value
-	jam HID_KEY_SPACE,mem_keyboard_commbination_standard_key_value
-	branch keyboard_commbination_keypress
-	
-keyboard_commbination_language:
-	fetch 1,mem_kb_computer_system
-	beq SYSTEM_OS_WINDOWS,keyboard_commbination_language_windows
-	beq SYSTEM_OS_ANDROID,keyboard_commbination_language_android
-	jam LEFT_CONTROL,mem_keyboard_commbination_control_key_value
-keyboard_commbination_language_next:
-	jam HID_KEY_SPACE,mem_keyboard_commbination_standard_key_value
-	call keyboard_commbination_delay_release_set	
-	branch keyboard_commbination_keypress
-keyboard_commbination_language_windows:
-	jam LEFT_GUI,mem_keyboard_commbination_control_key_value
-	branch keyboard_commbination_language_next
-keyboard_commbination_language_android:
-	jam LEFT_SHIFT,mem_keyboard_commbination_control_key_value
-	branch keyboard_commbination_language_next
-
-keyboard_commbination_app_tiling:
-	fetch 1,mem_kb_computer_system
-	beq SYSTEM_OS_WINDOWS,keyboard_commbination_app_tiling_windows_android
-	beq SYSTEM_OS_ANDROID,keyboard_commbination_app_tiling_windows_android
-	jam LEFT_CONTROL,mem_keyboard_commbination_control_key_value
-	jam HID_KEY_UP_ARROW,mem_keyboard_commbination_standard_key_value
-	branch keyboard_commbination_keypress	
-keyboard_commbination_app_tiling_windows_android:
-	jam LEFT_GUI,mem_keyboard_commbination_control_key_value
-	jam HID_KEY_TAB,mem_keyboard_commbination_standard_key_value
-	branch keyboard_commbination_keypress	
-
-keyboard_commbination_keypress:
-	jam 0,mem_keyboard_keyvalue_temp
-	fetch 1,mem_keyboard_press_flag_temp
-	bbit0 0,keyboard_commbination_key_wait_release_set
-	fetch 1,mem_keyboard_commbination_key_step
-	beq CAMMBINATION_KEY_COMPLETE,keyboard_commbination_key_hold_set
-keyboard_commbination_key_press_set:	
-	jam CAMMBINATION_KEY_PRESS,mem_keyboard_commbination_key_step
-	rtn
-
-keyboard_commbination_key_wait_release_set:
-	jam CAMMBINATION_KEY_WAIT_RELEASE,mem_keyboard_commbination_key_step
-	rtn
-
-keyboard_commbination_key_null_set:
-	jam CAMMBINATION_KEY_NULL,mem_keyboard_commbination_key_step
-	rtn
-
-//**input:   pdata:control key vaule       temp:standard key value
-keyboard_commbination_key_value_store:
-	store 1,mem_keyboard_tx_data+1
-	storet 1,mem_keyboard_tx_data+3
-	call enable_user
-	jam HID_REPORTID_KEY_STANDARD,mem_keyboard_tx_data
-	branch keyboard_motion_data_check_next	
-	
-keyboard_commbination_key_press_process:
-	fetch 1,mem_keyboard_commbination_control_key_value
-	arg 0,temp
-	call keyboard_commbination_key_value_store
-keyboard_commbination_key_hold_set:
-	jam CAMMBINATION_KEY_HOLD,mem_keyboard_commbination_key_step
-	rtn
-
-keyboard_commbination_key_hold_process:
-	jam CAMMBINATION_KEY_COMPLETE,mem_keyboard_commbination_key_step
-	fetch 1,mem_keyboard_commbination_control_key_value
-	fetcht 1,mem_keyboard_commbination_standard_key_value
-	branch keyboard_commbination_key_value_store
-	
-keyboard_commbination_key_wait_release_process:
-	jam HID_REPORTID_KEY_STANDARD,mem_keyboard_tx_data
-	fetch 1,mem_keyboard_commbination_control_key_value
-	arg 0,temp
-	call keyboard_commbination_key_value_store
-	fetch 1,mem_keyboard_commbination_control_key_delay_release_timer
-	branch keyboard_commbination_key_null_set,blank
-keyboard_commbination_key_release_set:	
-	jam CAMMBINATION_KEY_RELEASE,mem_keyboard_commbination_key_step
-	rtn
-
-keyboard_commbination_key_release_process:
-	branch keyboard_commbination_key_value_store+2
-
-keyboard_commbination_key_null_process:
-	jam CAMMBINATION_KEY_FREE,mem_keyboard_commbination_key_step
-	arg 0,pdata
-	arg 0,temp
-	branch keyboard_commbination_key_value_store	
-
-
-
-keyboard_keyvalue_in_out:
-	fetch 1,mem_keyboard_keyvalue_temp
-	arg HID_KEY_LEFT_CTRL,temp
-	isub temp,null
-	nbranch keyboard_keyvalue_standard,positive		// value < 0xe0
-	sub pdata,HID_KEY_RIGHT_GUI,null
-	nbranch keyboard_keyvalue_consumer,positive		// value  > 0xe7
-	and_into 0x07,pdata
-	copy pdata,queue
-	fetch 1,mem_keyboard_press_flag_temp
-	bbit1 0,keyboard_keyvalue_control_key_in
-keyboard_keyvalue_control_key_out:
-	fetch 1,mem_keyboard_keyvalue_buffer
-	qset0 pdata
-	store 1,mem_keyboard_keyvalue_buffer
-	rtn
-keyboard_keyvalue_control_key_in:
-	fetch 1,mem_keyboard_keyvalue_buffer
-	qset1 pdata
-	store 1,mem_keyboard_keyvalue_buffer
-	rtn
-
-keyboard_keyvalue_standard:
-	jam 0,mem_keyboard_keyvalue_buffer+8
-	fetch 1,mem_keyboard_press_flag_temp
-	bbit1 0,keyboard_keyvalue_standard_in
-keyboard_keyvalue_standard_out:	
-	fetcht 1,mem_keyboard_keyvalue_temp
-	arg 6,loopcnt
-	arg mem_keyboard_keyvalue_buffer+2,contr
-keyboard_keyvalue_standard_out_loop:
-	ifetch 1,contr
-	isub temp,null
-	nbranch keyboard_keyvalue_standard_out_next,zero
-	ifetch 1,contr
-	increase -2,contr
-	istore 1,contr
-	rtn blank
-	increase 1,contr
-	istoret 1,contr
-keyboard_keyvalue_standard_out_next:	
-	loop keyboard_keyvalue_standard_out_loop
-	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
-	bbit1 KEYBOARD_ENABLE_FULL_N_KEY_ROLLOVER,keyboard_keyvalue_standard_out_n_key_rollover
-	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
-	rtnbit0 KEYBOARD_ENABLE_26_N_KEY_ROLLOVER
-keyboard_keyvalue_standard_out_n_key_rollover:
-	call keyboard_keyvalue_n_key_rollover_data_in_out
-	qset0 pdata
-	branch istore_1_contw_rtn
-
-	
-keyboard_keyvalue_standard_in:
-	fetcht 1,mem_keyboard_keyvalue_temp
-	arg 6,loopcnt
-	arg mem_keyboard_keyvalue_buffer+2,contr
-keyboard_keyvalue_standard_in_loop:
-	ifetch 1,contr
-	branch keyboard_keyvalue_standard_in_data,blank
-	isub temp,null
-	rtn zero
-	loop keyboard_keyvalue_standard_in_loop
-	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
-	bbit1 KEYBOARD_ENABLE_FULL_N_KEY_ROLLOVER,keyboard_keyvalue_standard_in_n_key_rollover
-	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
-	rtnbit0 KEYBOARD_ENABLE_26_N_KEY_ROLLOVER
-keyboard_keyvalue_standard_in_n_key_rollover:
-	call keyboard_keyvalue_n_key_rollover_data_in_out
-	qset1 pdata
-	branch istore_1_contw_rtn
-	
-keyboard_keyvalue_standard_in_data:
-	increase -1,contr
-	istoret 1,contr
-	rtn
-	
-keyboard_keyvalue_n_key_rollover_data_in_out:
-	bpatch patch0a_3,mem_patch0a
-	fetch 1,mem_keyboard_keyvalue_temp
-	sub pdata,0x70,null
-	nrtn positive		// keyboard value 14byte
-	jam 1,mem_keboard_n_key_rollover_send_flag
-	jam 1,mem_keyboard_data_change_flag
-	div pdata,8
-	call wait_div_end
-	quotient pdata
-	remainder queue
-	arg mem_keyboard_n_key_rollover_data+1,contw
-	iadd contw,contw
-	setarg 0
-	rtn
-
-keyboard_keyvalue_consumer:
-	jam KEYBOARD_CONSUMER_KEY_PRESS,mem_keyboard_consumer_key_status
-	fetch 1,mem_keyboard_press_flag_temp
-	isolate0 0,pdata
-	call keyboard_consumer_key_release_status,true
-	branch keyboard_keyvalue_standard
-	
-keyboard_consumer_key_release_status:
-	jam KEYBOARD_CONSUMER_KEY_RELEASE,mem_keyboard_consumer_key_status
-	rtn
-	
-/******************************** special key ****************************************************/
-// check Fn,pairing button,control key
-keyboard_special_key_check:
-	call keyboard_pairing_button_check
-	call keyboard_device_select
-	jam 0,mem_keyboard_fn_flag
-	jam 0,mem_keyboard_control_key_flag
-	jam 0,mem_keyboard_alt_flag
-	jam 0,mem_keyboard_shift_flag
-	jam 0,mem_keyboard_bt_button_flag
-	fetch 1,mem_keyboard_keyvalue_buffer
-	ncall keyborad_control_key_set,blank
-	arg mem_keyboard_keyvalue_buffer+2,contr
-	arg 6,loopcnt
-keyboard_special_key_check_loop:
-	ifetch 1,contr
-	sub pdata,HID_KEY_FN,null
-	call keyboard_fn_set,zero
-	sub pdata,HID_KEY_PB,null
-	call keyboard_pb_set,zero
-	loop keyboard_special_key_check_loop
-	
-	call keyboard_commbination_key_press_check
-	fetch 1,mem_keyboard_pairing_type
-	branch keyboard_enable_bt_button_pairing,blank
-	rtn
-
-keyboard_commbination_key_press_check:
-	bpatch patch0a_4,mem_patch0a
-	jam 0,mem_keyboard_commbination_press_type
-	fetch 1,mem_device_flag
-	bne MODE_24G_DEVICE,keyboard_commbination_key_press_check_bt
-	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
-	rtnbit0 KEYBOARD_ENABLE_COMMBINATION_KEY_BY_24G_PAIRING
-	fetch 2,mem_keyboard_keyvalue_buffer+2
-	fetcht 2,mem_keyboard_commbination_key_24g
-	isub temp,null
-	branch keyboard_commbination_key_down_24g,zero
-	byteswap temp,temp
-	isub temp,null
-	branch keyboard_commbination_key_down_24g,zero
-	branch mouse_commbination_key_up
-	
-keyboard_commbination_key_press_check_bt:
-	fetch 2,mem_keyboard_keyvalue_buffer+2
-	fetcht 2,mem_keyboard_commbination_fast_conn_bt
-	isub temp,null
-	branch keyboard_commbination_key_down_bt_fast_conn,zero
-	byteswap temp,temp
-	isub temp,null
-	branch keyboard_commbination_key_down_bt_fast_conn,zero
-	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
-	bbit0 KEYBOARD_ENABLE_COMMBINATION_KEY_BY_BT_DISCOVERY,mouse_commbination_key_up
-	fetch 2,mem_keyboard_keyvalue_buffer+2
-	fetcht 2,mem_keyboard_commbination_key_bt
-	isub temp,null
-	branch keyboard_commbination_key_down_bt,zero
-	byteswap temp,temp
-	isub temp,null
-	branch keyboard_commbination_key_down_bt,zero
-	branch mouse_commbination_key_up
-
-keyboard_commbination_key_down_24g:
-	jam KEYBOARD_COMMBINATION_PRESS_TYPE_24G_PAIR,mem_keyboard_commbination_press_type
-	branch keyboard_commbination_key_down
-keyboard_commbination_key_down_bt:
-	jam KEYBOARD_COMMBINATION_PRESS_TYPE_BT_PAIR,mem_keyboard_commbination_press_type
-	branch keyboard_commbination_key_down
-keyboard_commbination_key_down_bt_fast_conn:
-	jam KEYBOARD_COMMBINATION_PRESS_TYPE_BT_FAST_CONN,mem_keyboard_commbination_press_type
-	branch keyboard_commbination_key_down	
-
-keyboard_commbination_key_down:
-	fetch 1,mem_commbination_key_statue
-	rtneq COMMBINATION_KEY_STATE_DOWN
-	jam COMMBINATION_KEY_STATE_DOWN,mem_commbination_key_statue
-	rtn
-	
-
-keyboard_device_select:
-	call disable_user
-	call keyboard_device_select_g24
-	call keyboard_device_select_bt1
-	call keyboard_device_select_bt2
-	call keyboard_device_select_bt3
-	call keyboard_device_select_usb
-	branch keyboard_clear_change_flag,user
-	fetch 1,mem_keyboard_switch_device_flag
-	set0 KEYBOARD_FLAG_G24_DEVICE_BUTTON,pdata
-	set0 KEYBOARD_FLAG_BT_DEVICE_BUTTON,pdata
-	store 1,mem_keyboard_switch_device_flag
-	rtn
-	
-keyboard_clear_change_flag:
-	jam 0,mem_keyboard_data_change_flag
-	rtn
-	
-keyboard_device_select_g24:
-	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
-	rtnbit0 KEYBOARD_ENABLE_24G
-	fetch 1,mem_keyboard_switch_device_to_g24
-	rtn blank
-	fetch 2,mem_keyboard_keyvalue_buffer+2
-	fetcht 2,mem_keyboard_switch_device_to_g24+1
-	isub temp,null
-	branch keyboard_device_select_g24_press,zero
-	byteswap temp,temp
-	isub temp,null
-	branch keyboard_device_select_g24_press,zero
-	rtn
-
-keyboard_device_select_g24_press:
-	call enable_user
-	fetch 1,mem_keyboard_switch_device_flag
-	set1 KEYBOARD_FLAG_G24_DEVICE_BUTTON,pdata
-	set0 KEYBOARD_FLAG_BT_DEVICE_BUTTON,pdata
-	store 1,mem_keyboard_switch_device_flag
-	fetch 1,mem_device_flag
-	rtneq MODE_24G_DEVICE
-	jam MODE_24G_DEVICE,mem_device_flag
-	jam 1,mem_keyboard_switch_g24_enable
-	rtn
-	
-keyboard_device_select_bt1:
-	fetch 1,mem_keyboard_switch_device_to_bt1
-	rtn blank
-	fetch 2,mem_keyboard_keyvalue_buffer+2
-	fetcht 2,mem_keyboard_switch_device_to_bt1+1
-	isub temp,null
-	branch keyboard_device_select_bt1_press,zero
-	byteswap temp,temp
-	isub temp,null
-	branch keyboard_device_select_bt1_press,zero
-	rtn
-
-keyboard_device_select_bt1_press:
-	call enable_user
-	call keyboard_device_select_bt_set_press_flag
-	fetch 1,mem_device_flag
-	rtneq MODE_BT_DEVICE1
-	jam MODE_BT_DEVICE1,mem_device_flag
-	jam 1,mem_keyboard_switch_bt_enable
-	rtn
-
-keyboard_device_select_bt2:
-	fetch 1,mem_keyboard_switch_device_to_bt2
-	rtn blank
-	fetch 2,mem_keyboard_keyvalue_buffer+2
-	fetcht 2,mem_keyboard_switch_device_to_bt2+1
-	isub temp,null
-	branch keyboard_device_select_bt2_press,zero
-	byteswap temp,temp
-	isub temp,null
-	branch keyboard_device_select_bt2_press,zero
-	rtn
-
-keyboard_device_select_bt2_press:
-	call enable_user
-	call keyboard_device_select_bt_set_press_flag
-	fetch 1,mem_device_flag
-	rtneq MODE_BT_DEVICE2
-	jam MODE_BT_DEVICE2,mem_device_flag
-	jam 1,mem_keyboard_switch_bt_enable
-	rtn
-
-keyboard_device_select_bt3:
-	fetch 1,mem_keyboard_switch_device_to_bt3
-	rtn blank
-	fetch 2,mem_keyboard_keyvalue_buffer+2
-	fetcht 2,mem_keyboard_switch_device_to_bt3+1
-	isub temp,null
-	branch keyboard_device_select_bt3_press,zero
-	byteswap temp,temp
-	isub temp,null
-	branch keyboard_device_select_bt3_press,zero
-	rtn
-
-keyboard_device_select_bt3_press:
-	call enable_user
-	call keyboard_device_select_bt_set_press_flag
-	fetch 1,mem_device_flag
-	rtneq MODE_BT_DEVICE3
-	jam MODE_BT_DEVICE3,mem_device_flag
-	jam 1,mem_keyboard_switch_bt_enable
-	rtn
-
-keyboard_device_select_bt_set_press_flag:
-	fetch 1,mem_keyboard_switch_device_flag
-	set0 KEYBOARD_FLAG_G24_DEVICE_BUTTON,pdata
-	set1 KEYBOARD_FLAG_BT_DEVICE_BUTTON,pdata
-	store 1,mem_keyboard_switch_device_flag
-	rtn
-
-keyboard_device_select_usb:
-	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
-	rtnbit0 KEYBOARD_ENABLE_USB
-	fetch 1,mem_keyboard_switch_device_to_usb
-	rtn blank
-	fetch 2,mem_keyboard_keyvalue_buffer+2
-	fetcht 2,mem_keyboard_switch_device_to_usb+1
-	isub temp,null
-	branch keyboard_device_select_usb_press,zero
-	byteswap temp,temp
-	isub temp,null
-	branch keyboard_device_select_usb_press,zero
-	rtn
-
-keyboard_device_select_usb_press:
-	call enable_user
-	fetch 1,mem_device_flag
-	rtneq MODE_USB_DEVICE
-	jam MODE_USB_DEVICE,mem_device_flag
-	call keyboard_store_device_number
-	branch soft_reset_chip
-	
-keyboard_pairing_button_check:
-	fetch 1,mem_keyboard_pairing_type
-	nrtn blank
-	fetcht 1,mem_keyboard_pb_button_gpio
-	sub temp,UI_BUTTON_GPIO_DISABLE,null
-	rtn zero
-	call gpio_get_bit
-	nbranch keyboard_pairing_button_release,true
-	arg 8,loopcnt
-	arg mem_keyboard_keyvalue_buffer,contw
-	call clear_mem
-	jam HID_KEY_PB,mem_keyboard_keyvalue_buffer+2
-	rtn
-
-keyboard_pairing_button_release:
-	fetch 1,mem_keyboard_keyvalue_buffer+2
-	rtnne HID_KEY_PB
-	jam HID_KEY_NULL,mem_keyboard_keyvalue_buffer+2
-	rtn	
-
-keyboard_enable_bt_button_pairing:
-	bpatch patch0a_5,mem_patch0a
-	fetch 1,mem_keyboard_bt_button_flag
-	rtn blank
-	fetch 1,mem_device_flag
-	beq MODE_24G_DEVICE,keyboard_24g_start_pair_mode
-keyboard_long_button_bt_discovery:
-	bpatch patch0a_6,mem_patch0a
-	call keyboard_pairing_check_otp_offset
-	jam 0,mem_keyboard_data_change_flag
-	fetch 1,mem_device_flag
-	rtneq MODE_24G_DEVICE
-	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
-	rtnbit1 KEYBOARD_BT_DISCOVERY_BUTTON_LONG_DOWN_FLAG
-	arg KEYBOARD_BT_DISCOVERY_BUTTON_LONG_DOWN_FLAG,queue
-	call keyboard_enable_function_flag
-	call app_evt_button_long_pressed
-	branch keyboard_bb_event_discovery_btn
-
-keyboard_24g_start_pair_mode:
-	bpatch patch0a_7,mem_patch0a
-	call keyboard_device_led_all_off
-	call keyboard_pairing_check_otp_offset		
-	jam 0,mem_keyboard_data_change_flag
-	fetch 2,mem_24g_pair_timeout
-	nrtn blank
-	setarg 0
-	store 2,mem_device_no_data_timer
-	store 2,mem_24g_reconn_timeout
-	store 1,mem_24g_reconn_type
-	arg KEYBOARD_24G_PAIRING_FLAG,queue
-	call keyboard_enable_function_flag
-	call keyboard_stop_discovery
-	jam TYPE_KB,mem_24g_data_type
-	branch g24_pair_start
-
-
-keyborad_control_key_set:
-	store 1,mem_keyboard_control_key_flag
-	and_into 0x44,pdata
-	ncall keyboard_alt_flag_set,blank
-	fetch 1,mem_keyboard_control_key_flag
-	and_into 0x22,pdata
-	rtn blank
-	jam 1,mem_keyboard_shift_flag
-	rtn
-keyboard_alt_flag_set:	
-	jam 1,mem_keyboard_alt_flag
-	rtn
-
-
-keyboard_fn_set:
-	jam 1,mem_keyboard_fn_flag
-	rtn
-
-keyboard_pb_set:
-	jam 1,mem_keyboard_bt_button_flag
-	rtn
-
-
-///////////////////////////////////////////////////////////////---motion----//////////////////////////////////
-keyboard_motion:
-	bpatch patch0b_0,mem_patch0b
-	disable user
-	jam 0,mem_customer_key
-	jam 0,mem_customer_data_trigger
-	jam 0,mem_customer_data_trigger_last
-	fetch 1,mem_keyboard_commbination_key_step
-	beq CAMMBINATION_KEY_PRESS,keyboard_commbination_key_press_process
-	beq CAMMBINATION_KEY_HOLD,keyboard_commbination_key_hold_process
-	beq CAMMBINATION_KEY_COMPLETE,keyboard_commbination_key_hold_process
-	beq CAMMBINATION_KEY_WAIT_RELEASE,keyboard_commbination_key_wait_release_process
-	beq CAMMBINATION_KEY_NULL,keyboard_commbination_key_null_process
-	fetch 1,mem_keyboard_data_change_flag
-	branch keyboard_no_key_press,blank
-	increase -1,pdata
-	store 1,mem_keyboard_data_change_flag	
-	call keyboard_current_mult_update	
-	jam 10,mem_keyboard_led_status_get_timer
-	call mouse_no_data_timer_init
-	fetch 1,mem_keyboard_commbination_key_step
-	beq CAMMBINATION_KEY_RELEASE,keyboard_commbination_key_release_process
-	arg mem_keyboard_tx_data,contw
-	arg 10,loopcnt
-	call clear_mem
-	call keyboard_motion_data_check
-	jam 0,mem_keyboard_data_send_flag
-	rtn
-
-keyboard_current_mult_update:
-	jam 3,mem_lpm_mult
-	jam 10,mem_mouse_current_mult_timer
-	rtn
-
-keyboard_no_key_press:
-	fetch 1,mem_device_flag
-	rtnne MODE_24G_DEVICE
-	fetch 1,mem_keyboard_led_status_get
-	rtn blank
-	fetch 1,mem_24g_repeat_send_flag
-	nrtn blank
-	fetcht 1,mem_keyboard_led_status_get_timer_last
-	fetch 1,mem_keyboard_led_status_get_timer
-	isub temp,null
-	store 1,mem_keyboard_led_status_get_timer_last
-	rtn zero
-	arg mem_keyboard_tx_data,contw
-	arg 10,loopcnt
-	call clear_mem
-	call enable_user
-	branch keyboard_motion_data_check_next	
-
-keyboard_motion_data_check:
-	bpatch patch0b_1,mem_patch0b
-	fetch 1,mem_keyboard_consumer_key_status
-	beq KEYBOARD_CONSUMER_KEY_RELEASE,keyboard_value_consumer_release
-	fetch 1,mem_keboard_n_key_rollover_send_flag
-	nbranch keyboard_motion_data_check_n_key_rollover_key,blank
-	arg mem_keyboard_keyvalue_buffer+2,contr
-	arg 6,loopcnt
-keyboard_value_tpye_check:
-	ifetch 1,contr
-	sub pdata,HID_KEY_RIGHT_GUI,null
-	nbranch keyboard_value_tpye_consumer_set,positive	
-	loop keyboard_value_tpye_check
-	fetch 1,mem_keyboard_all_press_key_count
-	call keyboard_value_release_all_key,blank
-	jam HID_REPORTID_KEY_STANDARD,mem_keyboard_tx_data
-	bpatch patch0b_2,mem_patch0b
-	arg mem_keyboard_keyvalue_buffer,rega
-	arg mem_keyboard_tx_data+1,contw
-	arg 8,loopcnt
-keyboard_tx_data_store:
-	ifetcht 1,rega
-	fetch 1,mem_device_fast_conn_flag
-	beq 0xff,keyboard_tx_data_store_loop
-	sub temp,HID_KEY_FN,null
-	nbranch keyboard_tx_data_store_loop,zero
-	increase 1,rega
-	ifetcht 1,rega
-keyboard_tx_data_store_loop:
-	istoret 1,contw
-	increase 1,rega
-	loop keyboard_tx_data_store
-keyboard_motion_data_check_next:
-	bpatch patch0b_3,mem_patch0b
-	call keyboard_device_data_tpye_check
-
-	fetch 1,mem_keyboard_data_send_flag
-	beq DEVICE_DATA_TPYE_MOUSE,enable_user
-device_send_keyboard_data:
-	call mouse_customerkey_press
-	branch enable_user
-
-keyboard_motion_data_check_n_key_rollover_key:
-	jam 0,mem_keboard_n_key_rollover_send_flag
-	jam HID_REPORTID_N_KEY_ROLLOVER,mem_keyboard_tx_data
-	branch keyboard_motion_data_check_next
-
-keyboard_value_release_all_key:
-	arg mem_keyboard_n_key_rollover_data,contw
-	arg 15,loopcnt
-	call clear_mem
-	arg mem_keyboard_keyvalue_buffer,contw
-	arg 10,loopcnt
-	branch clear_mem
-////////////////////////////////////////////////////---fn---//////////////////////////////////////////////////////////
-keyboard_value_tpye_consumer_set:
-	copy pdata,temp
-	bpatch patch0b_4,mem_patch0b
-	copy temp,pdata
-	jam HID_REPORTID_BIT_CONSUMER_KEY,mem_keyboard_tx_data
-	fetcht 1,mem_keyboard_all_press_key_count
-	sub temp,HID_KEY_NULL,null
-	branch keyboard_value_consumer_all_key_release,zero
-	beq 	HID_KEY_MULTIKEY_MEDIA,keyboard_value_media
-	beq 	HID_KEY_MULTIKEY_VOL_DOWN,keyboard_value_vol_down
-	beq 	HID_KEY_MULTIKEY_VOL_UP,keyboard_value_vol_up
-	beq 	HID_KEY_MULTIKEY_MUTE,keyboard_value_mute
-	beq 	HID_KEY_MULTIKEY_PRE_TRACK,keyboard_value_pre_track
-	beq 	HID_KEY_MULTIKEY_NEXT_TRACK,keyboard_value_next_track	
-	beq 	HID_KEY_MULTIKEY_PALY,keyboard_value_play
-	beq 	HID_KEY_MULTIKEY_STOP,keyboard_value_stop
-
-	beq 	HID_KEY_AC_HOME,keyboard_value_ac_home
-	beq 	HID_KEY_MAIL,keyboard_value_mail
-	beq 	HID_KEY_MY_COMPUTER,keyboard_value_my_computer
-	beq 	HID_KEY_AC_FAVORITES,keyboard_value_ac_favorites
-	beq 	HID_KEY_CALCULATOR,keyboard_value_calculator
-	beq 	HID_KEY_AC_SEARCH,keyboard_value_ac_search	
-	beq 	HID_KEY_AC_BACK,keyboard_value_ac_back
-	beq 	HID_KEY_OS_SOFT_KB,keyboard_value_os_soft_kb	
-	
-	beq 	HID_KEY_LIGHT_DOWN,keyboard_value_light_down
-	beq 	HID_KEY_LIGHT_UP,keyboard_value_light_up
-	beq 	HID_KEY_IOS_ANDROID_OS_LOCK,keyboard_value_os_lock	
-
-	beq 	HID_KEY_MAC_EJECT,keyboard_value_mac_eject
-	beq 	HID_KEY_AC_FORWARD,keyboard_value_ac_forward
-	beq 	HID_KEY_AC_STOP,keyboard_value_ac_stop
-	beq 	HID_KEY_AC_REFRESH,keyboard_value_ac_refresh
-
-	beq 	HID_KEY_SYSTEM_SLEEP,keyboard_value_system_sleep
-	branch keyboard_motion_data_check_next
-
-keyboard_value_media:
-	setarg 0x000001
-keyboard_consumer_value_store:	
-	store 3,mem_keyboard_tx_data+1
-	branch keyboard_motion_data_check_next
-keyboard_value_vol_down:	
-	setarg 0x000002
-	branch keyboard_consumer_value_store
-keyboard_value_vol_up:	
-	setarg 0x000004
-	branch keyboard_consumer_value_store
-keyboard_value_mute:	
-	setarg 0x000008
-	branch keyboard_consumer_value_store
-keyboard_value_pre_track:	
-	setarg 0x000010
-	branch keyboard_consumer_value_store
-keyboard_value_next_track:	
-	setarg 0x000020
-	branch keyboard_consumer_value_store
-keyboard_value_play:	
-	setarg 0x000040
-	branch keyboard_consumer_value_store
-keyboard_value_stop:	
-	setarg 0x000080
-	branch keyboard_consumer_value_store	
-
-keyboard_value_ac_home:	
-	setarg 0x000100
-	branch keyboard_consumer_value_store
-keyboard_value_mail:	
-	setarg 0x000200
-	branch keyboard_consumer_value_store
-keyboard_value_my_computer:	
-	setarg 0x000400
-	branch keyboard_consumer_value_store
-keyboard_value_ac_favorites:	
-	setarg 0x000800
-	branch keyboard_consumer_value_store
-keyboard_value_calculator:	
-	setarg 0x001000
-	branch keyboard_consumer_value_store
-keyboard_value_ac_search:	
-	setarg 0x002000
-	branch keyboard_consumer_value_store
-keyboard_value_ac_back:
-	fetch 1,mem_kb_computer_system
-	beq SYSTEM_OS_IOS,keyboard_value_ac_home
-	beq SYSTEM_OS_MAC,keyboard_value_ac_home
-	setarg 0x004000
-	branch keyboard_consumer_value_store
-keyboard_value_os_soft_kb:
-	fetch 1,mem_kb_computer_system
-	beq SYSTEM_OS_ANDROID,keyboard_value_os_soft_kb_android
-	setarg 0x010000
-	branch keyboard_consumer_value_store
-keyboard_value_os_soft_kb_android:
-	setarg 0x008000
-	branch keyboard_consumer_value_store
-	
-keyboard_value_light_down:	
-	setarg 0x020000
-	branch keyboard_consumer_value_store
-keyboard_value_light_up:	
-	setarg 0x040000
-	branch keyboard_consumer_value_store
-keyboard_value_os_lock:
-	setarg 0x080000
-	branch keyboard_consumer_value_store
-
-keyboard_value_mac_eject:
-	setarg 0x100000
-	branch keyboard_consumer_value_store
-keyboard_value_ac_forward:
-	setarg 0x200000
-	branch keyboard_consumer_value_store
-keyboard_value_ac_stop:
-	setarg 0x400000
-	branch keyboard_consumer_value_store
-keyboard_value_ac_refresh:
-	setarg 0x800000
-	branch keyboard_consumer_value_store	
-	
-keyboard_value_consumer_all_key_release:
-keyboard_value_consumer_release:
-	jam 2,mem_keyboard_data_change_flag	
-	fetch 1,mem_keyboard_all_press_key_count
-	call keyboard_value_release_all_key,blank
-	jam KEYBOARD_CONSUMER_KEY_STANDBY,mem_keyboard_consumer_key_status
-	setarg HID_REPORTID_BIT_CONSUMER_KEY
-	store 3,mem_keyboard_tx_data
-	branch keyboard_motion_data_check_next
-keyboard_value_system_sleep:
-	jam HID_REPORTID_SYSTEM_CTRL,mem_keyboard_tx_data
-	setarg 0x02
-	store 1,mem_keyboard_tx_data+1
-	branch keyboard_motion_data_check_next		
-
-
-/************************************fn**********************************************/
-
-keyboard_device_data_tpye_check:
-	fetch 1,mem_device_flag
-	bne MODE_24G_DEVICE,keyboard_device_data_tpye_check_next
-	jam 0,mem_24g_repeat_send_flag
-	fetch 2,mem_keyboard_tx_data
-	ncall keyboard_set_repeat_send_flag,blank
-	fetch 6,mem_keyboard_tx_data+3
-	ncall keyboard_set_repeat_send_flag,blank
-keyboard_device_data_tpye_check_next:
-	call hid_device_clear_key_data
-	jam DEVICE_DATA_TPYE_KEYBOARD,mem_keyboard_data_send_flag
-	bpatch patch0b_5,mem_patch0b
-	fetch 1,mem_keyboard_tx_data
-	beq HID_REPORTID_KEY_STANDARD,keyboard_standard_data_send
-	beq HID_REPORTID_MOUSE,keyboard_mouse_data_send
-	beq HID_REPORTID_CONSUMER_KEY,keyboard_consumer_data_send
-	beq HID_REPORTID_BIT_CONSUMER_KEY,keyboard_bit_consumer_data_send
-	beq HID_REPORTID_SYSTEM_CTRL,keyboard_system_control_data_send
-	beq HID_REPORTID_N_KEY_ROLLOVER,keyboard_n_key_rollover_send
-	rtn
-
-keyboard_mouse_data_send:
-	jam DEVICE_DATA_TPYE_MOUSE,mem_keyboard_data_send_flag
-	arg mem_keyboard_tx_data+1,contr
-	arg mem_mouse_key,contw
-	arg 7,loopcnt
-	branch memcpy
-	
-keyboard_standard_data_send:
-	fetch 1,mem_device_flag
-	bne MODE_24G_DEVICE,keyboard_standard_data_send_end
-	call keyboard_24g_led_get_status_check
-	fetch 1,mem_keyboard_led_status_get
-	store 1,mem_keyboard_tx_data+2
-keyboard_standard_data_send_end:
-	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
-	bbit1 KEYBOARD_ENABLE_MAGIC_KEYBOARD,keyboard_magic_data_send
-	arg mem_keyboard_tx_data,contr
-	arg mem_customer_key_press,contw
-	arg 9,loopcnt
-	branch memcpy
-
-keyboard_magic_data_send:
-	jam 0,mem_keyboard_tx_data+9
-	fetch 1,mem_keyboard_fn_flag
-	branch keyboard_magic_data_send_end,blank
-	jam 1,mem_keyboard_tx_data+9
-keyboard_magic_data_send_end:	
-	arg mem_keyboard_tx_data,contr
-	arg mem_customer_key_press,contw
-	arg 10,loopcnt
-	branch memcpy
-
-keyboard_consumer_data_send:
-	setarg HID_REPORTID_CONSUMER_KEY
-keyboard_consumer_data_store:
-	store 1,mem_customer_key_press
-	fetch 3,mem_keyboard_tx_data+1
-	store 3,mem_customer_key_press+1
-	rtn
-
-keyboard_bit_consumer_data_send:
-	setarg HID_REPORTID_BIT_CONSUMER_KEY
-	branch keyboard_consumer_data_store
-
-keyboard_system_control_data_send:
-	setarg HID_REPORTID_SYSTEM_CTRL
-	store 1,mem_customer_key_press
-	fetch 1,mem_keyboard_tx_data+1
-	store 1,mem_customer_key_press+1
-	rtn
-
-keyboard_n_key_rollover_send:
-	setarg HID_REPORTID_N_KEY_ROLLOVER
-	store 1,mem_customer_key_press
-	rtn
-
-////////////////////////////////////////lpm/////////////////////////////////////////////////////////////////////////
-
-keyboard_lpm_before_common:
-	bpatch patch0b_6,mem_patch0b
-	call clear_wake
-
-	fetcht 1,mem_keyboard_pb_button_gpio
-	call gpio_set_wake
-
-	fetch 2,mem_kb_col_ptr
-	copy pdata,regb
-	arg 20,loopcnt
-keyboard_key_col_wake_init:
-	ifetcht 1,regb
-	isolate1 7,temp				// exmcu gpio
-	ncall gpio_out_active,true
-	increase 1,regb
-	loop keyboard_key_col_wake_init
-
-	call keyboard_gpio_pu_idle
-	jam 0,mem_qdec_set_flag
-	
-	fetch 2,mem_kb_row_ptr
-	copy pdata,regb
-	arg 8,loopcnt
-keyboard_key_row_wake_init:
-	ifetcht 1,regb
-	sub temp,UI_BUTTON_GPIO_DISABLE,null
-	ncall keyboard_key_row_wake_set,zero
-	increase 1,regb
-	loop keyboard_key_row_wake_init
-	
-	call lpm_puchk_set_check
-	fetcht 1,mem_device_reuse_2ice_gpio
-	call device_gpio_config_input_pu
-	call mouse_gpio_set_analog
-	branch keyboard_adc_gpio_set_before_hibernate
-	
-keyboard_process_lpm_before:
-	rtnmark1 mark_24g
-	branch keyboard_lpm_before_common
-
-keyboard_before_hibernate:
-	bpatch patch0b_7,mem_patch0b
-	call disable_authrom
-	branch keyboard_setgpio_hibernate
-
-	
-keyboard_power_down:
-	bpatch patch0c_0,mem_patch0c
-	call keyboard_device_led_all_off
-keyboard_app_enter_hibernate:
-	call keyboard_setgpio_hibernate
-	branch app_enter_hibernate		
-
-keyboard_setgpio_hibernate:
-	bpatch patch0c_1,mem_patch0c
-	call clear_wake
-	call keyboard_device_led_all_off
-	call keyboard_rgb_off
-	branch keyboard_lpm_before_common
-	
-////////////////////////////////////////24g/////////////////////////////////////////////////////////////////////////	
-keyboard_24g_pairing_complete:
-	call keyboard_get_24g_led_enable
-	call mouse_no_data_timer_init
-	arg KEYBOARD_24G_PAIRING_FLAG,queue
-	call keyboard_disable_function_flag
-	setarg 0
-	store 2,mem_24g_pair_timeout
-	store 2,mem_24g_reconn_timeout
-	store 1,mem_24g_conn_sm
-	store 1,mem_mouse_move_flag
-	store 1,mem_24g_reconn_type
-	fetch 4,mem_24g_addr
-	store 4,mem_24g_receiver_addr
-	store 4,mem_device_24g_addr
-	call keyboard_24g_fast_conn_check
-	fetch 1,mem_keyboard_device_info_store_flag
-	set1 KEYBOARD_STORE_EEPROMM_FLAG_G24_ADDR,pdata
-	store 1,mem_keyboard_device_info_store_flag
-	branch keyboard_store_device_info_delay
-
-keyboard_24g_attempt_success:
-	call keyboard_get_24g_led_enable
-	fetch 4,mem_24g_addr
-	store 4,mem_24g_receiver_addr
-	store 4,mem_device_24g_addr		// if need store 24g address to eeprom/flash,need get mem_24g_addr
-	call g24_ch_syncword_crc8_init
-	call keyboard_24g_fast_conn_check
-	jam 0,mem_24g_conn_sm
-	jam 0,mem_24g_reconn_type
-	branch mouse_no_data_timer_init	
-
-keyboard_24g_fast_conn_check:
-	fetch 4,mem_24g_addr
-	fetcht 4,mem_24g_fast_conn_addr
-	isub temp,null
-	nbranch mouse_bluetooth_fast_conn_disable,zero
-	jam 0xff,mem_device_fast_conn_flag
-	rtn
-
-keyboard_24g_led_get_status_check:
-	arg 6,loopcnt
-	arg mem_keyboard_tx_data+3,contr
-keyboard_24g_led_data_check:
-	ifetch 1,contr
-	beq HID_KEY_NUM_LOCK,keyboard_get_24g_led_enable
-	beq HID_KEY_CAPS_LOCK,keyboard_get_24g_led_enable
-	beq HID_KEY_SCROLL_LOCK,keyboard_get_24g_led_enable
-	loop keyboard_24g_led_data_check
-	rtn
-
-keyboard_get_24g_led_enable:
-	jam 0x03,mem_keyboard_led_status_get
-	jam 1,mem_keyboard_data_change_flag
-	rtn
-
-keyboard_set_repeat_send_flag:
-	jam 1,mem_24g_repeat_send_flag
-	rtn
-
-
-keyboard_24g_attempt_fail:
-	fetch 1,mem_24g_attempt_fail_flag
-	nbranch keyboard_24g_hibernate_set,blank
-	fetch 1,mem_24g_reconn_type
-	beq FAST_CONN_AND_3_0_ADDR,keyboard_24g_fast_conn_attempt_fail
-	beq FAST_CONN_AND_RECEIVER,keyboard_24g_fast_conn_attempt_fail
-	beq RECEIVER_AND_3_0_ADDR,keyboard_24g_attempt_fail_enter_hibernate
-	branch keyboard_24g_attempt_fail_enter_hibernate
-
-keyboard_24g_attempt_fail_enter_hibernate:
-	call keyboard_24g_stop
-	fetch 1,mem_reconn_times
-	nbranch mouse_polling_device,blank
-	fetch 1,mem_device_flag
-	beq MODE_24G_DEVICE,keyboard_power_down
-	rtn	
-
-keyboard_24g_fast_conn_attempt_fail:
-	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
-	bbit1 KEYBOARD_ENABLE_AUTO_24G_PARING,mouse_24g_start_auto_pair
-	bbit0 KEYBOARD_ENABLE_24G_AUTO_PAIR_NERVER_BEEN_PAIRED,mouse_24g_reconn_dongle_start
-	fetch 4,mem_device_24g_addr		// auto pair first time
-	fetcht 4,mem_device_compare_addr
-	isub temp,null
-	branch keyboard_24g_start_pair_mode,zero
-	branch mouse_24g_reconn_dongle_start
-
-keyboard_24g_hibernate_set:
-	bpatch patch0c_2,mem_patch0c
-	jam 0,mem_24g_attempt_fail_flag
-	call g24_transmit_next_packet
-	setarg -1
-	store 8,mem_24g_enter_hibernate
-	setarg 0
-	store 7,mem_mouse_key
-	jam 1,mem_24g_shutdown_flag
-	branch keyboard_g24_long_sleep
-
-
-keyboard_24g_stop:
-	set0 mark_24g,mark
-	jam STATE_24G_STOP,mem_24g_conn_sm
-	arg KEYBOARD_24G_PAIRING_FLAG,queue
-	branch keyboard_disable_function_flag
-
-keyboard_g24_reconn_dispatch:
-	fetch 2,mem_24g_reconn_count
-	and_into 0xe0,pdata
-	branch keyboard_g24_reconn_dispatch_next,blank		// each 0x100 times,reconnect 16 times
-	fetch 2,mem_24g_reconn_count
-	increase 1,pdata
-	store 2,mem_24g_reconn_count
-	rtn
-keyboard_g24_reconn_dispatch_next:
-	call g24_reconn_data_prep
-	call g24_transmit_receive_ack
-	nbranch g24_reconn_device_fail,sync
-	nbranch g24_reconn_device_fail,user3
-	call hid_device_g24_ackpayload_parse
-	branch g24_reconn_dispatch_next+5
-
-keyboard_g24_transmit_no_interrupt:
-	call g24_txdata_prep
-	nbranch keyboard_g24_nodata_transmit,user
-keyboard_g24_transmit_start:
-	call keyboard_g24_transmit_process
-	call keyboard_power_ctrl_start
-	branch keyboard_g24_transmit_start_next
-
-keyboard_g24_nodata_transmit:
-	fetch 8,mem_keyscan_value_current
-	nbranch keyboard_g24_transmit_start_next,blank
-	fetch 8,mem_keyscan_value_current+8
-	nbranch keyboard_g24_transmit_start_next,blank
-	fetch 4,mem_keyscan_value_current+16
-	nbranch keyboard_g24_transmit_start_next,blank
-	call g24_search_receiver
-keyboard_g24_long_sleep:
-	call keyboard_g24_lpm_wait
-	nrtn user
-	call g24_setgpio_lpm_before
-	fetch 1,mem_24g_shutdown_flag
-	ncall keyboard_setgpio_hibernate,blank
-	fetch 8,mem_24g_enter_hibernate
-	branch g24_long_seep2
-
-keyboard_g24_transmit_process:
-	bpatch patch0c_3,mem_patch0c
-	jam 0,mem_24g_retry
-keyboard_g24_transmit_loop:
-	fetchr timeup,2,mem_param_rx_setup
-	until clkn_rt,meet
-	call g24_transmit_receive_ack
-	fetch 1,mem_24g_no_ack	//tx noack
-	beq no_ack_24g,g24_transmit_no_ack
-	nbranch keyboard_g24_retransmit,sync
-	nbranch keyboard_g24_retransmit,user3
-	call hid_device_g24_ackpayload_parse
-	jam 0,mem_24g_shutdown_flag
-	branch g24_transmit_no_ack
-	
-
-keyboard_g24_retransmit:
-	fetch 1,mem_24g_abort_pac
-	nrtn blank
-	fetch 2,mem_24g_txfail_cnt
-	increase 1,pdata
-	store 2,mem_24g_txfail_cnt	
-	fetch 1,mem_24g_txfail_cnt
-	beq 0xff,g24_tx_attempt_fail
-	fetch 1,mem_24g_retry
-	increase 1,pdata
-	store 1,mem_24g_retry
-	and_into 0x03,pdata
-	branch keyboard_g24_tx_fast_hop,blank		//each 4 times change channel
-	branch keyboard_g24_transmit_loop
-
-keyboard_g24_tx_fast_hop:
-	call kscan_dispatch
-	fetch 1,mem_keyboard_switch_device_flag
-	nbranch soft_reset_chip,blank
-	fetch 1,mem_keyboard_commbination_press_type
-	nbranch g24_transmit_no_ack,blank
-	call g24_tx_fast_hop
-	branch keyboard_g24_transmit_loop
-
-keyboard_g24_lpm_wait:
-	enable user
-	call lpo_calibration
-	fetch 3,mem_clks_per_lpo
-	branch disable_user,blank
-	fetch 1,mem_keyboard_fn_flag
-	nbranch disable_user,blank
-	fetch 1,mem_keyboard_control_key_flag
-	nbranch disable_user,blank
-	fetch 1,mem_keyboard_commbination_control_key_delay_release_timer
-	nbranch disable_user,blank
-	fetch 1,mem_24g_transmit_by_interrupt
-	beq G24_TX_TIMER_INT_ENABLE,disable_user
-	branch g24_lpm_wait+5
-	
-keyboard_power_ctrl_start:
-	fetch 4,mem_24g_addr
-	fetcht 4,mem_24g_fast_conn_addr
-	isub temp,null
-	nbranch power_ctrl_start+1,zero
-	jam TX_POWER_FACTORY,mem_tx_power
-	rtn
-keyboard_g24_transmit_start_next:
-	fetch 8,mem_24g_long_sleep_set
-	store 8,mem_24g_enter_hibernate
-	fetch 2,mem_24g_long_sleep_param_update_timer_init
-	store 2,mem_24g_long_sleep_param_update_timer
-keyboard_g24_short_sleep:
-	bpatch patch0c_4,mem_patch0c
-	call keyboard_g24_lpm_wait
-	branch g24_short_sleep+2
-
-keyboard_24g_package_data:
-	rtnmark0 mark_24g
-	call keyboard_motion
-	nrtn user
-	fetch 1,mem_customer_key
-	nbranch keyboard_24g_keyboard_package_data,blank
-	branch mouse_24g_mouse_package_data
-
-keyboard_24g_keyboard_package_data:
-	jam TYPE_KB,mem_24g_data_type
-	fetch 1,mem_customer_key_press
-	beq HID_REPORTID_N_KEY_ROLLOVER,keyboard_24g_keyboard_package_n_key_rollover_data
-	arg 10,rega	//length
-	branch hid_device_24g_keyboard_package_data_set
-
-keyboard_24g_keyboard_package_n_key_rollover_data:
-	store 1,mem_keyboard_n_key_rollover_data
-	arg 15,rega
-	arg mem_keyboard_n_key_rollover_data,regb
-	rtn
-
-/**************************************g24 search receiver*****************************************/
-keyboard_24g_search_dongle:
-	bpatch patch0c_5,mem_patch0c
-	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
-	rtnbit0 KEYBOARD_ENABLE_24G_SEARCH_DONGLE
-	branch hid_device_24g_search_dongle
-
-/////////////////////////////////////////////////////// ble ////////////////////////////////////////////////////////////	
-keyboard_le:
-	bpatch patch0c_6,mem_patch0c
-	call le_fifo_check_nearly_full
-	nrtn blank
-	fetch 1,mem_device_fast_conn_flag
-	beq 0xff,keyboard_le_next
-	fetch 1,mem_le_connect_status_flag
-	and pdata,0x03,pdata
-	rtnne 0x03
-keyboard_le_next:	
-	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
-	bbit1 KEYBOARD_24G_PAIRING_FLAG,hid_device_le_send_empty_packet
-	bbit1 KEYBOARD_BT_DISCOVERY_BUTTON_DOWN_FLAG,hid_device_le_send_empty_packet
-	bbit1 KEYBOARD_BT_DISCOVERY_BUTTON_LONG_DOWN_FLAG,hid_device_le_send_empty_packet
-	call keyboard_motion
-	nrtn user
-	call mouse_wheel_trigger
-	branch hid_device_send_package_data_check
-
-keyboard_le_fill_n_key_rollover_key_data:
-	jam 14,mem_le_data_len
-	fetcht 2,mem_le_notify_handle
-	fetch 1,mem_le_data_len
-	copy pdata,rega
-	call le_att_malloc_tx_notify
-	fetcht 1,mem_le_data_len
-	copy temp,loopcnt
-	arg mem_keyboard_n_key_rollover_data+1,contr
-	branch memcpy
-
-keyboard_le_fill_standard_key_data:	
-	jam 9,mem_le_data_len
-	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
-	bbit1 KEYBOARD_ENABLE_MAGIC_KEYBOARD,keyoard_le_fill_standard_key_data_send
-	jam 8,mem_le_data_len
-	branch keyoard_le_fill_standard_key_data_send
-
-keyboard_le_bb_event_connected:
-	call keyboard_load_rgb
-	jam 0,mem_mouse_long_mult_flag
-	jam 1,mem_device_le_bb_connected_flag
-	call mouse_24g_first_store_reconn_info
-	fetch 1,mem_device_le_reconnect_flag
-	nbranch keyboard_le_bb_event_connected_next,blank
-	jam 0x14,mem_device_send_secutiry_request_timer
-keyboard_le_bb_event_connected_next:
-	fetch APP_DISC_RSN_SIZE,mem_app_disconn_reason_flag
-	set0 APP_DISC_BY_BUTTON ,pdata
-	store APP_DISC_RSN_SIZE,mem_app_disconn_reason_flag
-	jam 0,mem_device_direct_timer
-	fetch 2,mem_le_battery_level_updata_timer_init
-	store 2,mem_le_battery_level_updata_timer
-	call mouse_no_data_timer_init
-	branch keyboard_stop_discovery
-
-
-keyboard_le_bb_disconnected:
-	setarg 0
-	store 2,mem_le_battery_level_updata_timer
-	store 1,mem_keyboard_le_send_conn_param_update
-	store 1,mem_keyboard_le_send_conn_param_update_timer
-	store 1,mem_device_le_bb_connected_flag	
-keyboard_le_bb_disconnected_next:	
-	jam LE_LPM_ENABLE,mem_le_conn_param_reject
-	call le_clr_config_more_data
-	jam 0,mem_ltk_exists
-	branch keyboard_bb_disconnected
-keyboard_bb_disconnected:
-	fetch APP_DISC_RSN_SIZE,mem_app_disconn_reason
-	bbit1 APP_DISC_BLE,keyboard_le_event_bb_disconn
-	bbit1 APP_DISC_BY_BUTTON,app_disconn_reason_clear
-	branch keyboard_start_discovery
-keyboard_le_event_bb_disconn:
-	jam 0,mem_le_connect_status_flag
-	fetch APP_DISC_RSN_SIZE,mem_app_disconn_reason
-	bbit1 APP_DISC_BY_BUTTON,app_disconn_reason_clear
-	branch keyboard_power_down	
-
-keyboard_le_ll_start_encryt:
-	fetch 1,mem_device_le_reconnect_flag
-	beq 1,keyboard_le_ll_reconn_start_encryt
-	jam 20,mem_le_start_encrypt_timer
-	jam 5,mem_le_start_auto_reco_timer
-	branch mouse_le_ll_enable_start_enc_flag
-keyboard_le_ll_reconn_start_encryt:
-	call mouse_updata_le_param
-	jam 5,mem_le_start_encrypt_timer
-	branch mouse_le_ll_enable_start_enc_flag
-
-keyboard_le_conn_param_update_rsp_recieved:
-	fetch 1,mem_keyboard_le_send_conn_param_update
-	nrtn blank
-	jam 1,mem_keyboard_le_send_conn_param_update
-	jam 30,mem_keyboard_le_send_conn_param_update_timer
-	rtn	
-
-keyboard_bb_event_discovery_btn:
-	isolate1 mark_24g,mark
-	call keyboard_24g_stop,true
-	call mouse_disconnect
-	jam 0,mem_le_connect_status_flag
-	branch keyboard_start_discovery
-	
-keyboard_start_discovery:
-	bpatch patch0c_7,mem_patch0c
-	call keyboard_device_led_all_off+2
-	setarg 0
-	store 2,mem_le_battery_level_updata_timer
-	store 2,mem_otp_store_device_info_flag
-	jam 0xff,mem_kb_computer_system
-
-	fetch 2,mem_ui_state_map
-	isolate1 UI_STATE_BLE_ADV,pdata
-	call mouse_stop_le_adv,true		//reconnect adv
-	call mouse_bluetooth_fast_conn_disable
-	fetch 2,mem_ui_state_map
-	bbit1 UI_STATE_BLE_ADV,keyboard_start_discovery_norandom
-	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
-	bbit0 KEYBOARD_ENABLE_BLE_RANDOM_ADDRE,keyboard_start_discovery_norandom
-	fetcht 2,mem_random_addr_increase_count
-	increase 1,temp
-	storet 2,mem_random_addr_increase_count
-	storet 2,mem_le_lap+1
-	random pdata					//random ble addr
-	store 1,mem_le_lap
-keyboard_start_discovery_norandom:
-	fetch 3,mem_device_le_lap_temp
-	store 3,mem_le_lap+3
-	call app_lpm_mult_disable
-	fetch 2,mem_device_discovery_timeout
-	store 2,mem_device_discovery_timer
-	setarg 0
-	store 2,mem_device_no_data_timer
-	store 2,mem_le_battery_level_updata_timer
-	store 1,mem_device_direct_timer
-	arg KEYBOARD_STORE_MEMORY_FLAG,queue
-	call keyboard_enable_function_flag
-	call keyboard_bt_discovery_button_down_disable
-	branch mouse_check_51cmd_adv
-
-keyboard_stop_bluetooth_mode:
-	fetch 2,mem_ui_state_map
-	bbit1 UI_STATE_BLE_CONNECTED,app_ble_disconnect
-	branch keyboard_stop_discovery
-
-keyboard_stop_discovery:
-	bpatch patch0d_0,mem_patch0d
-	setarg 0
-	store 2,mem_device_discovery_timer	
-	arg KEYBOARD_BT_DISCOVERY_BUTTON_LONG_DOWN_FLAG,queue
-	call keyboard_disable_function_flag
-	call mouse_stop_le_adv
-	fetch 1,mem_keyboard_device_poweron_timer
-	branch keyboard_device_led_all_off+2,blank
-	rtn
-
-keyboard_store_remote_bdaddr:
-	bpatch patch0d_1,mem_patch0d
-	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
-	rtnbit0 KEYBOARD_STORE_MEMORY_FLAG
-	arg KEYBOARD_STORE_MEMORY_FLAG,queue
-	call keyboard_disable_function_flag
-	call hid_device_check_device_addr
-	call hid_device_before_store_reconn_info
-	fetch 1,mem_keyboard_device_info_store_flag
-	set1 KEYBOARD_STORE_EEPROMM_FLAG_BLE_ADDR,pdata
-	store 1,mem_keyboard_device_info_store_flag
-	branch keyboard_store_device_info_delay
-	
-/////////////////////////////////////////////////////// ble auto recognize////////////////////////////////////////////////////////////
-keyboard_le_send_att_find_by_type_value_request_ancs:
-	jam 1,mem_le_connect_ios_mac_flag
-	arg 23,rega
-	arg LE_L2CAP_CID_ATT,regb
-	call le_fifo_malloc_tx_l2cap
-	setarg ATTOP_FIND_BY_TYPE_VALUE_REQUEST
-	istore 1,contw
-	setarg 0x0001		//start handle
-	istore 2,contw
-	setarg 0xffff		//end handle
-	istore 2,contw
-	setarg 0x2800		//uuid type
-	istore 2,contw
-	arg mem_le_search_service_uuid,contr
-	branch memcpy16	
-
-keyboard_le_parse_att:
-	bpatch patch0d_2,mem_patch0d
-	copy rega,contr
-	ifetch 3,contr
-	store 3,mem_le_att_opcode
-	beq ATTOP_ERROR_RESPONSE,keyboard_le_send_att_find_by_type_value_request_mac
-	beq ATTOP_FIND_BY_TYPE_VALUE_RESPONSE,keyboard_le_parse_att_find_by_type_value_rsp
-	beq ATTOP_READ_BY_TYPE_RESPONSE,keyboard_le_send_att_read_by_type_rsp_mac
-	beq ATTOP_READ_RESPONSE,keyboard_le_parse_att_manu_resp
-	beq ATTOP_READ_BY_TYPE_REQUEST,keyboard_le_parse_att_read_by_type_request
-	beq ATTOP_READ_BLOB_REQUEST,keyboard_le_parse_att_read_blob_request
-	beq ATTOP_READ_REQUEST,keyboard_le_parse_att_read_request
-	beq ATTOP_WRITE_REQUEST,keyboard_le_parse_att_write_request
-	beq ATTOP_WRITE_COMMAND,keyboard_le_parse_att_write_command
-	branch le_parse_att2
-
-// second time read device info service differ phone from other	
-keyboard_le_send_att_find_by_type_value_request_mac:
-	fetch 1,mem_le_connect_ios_mac_flag
-	rtn blank
-	fetch 1,mem_le_connect_ios_mac_flag
-	beq 2,keyboard_le_parse_att_not_find_mac_report
-	jam 2,mem_le_connect_ios_mac_flag
-	arg 9,rega
-	arg LE_L2CAP_CID_ATT,regb
-	call le_fifo_malloc_tx_l2cap
-	setarg ATTOP_FIND_BY_TYPE_VALUE_REQUEST
-	istore 1,contw
-	setarg 0x0001		//start handle
-	istore 2,contw
-	setarg 0xffff		//end handle
-	istore 2,contw
-	setarg 0x2800		//uuid type
-	istore 2,contw
-	arg 2,loopcnt
-	arg mem_le_search_mac_uuid,contr
-	branch memcpy
-//third time read handle for manufactory name 
-keyboard_le_parse_att_find_by_type_value_rsp_mac:
-	arg 7,rega
-	arg LE_L2CAP_CID_ATT,regb
-	call le_fifo_malloc_tx_l2cap
-	setarg ATTOP_READ_BY_TYPE_REQUEST
-	istore 1,contw
-	fetcht 2,mem_le_payload_ptr
-	increase 5,temp
-	ifetch 4,temp
-	istore 4,contw
-	setarg 0x2803
-	istore 2,contw
-	rtn	
-//fourth time whether read manufactory name isn't in device info service	
-keyboard_le_send_att_read_by_type_rsp_mac:
-	fetch 1,mem_le_connect_ios_mac_flag
-	rtn blank
-	fetch 2,mem_le_l2cap_size
-	increase -2,pdata
-	div pdata,7
-	call wait_div_end
-	quotient loopcnt
-	fetch 2,mem_le_payload_ptr
-	add pdata,6,contr
-keyboard_le_check_att_read_type_manu_loop:
-	increase 3,contr
-	ifetch 2,contr
-	copy pdata,regc
-	ifetch 2,contr
-	arg 0x2a29,temp
-	isub temp,null
-	branch keyboard_le_send_att_read_by_type_rsp_manufactory,zero
-	loop keyboard_le_check_att_read_type_manu_loop
-	branch keyboard_le_parse_att_not_find_mac_report
-keyboard_le_send_att_read_by_type_rsp_manufactory:
-	arg 3,rega
-	arg LE_L2CAP_CID_ATT,regb
-	call le_fifo_malloc_tx_l2cap
-	setarg ATTOP_READ_REQUEST
-	istore 1,contw
-	copy regc,pdata
-	istore 2,contw
-	rtn	
-//fifth time 	read manufactory name make sure is Apple Inc
-keyboard_le_parse_att_manu_resp:
-	fetch 1,mem_le_connect_ios_mac_flag
-	rtn blank
-	fetch 2,mem_le_l2cap_size
-	arg 9,loopcnt
-	fetch 2,mem_le_payload_ptr
-	add pdata,5,rega	
-	arg mem_le_search_mac_manu_name,regb
-	call string_compare 
-	branch keyboard_le_parse_att_find_mac_report,zero
-	branch  keyboard_le_parse_att_not_find_mac_report
-
-keyboard_le_parse_att_find_by_type_value_rsp:
-	fetch 1,mem_le_connect_ios_mac_flag
-	rtn blank
-	fetch 1,mem_le_connect_ios_mac_flag
-	beq 2,keyboard_le_parse_att_find_by_type_value_rsp_mac
-keyboard_le_parse_att_find_ios_report:	
-	jam SYSTEM_OS_IOS,mem_kb_computer_system
-	branch keyboard_store_computer_system_ble
-keyboard_le_parse_att_not_find_mac_report:	
-	fetch 1,mem_le_conn_peer_addr_type
-	store 1,mem_kb_computer_system
-	branch keyboard_store_computer_system_ble
-keyboard_le_parse_att_find_mac_report:	
-	jam SYSTEM_OS_MAC,mem_kb_computer_system
-keyboard_store_computer_system_ble:
-	jam 0,mem_le_connect_ios_mac_flag
-	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
-	bbit0 KEYBOARD_ENABLE_OTP,keyboard_store_computer_system_info
-	jam 1,mem_otp_store_system_flag
-	fetch 1,mem_otp_store_device_info_flag
-	rtn blank
-	branch keyboard_wirte_otp_ble
-
-keyboard_store_computer_system_info:
-	fetch 1,mem_keyboard_device_info_store_flag
-	set1 KEYBOARD_STORE_EEPROMM_FLAG_COMPUTER_SYSTEM,pdata
-	store 1,mem_keyboard_device_info_store_flag
-	branch keyboard_store_device_info_delay
-
-keyboard_le_parse_att_read_by_type_request:
-	call le_get_search_handle_start_end_common
-	call le_get_search_att_type
-keyboard_le_send_att_read_by_type_response:
-	fetcht 2,mem_le_search_handle_start
-	storet 2,mem_temp
-	call le_init_attlist_search
-	call le_att_get_handle_ptr2
-	increase -2,contr
-	copy contr,pdata
-	store 2,mem_le_cur_attlist_start_ptr
-
-	fetcht 2,mem_le_search_att_type
-	setarg UUID_CHRCTR_PNP_ID
-	isub temp,null
-	branch keyboard_le_send_att_read_by_type_res_pnp_id,zero
-	branch le_send_att_read_by_type_response+8
-keyboard_le_send_att_read_by_type_res_pnp_id:
-	fetch 1,mem_keyboard_le_change_vid_pid_flag
-	branch le_send_att_read_by_type_response+8,blank
-	call le_att_get_uuid_ptr
-	branch le_send_att_error_response_notfound,blank
-	arg mem_keyboard_le_change_vid_pid_flag+1,contr
-	force 11,pdata		// length +1
-	branch le_send_att_read_by_type_res_not_characteristic+9
-
-keyboard_le_parse_att_read_blob_request:
-	ifetch 2,contr
-	store 2,mem_le_att_offset
-	iforce rega
-	fetcht 2,mem_le_att_handle
-	fetch 2,mem_le_pairing_handle
-	isub temp,null
-	nbranch le_send_att_read_blob_response,zero
-	fetch 2,mem_le_att_offset
-	sub pdata,66,null
-	nbranch keyboard_le_send_att_read_blob_response,zero
-
-	setarg 23
-	copy pdata,rega
-	copy pdata,regc
-	call le_fifo_malloc_tx_l2cap_gatt
-	setarg ATTOP_READ_BLOB_RESPONSE
-	istore 1,contw
-	arg mem_keyboard_blob_response_consumer_customize,contr
-	add regc,-1,loopcnt
-	branch memcpy_fast
-
-keyboard_le_send_att_read_blob_response:
-	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
-	bbit1 KEYBOARD_ENABLE_MOUSE,le_send_att_read_blob_response
-	fetch 2,mem_keyboard_le_hid_map
-	copy pdata,contr
-	ifetch 2,contr
-	branch le_send_att_read_blob_response+3
-
-keyboard_le_parse_att_read_request:
-	fetcht 2,mem_le_att_handle
-	fetch 1,mem_le_configuration
-	bbit1 BIT_BLE_READ_AUTH,keyboard_le_send_att_read_response_check_auth
-//input:temp is handle
-keyboard_le_send_att_read_response:
-	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
-	bbit0 KEYBOARD_ENABLE_ADC,keyboard_le_send_att_read_response+3
-	bbit0 KEYBOARD_ENABLE_LE_BATTERY_SERVICE_CANCEL,keyboard_le_send_att_read_response_next
-	fetch 2,mem_le_att_handle
-	beq 0x30,le_send_att_error_response_notfound
-keyboard_le_send_att_read_response_next:	
-	fetch 2,mem_le_att_handle
-	beq 0x05,keyboard_le_send_att_appearance
-	beq 0x10,keyboard_le_send_att_pnp_id
-keyboard_le_send_att_read_response_next_1:
-	fetcht 2,mem_le_att_handle
-	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
-	bbit1 KEYBOARD_ENABLE_MOUSE,le_send_att_read_response
-	fetch 2,mem_le_pairing_handle
-	isub temp,null
-	nbranch le_send_att_read_response,zero
-	call le_get_search_max_mtu_data
-	fetcht 2,mem_keyboard_le_hid_map
-	copy temp,contr
-	ifetcht 2,contr
-	increase 1,temp
-	call not_greater_than
-	branch le_send_att_read_response_less
-	
-keyboard_le_send_att_appearance:
-	arg mem_keybord_appearance,contr
-	force 3,pdata		// length +1
-	branch le_send_att_read_response_less
-	
-keyboard_le_send_att_pnp_id:
-	fetch 1,mem_keyboard_le_change_vid_pid_flag
-	branch keyboard_le_send_att_read_response_next_1,blank
-	arg mem_keyboard_le_change_vid_pid_flag+1,contr
-	force 8,pdata		// length +1
-	branch le_send_att_read_response_less
-
-keyboard_le_send_att_read_response_check_auth:
-	fetch 2,mem_le_pairing_handle
-	isub temp,null
-	nbranch keyboard_le_send_att_read_response,zero
-	call le_check_encrypt_state
-	nbranch keyboard_le_send_att_read_response_next,user
-	branch le_send_att_read_response_error_insufficient_auth
-
-keyboard_le_parse_att_write_request:		// mac os 10.9.5 reconnect can't move
-	copy contr,rega
-	fetch 2,mem_le_l2cap_size
-	add pdata,-3,regb
-	call le_writeatt_cb
-	call keyboard_le_parse_att_write_command+1		//MAC  CAPS
-	branch hid_device_le_parse_att_write_request
-
-keyboard_le_parse_att_write_command:
-	call le_parse_att_write_command
-	fetch 1,mem_device_fast_conn_flag
-	beq 0xff,keyboard_le_fast_conn_led_get
-	fetch 2,mem_le_att_handle
-	beq 0x25,keyboard_le_led_get
-	rtn
-keyboard_le_fast_conn_led_get:	
-	fetch 2,mem_le_att_handle
-	beq 0x21,keyboard_le_led_get
-	rtn
-	
-keyboard_le_led_get:
-	fetch 1,mem_le_rxbuf+9
-	store 1,mem_keyboard_led_status
-	rtn
-
-///////////////////////////////usb ///////////////////////////////////////////////////////////////////////
-keyboard_usb_mode_start:
-	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
-	rtnbit0 MOUSE_ENABLE_USB
-	call keyboard_usb_check_enable
-	branch keyboard_usb_interface_check_power_on
-
-keyboard_usb_check_enable:
-	fetch 9,mem_keyboard_usb_vid_pid
-	store 9,mem_usb_vid_pid
-	setarg keyboard_usb_config_param
-	store 2,mem_cb_usb_config
-	jam USB_INTERFACE_INSERT,mem_usb_vdd_status_current
-	rtn
-
-keyboard_usb_config_param:
-	jam DONGLE_KB_BIND_SUCCESS,mem_usb_keyboard_flag
-	jam 0x01,mem_usb_tx_interval
-	call usb_tx_interval_config
-	call keyboard_usb_vid_pid_config
-	fetch 1,mem_usb_keyboard_flag
-	branch dongle_usb_hid_icon_config+1
-
-keyboard_usb_vid_pid_config:
-	fetch 1,mem_usb_vid_pid
-	rtn blank
-	fetch 1,mem_usb_keyboard_flag
-	beq DONGLE_KB_BIND_SUCCESS,dongle_usb_vid_pid_for_suit
-	branch dongle_usb_vid_pid_for_mouse_only_auto_pair
-
-keyboard_usb_interface_check_power_on:	// last=0, current = insert
-	fetch 1,mem_usb_vdd_status_current
-	beq USB_INTERFACE_INSERT,keyboard_usb_insert
-keyboard_usb_vdd_status_store:	
-	fetch 1,mem_usb_vdd_status_current
-	store 1,mem_usb_vdd_status_last
-	rtn
-keyboard_usb_insert:
-	call keyboard_usb_vdd_status_store
-	setarg 0
-	store 2,mem_24g_pair_timeout
-	store 2,mem_24g_reconn_timeout
-	jam 0,mem_lpm_mode
-	fetch 1,mem_usb_wait_updata_timer
-	call usb_init,blank
-	jam 50,mem_usb_wait_updata_timer
-	rtn
-
-keyboard_usb_isr:
-	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
-	rtnbit0 KEYBOARD_ENABLE_USB
-	fetch 1,mem_device_flag
-	rtnne MODE_USB_DEVICE
-	branch usb_isr
-
-keyboard_usb_mode:
-	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
-	rtnbit0 KEYBOARD_ENABLE_USB
-	fetch 1,mem_device_flag
-	rtnne MODE_USB_DEVICE
-	fetch 1,core_usb_addr
-	store 1,mem_usb_addr
-	rtnbit0 7
-	jam 0,mem_usb_wait_updata_timer
-	setarg 0
-	store 2,mem_device_no_data_timer
-	call keyboard_24g_stop
-	call keyboard_stop_bluetooth_mode
-	call keyboard_motion
-	nrtn user
-	fetch 1,mem_customer_key
-	beq 1,hid_device_push_keyboard_data_to_usb	
-	branch hid_device_push_mouse_data_to_usb
-
-keyboard_usb_tx_kb_normal_data:
-	jam 0,mem_usb_ep1_data
-	arg 9,loopcnt
-	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
-	bbit1 KEYBOARD_ENABLE_MAGIC_KEYBOARD,usb_tx_kb_normal_data+4
-	branch usb_tx_kb_normal_data+2	
-
-keyboard_push_n_key_rollover_key_data_to_usb:
-	call dongle_usb_tx_enable_ep2
-	jam USB_EP2_N_KEY_ROLLOVER,mem_usb_ep2_data
-	setarg KB_N_KEY_ROLLOVER_REPORT_ID
-	store 1,mem_usb_kb_n_key_rollvoer_data
-	arg mem_keyboard_n_key_rollover_data+1,contr
-	arg mem_usb_kb_n_key_rollvoer_data+1,contw
-	arg 14,loopcnt
-	branch memcpy
-
-//////////////////////public///////////////////////////////////////////////////////
-keyboard_ui_ipc_send_event:
-	fetch 1,mem_fifo_temp
-	arg 8,loopcnt
-	arg mem_ipc_fifo_bt2c51,contr
-ui_ipc_fifo_check:
-	ifetcht 1,contr
-	isub temp,null
-	rtn zero
-	loop ui_ipc_fifo_check
-	branch ui_ipc_send_event+3
-
-keyboard_enable_function_flag:
-	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
-	qset1 pdata
-	store KEYBOARD_FLAG_LEN,mem_keyboard_flag
-	rtn
-keyboard_disable_function_flag:
-	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
-	qset0 pdata
-	store KEYBOARD_FLAG_LEN,mem_keyboard_flag
-	rtn
-
-keyboard_bt_discovery_button_down_enable:
-	arg KEYBOARD_BT_DISCOVERY_BUTTON_DOWN_FLAG,queue
-	branch keyboard_enable_function_flag
-keyboard_bt_discovery_button_down_disable:
-	arg KEYBOARD_BT_DISCOVERY_BUTTON_DOWN_FLAG,queue
-	branch keyboard_disable_function_flag
-
-
Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/app_module.prog
===================================================================
--- /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/app_module.prog	(revision 5679)
+++ /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/app_module.prog	(nonexistent)
@@ -1,1390 +0,0 @@
-
-ifdef COMPILE_MODULE
-
-module_init:	
-	branch module_lpm_uart_init,wake
-//	branch module_lpm_init, wake
-	call le_modified_name
-	setarg module_process_idle
-	store 2,mem_cb_idle_process
-	setarg module_process_bb_event
-	store 2,mem_cb_bb_event_process
-	setarg module_lpm_lock
-	store 2,mem_cb_check_wakelock
-	setarg module_hci_cmd_transmit_le_notify
-	store 2,mem_cb_ble_transmit
-	setarg module_le_receive_data
-	store 2,mem_cb_att_write
-	setarg module_bb_event_timer
-	store 2,mem_cb_event_timer
-
-ifdef COMPILE_WECHAT
-	setarg module_wechat_rx_push_data
-	store 2,mem_module_wechat_rx_push_data_cb
-endif
-	bpatch patch0d_4,mem_patch0d
-	call module_lpm_uart_init
-	call module_gpio_init
-	branch module_hci_event_enter_standby_mode
-
-/*
-	function name:uart init by mem
-	input:
-		mem_module_uart_rx_buffer、mem_module_uart_rx_buffer_end
-		mem_module_uart_tx_buffer、mem_module_uart_tx_buffer_end
-		mem_module_uarta_baud_rate
-		bit0 of mem_module_flag
-*/
-module_lpm_uart_init:
-	fetch 1,core_uart_ctrl
-	set0 BIT_UART_CONTROL_ENABLE,pdata
-	store 1,core_uart_ctrl
-	fetch 8,mem_module_uart_rx_buffer
-	call uarta_init_dma_mem
-	fetch uart_baud_len,mem_module_uarta_baud_rate
-	call uarta_init_baud_rate
-	call uart_clock_select_main_freq_crystal
-	jam gpcfg_uart_txd,core_gpio_conf+HCI_UART_TX_GPIO_NUM
-	jam gpcfg_uart_rxd|gpcfg_pullup,core_gpio_conf+HCI_UART_RX_GPIO_NUM
-	jam gpcfg_uart_rts,core_gpio_conf+HCI_UART_RTS_GPIO_NUM
-	jam gpcfg_uart_cts,core_gpio_conf+HCI_UART_CTS_GPIO_NUM
-
-	arg FUN_UART_CONTROL_ENABLE|FUN_UART_CONTROL_SETTING_RATE_BAUD,temp
-	fetch 2,mem_module_flag
-	isolate1 MODULE_FLAG_UART_FLOW_CONTROL,pdata
-	setflag true,BIT_UART_CONTROL_FLOW_CONTROL,temp
-	storet 1,core_uart_ctrl
-	rtn
-
-/*
-	function:init uart & spp clock by lpm wake
-*/
-//module_lpm_init:
-//	branch module_lpm_uart_init
-
-
-
-/*
-	function name:module_gpio_init
-	init connect state & lpm wake up
-*/
-module_gpio_init:
-	fetcht 1,mem_module_connect_state_gpio
-	call gpio_config_output
-	call module_set_conn_pin_low
-	fetcht 1,mem_module_wake_up_gpio
-	branch gpio_config_input
-
-module_lpm_lock:
-	fetcht 1,mem_module_wake_up_gpio
-	call gpio_get_bit
-	nbranch app_put_lpm_wake_lock,true
-	branch app_get_lpm_wake_lock
-
-
-/*
-	function name:chip idle process callback
-	check uart Tx buffer from SPP Credit&check l2cap fifo&check uart rx data
-*/
-module_process_idle:
-	call l2cap_malloc_is_fifo_full
-	nrtn blank
-	branch module_process_check_hci_command_complete
-
-	
-module_process_bb_event:
-	copy regc,pdata
-	beq BT_EVT_LE_CONNECTED,module_process_le_conn
-	beq BT_EVT_LE_DISCONNECTED,module_process_bb_even_le_disconn
-	beq BT_EVT_LE_PAIRING_FAIL,module_hci_event_le_pairing_fail
-	beq BT_EVT_LE_PAIRING_SUCCESS,module_hci_event_le_pairing_success
-	beq BT_EVT_LE_START_ENC,module_hci_event_start_enc
-	beq BT_EVT_LE_PAUSE_ENC,module_hci_event_pause_enc
-	beq BT_EVT_LE_TK_GENERATE,module_hci_event_le_tk
-	beq BT_EVT_STORE_NVRAM,module_hci_event_store_device
-	beq BT_EVT_LE_LTK_LOST,module_process_ble_ltk_lost
-	beq BT_EVT_LE_UPDATE_PHY,module_process_ble_update_phy
-	beq BT_EVT_LE_GET_PASSKEY,module_hci_event_passkey_entry_mode
-ifdef SECURE_CONNECTION
-	beq BT_EVT_LE_GKEY_GENERATE,module_hci_event_gkey_generate
-endif
-	rtn
-
-
-	
-module_process_bb_even_le_disconn:
-	call le_clr_config_more_data
-	jam 0,mem_module_hci_notify_len
-	call module_disconn_start
-	branch module_hci_event_le_disconnect
-
-
-
-	
-module_process_le_conn:
-//	call le_send_att_exchange_mtu_requset
-	call module_conn_start
-	fetch 1,mem_module_le_lpm_mult
-	store 1,mem_lpm_mult
-	branch module_hci_event_le_connect
-
-
-
-module_disconn_start:
-	call module_start_adv_discovery_by_command
-	branch module_set_conn_pin_high
-
-
-module_process_ble_ltk_lost:
-	call le_send_reject_ind
-	branch le_send_smp_security_request
-
-module_process_ble_update_phy:
-	branch module_hci_event_le_update_phy
-
-
-module_set_conn_pin_high:
-	fetcht 1,mem_module_connect_state_gpio
-	branch gpio_out_active
-
-module_conn_start:
-	call module_stop_adv_discovery
-	branch module_set_conn_pin_low
-	
-module_stop_adv_discovery:
-	fetch 1,mem_module_state
-	isolate1 MOUDLE_STATE_BLE_BIT,pdata
-	call app_ble_stop_adv,true
-	rtn
-module_set_conn_pin_low:
-	fetcht 1,mem_module_connect_state_gpio
-	branch gpio_out_inactive
-
-
-/*
-	function name:check hci command complete
-	hci command format:
-	typedef struct HciFormat
-	{
-		uint8_t HciType;
-		uint8_t HciOpcode;
-		uint8_t HciPayloadLen;
-		uint8_t HciPayload[HciPayloadLen];
-	}
-*/
-module_process_check_hci_command_complete:
-	fetch 1,core_uart_status
-	rtnbit1 UART_STATUS_RX_FIFO_EMPTY  //rx no data
-	call uarta_prepare_rx
-	ifetch 1,contru
-	bne 0x01,module_hci_in_excp	//HciType != 0x01
-	fetch 2,core_uart_rxitems
-	sub pdata,2,null
-	rtn positive
-	ifetch 1,contru
-	store 1,mem_module_uart_opcode
-	ifetcht 1,contru
-	copy contru,rega
-	storet 1,mem_module_uart_len
-	add temp,3,temp
-	fetch 2,core_uart_rxitems
-	isub temp,temp
-	nrtn positive
-	jam HCI_DISCARD_PACKET,mem_module_temp_nl_discard_packet
-	call module_hci_cmd_control
-	fetch 1,mem_module_temp_nl_discard_packet
-	rtneq HCI_NOT_DISCARD_PACKET
-	branch module_hci_dicard_packet //discard this packet
-
-module_hci_in_excp:
-	call delay_10ms
-	call module_hci_event_invalid_packet
-	branch module_hci_release_except
-
-
-module_hci_release_except:
-	bpatch patch0d_5,mem_patch0d
-	call uarta_prepare_rx
-	fetch 2,core_uart_rxitems
-	rtn blank
-	iadd contru,contru
-	branch module_hci_dicard_bytes
-
-module_hci_dicard_packet:
-	call uarta_prepare_rx
-	increase 2,contu
-	ifetch 1,contu
-	iadd contu,contu
-module_hci_dicard_bytes:
-	branch uarta_rxdone
-	
-/*********************HCI CONTROL*********************/
-module_hci_cmd_control:
-	bpatch patch0d_6,mem_patch0d
-	fetch 1,mem_module_uart_opcode
-	beq HCI_CMD_SET_LE_ADDR_REQ,module_hci_cmd_set_le_addr
-	beq HCI_CMD_SET_VISIBILITY_REQ,module_hci_cmd_set_visibility	
-	beq HCI_CMD_SET_LE_NAME_REQ,module_hci_cmd_set_le_name
-	beq HCI_CMD_LE_DATA_REQ,module_hci_cmd_receive_le_data
-	beq HCI_CMD_STATUS_IRQ,module_hci_cmd_inquire_status
-//	beq HCI_CMD_SET_UARTCONTROL_REQ,module_hci_cmd_set_uart_control_mode
-	beq HCI_CMD_SET_UART_BAUD_REQ,module_hci_cmd_set_uart_baud
-	beq HCI_CMD_VERSION_REQ,module_hci_cmd_version_request
-	beq HCI_CMD_BLE_DISCONNECT,module_hci_cmd_ble_disconnect
-	beq HCI_CMD_SET_NVRAM_REQ,module_hci_cmd_set_nvram
-//	beq HCI_CMD_CONFIRM_GKEY,module_hci_cmd_confirm_gkey
-	beq HCI_CMD_AUTO_ADV_SCAN,module_hci_cmd_auto_adv
-	beq HCI_CMD_POWER_REQ,module_hci_cmd_power_request
-	beq HCI_CMD_POWER_SET,module_hci_cmd_power_set
-	beq HCI_CMD_PASSKEY_ENTRY,module_hci_cmd_passkey_entry
-//	beq HCI_CMD_SET_GPIO,module_hci_cmd_set_gpio
-//	beq HCI_CMD_READ_GPIO,module_hci_cmd_read_gpio
-	beq HCI_CMD_LE_SET_PAIRING,module_hci_cmd_le_set_pairing_mode
-//	beq HCI_CMD_LE_SET_ADV_DATA,module_hci_cmd_le_set_adv_data
-	beq HCI_CMD_LE_SET_SCAN_DATA,module_hci_cmd_le_set_scan_data
-	beq HCI_CMD_LE_SEND_CONN_UPDATE_REQ,module_hci_cmd_le_send_conn_update_req
-	beq HCI_CMD_LE_SET_ADV_PARM,module_hci_cmd_set_le_adv_parameter
-	beq HCI_CMD_LE_START_PAIRING,module_hci_cmd_le_start_pairing
-	beq HCI_CMD_SET_WAKE_GPIO,module_hci_cmd_set_wake_gpio
-	beq HCI_CMD_SET_TX_POWER,module_hci_cmd_set_tx_power
-	beq HCI_CMD_LE_CONFIRM_GKEY,module_hci_cmd_le_confirm_gkey
-//	beq HCI_CMD_REJECT_JUSTWORK,module_hci_cmd_set_reject_justwork_flag
-	beq HCI_CMD_RESET_CHIP_REQ,module_hci_cmd_reset_chip
-//	beq HCI_CMD_LE_SET_FIXED_PASSKEY,module_hci_cmd_le_set_fixed_passkey
-	beq HCI_CMD_DELETE_CUSTOMIZE_SERVICE,module_hci_cmd_delete_customize_service
-	beq HCI_CMD_ADD_SERVICE_UUID,module_hci_cmd_add_service_uuid
-	beq HCI_CMD_ADD_CHARACTERISTIC_UUID,module_hci_cmd_add_characteristic_uuid
-	beq HCI_CMD_PASSKEY_ENTRY_INPUT,module_hci_cmd_le_passkey_entry_input
-//	beq HCI_CMD_LE_CREAT_CONN,module_hci_cmd_le_create_conn
-//	beq HCI_CMD_BLE_SET_PHY,module_hci_cmd_ble_set_phy
-//	beq HCI_CMD_BLE_READ_CURRENT_PHY,module_hci_cmd_ble_read_current_phy
-//	beq HCI_CMD_BLE_SET_DLE,module_hci_cmd_ble_set_dle
-//	beq HCI_CMD_READ_CHIP_DATA,module_hci_cmd_read_chip_data
-//	beq HCI_CMD_WRITE_CHIP_DATA,module_hci_cmd_write_chip_data
-//ifdef COMPILE_WECHAT
-//	beq HCI_CMD_WECHAT_SEND_DATA,module_hci_cmd_wechat_send_data
-//endif
-//	beq HCI_CMD_CLOSE_LPM,module_hci_cmd_close_lpm
-	branch  module_hci_event_receive_invalid_cmd
-
-/*********************HCI COMMAND*********************/
-
-
-//command opcode 0x01
-module_hci_cmd_set_le_addr:
-	fetch 1,mem_module_uart_len
-	bne 6,module_hci_event_receive_invalid_cmd
-	ifetch 6,contru
-	store 6,mem_le_lap
-	branch module_hci_event_receive_valid_cmd
-
-
-//command opcode 0x02
-module_hci_cmd_set_visibility:
-	fetch 1,mem_module_uart_len
-	bne 1,module_hci_event_receive_invalid_cmd
-	ifetcht 1,contru
-	storet 1,mem_module_bluetooth_stauts_by_command
-	call module_hci_event_receive_valid_cmd
-	fetch 2,mem_ui_state_map
-	rtnbit1 UI_STATE_BLE_CONNECTED
-
-module_start_adv_discovery_by_command:
-moudle_start_adv_by_command:
-	fetch 1,mem_module_state
-	isolate1 MOUDLE_STATE_BLE_BIT,pdata
-	nrtn true
-	fetcht 1,mem_module_bluetooth_stauts_by_command
-	isolate1 2,temp
-	branch app_ble_start_adv,true
-	branch app_ble_stop_adv
-
-
-
-//command opcode 0x04
-module_hci_cmd_set_le_name:
-	arg 29,pdata
-	arg mem_le_name_len,contw
-	call module_hci_cmd_receive_store_mem
-	branch le_modified_name
-
-
-
-//command opcode 0x09
-module_hci_cmd_receive_le_data:
-	fetch 2,mem_ui_state_map
-	bbit0 UI_STATE_BLE_CONNECTED,module_hci_event_receive_invalid_cmd
-	call module_check_ble_encrypt_state
-	branch module_hci_event_receive_invalid_cmd,user
-	jam HCI_NOT_DISCARD_PACKET,mem_module_temp_nl_discard_packet 
-	fetch 2,mem_module_flag
-	bbit1 MODULE_FLAG_BLE_DATA_FINISH,module_hci_cmd_receive_le_data_finish
-	fetch 1,mem_module_hci_notify_len
-	nrtn blank
-	jam HCI_DISCARD_PACKET,mem_module_temp_nl_discard_packet 
-	ifetch 2,contru		//handle
-	store 2,mem_module_hci_notify_handle
-	storer contru,2,mem_module_hci_nofiy_addr
-	fetch 1,mem_module_uart_len
-	pincrease -2
-	nbranch module_hci_event_receive_invalid_cmd,positive
-	branch module_hci_event_receive_invalid_cmd,zero
-	store 1,mem_module_hci_notify_len
-	fetcht 2,mem_module_hci_notify_handle
-	increase -1,temp
-	call le_att_get_handle_ptr2
-	branch module_hci_cmd_transmit_handle_error,blank
-	ifetcht 4,contr		//flag
-	setarg 0x01280302
-	isub temp,null
-	nbranch module_hci_cmd_transmit_handle_error,zero
-	ifetch 1,contr
-	store 1,mem_module_hci_notify_type
-	and_into 0x30,pdata
-	branch module_hci_cmd_transmit_handle_error,blank
-	jam HCI_NOT_DISCARD_PACKET,mem_module_temp_nl_discard_packet
-	call le_set_config_more_data
-	call module_hci_cmd_transmit_le_notify
-	call module_hci_cmd_transmit_le_notify
-	call module_hci_cmd_transmit_le_notify
-	fetch 2,mem_module_flag
-	rtnbit0 MODULE_FLAG_BLE_DATA_FINISH
-module_hci_cmd_receive_le_data_finish:
-	jam HCI_DISCARD_PACKET,mem_module_temp_nl_discard_packet 
-	call module_clear_le_tx_data_flag
-	branch module_hci_event_receive_valid_cmd
-
-module_hci_cmd_transmit_handle_error:
-	jam 0,mem_module_hci_notify_len
-	jam HCI_DISCARD_PACKET,mem_module_temp_nl_discard_packet 
-	call module_clear_le_tx_data_flag
-	branch module_hci_event_receive_invalid_cmd
-
-module_hci_cmd_transmit_le_notify:
-	fetch 1,mem_module_hci_notify_len
-	rtn blank
-	call le_fifo_check_nearly_full
-	nrtn blank				//no fifo
-	call module_get_le_remote_mtu
-	bpatch patch0d_7,mem_patch0d
-	fetch 2,mem_le_local_mtu
-	call not_greater_than
-	copy pdata,temp
-	fetch 1,mem_le_l2cap_att_states
-	rtnbit1 BLE_L2CAP_RECV_CONFIRMATION_PACKET
-	add temp,-3,pdata		//sub handle and opcode
-	arg 251,temp
-	call not_greater_than
-	fetcht 1,mem_module_hci_notify_len
-	call not_greater_than
-	copy pdata,rega
-	copy temp,pdata
-	isub rega,pdata
-	store 1,mem_module_hci_notify_len
-	call module_hci_cmd_transmit_le_notify_malloc_l2cap
-	fetch 2,mem_module_hci_nofiy_addr
-	copy pdata,contru
-	copy rega,loopcnt
-	call uart_copy_rx_bytes_fast
-	copy contru,pdata
-	store 2,mem_module_hci_nofiy_addr
-	fetch 1,mem_module_hci_notify_len
-	nrtn blank
-	branch module_set_le_tx_data_flag
-
-module_hci_cmd_transmit_le_notify_malloc_l2cap:
-	fetcht 2,mem_module_hci_notify_handle
-	fetch 1,mem_module_hci_notify_type
-	bbit1 BIT_CHARACTERISTIC_INDICATE,le_att_malloc_tx_indication
-	bbit1 BIT_CHARACTERISTIC_NOTIFY,le_att_malloc_tx_notify
-	rtn
-
-
-//output: temp is master mtu
-module_get_le_remote_mtu:
-	arg 0x17,temp
-	fetch 2,mem_module_flag
-	rtnbit1 MODULE_FLAG_BLE_SEND_MTU23
-	fetcht 2,mem_le_remote_mtu
-	rtn
-
-module_check_ble_encrypt_state:
-	fetch 2,mem_module_flag
-	bbit1 MODULE_FLAG_BLE_DATA_ENCRYPT,le_check_encrypt_state
-	branch disable_user
-	
-
-//command opcode 0x0b
-module_hci_cmd_inquire_status:
-	branch module_hci_event_status_res
-
-
-
-
-//command opcode 0x0e
-//module_hci_cmd_set_uart_control_mode:
-//	ifetch 1,contru
-//	fetcht 1,mem_module_flag
-//	nsetflag blank,MODULE_FLAG_UART_FLOW_CONTROL,temp
-//	storet 1,mem_module_flag
-//	fetcht 1,core_uart_ctrl
-//	nsetflag blank,BIT_UART_CONTROL_FLOW_CONTROL,temp
-//	storet 1,core_uart_ctrl
-// 	branch module_hci_event_receive_valid_cmd
-
- 	
-//command opcode 0x0f
-module_hci_cmd_set_uart_baud:
-	fetchr loopcnt,1,mem_module_uart_len
-	call string2dec_from_uart
-	call uart_calc_baud_rate_config
-	store uart_baud_len,mem_module_uarta_baud_rate
-	call module_hci_event_receive_valid_cmd
-	call wait_uarttx
-	fetch uart_baud_len,mem_module_uarta_baud_rate
-	branch uarta_init_baud_rate
-
-
-//command opcode 0x10
-module_hci_cmd_version_request:
-	arg 2,rega
-	arg mem_soft_version_num,regb
-	arg 0,temp
-	branch module_hci_event_set_cmd
-
-
-	
-//command opcode 0x12
-module_hci_cmd_ble_disconnect:
-	fetch 2,mem_ui_state_map
-	bbit0 UI_STATE_BLE_CONNECTED,module_hci_event_receive_invalid_cmd
-module_hci_cmd_ble_disconnect_doing:
-	call module_hci_event_receive_valid_cmd
-	branch app_ble_disconnect
-
-
-
-
-//command opcode 0x26
-module_hci_cmd_set_nvram:
-	fetchr loopcnt,1,mem_module_uart_len
-	fetch 2,mem_nv_data_ptr
-	icopy contw
-	call uart_copy_rx_bytes_fast
-	branch module_hci_event_receive_valid_cmd
-
-
-//command opcode 0x28
-//module_hci_cmd_confirm_gkey:
-//	fetch 2,mem_ui_state_map
-//	bbit1 UI_STATE_BLE_CONNECTED,module_hci_cmd_le_confirm_gkey
-//	branch module_hci_event_receive_invalid_cmd
-
-
-//command opcode 0x2a
-module_hci_cmd_auto_adv:
-	arg 0x40,loopcnt
-	arg mem_le_adv_data_len,contw
-	call clear_mem
-	setarg 0
-	store 1,mem_regb
-	copy rega,contru
-module_hci_cmd_auto_adv_loop:
-	copy contru,pdata
-	store 2,mem_regc
-	call module_hci_cmd_auto_adv_adv_analys
-
-	fetch 1,mem_regb
-	fetcht 1,mem_temp
-	increase 1,temp
-	iadd temp,pdata
-	store 1,mem_regb
-
-	sub pdata,31,null
-	nbranch module_hci_cmd_auto_adv_store_scan,positive
-module_hci_cmd_auto_adv_store_adv:
-	fetcht 1,mem_le_adv_data_len
-	setarg mem_le_adv_data
-	iadd temp,pdata
-	store 2,mem_contw
-	fetcht 1,mem_temp
-	increase 1,temp
-	fetch 1,mem_le_adv_data_len
-	iadd temp,pdata
-	store 1,mem_le_adv_data_len
-	branch module_hci_cmd_auto_adv_store_common
-module_hci_cmd_auto_adv_store_scan:
-	fetcht 1,mem_le_scan_data_len
-	setarg mem_le_scan_data
-	iadd temp,pdata
-	store 2,mem_contw
-	fetcht 1,mem_temp
-	increase 1,temp
-	fetch 1,mem_le_scan_data_len
-	iadd temp,pdata
-	store 1,mem_le_scan_data_len
-module_hci_cmd_auto_adv_store_common:
-	fetch 2,mem_contw
-	copy pdata,contw
-	fetch 2,mem_regc
-	copy pdata,contru
-
-	copy temp,loopcnt
-	call uart_copy_rx_bytes_fast
-
-	fetch 1,mem_module_uart_len
-	fetcht 1,mem_regb
-	isub temp,null
-	nbranch  module_hci_cmd_auto_adv_loop,zero
-	branch module_hci_event_receive_valid_cmd
-
-//block of adv len in mem_temp
-module_hci_cmd_auto_adv_adv_analys:
-	ifetch 1,contru
-	store 1,mem_temp
-	ifetch 1,contru
-	store 1,mem_rega
-	rtn
-
-
-//command opcode 0x2b
-module_hci_cmd_power_request:
-	arg 0,temp
-	arg 2,rega
-	fetch 2,mem_module_vdd_quotient
-	store 2,mem_event_cmd_response_content
-	arg mem_event_cmd_response_content,regb
-	branch module_hci_event_set_cmd
-
-
-//command opcode 0x2c
-module_hci_cmd_power_set:
-	fetch 1,mem_module_uart_len
-	bne 1,module_hci_event_receive_invalid_cmd
-	ifetch 1,contru
-	store 1,mem_module_read_vdd_flag
-	setarg 0x00
-	store 2,mem_module_vdd_quotient
-	branch module_hci_event_receive_valid_cmd
-
-
-//command opcode 0x30
-module_hci_cmd_passkey_entry:
-	fetch 1,mem_module_uart_len
-	bne 4,module_hci_event_receive_invalid_cmd
-	fetch 2,mem_ui_state_map
-	bbit1 UI_STATE_BLE_CONNECTED,module_hci_cmd_le_passkey_entry_input
-	branch module_hci_event_receive_invalid_cmd
-
-
-
-//command opcode 0x31
-//module_hci_cmd_set_gpio:
-//	fetch 1,mem_module_uart_len
-//	bne 3,module_hci_event_receive_invalid_cmd
-//	ifetch 1,contru
-//	beq HCI_CMD_CONFIG_GPIO_INPUT,module_set_gpio_input
-//	beq HCI_CMD_CONFIG_GPIO_OUTPUT,module_set_gpio_output
-//	branch module_hci_event_receive_invalid_cmd
-
-//module_set_gpio_input:
-//	call module_hci_event_receive_valid_cmd
-//	ifetcht 1,contru
-//	ifetch 1,contru
-//	beq GPIO_INPUT_HIGH_IMPEDANCE,gpio_set_high_impedance
-//	nsetflag blank,7,temp
-//	branch gpio_config_input
-
-//module_set_gpio_output:
-//	call module_hci_event_receive_valid_cmd
-//	ifetcht 1,contru
-//	ifetch 1,contru	
-//	branch gpio_out_active,blank
-//	branch gpio_out_inactive
-
-
-//command opcode 0x32
-//module_hci_cmd_read_gpio:
-//	fetch 1,mem_module_uart_len
-//	bne 1,module_hci_event_receive_invalid_cmd
-//	ifetcht 1,contru
-//	call gpio_get_bit
-//	setarg 0x0
-//	nsetflag true,0,pdata
-//	arg 1,rega
-//	store 2,mem_event_cmd_response_content
-//	arg mem_event_cmd_response_content,regb
-//	arg 0,temp
-//	branch module_hci_event_set_cmd
-
-
-//command opcode 0x33
-module_hci_cmd_le_set_pairing_mode:
-	ifetch 1,contru
-ifdef SECURE_CONNECTION
-	copy pdata,temp
-	beq LE_PAIRING_MODE_SECURE_CONNECT_JUSTWORK,module_le_set_pairing_mode_secure_justwork
-	beq LE_PAIRING_MODE_SECURE_CONNECT_NUMERIC,module_le_set_pairing_mode_secure_numeric
-	beq LE_PAIRING_MODE_SECURE_CONNECT_PASSKEY,module_le_set_pairing_mode_secure_passkey
-	beq LE_PAIRING_MODE_SECURE_CONNECT_PASSKEY_RES_INPUT,module_le_set_pairing_mode_secure_passkey_res_input
-endif 
-	store 1,mem_le_pairing_mode
-ifdef SECURE_CONNECTION
-	call sc_reset
-	call le_secure_connection_disable
-endif 
-	fetch 1,mem_le_pairing_mode
-	beq LE_PAIRING_MODE_NONE, module_le_set_no_pairing
-	beq LE_PAIRING_MODE_LAGACY_JUSTWORK,module_le_set_pairing_mode_lagacy_just_work
-	beq LE_PAIRING_MODE_LAGACY_PASSKEY,module_le_set_pairing_mode_lagacy_passkey
-	beq LE_PAIRING_MODE_LAGACY_PASSKEY_RES_INPUT,module_le_set_pairing_mode_lagacy_passkey_res_input
-	branch module_hci_event_receive_invalid_cmd
-	
-ifdef SECURE_CONNECTION		
-module_le_set_pairing_mode_secure_justwork:
-	storet 1,mem_le_pairing_mode
-	call le_secure_connection_enable
-	jam FLAG_LE_BONDING_MITM_SECURE,mem_le_pres_auth
-	branch module_le_set_noinputnooutput
-module_le_set_pairing_mode_secure_numeric:
-	storet 1,mem_le_pairing_mode
-	call le_secure_connection_enable
-	jam FLAG_LE_BONDING_MITM_SECURE,mem_le_pres_auth
-	jam FLAG_IOCAP_DISPLAYYESNO,mem_le_pres_iocap
-	branch module_hci_event_receive_valid_cmd	
-module_le_set_pairing_mode_secure_passkey:	
-	storet 1,mem_le_pairing_mode
-	call le_secure_connection_enable
-	jam FLAG_LE_BONDING_MITM_SECURE,mem_le_pres_auth
-	branch module_le_set_displayonly
-module_le_set_pairing_mode_secure_passkey_res_input:
-	storet 1,mem_le_pairing_mode
-	call le_secure_connection_enable
-	jam FLAG_LE_BONDING_MITM_SECURE,mem_le_pres_auth
-	branch module_le_set_keboadonly
-endif 
-
-
-module_le_set_no_pairing:
-	jam FLAG_LE_NO_BONDING_NO_MITM,mem_le_pres_auth
-module_le_set_noinputnooutput:	
-	jam FLAG_IOCAP_NOINPUTNOOUTPUT,mem_le_pres_iocap
-	branch module_hci_event_receive_valid_cmd	
-module_le_set_pairing_mode_lagacy_just_work:
-	jam FLAG_LE_BONDING_NO_MITM,mem_le_pres_auth
-	branch module_le_set_noinputnooutput
-module_le_set_pairing_mode_lagacy_passkey:
-	jam FLAG_LE_BONDING_MITM,mem_le_pres_auth
-	branch module_le_set_displayonly
-module_le_set_pairing_mode_lagacy_passkey_res_input:
-	jam FLAG_LE_BONDING_MITM,mem_le_pres_auth
-	branch module_le_set_keboadonly
-module_le_set_keboadonly:	
-	jam FLAG_IOCAP_KEYBOARDONLY,mem_le_pres_iocap
-	branch module_hci_event_receive_valid_cmd	
-module_le_set_displayonly:	
-	jam FLAG_IOCAP_DISPLAYONLY,mem_le_pres_iocap
-	branch module_hci_event_receive_valid_cmd	
-
-
-//command opcode 0x34
-//module_hci_cmd_le_set_adv_data:
-//	arg 31,pdata
-//	arg mem_le_adv_data_len,contw
-//	branch module_hci_cmd_receive_store_mem
-
-
-//command opcode 0x35
-module_hci_cmd_le_set_scan_data:
-	arg 31,pdata
-	arg mem_le_scan_data_len,contw
-	branch module_hci_cmd_receive_store_mem
-
-/*
-	input:contw is store mem ptr
-	pdata is max length
-*/
-module_hci_cmd_receive_store_mem:
-	fetchr loopcnt,1,mem_module_uart_len
-	isub loopcnt,null
-	nbranch module_hci_event_receive_invalid_cmd,positive
-	istorer loopcnt,1,contw
-	call uart_copy_rx_bytes_fast
-	branch module_hci_event_receive_valid_cmd	
-
-	
-//command opcode 0x36
-module_hci_cmd_le_send_conn_update_req:
-	fetch 2,mem_ui_state_map
-	bbit0 UI_STATE_BLE_CONNECTED,module_hci_event_receive_invalid_cmd
-	fetch 1,mem_module_uart_len
-	bne 0x08,module_hci_event_receive_invalid_cmd
-	ifetch 8,contru
-	store 8,mem_le_interval_min
-	jam BT_CMD_LE_UPDATE_CONN,mem_fifo_temp
-	call  ui_ipc_send_cmd
-	branch module_hci_event_receive_valid_cmd
-
-
-//command opcode 0x37
-module_hci_cmd_set_le_adv_parameter:
-	ifetch 2,contru
-	store 2,mem_le_adv_interval
-	storet 1,mem_lpm_overhead
-	iadd temp,pdata
-	store 2,mem_lpm_interval
-	branch module_hci_event_receive_valid_cmd
-	
-	
-//command opcode 0x38
-module_hci_cmd_le_start_pairing:
-	fetch 1,mem_le_pairing_mode
-	branch module_hci_event_receive_invalid_cmd,blank
-	fetch 1,mem_le_pairing_state
-	bne FLAG_LE_PAIRING_NULL,module_hci_event_receive_invalid_cmd
-	fetch 1,mem_le_enc_state
-	bne FLAG_LE_ENC_NULL,module_hci_event_receive_invalid_cmd
-	call check_51cmd_le_smp_sec_req
-	branch module_hci_event_receive_valid_cmd	
-
-
-//command opcode 0x40
-module_hci_cmd_set_wake_gpio:
-	fetch 1,mem_module_uart_len
-	bne 5,module_hci_event_receive_invalid_cmd
-	ifetch 1,contru
-	store 1,mem_module_mcu_wake_pin
-	ifetch 4,contru
-	store 4, mem_module_mcu_wake_delay_us
-	fetcht 1,mem_module_mcu_wake_pin
-	call gpio_config_output
-	call module_set_mcu_wake_pin_low
-	branch module_hci_event_receive_valid_cmd
-	
-
-//command opcode 0x42
-module_hci_cmd_set_tx_power:
-	fetch 1,mem_module_uart_len
-	bne 0x01,module_hci_event_receive_invalid_cmd
-	ifetch 1,contru
-	store 1,mem_tx_power
-	branch module_hci_event_receive_valid_cmd
-
-
-//command opcode 0x48
-module_hci_cmd_le_confirm_gkey:
-	ifetch 1,contru
-	beq 0x01,module_hci_cmd_le_confirm_gkey_fail
-	fetch 1,mem_le_secure_connect_state
-	beq LE_SC_STAT_SEND_PUBLIC_KEY,module_hci_cmd_le_confirm_gkey_ok
-	beq LE_SC_STAT_RECEIVE_DHKEY,module_hci_cmd_le_confirm_gkey_ok
-	beq LE_SC_STAT_WAIT_CONFIRM_GKEY,module_hci_cmd_le_confirm_gkey_ok
-	branch module_hci_event_receive_invalid_cmd		
-module_hci_cmd_le_confirm_gkey_ok:
-	jam FLAG_LE_SC_CONFRIM_GKEY_OK,mem_le_sc_confirm_gkey_flag
-	branch module_hci_event_receive_valid_cmd	
-	
-module_hci_cmd_le_confirm_gkey_fail:
-	call le_send_pairing_confirm_value_failed
-	branch module_hci_event_receive_valid_cmd
-
-
-
-
-//command opcode 0x51
-module_hci_cmd_reset_chip:
-	call module_hci_event_receive_valid_cmd
-	call wait_uarttx
-	jam 0x01,core_reset // rest YC1021
-	branch assert
-
-
-//command opcode 0x61
-//module_hci_cmd_le_set_fixed_passkey:
-//	fetch 1,mem_module_uart_len
-//	beq 0,module_hci_event_receive_invalid_cmd
-//	ifetch 1,contru
-//	branch module_hci_cmd_le_set_random_passkey,blank
-//	fetch 1,mem_module_uart_len
-//	bne 5,module_hci_event_receive_invalid_cmd
-//	ifetch 4,contru
-//	arg 1000000,temp
-//	isub temp,null
-//	branch module_hci_event_receive_invalid_cmd,positive
-//	store 4,mem_le_tk
-//	call le_set_config_fixed_tk
-//	branch module_hci_event_receive_valid_cmd
-
-//module_hci_cmd_le_set_random_passkey:
-//	call le_clr_config_fixed_tk
-//	branch module_hci_event_receive_valid_cmd
-
-
-//command opcode 0x76
-module_hci_cmd_delete_customize_service:
-	arg 0x0001,temp
-	call le_att_get_handle_ptr2
-	add contr,-2,contw
-	setarg 0x0000
-	istore 2,contw
-	branch module_hci_event_receive_valid_cmd
-
-
-//command opcode 0x77
-module_hci_cmd_add_service_uuid:
-	call module_hci_cmd_add_service_uuid_set_uuid
-	call uart_copy_rx_bytes_len_data
-	setarg 0x0000
-	istore 2,contw
-	branch module_hci_event_uuid_handle
-
-
-
-//command opcode 0x78
-module_hci_cmd_add_characteristic_uuid:
-	ifetch 1,contru	//Characteristic
-	call module_hci_cmd_add_characteristic_uuid_set_handle
-	call module_hci_cmd_add_characteristic_uuid_set_uuid
-	branch module_hci_event_uuid_handle
-
-
-module_hci_cmd_add_service_uuid_set_uuid:
-	call le_att_creat_new_handle
-	setarg 0x280002
-	istore 3,contw
-	rtn
-
-
-module_hci_cmd_add_characteristic_uuid_set_handle:
-	store 1,mem_pdatatemp
-	call le_att_creat_new_handle
-	setarg 0x01280302
-	istore 4,contw
-	fetch 1,mem_pdatatemp
-	istore 3,contw
-	rtn
-
-
-module_hci_cmd_add_characteristic_uuid_set_uuid:
-	call le_att_get_last_handle
-	ifetch 1,contru
-	and pdata,0x1f,loopcnt
-	copy pdata,rega
-	isolate1 BIT_OF_WRITE_AUTHENTICATED,rega
-	setflag true,BIT_OF_ATT_HANDLE_WRITE_AUTHENTICATED,temp
-	isolate1 BIT_OF_READ_AUTHENTICATED,rega
-	setflag true,BIT_OF_ATT_HANDLE_READ_AUTHENTICATED,temp
-	istoret 2,contw
-	copy loopcnt,pdata
-	istore 1,contw
-	call uart_copy_rx_bytes
-	call uart_copy_rx_bytes_len_data		//data
-	setarg 0
-	istore 2,contw
-	and temp,0xff,temp
-	increase -1,temp
-	call le_att_get_handle_ptr2
-	add contr,4,contr
-	ifetch 1,contr		//characteristic data
-	bbit1 BIT_CHARACTERISTIC_NOTIFY,module_hci_cmd_add_characteristic_uuid_set_ccc_uuid
-	bbit1 BIT_CHARACTERISTIC_INDICATE,module_hci_cmd_add_characteristic_uuid_set_ccc_uuid
-	increase 1,temp
-	rtn
-
-
-module_hci_cmd_add_characteristic_uuid_set_ccc_uuid:
-	call le_att_get_last_handle
-	isolate1 BIT_OF_NOTIFY_AUTHENTICATED,rega
-	setflag true,BIT_OF_ATT_HANDLE_WRITE_AUTHENTICATED,temp
-	istoret 2,contw
-	setarg 0x02290202
-	istore 8,contw
-	increase -1,temp
-	rtn
-
-
-le_att_creat_new_handle:
-	call le_att_get_last_handle
-	istoret 2,contw
-	rtn
-
-
-uart_copy_rx_bytes_len_data:
-	ifetch 1,contru
-	copy pdata,loopcnt
-	istore 1,contw
-	branch uart_copy_rx_bytes
-
-
-//command opcode 0x7a
-module_hci_cmd_le_passkey_entry_input:
-	fetch 1,mem_le_pairing_state
-	bne FLAG_LE_PAIRING_RECEIVE_PAIRING_CONFIRM,module_hci_event_receive_invalid_cmd
-	fetch 1,mem_le_pairing_mode
-	beq LE_PAIRING_MODE_LAGACY_PASSKEY_RES_INPUT,module_hci_cmd_passkey_entry_res_input
-	beq LE_PAIRING_MODE_SECURE_CONNECT_PASSKEY_RES_INPUT,module_hci_cmd_passkey_entry_sc_res_input
-	branch module_hci_event_receive_invalid_cmd
-
-module_hci_cmd_passkey_entry_sc_res_input:
-	jam LE_SP_FLAG_COMMIT_256,mem_le_secure_connect_flag
-	jam LE_SC_STAT_PASSKEY_WAIT_CONFIRM,mem_le_secure_connect_state	
-	branch module_hci_cmd_receive_ble_passkey
-
-module_hci_cmd_receive_ble_passkey:
-	ifetch 4,contru
-	store 4,mem_le_tk
-	branch module_hci_event_receive_valid_cmd
-	
-module_hci_cmd_passkey_entry_res_input:
-	call module_hci_cmd_receive_ble_passkey
-	branch le_send_smp_pairing_confirm
-
-
-//command opcode 0x7b
-//module_hci_cmd_le_create_conn:
-//	ifetch 6,contru
-//	store 6,mem_le_conn_peer_addr
-//	jam hci_cmd_le_create_conn,mem_cmd_le_create_conn
-//	jam ON,mem_le_conn_flag
-//	jam ON,mem_le_scan_enable
-//	branch module_hci_event_receive_valid_cmd
-	
-
-
-//command opcode 0x90
-//module_hci_cmd_ble_set_phy:
-//	fetch 1,mem_module_uart_len
-//	bne 2,module_hci_event_receive_invalid_cmd
-//	ifetcht 2,contru
-//	call le_set_phys
-//	branch module_hci_event_receive_valid_cmd
-
-
-//command opcode 0x91
-//module_hci_cmd_ble_read_current_phy:
-//	arg 0,temp
-//	arg 2,rega
-//	arg mem_context+coffset_le_rx_phy,regb
-//	branch module_hci_event_set_cmd
-
-
-//command opcode 0x92
-//module_hci_cmd_ble_set_dle:
-//	fetch 1,mem_module_uart_len
-//	bne 8,module_hci_event_receive_invalid_cmd
-//	ifetch 8,contru
-//	call le_set_dle
-//	branch module_hci_event_receive_valid_cmd
-
-
-//command opcode 0x93
-//module_hci_cmd_read_chip_data:
-//	ifetchr rega,1,contru
-//	ifetchr regb,2,contru
-//	arg 0,temp
-//	branch module_hci_event_set_cmd
-
-
-//command opcode 0x94
-//module_hci_cmd_write_chip_data:
-//	fetchr loopcnt,1,mem_module_uart_len
-//	increase -2,loopcnt
-//	ifetch 2,contru
-//	copy pdata,contw
-//	call uart_copy_rx_bytes_fast
-//	branch module_hci_event_receive_valid_cmd
-
-//ifdef COMPILE_WECHAT
-//command opcode 0x95
-//module_hci_cmd_wechat_send_data:
-//	fetch 2,mem_ui_state_map
-//	bbit0 UI_STATE_BLE_CONNECTED,module_hci_event_receive_invalid_cmd
-//	fetchr loopcnt,1,mem_module_uart_len
-//	arg mem_module_wechat_local_data_buffer,contw
-//	call uart_copy_rx_bytes_fast
-//	fetchr regb,1,mem_module_uart_len
-//	arg mem_module_wechat_local_data_buffer,rega
-//	call wechat_air_sync_send_wechat_packet
-//	jam HCI_NOT_DISCARD_PACKET,mem_module_temp_nl_discard_packet 
-//	rtn user
-//	jam HCI_DISCARD_PACKET,mem_module_temp_nl_discard_packet 
-//	branch module_hci_event_receive_valid_cmd
-//endif
-
-
-//command opcode 0xff
-//module_hci_cmd_close_lpm:
-//	jam 0,mem_lpm_mode
-//	branch module_hci_event_receive_valid_cmd
-	
-
-/*********************HCI EVENT*********************/
-
-module_hci_event_receive_invalid_cmd:
-	arg 1,temp
-	arg 0,rega
-	branch module_hci_event_set_cmd
-
-
-module_hci_event_receive_valid_cmd:
-	arg 0,temp
-	arg 0,rega
-	branch module_hci_event_set_cmd
-
-
-//event opcode 0x02
-module_hci_event_le_connect:
-	jam  HCI_EVENT_LE_CONN_REP,mem_module_uart_opcode
-	branch module_hci_event_enter_standby_mode_len0
-
-
-
-//event opcode 0x05
-module_hci_event_le_disconnect:
-	jam  HCI_EVENT_LE_DIS_REP,mem_module_uart_opcode
-	branch module_hci_event_enter_standby_mode_len0
-
-
-//event opcode 0x06
-//input:
-//	temp: success 0; fail 1
-//	rega:Response Content length
-//	regb:Response Content address
-module_hci_event_set_cmd:
-	fetch 1,mem_module_uart_opcode
-	copy pdata,regc
-	jam  HCI_EVENT_CMD_RES,mem_module_uart_opcode
-	setarg 2
-	iadd rega,pdata
-	call module_hci_prepare_tx
-	copy regc,pdata
-	istore 1,contwu
-	istoret 1,contwu
-	copy rega,loopcnt
-	copy regb,contr
-	call uart_copy_tx_bytes
-	branch module_hci_transmit_tx
-
-
-
-
-//event opcode 0x08
-//loopcnt pdata is data length
-module_hci_event_receive_le_data:
-	jam HCI_EVENT_LE_DATA_REP,mem_module_uart_opcode
-	add loopcnt,2,pdata
-	call module_hci_prepare_tx
-	fetch 2,mem_module_le_rx_data_handle // Attribute handle
-	istore 2,contwu
-	fetch 2,mem_module_le_rx_data_address
-	icopy contr
-	call uart_copy_tx_bytes_fast
-	copy contr,pdata
-	store 2,mem_module_le_rx_data_address
-	branch module_hci_transmit_tx
-
-
-//event opcode 0x09
-module_hci_event_enter_standby_mode:
-	jam HCI_EVENT_STANDBY_REP,mem_module_uart_opcode
-module_hci_event_enter_standby_mode_len0:
-	setarg 0
-	call module_hci_prepare_tx
-	branch module_hci_transmit_tx
-
-
-//event opcode 0x0a
-module_hci_event_status_res:
-	jam HCI_EVENT_STATUS_RES,mem_module_uart_opcode
-	setarg 1
-	call module_hci_prepare_tx
-	
-	call module_hci_read_bt_status
-	
-	fetch 2,mem_ui_state_map	
-	arg UI_STATE_BLE_CONNECTED,queue
-	qisolate1 pdata
-	setflag true,5,temp	
-	
-
-	
-	istoret 1,contwu
-	branch module_hci_transmit_tx
-
-//	temp: bit0 3.0 inquiry;bit1 3.0 scan;bit2 ble adv;
-
-module_hci_read_bt_status:
-	arg 0,temp
-	fetch 1,mem_le_adv_enable
-	arg 0,queue
-	qisolate1 pdata
-	setflag true,2,temp	
-	rtn
-
-
-//event opcode 0x0d
-module_hci_event_store_device:
-	jam HCI_EVENT_NVRAM_REP,mem_module_uart_opcode
-	fetch 1,mem_nv_data_number
-	mul32 pdata,34,pdata
-	icopy loopcnt
-	call module_hci_prepare_tx
-	fetch 2,mem_nv_data_ptr
-	icopy contr
-	call uart_copy_tx_bytes_fast
-	branch module_hci_transmit_tx
-
-ifdef SECURE_CONNECTION
-//event opcode 0x0e
-module_hci_event_gkey_generate:
-	jam HCI_EVENT_GKEY,mem_module_uart_opcode
-	setarg 4
-	call module_hci_prepare_tx
-	fetch 4,mem_gkey
-	istore 4,contwu
-	branch module_hci_transmit_tx
-endif
-
-//event opcode 0x0f
-module_hci_event_invalid_packet:
-	jam HCI_EVENT_INVALID_PACKET,mem_module_uart_opcode
-	fetch 2,core_uart_rxitems
-	arg 0x40,temp
-	call not_greater_than
-	copy pdata,rega
-	copy pdata,loopcnt
-	call uarta_prepare_rx
-	arg mem_module_rx_error_data_buffer,contw
-	call uart_copy_rx_bytes_fast
-	copy rega,pdata
-	copy rega,loopcnt
-	call module_hci_prepare_tx
-	arg mem_module_rx_error_data_buffer,contr
-	call uart_copy_tx_bytes_fast
-	branch module_hci_transmit_tx
-
-
-//event opcode 0x10
-module_hci_event_passkey_entry_mode:
-	jam  HCI_EVENT_GET_PASSKEY,mem_module_uart_opcode
-	branch module_hci_event_enter_standby_mode_len0
-
-
-//event opcode 0x11
-module_hci_event_le_tk:
-	jam HCI_EVENT_LE_TK,mem_module_uart_opcode
-	setarg 4
-	call module_hci_prepare_tx
-	fetch 4,mem_le_tk
-	istore 4,contwu
-	branch module_hci_transmit_tx
-
-
-//event opcode 0x14
-module_hci_event_le_pairing_fail:
-	arg FLAG_BLE_PAIRING_FAIL,rega
-	branch module_hci_event_pairing_completed
-
-module_hci_event_le_pairing_success:
-	arg FLAG_BLE_PAIRING_SUCCESS,rega
-	branch module_hci_event_pairing_completed
-
-
-module_hci_event_pairing_completed:
-	jam HCI_EVENT_LE_PAIRING_STATE,mem_module_uart_opcode
-	setarg 2
-	call module_hci_prepare_tx
-	copy rega,pdata
-	istore 2,contwu
-	branch module_hci_transmit_tx
-
-
-//event opcode 0x15
-module_hci_event_pause_enc:
-	arg FLAG_EVENT_PAUSE_ENC,regc
-	branch module_hci_event_enc
-
-module_hci_event_start_enc:
-	arg FLAG_EVENT_START_ENC,regc
-
-module_hci_event_enc:
-	jam HCI_EVENT_LE_ENCRYPTION_STATE,mem_module_uart_opcode
-	setarg 1
-	call module_hci_prepare_tx
-	copy regc,pdata
-	istore 1,contwu
-	branch module_hci_transmit_tx
-
-
-
-//event opcode 0x29
-//input:temp uuid number
-module_hci_event_uuid_handle:
-	storet 2,mem_temp
-	jam HCI_EVENT_UUID_HANDLE,mem_module_uart_opcode
-	setarg 2
-	call module_hci_prepare_tx
-	fetcht 2,mem_temp
-	istoret 2,contwu
-	branch module_hci_transmit_tx
-
-
-//event opcode 0x2B
-module_hci_event_le_input_passkey:
-	jam HCI_EVENT_LE_INPUT_GKEY,mem_module_uart_opcode
-	branch module_hci_event_enter_standby_mode_len0
-
-
-//event opcode 0x40
-module_hci_event_le_update_phy:
-	jam HCI_BLE_UPDATE_PHY_EVENT,mem_module_uart_opcode
-	setarg 2
-	call module_hci_prepare_tx
-	fetch 2,mem_context+coffset_le_rx_phy
-	istore 2,contwu
-	branch module_hci_transmit_tx
-
-ifdef COMPILE_WECHAT
-//event opcode 0x41
-module_wechat_rx_push_data:
-module_hci_event_ble_wechat_receive_push_data:
-	call wechat_air_sync_check_push_data_struct
-	nrtn user
-	jam HCI_BLE_WECHAT_RECEIVE_PUSH_DATA,mem_module_uart_opcode
-	copy loopcnt,pdata
-	call module_hci_prepare_tx
-	copy regc,contr
-	call uart_copy_tx_bytes_fast
-	branch module_hci_transmit_tx
-endif
-	
-
-//****************************************************************//
-	//module_hci_prepare_tx
-	//function:write hci packet header
-	//input: pdata-----packet length  (1byte)
-	//input: mem_uart_opcode------opcode (1byte)
-	//output:contwu --- pointer to packet payload
-	//use reg: contwu,pdata
-//****************************************************************//	
-module_hci_prepare_tx:
-	jam 0x02,mem_module_uart_cmd
-	store 1,mem_module_uart_len
-	storet 8,mem_temp
-	bpatch patch0e_0,mem_patch0e
-	call module_set_mcu_wake_pin_high_delay
-	fetcht 8,mem_temp
-	call uarta_prepare_tx_register_push
-	fetch 3,mem_module_uart_cmd
-	istore 3,contwu
-	rtn
-
-module_hci_transmit_tx:
-	bpatch patch0e_1,mem_patch0e
-	branch uarta_send_register_pop
-
-module_set_mcu_wake_pin_high_delay:
-	call module_check_mcu_wake_pin_high
-	rtn true
-module_set_mcu_wake_pin_h_delay:
-	call module_set_mcu_wake_pin_high
-	fetch 4,mem_module_mcu_wake_delay_us
-	rshift2 pdata,pdata
-	rtn blank
-	branch delay
-
-module_set_mcu_wake_pin_high:
-	fetcht 1,mem_module_mcu_wake_pin
-	branch gpio_out_active
-
-module_check_mcu_wake_pin_high:
-	fetcht 1,mem_module_mcu_wake_pin
-	branch gpio_check_active
-
-module_set_mcu_wake_pin_low:
-	fetcht 1,mem_module_mcu_wake_pin
-	branch gpio_out_inactive
-
-
-
-/*********************hci command end*********************/
-
-/*********************hci ble receive data start*********************/
-
-//rega is le rx data address
-//regb is le rx data length
-//mem_le_att_handle is write handle
-module_le_receive_data:
-	storer rega,2,mem_module_le_rx_data_address
-	storer regb,2,mem_module_le_rx_data_len
-	fetch 2,mem_le_att_handle
-	store 2,mem_module_le_rx_data_handle
-	call module_check_ble_encrypt_state
-	rtn user
-	
-module_le_receive_data_ok:	
-	fetcht 2,mem_module_le_rx_data_len
-	fetch 1,mem_module_ble_data_uart_max_length
-	call not_greater_than
-	copy pdata,loopcnt
-	copy temp,pdata
-	isub loopcnt,pdata
-	store 2,mem_module_le_rx_data_len
-	call module_hci_event_receive_le_data
-	fetch 2,mem_module_le_rx_data_len
-	rtn blank
-	branch module_le_receive_data_ok
-
-/*********************hci ble receive data end*********************/
-
-
-module_bb_event_timer:
-	rtn
-
-module_read_vdd_timer:
-	fetch 1,mem_module_read_vdd_flag
-	rtn blank
-	fetch 1,mem_module_read_vdd_count
-	rtn blank
-	increase -1,pdata
-	store 1,mem_module_read_vdd_count
-	nrtn blank
-	jam FLAG_MODULE_READ_VDD_COUNT,mem_module_read_vdd_count
-	call enable_adc
-	call vdd_calculate_by_mode
-	div pdata,10
-	call get_div_result
-	div pdata,100
-	call get_div_result
-	remainder temp
-	store 1,mem_module_vdd_quotient
-	storet 1,mem_module_vdd_remainder
-	rtn	
-	
-
-
-/**************module state *******************/
-
-module_set_le_tx_data_flag:
-	arg MODULE_FLAG_BLE_DATA_FINISH,queue
-	branch module_set_state
-	
-module_clear_le_tx_data_flag:
-	arg MODULE_FLAG_BLE_DATA_FINISH,queue
-	branch module_clr_state
-
-module_clr_state:
-	fetch 2,mem_module_flag
-	qset0 pdata
-	store 2,mem_module_flag
-	rtn
-
-module_set_state:
-	fetch 2,mem_module_flag
-	qset1 pdata
-	store 2,mem_module_flag
-	rtn
-	
-/**************module state end*******************/
-
-endif
Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/app_mouse.prog
===================================================================
--- /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/app_mouse.prog	(revision 5679)
+++ /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/app_mouse.prog	(nonexistent)
@@ -1,5602 +0,0 @@
-
-ifdef COMPILE_MOUSE
-mouse_init:
-	call enable_authrom
-	call mouse_wake_gpio_set,wake
-	call mouse_setting_config
-	call mouse_le_name_modify
-	call mouse_init_sunt
-	rtn wake
-	call mouse_usb_check_enable
-	call mouse_setting_sensor_type
-	call mouse_drawing_optima_init
-	call mouse_cb_fuction
-	call mouse_sensor_powerdown
-mouse_init_wireless:	
-	fetch 2,mem_ui_state_map
-	bbit1 UI_STATE_BTN_DOWN,mouse_start_discovery
-	call mouse_check_select_device_by_switch_once
-	branch mouse_start_work
-
-mouse_wake_gpio_set:
-	call mouse_matrix_public_gpio_reset
-	branch lpm_config_puchk_disable
-	
-mouse_cb_fuction:
-	bpatch patch0e_2,mem_patch0e
-	setarg mouse_24g_short_sleep
-	store 2,mem_cb_24g_transmit_short_sleep
-	setarg mouse_24g_long_sleep
-	store 2,mem_cb_24g_transmit_long_sleep
-	setarg mouse_24g_before_lpm_sleep
-	store 2,mem_cb_before_lpm_sleep
-	setarg mouse_24g_package_data
-	store 2,mem_cb_24g_transmit_data
-	setarg mouse_24g_search_dongle
-	store 2,mem_cb_24g_search_receiver
-	setarg mouse_lpm_before_common
-	store 2,mem_cb_24g_lpm_before
-	setarg mouse_le
-	store 2,mem_cb_le_process
-	setarg mouse_process_lpm_before
-	store 2,mem_cb_before_lpm
-	setarg mouse_priority_bb_event
-	store 2,mem_cb_bb_event_process
-	setarg mouse_idle
-	store 2,mem_cb_idle_process
-	setarg mouse_before_hibernate
-	store 2,mem_cb_before_hibernate
-	setarg mouse_le_bb_event_connect_complete
-	store 2,mem_cb_att_write	
-	setarg mouse_bb_event_timer
-	store 2,mem_cb_event_timer
-	setarg mouse_lpm_check_wake_lock
-	store 2,mem_cb_check_wakelock
-	branch hid_device_cb_fuction
-
-mouse_setting_config:
-	rtn wake
-	call g24_transmit_init
-	call g24_chmap_param_init
-	call mouse_24g_send_time_long_wake
-	call mouse_gpio_init
-	call mouse_param_info_init
-//	call mouse_sensor_parm_init
-	call mouse_device_multi_led_parm_init
-	call le_set_fixed_ltk_justwork
-mouse_load_device_info_check:
-	bpatch patch0e_3,mem_patch0e
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	bbit1 MOUSE_ENABLE_EEPROM,mouse_load_eeprom_info_check
-	bbit1 MOUSE_ENABLE_FLASH,mouse_load_flash_info_check
-	bbit1 MOUSE_ENABLE_OTP,mouse_load_otp_info_check
-	rtn
-	
-mouse_xtal_init:
-	jam XTAL_16M,mem_fcomp_div		// 0x08--16M 
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	rtnbit1 MOUSE_ENABLE_16M
-	jam XTAL_24M,mem_fcomp_div		// 0x18--24M
-	rtn
-
-mouse_24g_phy_select:
-	call g24_enable_1M
-	jam 0,mem_mouse_sleep_deal_type
-	jam 0,mem_24g_disable_fec1
-	jam 0,mem_power_ctrl_disable
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	rtnbit0 MOUSE_ENABLE_24G_2M_PHY
-	jam 1,mem_mouse_sleep_deal_type
-	jam 1,mem_24g_disable_fec1
-	jam 1,mem_power_ctrl_disable
-	branch g24_enable_2M
-	
-//*******************************recon dispatch set*************************//
-
-mouse_g24_reconn_dispatch_set:
-	bpatchx patch3e_0,mem_patch3e
-	fetch 1,mem_24g_rxdata_length	//ack payload length
-	branch mouse_receiver_addr_check,blank
-mouse_g24_reconn_dispatch:
-	fetch 4,mem_24g_pair_addr
-	fetcht 4,mem_24g_addr
-	isub temp,null
-	branch mouse_g24_reconn_mode_judge,zero
-	branch g24_reconn_dispatch_success
-
-mouse_receiver_addr_check:
-	fetch 4,mem_24g_fast_conn_addr
-	fetcht 4,mem_24g_addr
-	isub temp,null
-	branch mouse_g24_reconn_dispatch,zero
-	fetch 4,mem_24g_rxpayload+2
-	rtn blank
-	branch mouse_g24_reconn_dispatch
-	
-mouse_g24_reconn_mode_judge:
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	bbit1 MOUSE_ENABLE_AUTO_24G_PARING,mouse_24g_pair_mode_check
-	bbit1 MOUSE_ENABLE_24G_FIRST_AUTO_PAIRING,mouse_24g_pair_mode_check
-	branch g24_reconn_receiver_addr
-
-mouse_g24_transmit_hop_process:
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	bbit0 MOUSE_ENABLE_24G_2M_PHY,g24_transmit_hop_process_next
-mouse_g24_transmit_hop_process_new:
-	fetcht 1,mem_24g_retry
-	fetch 1,mem_24g_fast_hop_count			// 125Hz=11  250Hz=5
-	isub temp,null
-	nbranch g24_tx_fast_hop,positive		// >= (6+6)or(3+3) hop fast    fail packet count >= 2
-	increase 1,temp
-	storet 1,mem_24g_retry
-	fetch 1,mem_24g_fast_hop_count
-	beq 15,mouse_g24_transmit_hop_process_4ms
-	fetch 1,mem_24g_retry
-	beq 20,g24_hop_ch_disable
-	beq 30,g24_hop_ch_disable
-	rtn	
-
-mouse_g24_transmit_hop_process_4ms:
-	fetch 1,mem_24g_retry
-	beq 10,g24_hop_ch_disable
-	beq 15,g24_hop_ch_disable
-	rtn
-	
-//**********************default parm init start********************//
-
-mouse_default_init:
-	bpatch patch0e_4,mem_patch0e
-	call hid_device_default_parm_init
-	call mouse_xtal_init
-	call mouse_24g_phy_select
-	call mouse_24g_long_sleep_set
-	branch g24_pair_param_init
-	
-//**********************default parm init end********************//
-
-
-
-//**********************mouse parm init start********************//
-
-mouse_param_info_init:
-	bpatch patch0e_5,mem_patch0e
-	call mouse_param_common_init
-	call mouse_report_rate_parm_init
-	call mouse_sensor_set_angle
-mouse_spi_parm_init:
-	setarg 0x0a77
-	store 2,mem_spi_init_clk
-	setsect 0,0x1224
-	setsect 1,0x4000
-	setsect 2,0x0
-	istore 5,contw
-	rtn
-
-mouse_param_common_init:
-	setarg MOUSE_BLE_ATT_LIST_ADDR				//ble attlist start address
-	store 2,mem_ui_le_uuid_table
-	jam DPI_BUTTON_STATE_UP,mem_mouse_dpi_button_state
-	setarg 0
-	store 7,mem_mouse_key
-	fetch 1,mem_ui_button_timeout
-	store 1,mem_bt_discovery_count
-	store 1,mem_select_device_count
-
-	jam TYPE_MS,mem_24g_data_type
-	jam 1,mem_24g_fast_conn_enable
-	jam 0,mem_mouse_pair_flag
-	
-	call mouse_compare_addr_init
-	branch hid_device_param_common_init
-
-mouse_compare_addr_init:
-	arg 0,temp
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	bbit1 MOUSE_ENABLE_OTP,hid_device_compare_addr_store
-	arg 0xffffff,temp
-	branch hid_device_compare_addr_store
-//==========set report start=========/	
-
-mouse_report_rate_parm_init:
-	call mouse_24g_report_rate_parm_init
-	fetch 3,mem_24g_short_sleep_set
-	store 3,mem_mouse_24g_short_sleep_set_init
-mouse_le_report_rate_parm_init:
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	rtnbit0 MOUSE_ENABLE_BT_125Hz
-	setarg LE_INTERVAL_7_5MS
-mouse_le_interval_store:
-	store 2,mem_le_interval_min
-	store 2,mem_le_interval_min+2
-	rtn
-
-mouse_24g_report_rate_parm_init:
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	bbit1 MOUSE_ENABLE_24G_500Hz,mouse_g24_interval_param_2ms
-	bbit1 MOUSE_ENABLE_24G_250Hz,mouse_g24_interval_param_4ms
-	branch mouse_g24_interval_param_8ms
-
-mouse_g24_interval_param_2ms:
-	fetch 1,mem_mouse_24g_fast_hop_count_2ms
-	store 1,mem_24g_fast_hop_count
-	fetch 4,mem_mouse_24g_tsniff_2ms
-	store 4,mem_mouse_24g_tsniff
-mouse_report_rate_set_500hz:
-	setarg 0x080606
-	store 3,mem_24g_interval
-	branch g24_transmit_by_interrupt_enable
-	
-mouse_g24_interval_param_4ms:
-	fetch 3,mem_mouse_24g_short_sleep_set_4ms
-	store 3,mem_24g_short_sleep_set
-	fetch 3,mem_mouse_24g_long_sleep_set_4ms
-	store 3,mem_24g_long_sleep_set
-	
-	fetch 4,mem_mouse_24g_tsniff_4ms
-	store 4,mem_mouse_24g_tsniff
-	
-	setarg 0x100c0c
-	store 3,mem_24g_interval
-	
-	jam 0x05,mem_24g_fast_hop_count
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	rtnbit0 MOUSE_ENABLE_24G_2M_PHY
-	jam 0x0f,mem_24g_fast_hop_count
-	rtn
-
-mouse_g24_interval_param_8ms:
-	fetch 3,mem_mouse_24g_short_sleep_set_8ms
-	store 3,mem_24g_short_sleep_set
-	fetch 3,mem_mouse_24g_long_sleep_set_8ms
-	store 3,mem_24g_long_sleep_set
-	
-	fetch 4,mem_mouse_24g_tsniff_8ms
-	store 4,mem_mouse_24g_tsniff
-	
-	setarg 0x1c1919
-	store 3,mem_24g_interval
-	
-	jam 0x0b,mem_24g_fast_hop_count
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	rtnbit0 MOUSE_ENABLE_24G_2M_PHY
-	jam 0x1e,mem_24g_fast_hop_count
-	rtn
-
-//mouse_report_rate_set_500hz:
-//	setarg 0x080606
-//	store 3,mem_24g_interval
-//	rtn
-//mouse_report_rate_set_1000hz:
-//	setarg 0x040303
-//	store 3,mem_24g_interval
-//	rtn
-
-//==========set report end=========/	
-
-
-//==========select sensor angle start=========/	
-
-mouse_sensor_set_angle:
-	bpatch patch0e_6,mem_patch0e
-	call mouse_set_sensor_angle_float
-	fetch 1,mem_select_sensor_angle_gpio
-	rtneq GPIO_DISABLE
-
-	fetch 1,mem_select_sensor_angle_gpio
-	call mouse_gpio_config_pu_check
-	
-	fetcht 1,mem_select_sensor_angle_gpio
-	call gpio_get_bit
-	branch mouse_set_sensor_angle_gnd,true
-
-	fetch 1,mem_select_sensor_angle_gpio
-	call mouse_gpio_config_pd_check
-	
-	fetcht 1,mem_select_sensor_angle_gpio
-	call gpio_get_bit
-	branch mouse_set_sensor_angle_float,true	
-mouse_set_sensor_angle_vin:
-	fetch 1,mem_select_sensor_angle_gpio
-	call mouse_gpio_config_pu_check
-	fetch 1,mem_sensor_angle_vin
-	branch mouse_store_sensor_angle
-
-mouse_set_sensor_angle_gnd:
-	fetch 1,mem_select_sensor_angle_gpio
-	call mouse_gpio_config_pd_check
-	fetch 1,mem_sensor_angle_gnd
-	branch mouse_store_sensor_angle
-
-mouse_set_sensor_angle_float:
-	fetch 1,mem_sensor_angle_default
-mouse_store_sensor_angle:
-	store 1,mem_config_sensor_angle
-	rtn
-
-//==========select sensor angle end=========/	
-
-
-
-//**********************mouse parm init end********************//
-
-/***********************sensor parm init start*****************************/		//8650+S201 +ka8g2
-/*
-mouse_sensor_parm_init:
-	bpatch patch0e_7,mem_patch0e
-	call mouse_sensor_8650_parm_init
-	call mouse_sensor_ka8g2_parm_init
-	call mouse_sensor_3212_parm_init
-	call mouse_sensor_3205_parm_init
-	call mouse_sensor_3204_parm_init
-	call mouse_sensor_32xx_parm_init
-	call mouse_sensor_32xx_parm_init1
-	call mouse_sensor_p6520_parm_init
-	call mouse_sensor_ka8ul_parm_init
-	branch mem_sensor_8009_parm_init
-
-mouse_sensor_8650_parm_init:	
-	setsect 0,0x35a09
-	setsect 1,0x2c9ff
-	setsect 2,0x3e40a
-	setsect 3,0x28346
-	store 9,mem_sensor_8650_init
-	
-	setsect 0,0x2a141
-	setsect 1,0x3e9c4
-	setsect 2,0x00b6f
-	setsect 3,0x322d4
-	store 9,mem_sensor_8650_init+9
-	
-	setsect 0,0x3afa5
-	setsect 1,0x2403f
-	setsect 2,0x3f000
-	setsect 3,0x3ff
-	store 8,mem_sensor_8650_init+18
-	rtn
-
-mouse_sensor_ka8g2_parm_init:
-	setsect 0,0x2a509
-	setsect 1,0x24d09
-	setsect 2,0x20041
-	setsect 3,0x1a41d
-	store 9,mem_sensor_ka8g2_init
-	
-	setsect 0,0x07d04
-	setsect 1,0x01f88
-	setsect 2,0x00090
-	setsect 3,0x3fffc
-	store 9,mem_sensor_ka8g2_init+9
-	rtn
-
-mouse_sensor_3212_parm_init:
-	setsect 0,0x25a09
-	setsect 1,0x24d09
-	setsect 2,0x09041
-	setsect 3,0x3fc00
-	store 9,mem_sensor_3212_init
-mouse_sensor_parm_init_end1:
-	setarg 0xff
-	istore 1,contw
-	rtn
-
-mouse_sensor_3205_parm_init:
-	setsect 0,0x15a09
-	setsect 1,0x34403
-	setsect 2,0x3ded1
-	setsect 3,0x3fe01
-	store 9,mem_sensor_3205_init
-	branch mouse_sensor_parm_init_end1
-	
-mouse_sensor_3204_parm_init:
-	setsect 0,0x15a09
-	setsect 1,0x37c03
-	setsect 2,0x3de31
-	setsect 3,0x3ff49
-	store 9,mem_sensor_3204_init
-	branch mouse_sensor_parm_init_end1
-
-mouse_sensor_32xx_parm_init:
-	setsect 0,0x0351b
-	setsect 1,0x26d0a
-	setsect 2,0x2a462
-	setsect 3,0xae58
-	store 9,mem_sensor_32xx_init
-
-	setsect 0,0x22c8c
-	setsect 1,0x10b5b
-	setsect 2,0x1f386
-	setsect 3,0x3ce5
-	store 9,mem_sensor_32xx_init+9
-
-	setsect 0,0x3323a
-	setsect 1,0x091ce
-	setsect 2,0x3f104
-	setsect 3,0x3ff
-	store 8,mem_sensor_32xx_init+18
-	rtn
-	
-mouse_sensor_32xx_parm_init1:
-	setsect 0,0x12e54
-	setsect 1,0x07c95
-	setsect 2,0x23f46
-	setsect 3,0x1d5c1
-	store 9,mem_sensor_32xx_init_1
-
-	setsect 0,0x17652
-	setsect 1,0x35dd0
-	setsect 2,0x2378e
-	setsect 3,0x119e4
-	store 9,mem_sensor_32xx_init_1+9
-
-	setsect 0,0x0e57a
-	setsect 1,0x3921f
-	setsect 2,0x3f777
-	setsect 3,0x2c05
-	store 9,mem_sensor_32xx_init_1+18
-
-	setsect 0,0x07f00
-	setsect 1,0x00240
-	setsect 2,0x3fff0
-	setsect 3,0x3
-	store 7,mem_sensor_32xx_init_1+27
-	rtn
-
-
-mouse_sensor_p6520_parm_init:
-	setsect 0,0x1b905
-	setsect 1,0x2d682
-	setsect 2,0x0c720
-	setsect 3,0x2548
-	store 9,mem_sensor_p6520_init
-mouse_sensor_parm_init_end2:
-	setarg 0xffff00
-	istore 3,contw
-	rtn
-
-mouse_sensor_ka8ul_parm_init:
-	setsect 0,0x15a09
-	setsect 1,0x38403
-	setsect 2,0x1bc50
-	setsect 3,0x4269
-	store 9,mem_sensor_ka8ul_init
-
-	setsect 0,0x21138
-	setsect 1,0x20a10
-	setsect 2,0x23412
-	setsect 3,0xe524
-	store 9,mem_sensor_ka8ul_init+9
-
-	setsect 0,0x3b04a
-	setsect 1,0x32812
-	setsect 2,0x0d904
-	setsect 3,0x25c1
-	store 9,mem_sensor_ka8ul_init+18
-	branch mouse_sensor_parm_init_end2
-
-mem_sensor_8009_parm_init:
-	setsect 0,0x25a09
-	setsect 1,0x24081
-	setsect 2,0x0d690
-	setsect 3,0x3920
-	store 9,mem_sensor_8009_init
-
-	setsect 0,0x20f9f
-	setsect 1,0x0026e
-	setsect 2,0x3fff0
-	setsect 3,0x3
-	store 7,mem_sensor_8009_init+9
-	rtn
-*/	
-/***********************le device info modify*****************************/
-mouse_le_name_modify:	
-	bpatch patch0f_0,mem_patch0f
-	rtn wake
-	fetch 1,mem_le_name_patch_len
-	rtn blank
-	add pdata,1,loopcnt
-	arg mem_le_name_patch_len,contr
-	arg mem_le_name_len,contw
-	call memcpy
-	branch le_modified_name_adv
-
-/***********************sensor parm init end*****************************/
-
-mouse_start_work:
-	bpatch patch0f_1,mem_patch0f
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	bbit1 MOUSE_ENABLE_24G_FIRST_AUTO_PAIRING, mouse_24g_first_start_auto_pair_mode
-	fetch 1,mem_device_flag
-	beq MODE_24G_DEVICE,mouse_24g_start_mode
-mouse_le_fast_conn_judge:
-	call mouse_device_le_reconn_led_config
-	call mouse_bluetooth_fast_conn_disable
-	fetch 1,mem_device_flag
-	beq MODE_BT_DEVICE1,mouse_le_device1_judge
-	beq MODE_BT_DEVICE2,mouse_le_device2_judge
-	rtn
-mouse_le_device1_judge:
-	fetch 6,mem_device1_addr
-	fetcht 6,mem_device_compare_addr
-	isub temp,null
-	branch mouse_bluetooth_fast_conn_init,zero
-	branch mouse_start_reconnect_device
-	
-mouse_le_device2_judge:
-	fetch 6,mem_device2_addr
-	fetcht 6,mem_device_compare_addr
-	isub temp,null
-	branch mouse_bluetooth_fast_conn_init,zero	
-mouse_start_reconnect_device:
-	bpatch patch0f_2,mem_patch0f
-	arg mem_device1_type,rega
-	fetch 1,mem_device_flag
-	increase -1,pdata
-	mul32 pdata,13,pdata
-	iadd rega,rega
-	ifetch 1,rega
-	store 1,mem_xrecord_mode
-mouse_start_reconnect:	
-	fetch 1,mem_xrecord_mode
-	beq REC_4_MODE,mouse4_0_check_reconn_target
-	branch mouse_bluetooth_fast_conn_init
-
-mouse_wakeup_from_power_check:
-	bpatch patch0f_3,mem_patch0f
-	disable user
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	bbit0 MOUSE_ENABLE_WAKEUP_FROM_POWER,mouse_wakeup_from_poweron
-	fetch 1,core_lpm_isogate
-	bbit1 cold_wake,mouse_wakeup_from_poweron
-	enable user	//wake from hibernate
-mouse_wakeup_from_poweron:
-	fetch 1,mem_reconn_times_init
-	store 1,mem_reconn_times
-	rtn
-
-mouse4_0_check_reconn_target:
-	jam 1,mem_device_le_reconnect_flag
-	fetcht 1,mem_device_fast_direct_timeout
-	fetch 1,mem_device_fast_conn_flag
-	beq 0xff,mouse4_0_check_reconn_target_next
-	fetcht 1,mem_device_direct_timeout
-mouse4_0_check_reconn_target_next:	
-	storet 1,mem_device_direct_timer
-	call app_lpm_mult_disable
-	fetch 3,mem_le_adv_direct_ind
-	store 3,mem_le_adv_data+4
-	call mouse_le_check_adv_flag
-	setarg ADV_FLAG_BREDR_NOT_SUPPORTED
-	istore 1,contr
-	arg mem_le_scan_data,contr
-	call mouse_le_adv_data_update
-	branch check_51cmd_adv
-
-
-/**********************system clk**********************************/
-mouse_lpm_check_wake_lock:
-	bmark1 mark_24g,app_get_lpm_wake_lock
-	fetch 1,mem_mouse_clear_sensor_data_flag
-	branch app_get_lpm_wake_lock,blank
-	fetch 1,mem_le_conn_param_reject
-	beq LE_LPM_DISABLE,app_get_lpm_wake_lock
-	fetch 1,mem_mouse_wheel_trigger
-	nbranch app_get_lpm_wake_lock,blank
-	branch app_put_lpm_wake_lock
-
-/**********************system clk end*****************************/
- 
-mouse_app_enter_hibernate:
-	bpatch patch0f_4,mem_patch0f
-	setarg PAN_REG_CONFIG
-	call twspi_read
-	bbit1 3,mouse_app_enter_hibernate_next
-	call mouse_sensor_reset
-	call mouse_sensor_powerdown
-mouse_app_enter_hibernate_next:
-	call mouse_setgpio_hibernate
-	branch app_enter_hibernate
-
-mouse_before_hibernate:
-	bpatch patch0f_5,mem_patch0f
-	call disable_authrom 
-//	call mouse_before_hibernate_wheel_gpio_set
-mouse_before_hibernate_next:
-	call mouse_flash_power_down
-	fetcht 1,mem_sensor_motion_gpio
-	branch gpio_clr_wake
-
-mouse_setgpio_hibernate:
-	bpatch patch0f_6,mem_patch0f
-	call mouse_set_sdio_high
-	call clear_wake
-	call mouse_before_hibernate_wheel_gpio_set
-	fetch 1,mem_mouse_sensor_sdio_gpio
-	call mouse_gpio_config_output_high
-	fetcht 1,mem_device_switch_gpio
-	call mouse_gpio_set_pupd_by_input
-mouse_setgpio_hibernate_next:
-	call mouse_lpm_before_common
-//	call mouse_gpio_pd_idle
-	fetcht 1,mem_device_reuse_2ice_gpio
-	call device_gpio_config_input_pu
-	call mouse_gpio_set_analog
-	call mouse_logo_led_off
-	call mouse_device_multi_led_all_off
-	call mouse_adc_gpio_set_before_hibernate
-	branch mouse_wheel_gpio_set_before_hibernate
-
-mouse_wheel_gpio_set_before_hibernate:
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	rtnbit0 MOUSE_ENABLE_WHEEL_WAKE_UP_CANCEL
-mouse_wheel_gpio_clr_wakeup:	
-	fetcht 1,mem_whee_a_data_gpio
-	call gpio_clr_wake
-	fetcht 1,mem_whee_b_data_gpio
-	call gpio_clr_wake
-	fetcht 1,mem_whee_a_data_gpio
-	call device_gpio_config_input_pd
-	fetcht 1,mem_whee_b_data_gpio
-	branch device_gpio_config_input_pd
-	
-mouse_adc_gpio_set_before_hibernate:
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	rtnbit0 MOUSE_ENABLE_ADC
-	fetch 1,mem_adc_config_flag
-	rtnne ADC_CONFIG_GPIO
-	fetcht 1,mem_adc_channel_gpio
-	branch gpio_set_analog
-	
-
-//set all unused gpio to pull down mode to save power	
-mouse_gpio_pd_idle:
-	arg core_gpio_conf,contr
-	arg GPIO_NUMBER,loopcnt
-mouse_gpio_pd_idle_loop:
-	ifetch 1,contr
-	nbranch mouse_gpio_pd_idle_configured,blank
-	setarg gpcfg_pulldown
-	add contr,-1,contw
-	istore 1,contw
-mouse_gpio_pd_idle_configured:
-	loop mouse_gpio_pd_idle_loop
-	arg core_gpio_conf_hi+GPIO_NUMBER_EXT,pdata
-	isub contr,null
-	rtn zero
-mouse_gpio_pd_idle_ext:
-	arg GPIO_NUMBER_EXT,loopcnt
-	arg core_gpio_conf_hi,contr
-	branch mouse_gpio_pd_idle_loop
-	
-mouse_process_lpm_before:
-	rtnmark1 mark_24g
-	call mouse_lpm_before_common
-	fetch 1,mem_lpm_current_mult
-	nrtn blank					// 7.5ms, no gpio wakeup
-	branch gpio_clr_wake
-
-mouse_lpm_before_common:
-	bpatch patch0f_7,mem_patch0f
-	jam 0,mem_qdec_set_flag
-	call clear_wake
-	fetcht 1,mem_matrix_public_gpio		// enable b4/b5/dpi wakeup
-	call gpio_out_active
-	fetcht 1,mem_matrix_public_gpio
-	call gpio_clr_wake
-	
-	call mouse_wheel_check
-	fetch 1,mem_mouse_sensor_sclk_gpio		//set sdio high
- 	call mouse_gpio_config_output_high
-	call twspi_disable
-	
-	fetcht 1,mem_lbutton_gpio
-	call gpio_set_wake
-	fetcht 1,mem_rbutton_gpio
-	call gpio_set_wake
-	fetcht 1,mem_mbutton_gpio
-	call gpio_set_wake
-
-	fetcht 1,mem_bk_button_gpio
-	call gpio_set_wake
-	fetcht 1,mem_fw_button_gpio
-	call gpio_set_wake
-	fetcht 1,mem_dpi_button_gpio
-	call gpio_set_wake
-	fetcht 1,mem_config_select_device_button_gpio
-	call gpio_set_wake
-
-	fetcht 1,mem_customer_key_gpio
-	call gpio_set_wake
-
-	call mouse_gpio_pd_idle
-
-	fetcht 1,mem_whee_a_data_gpio
-	call gpio_set_wake_by_current_state
-	fetcht 1,mem_whee_b_data_gpio
-	call gpio_set_wake_by_current_state
-	fetcht 1,mem_whee_ta_data_gpio
-	call gpio_set_wake_by_current_state
-	fetcht 1,mem_whee_tb_data_gpio
-	call gpio_set_wake_by_current_state
-	fetcht 1,mem_sensor_motion_gpio
-	branch gpio_set_wake
-
-
-//short mult: no key 
-mouse_set_mult:
-	fetch 2,mem_ui_state_map
-	rtnbit0 UI_STATE_BLE_CONNECTED
-	copy rega,pdata
-	nbranch le_set_config_short_mult,blank
-	branch le_clr_config_short_mult
-	
-	
-/****************************adc**************************************/	
-mouse_adc_gpio_set:
-	bpatch patch10_0,mem_patch10
-	fetch 1,mem_adc_config_flag
-	rtnne ADC_CONFIG_GPIO
-	fetcht 1,mem_adc_channel_gpio
-	branch gpio_set_high_impedance
-
-mouse_adc_read:
-	bpatch patch10_1,mem_patch10
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	rtnbit0 MOUSE_ENABLE_ADC
-	call mouse_adc_gpio_set
-mouse_adc_read_start:
-	call enable_adc
-	call vdd_calculate_by_mode
-	store 2,mem_device_vdd_now_vol
-	fetch 1,mem_adc_config_flag
-	bne ADC_CONFIG_GPIO, mouse_adc_data_process
-	fetcht 2,mem_device_vdd_now_vol	// BAT= 1.5V, R = 200k, a = a*1.8
-	mul32 temp,8,pdata
-	div pdata,10
-	call get_div_result
-	iadd temp,pdata
-	store 2,mem_device_vdd_now_vol
-mouse_adc_data_process:	
-	arg mem_device_vdd_calculate_set,rega
-	call mouse_adc_bat_percent_lowpower_out
-	fetch 1,mem_adc_power_flag
-	bbit1 1,mouse_app_enter_hibernate
-	bbit0 0,mouse_adc_no_low_voltage
-	jam 1,mem_device_adc_last_low_voltage_flag
-	branch mouse_adc_low_voltage
-	
-mouse_adc_low_voltage:
-	arg MOUSE_LOW_VOLTAGE_FLAG,queue
-	branch mouse_enable_function_flag
-mouse_adc_no_low_voltage:
-	arg MOUSE_LOW_VOLTAGE_FLAG,queue
-	call mouse_disable_function_flag
-	jam 1,mem_adc_low_volatage_led_timer_count
-	fetch 1,mem_device_adc_last_low_voltage_flag
-	rtn blank
-	jam 0,mem_device_adc_last_low_voltage_flag
-	branch mouse_low_voltage_led_off_judge
-	
-
-mouse_adc_bat_percent_lowpower_out:
-	bpatch patch10_2,mem_patch10
-	ifetch 8,rega
-	store 8,mem_pdatatemp
-mouse_adc_bat_percent_lowpower_out_battery:
-	call adc_clear_no_power_flag
-	call adc_clear_low_power_flag
-	fetch 2,mem_pdatatemp+6
-	fetcht 2,mem_pdatatemp+2	        //shutdown voltage
-	isub temp,null
-	ncall adc_set_no_power_flag,positive
-	fetcht 2,mem_pdatatemp+4		//low voltage
-	isub temp,null
-	ncall adc_set_low_power_flag,positive
-mouse_adc_bat_level_set:
-	fetch 2,mem_pdatatemp+6		//now voltage	
-	fetcht 2,mem_pdatatemp		//full voltage
-	isub temp,null
-	branch mouse_adc_bat_level_100_percent,positive		// now >= full
-	fetcht 2,mem_pdatatemp+2	        //shutdown voltage
-	isub temp,pdata
-	nbranch mouse_adc_bat_level_0_percent,positive		// now < shutdown
-	branch mouse_adc_bat_level_0_percent,blank			// now = shutdown
-	mul32 pdata,100,rega								// (now - shutdown)*100 /(full - shutdown)
-	fetch 2,mem_pdatatemp
-	fetcht 2,mem_pdatatemp+2
-	isub temp,temp
-	copy rega,pdata
-	idiv temp
-	call get_div_result
-	store 1,mem_le_battery_level_percentage
-	rtn
-
-mouse_adc_bat_level_100_percent:
-	jam 100,mem_le_battery_level_percentage
-	rtn
-mouse_adc_bat_level_0_percent:	
-	jam 0,mem_le_battery_level_percentage
-	rtn
-	
-/****************************adc end********************************/	
-
-
-/****************************gpio******************************************/
-mouse_gpio_init:
-	fetcht 1,mem_eeprom_wp_gpio
-	call gpio_config_output
-//	call usb_offline_check_init
-	fetcht 1,mem_lbutton_gpio
-	call device_gpio_config_input_pu
-	fetcht 1,mem_rbutton_gpio
-	call device_gpio_config_input_pu
-	fetcht 1,mem_mbutton_gpio
-	call device_gpio_config_input_pu
-	fetcht 1,mem_bk_button_gpio
-	call device_gpio_config_input_pu
-	fetcht 1,mem_fw_button_gpio
-	call device_gpio_config_input_pu
-	fetcht 1,mem_dpi_button_gpio
-	call device_gpio_config_input_pu
-
-	fetcht 1,mem_matrix_public_gpio
-	call device_gpio_config_input_pu
-
-	fetcht 1,mem_config_select_device_button_gpio
-	call device_gpio_config_input_pu
-
-	fetcht 1,mem_customer_key_gpio
-	call device_gpio_config_input_pu
-
-	call mouse_wheel_gpio_init
-
-	fetcht 1,mem_whee_ta_data_gpio
-	call device_gpio_config_input_pu
-	fetcht 1,mem_whee_tb_data_gpio
-	call device_gpio_config_input_pu
-
-	fetcht 1,mem_sensor_motion_gpio
-	call device_gpio_config_input_pu
-
-	fetcht 1,mem_device_switch_gpio
-	branch device_gpio_config_input_pu
-
-mouse_gpio_set_pupd_by_input:
-	and temp,0x7f,queue
-	fetch 4,core_gpio_in
-	qisolate1 pdata
-	branch device_gpio_config_input_pu,true
-device_gpio_config_input_pd:
-	sub temp,UI_BUTTON_GPIO_DISABLE,null
-	rtn zero
-	set1 GPIO_ACTIVE_BIT,temp
-	branch gpio_config_input
-
-device_gpio_config_input_pu:
-	sub temp,UI_BUTTON_GPIO_DISABLE,null
-	rtn zero
-	set0 GPIO_ACTIVE_BIT,temp
-	branch gpio_config_input
-
-mouse_gpio_set_analog:
-	fetch 3,mem_device_set_analog_bit_set
-	store 3,mem_pdatatemp
-	arg 24,loopcnt
-	arg 0,temp
-mouse_gpio_set_analog_bit_loop:	
-	fetch 3,mem_pdatatemp
-	isolate1 0,pdata
-	call gpio_set_analog,true
-//	call gpio_set_high_impedance,true
-	fetch 3,mem_pdatatemp
-	lshift pdata,pdata
-	store 3,mem_pdatatemp
-	increase 1,temp
-	loop mouse_gpio_set_analog_bit_loop
-	rtn
-
-/****************************gpio end*******************************/
-
-/*******************spi*****************************/
-mouse_sensor_spi_init:
-	call mouse_spid_init_pin
-	jam 0x73,mem_spi_init_clk
-//	jam 0x1e,mem_spi_init_delay_time
-	call mouse_spi_init
-	branch twspi_enable
-	
-mouse_spi_write_flash_cb:
-mouse_spi_init:
-	branch spid_init
-	
-mouse_spid_init_pin:
-	fetch 1,mem_mouse_sensor_sclk_gpio
- 	arg gpcfg_spid_sck,temp
- 	call gpio_config_function_int
- 	fetch 1,mem_mouse_sensor_sdio_gpio
- 	arg gpcfg_spid_sdio,temp
- 	branch gpio_config_function_int
-
-
-/*******************spi end**************************/
-
-mouse_motion:
-	bpatch patch10_3,mem_patch10
-	call hid_device_copy_key_data
-	disable user
-	setarg 0
-	store 6,mem_mouse_x
-	call mouse_check_sensor_data
-	setarg 0x0089
-	call twspi_write	
-	call mouse_setting_sensor_type
-	call mouse_zwheel
-	call mouse_t_zwheel
-	call mouse_key
-	fetch 1,mem_mouse_key
-	and_into 0x1f,pdata
-	store 1,mem_mouse_key
-	nbranch mouse_drawing_optima_init,user
-mouse_motion_rf_data:
-	call mouse_drawing_optima
-	branch mouse_no_data_timer_init
-
-
-/*******************wheel*************************/
-mouse_zwheel:
-	fetch 1,mem_mouse_z_data
-	rtn blank	
-	store 1,mem_mouse_z
-	jam 0,mem_mouse_z_data
-	branch enable_user
-	
-mouse_t_zwheel:
-	fetch 1,mem_mouse_tz_data
-	rtn blank	
-	store 1,mem_mouse_tz
-	jam 0,mem_mouse_tz_data
-	branch enable_user
-
-mouse_wheel_check:
-	bpatch patch10_4,mem_patch10
-	call mouse_wheel_gpio_init
-	call mouse_t_wheel_scan
-	call mouse_wheel_scan
-	fetch 1,mem_wheel_tb_new_pinlevel
-	fetcht 1,mem_wheel_tb_old_pinlevel
-	store 1,mem_wheel_tb_old_pinlevel
-	isub temp,null
-	nbranch app_lpm_wake_auto_lock,zero
-	fetch 1,mem_mwheel_b_new_pinlevel
-	fetcht 1,mem_mwheel_b_old_pinlevel
-	store 1,mem_mwheel_b_old_pinlevel
-	isub temp,null
-	nbranch app_lpm_wake_auto_lock,zero
-	rtn
-mouse_t_wheel_scan:
-	fetch 1,mem_whee_ta_data_gpio
-	rtneq GPIO_DISABLE
-	arg 0,rega
-	fetcht 1,mem_whee_ta_data_gpio
-	call gpio_get_bit
-	setflag true,0,rega
-	fetcht 1,mem_whee_tb_data_gpio
-	call gpio_get_bit
-	setflag true,1,rega
-	copy rega,pdata
-	store 1,mem_wheel_tb_new_pinlevel
-	beq 0x01,mouse_t_wheel_scan_judge1
-	beq 0x02,mouse_t_wheel_scan_judge2
-	fetch 1,mem_wheel_tog
-	bbit1 7,mouse_t_wheel_scan_judge3
-	rtn
-
-mouse_t_wheel_scan_judge1:
-	fetch 1,mem_wheel_tb_old_pinlevel
-	beq 0,mouse_t_wheel_scan_judge11
-	beq 3,mouse_t_wheel_scan_judge12
-	rtn
-mouse_t_wheel_scan_judge2:
-	fetch 1,mem_wheel_tb_old_pinlevel
-	beq 0,mouse_t_wheel_scan_judge21
-	beq 3,mouse_t_wheel_scan_judge22
-	rtn
-mouse_t_wheel_scan_judge11:
-	jam 0x82,mem_wheel_tog
-	rtn
-mouse_t_wheel_scan_judge12:
-	jam 0x81,mem_wheel_tog
-	rtn
-mouse_t_wheel_scan_judge21:
-	jam 0x80,mem_wheel_tog
-	rtn
-mouse_t_wheel_scan_judge22:
-	jam 0x83,mem_wheel_tog
-	rtn
-mouse_t_wheel_scan_judge3:
-	fetch 1,mem_wheel_tog
-	set0 7,pdata
-	store 1,mem_wheel_tog
-	beq 0,mouse_t_wheel_scan_judge30
-	beq 1,mouse_t_wheel_scan_judge31
-	beq 2,mouse_t_wheel_scan_judge32
-	beq 3,mouse_t_wheel_scan_judge33
-	rtn
-mouse_t_wheel_scan_judge30:
-	fetch 1,mem_wheel_tb_new_pinlevel
-	beq 3,mouse_wheel_t_forward
-	rtn
-mouse_t_wheel_scan_judge31:
-	fetch 1,mem_wheel_tb_new_pinlevel
-	beq 0,mouse_wheel_t_forward
-	rtn
-mouse_t_wheel_scan_judge32:
-	fetch 1,mem_wheel_tb_new_pinlevel
-	beq 3,mouse_wheel_t_back
-	rtn
-mouse_t_wheel_scan_judge33:
-	fetch 1,mem_wheel_tb_new_pinlevel
-	beq 0,mouse_wheel_t_back
-	rtn
-mouse_wheel_t_forward:
-	fetch 1,mem_mouse_tz_data
-	increase 1,pdata
-	store 1,mem_mouse_tz_data
-	rtn
-mouse_wheel_t_back:
-	fetch 1,mem_mouse_tz_data
-	increase -1,pdata
-	store 1,mem_mouse_tz_data
-	rtn
-
-
-mouse_wheel_scan:
-	fetch 1,mem_whee_a_data_gpio
-	rtneq GPIO_DISABLE
-	arg 0,rega
-	fetcht 1,mem_whee_a_data_gpio
-	call gpio_get_bit
-	setflag true,0,rega
-	fetcht 1,mem_whee_b_data_gpio
-	call gpio_get_bit
-	setflag true,1,rega
-	copy rega,pdata
-	store 1,mem_mwheel_b_new_pinlevel
-	beq 0x01,mouse_wheel_scan_judge1
-	beq 0x02,mouse_wheel_scan_judge2
-	fetch 1,mem_mwheel_tog
-	bbit1 7,mouse_wheel_scan_judge3
-	rtn
-
-mouse_wheel_scan_judge1:
-	fetch 1,mem_mwheel_b_old_pinlevel
-	beq 0,mouse_wheel_scan_judge11
-	beq 3,mouse_wheel_scan_judge12
-	rtn
-mouse_wheel_scan_judge2:
-	fetch 1,mem_mwheel_b_old_pinlevel
-	beq 0,mouse_wheel_scan_judge21
-	beq 3,mouse_wheel_scan_judge22
-	rtn
-mouse_wheel_scan_judge11:
-	jam 0x82,mem_mwheel_tog
-	rtn
-mouse_wheel_scan_judge12:
-	jam 0x81,mem_mwheel_tog
-	rtn
-mouse_wheel_scan_judge21:
-	jam 0x80,mem_mwheel_tog
-	rtn
-mouse_wheel_scan_judge22:
-	jam 0x83,mem_mwheel_tog
-	rtn
-mouse_wheel_scan_judge3:
-	fetch 1,mem_mwheel_tog
-	set0 7,pdata
-	store 1,mem_mwheel_tog
-	beq 0,mouse_wheel_scan_judge30
-	beq 1,mouse_wheel_scan_judge31
-	beq 2,mouse_wheel_scan_judge32
-	beq 3,mouse_wheel_scan_judge33
-	rtn
-mouse_wheel_scan_judge30:
-	fetch 1,mem_mwheel_b_new_pinlevel
-	beq 3,mouse_wheel_forward
-	rtn
-mouse_wheel_scan_judge31:
-	fetch 1,mem_mwheel_b_new_pinlevel
-	beq 0,mouse_wheel_forward
-	rtn
-mouse_wheel_scan_judge32:
-	fetch 1,mem_mwheel_b_new_pinlevel
-	beq 3,mouse_wheel_back
-	rtn
-mouse_wheel_scan_judge33:
-	fetch 1,mem_mwheel_b_new_pinlevel
-	beq 0,mouse_wheel_back
-	rtn
-mouse_wheel_forward:
-	fetch 1,mem_mouse_z_data
-	increase 1,pdata
-	store 1,mem_mouse_z_data
-	rtn
-mouse_wheel_back:
-	fetch 1,mem_mouse_z_data
-	increase -1,pdata
-	store 1,mem_mouse_z_data
-	rtn
-
-/*
-mouse_wheel_gpio_set_wake:
-	fetcht 1,mem_whee_a_data_gpio
-	call gpio_set_wake_by_current_state
-	fetcht 1,mem_whee_b_data_gpio
-	call gpio_set_wake_by_current_state
-	fetcht 1,mem_whee_ta_data_gpio
-	call gpio_set_wake_by_current_state
-	fetcht 1,mem_whee_tb_data_gpio
-	branch gpio_set_wake_by_current_state
-*/	
-mouse_before_hibernate_wheel_gpio_set:
-	fetcht 1,mem_whee_a_data_gpio
-	call mouse_gpio_set_pupd_by_input
-	fetcht 1,mem_whee_b_data_gpio
-	call mouse_gpio_set_pupd_by_input
-	fetcht 1,mem_whee_ta_data_gpio
-	call mouse_gpio_set_pupd_by_input
-	fetcht 1,mem_whee_tb_data_gpio
-	branch mouse_gpio_set_pupd_by_input
-
-mouse_wheel_trigger:
-	fetch 2,mem_mouse_z
-	rtn blank
-	jam 1,mem_mouse_wheel_trigger
-	jam 10,mem_mouse_wheel_trigger_timer
-	rtn
-
-mouse_wheel_trigger_timer:
-	arg mem_mouse_wheel_trigger_timer,regc
-	arg mouse_wheel_trigger_disable,regb
-	branch timer_single_step
-mouse_wheel_trigger_disable:
-	jam 0,mem_mouse_wheel_trigger
-	rtn
-
-
-/*
-mouse_set_qdecoder_x:
-	arg MOUSE_DEFAULT_XA_GPIO,temp
-	call device_gpio_config_input_pu
-	arg MOUSE_DEFAULT_XA_GPIO,temp
-	call gpio_get_bit
-	rtn true
-	fetch 1,core_qdec_cntx
-	set1 4,pdata
-	store 1,core_qdec_cntx
-	rtn
-*/	
-	
-/*******************wheel end**********************/
-
-
-/********************dpi******************************/
-mouse_dpi_check:
-	fetch 1,mem_dpi_button_gpio
-	rtneq GPIO_DISABLE
-	arg 0,rega
-	jam MOUSE_DPI_KEY,mem_mouse_key_temp
-	fetcht 1,mem_dpi_button_gpio
-	call mouse_dpi_key_check
-	store 1,mem_mouse_dpikey_press_status
-	fetch 1,mem_matrix_public_gpio
-	beq GPIO_DISABLE,mouse_3io6key_dpi_check_end
-	call mouse_matrix_public_gpio_reset
-mouse_dpi_check_exit:	
-	copy rega,pdata
-	bbit1 MOUSE_DPI_KEY,mouse_dpi_down
-	branch mouse_dpi_up
-	
-mouse_dpi_key_check:
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	bbit1 MOUSE_ENABLE_DPI_KEY_CONNECT_GND,mouse_dpi_key_connect_gnd
-	fetch 1,mem_mouse_dpikey_press_status
-	copy pdata,regc
-	fetch 1,mem_matrix_public_gpio
-	beq GPIO_DISABLE,mouse_dpi_3io6key_check
-	fetch 1,mem_mouse_ghost_flag
-	nbranch mouse_dpi_check_end,blank
-mouse_dpi_key_connect_matrix:
-	call gpio_get_bit
-	fetcht 1,mem_matrix_public_gpio
-	branch mouse_dpi_key_connect_gnd,true
-	fetcht 1,mem_matrix_public_gpio
-	call gpio_out_active
-	fetcht 1,mem_dpi_button_gpio
-	fetch 1,mem_mouse_dpikey_press_status
-	branch mouse_check_key_connect_gnd
-
-mouse_dpi_3io6key_check:
-	fetch 1,mem_dpi_button_gpio
-	call mouse_gpio_config_output_low
-	fetcht 1,mem_dpi_button_gpio
-	branch mouse_3io6key_check
-	
-
-mouse_3io6key_dpi_check_end:
-	fetcht 1,mem_dpi_button_gpio
-	call device_gpio_config_input_pu
-	branch mouse_dpi_check_exit
-
-mouse_dpi_check_end:
-	jam DPI_BUTTON_STATE_UP,mem_mouse_dpi_button_state
-	jam 0,mem_mouse_dpikey_press_status
-	rtn
-
-mouse_dpi_key_connect_gnd:
-	fetch 1,mem_mouse_dpikey_press_status
-	branch mouse_check_key_connect_gnd
-
-mouse_dpi_down:
-	fetch 1,mem_mouse_dpi_button_state
-	rtneq DPI_BUTTON_STATE_DOWN
-	jam DPI_BUTTON_STATE_DOWN,mem_mouse_dpi_button_state
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	rtnbit1 MOUSE_ENABLE_SELECT_DEVICE_BY_DPI_BUTTON
-	rtnbit1 MOUSE_ENABLE_DPI_KEY_LONG_PRESS_DISCONVERY
-	branch mouse_dpi_process
-
-mouse_dpi_up:
-	fetch 1,mem_mouse_dpi_button_state
-	rtneq DPI_BUTTON_STATE_UP
-	jam DPI_BUTTON_STATE_UP,mem_mouse_dpi_button_state
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	bbit1 MOUSE_ENABLE_SELECT_DEVICE_BY_DPI_BUTTON,mouse_dpi_up_next
-	bbit1 MOUSE_ENABLE_DPI_KEY_LONG_PRESS_DISCONVERY,mouse_dpi_up_next
-	rtn
-mouse_dpi_up_next:	
-	fetch 1,mem_mouse_dpi_long_press_flag
-	nbranch mouse_dpi_up_after_long_press,blank
-	fetch 1,mem_select_device_count
-	ncall mouse_dpi_process,blank
-mouse_dpi_up_after_long_press:	
-	jam 0,mem_mouse_dpi_long_press_flag
-	fetch 1,mem_ui_button_timeout
-	store 1,mem_select_device_count	
-	store 1,mem_bt_discovery_count	
-	rtn
-	
-mouse_dpi_process:	
-	bpatch patch10_5,mem_patch10
-	call mouse_dpi_ghost_check
-	rtn user
-mouse_dpi_process_skip_ghost:
-	fetch 1,mem_mouse_dpi
-	
-	copy pdata,temp
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	bbit1 MOUSE_ENABLE_DOUBLE_DPI_KEY,mouse_double_dpi_check
-	copy temp,pdata
-	
-	increase 1,pdata
-	and pdata,0x03,pdata
-mouse_dpi_level_store:	
-	store 1,mem_mouse_dpi
-	call mouse_setting_dpi
-	branch mouse_store_dpi_info_check
-
-
-/***************************another dpi key dpi**********************/
-
-mouse_double_dpi_check:
-	fetch 1,mem_dpi_another_button_down_enable
-	nbranch mouse_another_dpi_button_down,blank
-mouse_dpi_increase:
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	bbit1 MOUSE_ENABLE_DPI_LEVEL_4,mouse_dpi_increase_level_4
-	copy temp,pdata
-	rtneq MOUSE_DPI_LEVEL2
-mouse_dpi_increase_level:
-	beq MOUSE_DPI_LEVEL1,mouse_dpi_level_3	//1600
-	beq MOUSE_DPI_LEVEL3,mouse_dpi_level_2 	//1200
-	rtn
-
-mouse_dpi_level_1:		//800
-	setarg 2
-	branch mouse_dpi_level_store
-mouse_dpi_level_2:		//1200
-	setarg 0
-	branch mouse_dpi_level_store
-mouse_dpi_level_3:		//1600
-	setarg 1
-	branch mouse_dpi_level_store
-mouse_dpi_level_4:		//1000
-	setarg 3
-	branch mouse_dpi_level_store	
-
-mouse_dpi_increase_level_4:
-	copy temp,pdata			//0->1,2->3,3->0
-	rtneq MOUSE_DPI_LEVEL2
-	beq MOUSE_DPI_LEVEL1,mouse_dpi_level_3
-	beq MOUSE_DPI_LEVEL3,mouse_dpi_level_4
-	beq MOUSE_DPI_LEVEL4,mouse_dpi_level_2
-	rtn
-mouse_dpi_decrease_level_4:
-	copy temp,pdata			//0->3,1->0,3->2
-	rtneq MOUSE_DPI_LEVEL3
-	beq MOUSE_DPI_LEVEL1,mouse_dpi_level_4
-	beq MOUSE_DPI_LEVEL2,mouse_dpi_level_2
-	beq MOUSE_DPI_LEVEL4,mouse_dpi_level_1
-	rtn
-
-mouse_another_dpi_button_down:
-mouse_dpi_decrease:
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	bbit1 MOUSE_ENABLE_DPI_LEVEL_4,mouse_dpi_decrease_level_4
-	copy temp,pdata
-	rtneq MOUSE_DPI_LEVEL3
-mouse_dpi_decrease_level:
-	beq MOUSE_DPI_LEVEL1,mouse_dpi_level_1
-	beq MOUSE_DPI_LEVEL2,mouse_dpi_level_2
-	rtn
-	
-
-/*************************another dpi key dpi end********************/
-
-mouse_dpi_ghost_check:
-	disable user
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	rtnbit1 MOUSE_ENABLE_DPI_KEY_CONNECT_GND
-	branch mouse_ghost_key_value_check
-	
-mouse_dpi_key_check_long_press:
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	bbit1 MOUSE_ENABLE_SELECT_DEVICE_BY_DPI_BUTTON,mouse_select_device_by_dpi_button
-	bbit1 MOUSE_ENABLE_DPI_KEY_LONG_PRESS_DISCONVERY,mouse_discovery_by_dpi_button
-	rtn
-
-mouse_select_device_by_dpi_button:
-	fetch 1,mem_mouse_dpi_button_state
-	rtnne DPI_BUTTON_STATE_DOWN	
-	arg mem_select_device_count,regc
-	arg mouse_ready_reconnection_by_dpi_button,regb
-	branch timer_single_step
-
-mouse_ready_reconnection_by_dpi_button:
-	jam 1,mem_mouse_dpi_long_press_flag
-	branch mouse_ready_reconnection_by_button
-
-mouse_discovery_by_dpi_button:
-	fetch 1,mem_mouse_dpi_button_state
-	rtnne DPI_BUTTON_STATE_DOWN	
-	arg mem_bt_discovery_count,regc
-	arg mouse_long_dpi_button_bt_discovery,regb
-	branch timer_single_step
-
-mouse_long_dpi_button_bt_discovery:
-	jam 1,mem_mouse_dpi_long_press_flag
-	branch mouse_long_button_bt_discovery
-
-mouse_setting_dpi_4_level:
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	rtnbit1 MOUSE_ENABLE_DPI_LEVEL_4
-	fetch 1,mem_mouse_dpi
-	rtnne MOUSE_DPI_LEVEL4
-	jam MOUSE_DPI_LEVEL1,mem_mouse_dpi
-	rtn
-	
-mouse_setting_dpi:
-	bpatch patch10_6,mem_patch10
-	call mouse_setting_dpi_4_level
-	call mouse_dpi_led_blink_delay
-mouse_setting_sensor_type:
-	bpatch patch10_7,mem_patch10
-	fetch 1,mem_config_sensor_type
-	beq S201X,mouse_seting_S201_dpi
-	beq P3212,mouse_seting_3212_dpi
-	beq KA8G2,mouse_seting_ka8g2_dpi
-	fetch 1,mem_mouse_dpi
-	beq MOUSE_DPI_LEVEL1,mouse_set_cpi0		//1200
-	beq MOUSE_DPI_LEVEL2,mouse_set_cpi1		//1600
-	beq MOUSE_DPI_LEVEL3,mouse_set_cpi2		//800
-	beq MOUSE_DPI_LEVEL4,mouse_set_cpi3		//1000
-mouse_set_cpi1:	//320x+8009
-	fetcht 1,mem_320x_dpi_1
-	branch mouse_dpi_store
-mouse_set_cpi0:
-	fetcht 1,mem_320x_dpi_0
-	branch mouse_dpi_store
-mouse_set_cpi2:
-	fetcht 1,mem_320x_dpi_2
-	branch mouse_dpi_store
-mouse_set_cpi3:
-	fetcht 1,mem_320x_dpi_3
-mouse_dpi_store:
-	fetch 1,mem_config_sensor_type
-	beq P3065_XY,mouse_3065xy_set_dpi
-	beq MX8650,mouse_3065xy_set_dpi
-	beq KA8,mouse_ka8_set_dpi
-	beq P6520,mouse_ka8_set_dpi
-	beq P8009,mouse_3065xy_set_dpi
-mouse_dpi_write:		// 3205  1  2  3  4
-	storet 1,mem_mouse_cpi_count
-	setarg MOUSE_DPI_ADDRESS
-	call twspi_read
-	and pdata,0xf8,temp
-	fetch 1,mem_mouse_cpi_count
-	iadd temp,pdata
-	lshift8 pdata,pdata
-	add pdata,MOUSE_DPI_ADDRESS,pdata
-	branch twspi_write
-
-mouse_3065xy_set_dpi:	// 0 1 2 3
-	increase -1,temp
-	branch mouse_dpi_write
-
-mouse_ka8_set_dpi:	// 3 4 5 6
-	increase 2,temp
-	branch mouse_dpi_write
-
-mouse_seting_S201_dpi:
-	fetch 1,mem_mouse_dpi
-	beq MOUSE_DPI_LEVEL1,mouse_set_S201_dpi_0	//1200
-	beq MOUSE_DPI_LEVEL2,mouse_set_S201_dpi_2	//2400
-	beq MOUSE_DPI_LEVEL3,mouse_set_S201_dpi_3	//3200
-	beq MOUSE_DPI_LEVEL4,mouse_set_S201_dpi_4	//800
-	rtn
-mouse_set_S201_dpi_0:	//1200
-	fetch 1,mem_sensor_s201_dpi_0
-	branch mouse_dpi_S201_store
-
-mouse_set_S201_dpi_1:	//1600
-	fetch 1,mem_sensor_s201_dpi_1
-	branch mouse_dpi_S201_store
-	
-mouse_set_S201_dpi_2:	//2400
-	fetch 1,mem_sensor_s201_dpi_2
-	branch mouse_dpi_s201_store
-
-mouse_set_S201_dpi_3:	//3200
-	fetch 1,mem_sensor_s201_dpi_3
-	branch mouse_dpi_s201_store
-
-mouse_set_S201_dpi_4:	//800
-	fetch 1,mem_sensor_s201_dpi_4
-mouse_dpi_s201_store:
-	copy pdata,rega
-	setarg 0xc309
-	call twspi_write
-	copy rega,pdata
-	lshift8 pdata,pdata
-	add pdata,0x23,pdata
-	call twspi_write
-mouse_sensor_enable_wp:
-	setarg 0x0009
-	branch twspi_write
-mouse_sensor_disable_wp:
-	setarg 0x5a09
-	branch twspi_write
-
-mouse_seting_3212_dpi:
-	fetch 1,mem_mouse_dpi
-	beq MOUSE_DPI_LEVEL1,mouse_set_p3212_cpi0	//1200
-	beq MOUSE_DPI_LEVEL2,mouse_set_p3212_cpi1	//1600
-	beq MOUSE_DPI_LEVEL3,mouse_set_p3212_cpi2	//2400
-	beq MOUSE_DPI_LEVEL4,mouse_set_p3212_cpi3	//800
-mouse_set_p3212_cpi1:
-	fetch 1,mem_3212_dpi_1
-	branch mouse_p3212_dpi
-mouse_set_p3212_cpi0:
-	fetch 1,mem_3212_dpi_0
-	branch mouse_p3212_dpi
-mouse_set_p3212_cpi2:
-	fetch 1,mem_3212_dpi_2
-	branch mouse_p3212_dpi
-mouse_set_p3212_cpi3:
-	fetch 1,mem_3212_dpi_3
-mouse_p3212_dpi:
-	store 1,mem_mouse_cpi_count
-	lshift8 pdata,pdata
-	copy pdata,rega
-	add pdata,MOUSE_P3212_DPI_XADDRESS,pdata
-  	call twspi_write
- 	copy rega,pdata
-  	add pdata,MOUSE_P3212_DPI_YADDRESS,pdata
-	branch twspi_write
-
-mouse_seting_ka8g2_dpi:
-	fetch 1,mem_mouse_dpi
-	beq MOUSE_DPI_LEVEL1,mouse_set_pka8g2_cpi0		//1200
-	beq MOUSE_DPI_LEVEL2,mouse_set_pka8g2_cpi1		//1600
-	beq MOUSE_DPI_LEVEL3,mouse_set_pka8g2_cpi2		//2400
-	beq MOUSE_DPI_LEVEL4,mouse_set_pka8g2_cpi3		//800
-mouse_set_pka8g2_cpi1:
-	fetch 1,mem_ka8g2_dpi_1
-	branch mouse_p3212_dpi
-
-mouse_set_pka8g2_cpi0:
-	fetch 1,mem_ka8g2_dpi_0
-	branch mouse_p3212_dpi
-	
-mouse_set_pka8g2_cpi2:
-	fetch 1,mem_ka8g2_dpi_2
-	branch mouse_p3212_dpi
-
-mouse_set_pka8g2_cpi3:
-	fetch 1,mem_ka8g2_dpi_3
-	branch mouse_p3212_dpi
-
-		
-/********************dpi end***************************/		
-
-
-/***********************key******************************/
-
-mouse_key:
-	call mouse_check_firekey_gpio
-	fetch 1,mem_fire_key_flag
-	nbranch fire_key_press,blank
-	fetch 1,mem_fire_key_status
-	nbranch fire_key_process,blank
-	
-	call mouse_check_key_gpio
-mouse_key_next:
-	call mouse_ghost_key_check
-	call mouse_set_mult
-	call mouse_24g_key
-	copy rega,pdata
-	fetcht 1,mem_mouse_key_last
-	store 1,mem_mouse_key_last
-	store 1,mem_mouse_key
-	ixor temp,pdata
-	sub pdata,0,null
-	rtn zero
-	branch enable_user
-
-mouse_24g_key:
-	rtnmark0 mark_24g
-	copy rega,pdata
-	rtn blank
-	store 1,mem_mouse_key
-	branch enable_user
-
-	
-/************************************ghost key******************************/
-
-mouse_ghost_key_check:
-	jam 0,mem_mouse_matrix_key_cow_count
-	jam 0,mem_mouse_matrix_key_row_count
-	jam 0,mem_mouse_ghost_flag
-	copy pdata,regb
-	fetcht 1,mem_lbutton_gpio
-	fetch 1,mem_bk_button_gpio
-	isub temp,null
-	branch mouse_matrix_ghost_key_L_BK,zero
-	fetch 1,mem_fw_button_gpio
-	isub temp,null
-	branch mouse_matrix_ghost_key_L_FW,zero
-	fetcht 1,mem_mbutton_gpio
-	fetch 1,mem_bk_button_gpio
-	isub temp,null
-	branch mouse_ghost_key_MBK_RFW,zero
-	branch mouse_ghost_key_MFW_RBK
-
-mouse_matrix_ghost_key_L_BK:
-	fetcht 1,mem_mbutton_gpio
-	fetch 1,mem_fw_button_gpio
-	isub temp,null
-	branch mouse_ghost_key_LBK_MFW,zero
-	branch mouse_ghost_key_LBK_RFW
-
-mouse_matrix_ghost_key_L_FW:
-	fetcht 1,mem_mbutton_gpio
-	fetch 1,mem_bk_button_gpio
-	isub temp,null
-	branch mouse_ghost_key_LFW_MBK,zero
-	branch mouse_ghost_key_LFW_RBK
-
-mouse_ghost_key_LBK_MFW:
-	call mouse_ghost_key_check_L_BK
-	call mouse_ghost_key_check_M_FW
-	branch mouse_ghost_key_check_next
-
-mouse_ghost_key_LBK_RFW:
-	call mouse_ghost_key_check_L_BK
-	branch mouse_ghost_key_RFW
-
-mouse_ghost_key_LFW_MBK:
-	call mouse_ghost_key_check_L_FW
-	call mouse_ghost_key_check_M_BK
-	branch mouse_ghost_key_check_next
-	
-mouse_ghost_key_LFW_RBK:
-	call mouse_ghost_key_check_L_FW
-	branch mouse_ghost_key_RBK
-	
-mouse_ghost_key_MBK_RFW:
-	call mouse_ghost_key_check_M_BK
-mouse_ghost_key_RFW:
-	call mouse_ghost_key_check_R_FW
-	branch mouse_ghost_key_check_next
-	
-mouse_ghost_key_MFW_RBK:
-	call mouse_ghost_key_check_M_FW
-mouse_ghost_key_RBK:
-	call mouse_ghost_key_check_R_BK
-mouse_ghost_key_check_next:
-	call mouse_ghost_key_check_BK_FW
-	call mouse_ghost_key_check_LMR
-	fetch 1,mem_mouse_matrix_key_row_count
-	rtn blank
-	fetch 1,mem_mouse_matrix_key_cow_count
-	rtn blank
-	jam 1,mem_mouse_ghost_flag
-	fetch 1,mem_mouse_key_last		// matrix have ghost key
-	copy pdata,rega
-	rtn
-
-mouse_ghost_key_check_L_BK:
-	and regb,MOUSE_L_BK_BUTTON,pdata
-	beq MOUSE_L_BK_BUTTON,mouse_matrix_cow_more_than_one_key
-	rtn
-mouse_ghost_key_check_M_BK:
-	and regb,MOUSE_M_BK_BUTTON,pdata
-	beq MOUSE_M_BK_BUTTON,mouse_matrix_cow_more_than_one_key
-	rtn
-mouse_ghost_key_check_R_BK:
-	and regb,MOUSE_R_BK_BUTTON,pdata
-	beq MOUSE_R_BK_BUTTON,mouse_matrix_cow_more_than_one_key
-	rtn
-mouse_ghost_key_check_L_FW:
-	and regb,MOUSE_L_FW_BUTTON,pdata
-	beq MOUSE_L_FW_BUTTON,mouse_matrix_cow_more_than_one_key
-	rtn
-mouse_ghost_key_check_M_FW:
-	and regb,MOUSE_M_FW_BUTTON,pdata
-	beq MOUSE_M_FW_BUTTON,mouse_matrix_cow_more_than_one_key
-	rtn
-mouse_ghost_key_check_R_FW:
-	and regb,MOUSE_R_FW_BUTTON,pdata
-	beq MOUSE_R_FW_BUTTON,mouse_matrix_cow_more_than_one_key
-	rtn
-
-mouse_ghost_key_check_BK_FW:
-	and regb,MOUSE_BK_FW_BUTTON,pdata
-	beq MOUSE_BK_FW_BUTTON,mouse_matrix_row_more_than_one_key
-	rtn	
-
-mouse_ghost_key_check_LMR:
-	and temp,MOUSE_LMR_BUTTON,pdata	// key LMR press
-	beq MOUSE_LR_BUTTON,mouse_matrix_row_more_than_one_key
-	beq MOUSE_LM_BUTTON,mouse_matrix_row_more_than_one_key
-	beq MOUSE_RM_BUTTON,mouse_matrix_row_more_than_one_key
-	beq MOUSE_LMR_BUTTON,mouse_matrix_row_more_than_one_key
-	rtn
-
-
-mouse_matrix_row_more_than_one_key:
-	jam 1,mem_mouse_matrix_key_row_count
-	rtn
-
-mouse_matrix_cow_more_than_one_key:
-	jam 1,mem_mouse_matrix_key_cow_count
-	rtn
-
-/************************************ghost key end******************************/
-
-
-
-/************************************double dpi key******************************/
-
-mouse_dpi_another_gpio_check:
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	rtnbit0 MOUSE_ENABLE_DOUBLE_DPI_KEY
-	bbit0 MOUSE_ENABLE_ANOTHER_DPI_KEY_CONNECT_GND,mouse_dpi_another_gpio_connect_vin_check
-mouse_dpi_another_gpio_connect_gnd_check:	
-	fetch 1,mem_dpi_another_button_gpio
-	call mouse_gpio_config_output_high
-	call mouse_dpi_another_check
-	fetcht 1,mem_dpi_another_button_gpio
-	branch device_gpio_config_input_pu	
-
-mouse_dpi_another_gpio_connect_vin_check:
-	fetch 1,mem_dpi_another_button_gpio
-	call mouse_gpio_config_output_low
-	jam MOUSE_DPI_ANOTHER_KEY,mem_mouse_key_temp_patch
-	fetcht 1,mem_dpi_another_button_gpio
-	fetch 1,mem_dpi_another_press_status
-	call mouse_check_key_connect_vin_new
-	call mouse_dpi_another_state_check
-	fetcht 1,mem_dpi_another_button_gpio
-	branch device_gpio_config_input_pu	
-
-mouse_dpi_another_down_new:
-	call device_gpio_config_input_pu	
-	fetch 1,mem_dpi_another_button_state
-	rtneq DPI_BUTTON_STATE_DOWN
-	jam DPI_BUTTON_STATE_DOWN,mem_dpi_another_button_state
-	branch mouse_dpi_process
-
-mouse_dpi_another_check:
-	jam MOUSE_DPI_ANOTHER_KEY,mem_mouse_key_temp_patch
-	fetcht 1,mem_dpi_another_button_gpio
-	fetch 1,mem_dpi_another_press_status	
-	call mouse_check_key_connect_gnd_new
-mouse_dpi_another_state_check:
-	store 1,mem_dpi_another_press_status
-	fetch 1,mem_dpi_another_button_down_enable
-	branch mouse_dpi_another_up,blank	
-mouse_dpi_another_down:
-	fetch 1,mem_dpi_another_button_state
-	rtneq DPI_BUTTON_STATE_DOWN
-	jam DPI_BUTTON_STATE_DOWN,mem_dpi_another_button_state
-	branch mouse_dpi_process
-
-mouse_dpi_another_up:
-	fetch 1,mem_dpi_another_button_state
-	rtneq DPI_BUTTON_STATE_UP
-	jam DPI_BUTTON_STATE_UP,mem_dpi_another_button_state
-	rtn
-
-mouse_check_key_connect_gnd_new:	
-	lshift pdata,pdata
-	copy pdata,regb
-	call gpio_get_bit
-	setflag true,0,regb
-	and regb,0x07,pdata
-	fetcht 1,mem_mouse_key_temp_patch
-	copy temp,queue
-	beq 0x07,mouse_another_dpi_key_press		//  about 17~22ms three times
-	beq 0x00,mouse_another_dpi_key_release
-	rtn
-
-mouse_check_key_connect_vin_new:	
-	lshift pdata,pdata
-	copy pdata,regb
-	call device_gpio_config_input_pd
-	call gpio_get_bit
-	setflag true,0,regb
-	and regb,0x07,pdata
-	fetcht 1,mem_mouse_key_temp_patch
-	copy temp,queue
-	beq 0x07,mouse_another_dpi_key_press		//  about 17~22ms three times
-	beq 0x00,mouse_another_dpi_key_release
-	rtn
-
-mouse_another_dpi_key_press:
-	jam 1,mem_dpi_another_button_down_enable
-	rtn
-mouse_another_dpi_key_release:
-	jam 0,mem_dpi_another_button_down_enable
-	rtn
-
-/************************************double dpi key end******************************/
-
-
-
-/************************************fire key************************************/
-
-mouse_check_firekey_gpio:
-	arg 0,regb
-	fetch 1,mem_firebutton_gpio
-	rtneq GPIO_DISABLE
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	bbit0 MOUSE_ENABLE_FIRE_KEY_CONNECT_GND,mouse_check_firekey_connect_vin
-mouse_check_firekey_connect_gnd:
-	fetcht 1,mem_firebutton_gpio
-	call device_gpio_config_input_pu
-	fetcht 1,mem_firebutton_gpio
-	call gpio_get_bit
-	setflag true,0,regb
-mouse_firekey_state_store:	
-	copy regb,pdata
-	store 1,mem_fire_key_flag
-	rtn
-
-mouse_check_firekey_connect_vin:
-	fetcht 1,mem_firebutton_gpio
-	call device_gpio_config_input_pd
-	fetcht 1,mem_firebutton_gpio
-	call gpio_get_bit
-	nsetflag true,0,regb
-	branch mouse_firekey_state_store
-
-fire_key_process: 
-	beq 4,fire_key_process_end
-fire_key_press:
-	call firekey_clkn_bt_timer_check 
-	fetch 4,mem_fire_key_delay
-	arg 0xa0,temp      
-	iadd temp,temp
-	copy clkn_bt,pdata
-	isub temp,null
-	nrtn positive
-	store 4,mem_fire_key_delay 
-	fetch 1,mem_fire_key_status
-	beq 0,fire_key_process_start
-	beq 1,fire_key_process_release1
-	beq 2,fire_key_process_start2
-	beq 3,fire_key_process_release2
-	rtn
-
-fire_key_process_start:
-	jam 1,mem_fire_key_status
-fire_key_down:
-	jam 1,mem_mouse_key
-	branch enable_user
-
-fire_key_process_release1:
-	jam 2,mem_fire_key_status
-fire_key_release:
-	jam 0,mem_mouse_key
-	branch enable_user
-
-fire_key_process_start2:
-	jam 3,mem_fire_key_status
-	branch fire_key_down
-
-fire_key_process_release2:
-	jam 0,mem_fire_key_status
-	branch fire_key_release
-
-fire_key_process_end:
-	jam 0,mem_fire_key_status
-	jam 0,mem_mouse_key
-	rtn
-
-firekey_clkn_bt_timer_check:
-	fetcht 4,mem_fire_key_delay
-	copy clkn_bt,pdata
-	isub temp,null
-	ncall firekey_clkn_bt_timer_timeout,positive
-	rtn
-firekey_clkn_bt_timer_timeout:
-	setarg 0
-	store 4,mem_fire_key_delay
-	rtn
-
-/*********************************fire key end*****************************/
-
-
-
-/*********************************matrix key*****************************/
-
-mouse_key_check_once:
-	call mouse_check_key_gpio_once
-	call mouse_check_key_gpio
-	setarg 0x00
-	store 3,mem_mouse_lkey_press_status
-	rtn
-	
-mouse_check_key_gpio:
-	bpatch patch11_0,mem_patch11
-	fetch 1,mem_24g_shutdown_flag
-	ncall mouse_check_key_gpio_once,blank
-	arg 0,rega
-	call mouse_check_lkey_gpio
-	call mouse_check_rkey_gpio
-	call mouse_check_mkey_gpio
-	call mouse_check_bkkey_gpio
-	call mouse_check_fwkey_gpio
-	call mouse_check_firekey_gpio
-	call mouse_check_customerkey_gpio
-mouse_check_key_gpio_next:
-	copy rega,pdata
-	rtn
-
-mouse_check_key_gpio_once:
-	setarg 0x030303
-	store 3,mem_mouse_lkey_press_status
-	rtn
-
-mouse_check_lkey_gpio:
-	fetch 1,mem_lbutton_gpio
-	call mouse_gpio_config_output_high
-	jam MOUSE_L_KEY,mem_mouse_key_temp
-	fetcht 1,mem_lbutton_gpio
-	fetch 1,mem_mouse_lkey_press_status
-	call mouse_check_key_connect_gnd
-	store 1,mem_mouse_lkey_press_status
-	fetcht 1,mem_lbutton_gpio
-	branch device_gpio_config_input_pu
-
-mouse_check_rkey_gpio:
-	fetch 1,mem_rbutton_gpio
-	call mouse_gpio_config_output_high
-	jam MOUSE_R_KEY,mem_mouse_key_temp
-	fetcht 1,mem_rbutton_gpio
-	fetch 1,mem_mouse_rkey_press_status
-	call mouse_check_key_connect_gnd
-	store 1,mem_mouse_rkey_press_status
-	fetcht 1,mem_rbutton_gpio
-	branch device_gpio_config_input_pu
-	
-mouse_check_mkey_gpio:
-	fetch 1,mem_mbutton_gpio
-	call mouse_gpio_config_output_high
-	jam MOUSE_M_KEY,mem_mouse_key_temp
-	fetcht 1,mem_mbutton_gpio
-	fetch 1,mem_mouse_mkey_press_status
-	call mouse_check_key_connect_gnd
-	store 1,mem_mouse_mkey_press_status
-	fetcht 1,mem_mbutton_gpio
-	branch device_gpio_config_input_pu
-
-mouse_check_bkkey_gpio:
-	fetch 1,mem_bk_button_gpio
-	rtneq GPIO_DISABLE
-	jam MOUSE_BK_KEY,mem_mouse_key_temp
-	fetch 1,mem_mouse_bkkey_press_status
-	copy pdata,regc
-	fetcht 1,mem_bk_button_gpio
-	fetch 1,mem_matrix_public_gpio
-	beq GPIO_DISABLE,mouse_3io6key_bk_check
-	call gpio_get_bit
-	branch mouse_check_bk_button_connect_gnd,true
-	fetcht 1,mem_matrix_public_gpio
-	call gpio_out_active
-	fetcht 1,mem_bk_button_gpio
-	fetch 1,mem_mouse_bkkey_press_status
-	call mouse_check_key_connect_gnd
-mouse_check_bkkey_gpio_end:	
-	store 1,mem_mouse_bkkey_press_status
-	branch mouse_matrix_public_gpio_reset
-
-mouse_check_bk_button_connect_gnd:
-	fetcht 1,mem_matrix_public_gpio
-	fetch 1,mem_mouse_bkkey_press_status
-	call mouse_check_key_connect_gnd
-	branch mouse_check_bkkey_gpio_end
-
-mouse_3io6key_bk_check:
-	fetch 1,mem_bk_button_gpio
-	call mouse_gpio_config_output_low
-	fetcht 1,mem_bk_button_gpio
-	call mouse_3io6key_check
-	store 1,mem_mouse_bkkey_press_status
-	fetcht 1,mem_bk_button_gpio
-	branch device_gpio_config_input_pu
-
-
-mouse_check_fwkey_gpio:
-	fetch 1,mem_fw_button_gpio
-	rtneq GPIO_DISABLE
-	jam MOUSE_FW_KEY,mem_mouse_key_temp
-	fetch 1,mem_mouse_fwkey_press_status
-	copy pdata,regc
-	fetcht 1,mem_fw_button_gpio
-	fetch 1,mem_matrix_public_gpio
-	beq GPIO_DISABLE,mouse_3io6key_fw_check
-	call gpio_get_bit
-	branch mouse_check_fw_button_connect_gnd,true
-	fetcht 1,mem_matrix_public_gpio
-	call gpio_out_active
-	fetcht 1,mem_fw_button_gpio
-	fetch 1,mem_mouse_fwkey_press_status
-	call mouse_check_key_connect_gnd
-mouse_check_fwkey_gpio_end:	
-	store 1,mem_mouse_fwkey_press_status
-mouse_matrix_public_gpio_reset:	
-	fetcht 1,mem_matrix_public_gpio
-	branch device_gpio_config_input_pu
-
-mouse_check_fw_button_connect_gnd:
-	fetcht 1,mem_matrix_public_gpio
-	fetch 1,mem_mouse_fwkey_press_status
-	call mouse_check_key_connect_gnd
-	branch mouse_check_fwkey_gpio_end	
-
-mouse_3io6key_fw_check:
-	fetch 1,mem_fw_button_gpio
-	call mouse_gpio_config_output_low
-	fetcht 1,mem_fw_button_gpio
-	call mouse_3io6key_check
-	store 1,mem_mouse_fwkey_press_status
-	fetcht 1,mem_fw_button_gpio
-	branch device_gpio_config_input_pu
-
-mouse_check_customerkey_gpio:
-	jam 0,mem_customer_key
-	fetch 1,mem_customer_key_gpio
-	rtneq GPIO_DISABLE
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	rtnbit0 MOUSE_ENABLE_KEYBOARD
-	bbit1 MOUSE_ENABLE_CUSTOMER_KEY_CONNECT_VIN,mouse_customer_key_connect_vin
-mouse_customer_key_connect_gnd:
-	jam MOUSE_CUSTOMER_KEY,mem_mouse_key_temp
-	fetcht 1,mem_customer_key_gpio
-	fetch 1,mem_mouse_customerkey_press_status
-	call mouse_check_key_connect_gnd
-	store 1,mem_mouse_customerkey_press_status
-mouse_check_customerkey_state:
-	copy rega,pdata
-	bbit1 MOUSE_CUSTOMER_KEY,mouse_customerkey_press
-	call mouse_customerkey_release
-mouse_check_customerkey_gpio_exit:
-	fetch 1,mem_customer_data_trigger
-	store 1,mem_customer_data_trigger_last
-	rtn
-
-mouse_customer_key_connect_vin:
-	jam MOUSE_CUSTOMER_KEY,mem_mouse_key_temp
-	fetch 1,mem_mouse_customerkey_press_status
-	copy pdata,regc
-	fetch 1,mem_customer_key_gpio
-	call mouse_gpio_config_output_low
-	fetcht 1,mem_customer_key_gpio
-	call mouse_3io6key_check
-	store 1,mem_mouse_customerkey_press_status
-	call mouse_check_customerkey_state
-	fetcht 1,mem_customer_key_gpio
-	branch device_gpio_config_input_pu
-
-mouse_customerkey_press:
-	jam 1,mem_customer_data_trigger
-	call mouse_customer_key_need_send
-	branch mouse_check_customerkey_gpio_exit
-
-mouse_customerkey_release:
-	jam 0,mem_customer_data_trigger
-	fetch 1,mem_customer_data_trigger_last
-	rtn blank
-mouse_customer_key_need_send:	
-	jam 1,mem_customer_key
-	rtn	
-
-/*******************************matrix key end***************************/
-
-//mouse_check_matrix_button_connect_gnd:	
-//	call gpio_get_bit
-//	fetcht 1,mem_mouse_key_temp
-//	copy temp,queue	
-//	branch  mouse_key_press,true
-mouse_key_release:
-	qset0 rega
-	rtn	
-
-mouse_check_key_connect_gnd:	
-	lshift pdata,pdata
-	copy pdata,regb
-	call gpio_get_bit
-	setflag true,0,regb
-mouse_check_key_connect_gnd_next:
-	and regb,0x07,pdata
-	fetcht 1,mem_mouse_key_temp
-	copy temp,queue
-	beq 0x07,mouse_key_press		//  about 17~22ms three times
-	beq 0x00,mouse_key_release
-	rtn
-
-mouse_key_press:
-	qset1 rega
-	rtn
-
-mouse_3io6key_check:
-	bpatch patch11_1,mem_patch11
-	copy regc,pdata
-	store 1,mem_mouse_key_status
-	lshift pdata,pdata
-	copy pdata,regb
-	copy temp,regc
-mouse_3io6key_check_next:
-	call device_gpio_config_input_pd
-	copy regc,temp
-	call gpio_get_bit
-	nsetflag true,0,regb
-	call mouse_check_press
-	branch mouse_check_key_connect_gnd_next
-
-mouse_check_press:
-	fetcht 1,mem_mouse_key_status
-	and_into 0x01,temp
-	and regb,0x01,pdata
-	isub temp,null
-	nbranch mouse_current_mult_update,zero
-	rtn
-	
-	
-//input:pdata gpio number
-mouse_gpio_config_output_high:
-	arg gpcfg_output_high,temp
-	branch gpio_config_function_int
-
-//input:pdata gpio number
-mouse_gpio_config_output_low:
-	arg gpcfg_output_low,temp
-	branch gpio_config_function_int	
-
-//input:pdata gpio number
-mouse_gpio_config_pu_check:
-	store 1,mem_device_temp_gpio
-	call mouse_gpio_config_output_high
-	fetcht 1,mem_device_temp_gpio
-	branch device_gpio_config_input_pu
-	
-//input:pdata gpio number
-mouse_gpio_config_pd_check:
-	store 1,mem_device_temp_gpio
-	call mouse_gpio_config_output_low
-	fetcht 1,mem_device_temp_gpio
-	branch device_gpio_config_input_pd	
-
-/*************************key***************************************/
-
-/**********************sensor******************************/	
-mouse_init_sunt:
-	bpatch patch11_2,mem_patch11
-	call mouse_sensor_spi_init
-	rtn wake
-mouse_init_sensor_wakeup:	
-	call mouse_sensor_poweron
-mouse_init_sensor:
-	bpatch patch11_3,mem_patch11
-	call mouse_read_sensor_id
-	beq P32XX_ID1,mouse_init_p32xx_id2_judge
-	beq P3065_ID1,mouse_init_p3065
-	beq PKA8G2_ID1,mouse_ka8g2_id2_judge
-	call mouse_twspi_reset
-	nop 6900
-	branch mouse_init_sensor
-mouse_twspi_reset:
-	fetcht 1,mem_mouse_sensor_sclk_gpio
-	call twspi_reset
-	branch mouse_spid_init_pin
-
-mouse_read_sensor_id:
-	setarg PAN_REG_PID_H
-	call twspi_read
-	store 1,mem_sensor_id2
-	setarg PAN_REG_PID_L
-	call twspi_read
-	store 1,mem_sensor_id1
-	rtn
-
-mouse_init_p32xx_id2_judge:
-	fetch 1,mem_sensor_id2
-	beq P_MX8650,mouse_mx8650_init_param
-	beq P8009_ID2,mouse_8009_init_param
-	beq P3205_TJ3T_ID2,mouse_S210X_3205_3t_judge
-	beq P3204_TJ3L_ID2,mouse_3204_3l_init_param
-	beq P3212_ID2,mouse_3212_init_param
-	beq PKA8_ID2,mouse_ka8_init_param_check
-	beq P6520A_ID2,mouse_p6520_init_param
-	branch mouse_init_sensor
-
-mouse_S210X_3205_3t_judge:
-	setarg 0x49		// id3
-	call twspi_read
-	beq 0xa1,mouse_S201X_init_param
-	branch mouse_3205_3t_init_param
-
-mouse_S201X_init_param:
-	jam S201X,mem_config_sensor_type
-	rtn
-	
-mouse_mx8650_init_param:
-	jam MX8650,mem_config_sensor_type
-	call mouse_sensor_reset
-	call delay_10ms
-	arg mem_sensor_8650_init,regc
-	branch mouse_sensor_poweron_end
-
-mouse_8009_init_param:
-	setarg 0x16
-	call twspi_read
-	sub pdata,0xbd,null 
-	nbranch mouse_init_sunt,zero
-	setarg 0x19
-	call twspi_read
-	sub pdata,0x55,null 
-	nbranch mouse_init_sunt,zero
-	setarg 0x1b
-	call twspi_read
-	sub pdata,0x1d,null 
-	nbranch mouse_init_sunt,zero
-	jam P8009,mem_config_sensor_type
-	arg mem_sensor_8009_init,regc
-	branch mouse_sensor_wr_seq
-
-mouse_3205_3t_init_param:
-	jam P3205,mem_config_sensor_type
-	arg mem_sensor_3205_init,regc
-	call mouse_sensor_wr_seq
-	arg mem_sensor_32xx_init,regc
-	call mouse_sensor_wr_seq
-	setarg 0x0943
-	call twspi_write
-	arg mem_sensor_32xx_init_1,regc
-	branch mouse_sensor_wr_seq	
-
-mouse_3204_3l_init_param:
-	jam P3204,mem_config_sensor_type
-	arg mem_sensor_3204_init,regc
-	call mouse_sensor_wr_seq
-	arg mem_sensor_32xx_init,regc
-	call mouse_sensor_wr_seq
-	arg mem_sensor_32xx_init_1,regc
-	branch mouse_sensor_wr_seq	
-
-mouse_3212_init_param:
-	jam P3212,mem_config_sensor_type
-	arg mem_sensor_3212_init,regc
-mouse_sensor_wr_seq:
-	ifetch 2,regc
-	arg 0xffff,temp
-	isub temp,null
-	rtn zero
-	call twspi_write
-	increase 2,regc
-	branch mouse_sensor_wr_seq
-
-mouse_ka8_init_param_check:	
-	call mouse_sensor_disable_wp
-	setarg 0x9a5b
-	call twspi_write
-	setarg 0x0d
-	call twspi_read
-	sub pdata,0x12,null
-	branch mouse_ka8ul_init_param,zero
-	sub pdata,0x0a,null
-	nbranch mouse_ka8hd_sensor_judge,zero
-	setarg 0x0e
-	call twspi_read
-	sub pdata,0xe5,null
-	nbranch mouse_init_sensor,zero
-	setarg 0x10
-	call twspi_read
-	sub pdata,0xa5,null
-	branch mouse_ka8ul_init_param,zero
-	call mouse_enable_ka8_sensor_wp
-mouse_ka8_init_param:
-	jam KA8,mem_config_sensor_type	
-	rtn
-mouse_ka8ul_init_param:
-	jam KA8_UL,mem_config_sensor_type	
-	arg mem_sensor_ka8ul_init,regc
-	branch mouse_sensor_wr_seq
-mouse_ka8hd_sensor_judge:
-	sub pdata,0x10,null
-	nbranch mouse_init_sensor,zero
-	setarg 0x0e
-	call twspi_read
-	sub pdata,0xc5,null
-	nbranch mouse_init_sensor,zero
-	setarg 0x10
-	call twspi_read
-	sub pdata,0x38,null
-	nbranch mouse_init_sensor,zero
-mouse_ka8hd_init_param:
-	call mouse_enable_ka8_sensor_wp
-	jam KA8_HD,mem_config_sensor_type
-	rtn
-mouse_enable_ka8_sensor_wp:
-	setarg 0x005b
-	call twspi_write
-	branch mouse_sensor_enable_wp
-	
-mouse_p6520_init_param:
-	jam P6520,mem_config_sensor_type
-	arg mem_sensor_p6520_init,regc
-	branch mouse_sensor_wr_seq
-	
-mouse_init_p3065:
-	call mouse_sensor_poweron
-	fetch 1,mem_sensor_id2
-	beq P3065_XY_ID2,mouse_p3065xy_init_param
-	beq P3065_ID2,mouse_p3065_init_param
-	branch mouse_init_sensor
-	
-mouse_p3065_init_param:	
-	jam P3065,mem_config_sensor_type
-	rtn
-
-mouse_p3065xy_init_param:
-	jam P3065_XY,mem_config_sensor_type
-	rtn
-	
-mouse_ka8g2_id2_judge:
-	call mouse_sensor_poweron
-	fetch 1,mem_sensor_id2
-	beq KA5857_ID2,mouse_ka5857_init_param
-	beq PKA8G2_ID2,mouse_ka8g2_init_param
-	branch mouse_init_p32xx_id2_judge
-mouse_ka8g2_init_param:
-	jam KA8G2,mem_config_sensor_type
-	arg mem_sensor_ka8g2_init,regc
-	branch mouse_sensor_wr_seq
-
-mouse_ka5857_init_param:
-	jam KA5857,mem_config_sensor_type
-	arg mem_sensor_ka5857_init,regc
-	branch mouse_sensor_poweron_end
-
-mouse_sensor_reset:	
-	arg 0x8006,temp
-	fetch 1,mem_config_sensor_type
-	bne KA8G2,mouse_sensor_reset_end
-	arg 0x9706,temp
-mouse_sensor_reset_end:
-	copy temp,pdata
-	call twspi_write
-	nop 12000
-	rtn
-
-mouse_sensor_poweron_init:
-	arg mem_sensor_poweron_init,regc
-	fetch 1,mem_config_sensor_type
-	rtnne KA8G2
-	arg mem_sensor_ka8g2_poweron_init,regc
-	rtn
-	
-mouse_sensor_poweron:
-	bpatch patch11_4,mem_patch11
-	call mouse_sensor_spi_init
-	call mouse_sensor_reset
-	call mouse_sensor_poweron_init
-mouse_sensor_poweron_end:
-	call mouse_sensor_wr_seq
-	branch mouse_setting_sensor_type
-
-mouse_sensor_powerdown:
-	bpatch patch11_5,mem_patch11
-	call mouse_init_sunt
-	call mouse_sensor_spi_init
-	arg 0x0806,temp
-	fetch 1,mem_config_sensor_type
-	bne KA8G2,mouse_sensor_powerdown_end
-	arg 0x1f06,temp
-mouse_sensor_powerdown_end:
-	copy temp,pdata
-	branch twspi_write
-/*********sensor init*************/	
-
-
-
-/*********sensor motion*************/
-mouse_check_sensor_data:
-	fetch 1,mem_spi_write_flash_sm
-	rtnne FLASH_SM_NO_BUYS
-	fetch 1,mem_config_sensor_type
-	beq P3205,mouse_p32xx_sensor_motion
-	beq P3065,mouse_p32xx_sensor_motion
-	beq KA8,mouse_p32xx_sensor_motion
-	beq P3204,mouse_p32xx_sensor_motion
-	beq P3212,mouse_p3212_sensor_motion
-	beq P3065_xy,mouse_p32xx_sensor_motion
-	beq P8009,mouse_p8009_sensor_motion	
-	beq KA8G2,mouse_pka8g2_sensor_motion
-	beq KA5857,mouse_pka8g2_sensor_motion
-	branch mouse_p32xx_sensor_motion
-
-
-mouse_p32xx_sensor_motion:
-	call mouse_clear_sensor_data
-	disable user
-	fetch 1,mem_sensor_motion_gpio
-	beq GPIO_DISABLE,mouse_p32xx_sensor_motion_2
-	fetcht 1,mem_sensor_motion_gpio
-	call gpio_get_bit
-	nrtn true
-mouse_p32xx_sensor_motion_2:
-	setarg PAN_REG_PID_L
-	call twspi_read
-	bne P32XX_ID1,mouse_p3065_judge   
-mouse_p32xx_sensor_motion_1:
-	setarg PAN_REG_MOTION_STAUS
-	call twspi_read
-	rtnbit0 7
-	call mouse_read_sensor_common
-	fetch 1,mem_mouse_x
-	call mouse_data_extsign
-	store 2,mem_mouse_x
-	fetch 1,mem_mouse_y
-	call mouse_data_extsign
-	store 2,mem_mouse_y
-	fetch 1,mem_config_sensor_angle
-	beq MOUSE_6CLK_ANGLE,mouse_motion32xx_6clk_direction_selection
-	beq MOUSE_9CLK_ANGLE,mouse_motion32xx_9clk_direction_selection
-	beq MOUSE_12CLK_ANGLE,mouse_motion32xx_12clk_direction_selection
-	beq MOUSE_3CLK_ANGLE,mouse_motion32xx_3clk_direction_selection
-	rtn
-
-mouse_p3065_judge:
-	beq P3065_ID1,mouse_p32xx_sensor_motion_1
-	branch mouse_twspi_reset
-	
-mouse_motion32xx_6clk_direction_selection:
-	call mouse_motion_6clk_direction_dispose
-	branch mouse_sensor_sdio_low
-mouse_motion32xx_9clk_direction_selection:
-	call mouse_motion_9clk_direction_dispose
-	branch mouse_sensor_sdio_low
-mouse_motion32xx_12clk_direction_selection:
-	call mouse_motion_12clk_direction_dispose
-	branch mouse_sensor_sdio_low
-mouse_motion32xx_3clk_direction_selection:
-	call mouse_motion_3clk_direction_dispose
-	branch mouse_sensor_sdio_low
-
-
-	
-mouse_p3212_sensor_motion:
-	call mouse_clear_sensor_data
-	fetch 1,mem_sensor_motion_gpio
-	beq GPIO_DISABLE,mouse_p3212_sensor_motion_1
-	fetcht 1,mem_sensor_motion_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
-mouse_p3212_sensor_motion_2:
-	setarg PAN_REG_MOTION_STAUS
-	call twspi_read
-	rtnbit0 7
-	call mouse_read_sensor_common
-	call mouse_read_3212sensor_xy_high
-	store 1,mem_mouse_xy_h
-	rshift4 pdata,pdata
-	call mouse_data_extsign_bit3
-	store 1,mem_mouse_x+1
-	fetch 1,mem_mouse_xy_h
-	and pdata,0x0f,pdata
-	call mouse_data_extsign_bit3
-	store 1,mem_mouse_y+1
-	fetch 1,mem_config_sensor_angle
-	beq MOUSE_6CLK_ANGLE,mouse_motion_6clk_direction_dispose
-	beq MOUSE_9CLK_ANGLE,mouse_motion_9clk_direction_dispose
-	beq MOUSE_12CLK_ANGLE,mouse_motion_12clk_direction_dispose
-	beq MOUSE_3CLK_ANGLE,mouse_motion_3clk_direction_dispose
-	rtn
-
-mouse_read_3212sensor_xy_high:
-	setarg 0x12
-	branch twspi_read
-
-mouse_pka8g2_sensor_motion:
-	call mouse_clear_sensor_data
-	fetch 1,mem_sensor_motion_gpio
-	beq GPIO_DISABLE,mouse_pka8g2_sensor_motion_1
-	fetcht 1,mem_sensor_motion_gpio
-	call gpio_get_bit
-	nrtn true
-mouse_pka8g2_sensor_motion_1:
-	setarg PAN_REG_PID_L
-	call twspi_read
-	bne PKA8G2_ID1,mouse_twspi_reset
-	branch mouse_p3212_sensor_motion_2
-
-
-mouse_p8009_sensor_motion:
-	call mouse_clear_sensor_data
-	disable user
-	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
-
-mouse_motion_6clk_direction_dispose:
-	fetch 2,mem_mouse_x
-	sub pdata,0,pdata
-	store 2,mem_mouse_x
-	branch enable_user
-mouse_motion_12clk_direction_dispose:
-	fetch 2,mem_mouse_y
-	sub pdata,0,pdata
-	store 2,mem_mouse_y
-	branch enable_user
-mouse_motion_9clk_direction_dispose:
-	fetch 2,mem_mouse_y
-	sub pdata,0,pdata
-	store 2,mem_mouse_y
-	fetch 2,mem_mouse_x
-	sub pdata,0,pdata
-	store 2,mem_mouse_x
-	call mouse_sensor_data_swap_places
-	branch enable_user
-mouse_motion_3clk_direction_dispose:
-	call mouse_sensor_data_swap_places
-	branch enable_user
-
-mouse_sensor_data_swap_places:
-	fetch 2, mem_mouse_y
-	fetcht 2,mem_mouse_x
-	store 2,mem_mouse_x
-	storet 2,mem_mouse_y
-	rtn
-
-	
-mouse_clear_sensor_data:
-	fetch 1,mem_mouse_move_flag
-	call mouse_read_sensor_common,blank
-	jam 1,mem_mouse_move_flag
-	rtn
-
-mouse_clear_sensor_data_by_reset:
-	jam 1,mem_mouse_clear_sensor_data_flag
-	call le_set_config_more_data
-mouse_init_sensor_reset:
-	branch mouse_init_sunt
-
-mouse_data_xy_release:
-	fetch 1,mem_sensor_motion_gpio
-	rtnne GPIO_DISABLE
-	fetch 1,mem_mouse_long_mult_flag
-	rtn blank
-	increase -1,pdata
-	store 1,mem_mouse_long_mult_flag
-	setarg 0
-	store 4,mem_mouse_x
-	branch mouse_init_sensor_reset
-
-mouse_data_extsign:
-	rtnbit0 7
-	arg 0xff00,temp
-mouse_data_ior:
-	ior temp,pdata
-	rtn
-
-mouse_data_extsign_bit3:
-	rtnbit0 3
-	arg 0xf0,temp
-	branch mouse_data_ior
-
-mouse_read_sensor_common:
-	arg PAN_REG_DELTA_X,pdata
-	call twspi_read
-	store 2,mem_mouse_x
-	arg PAN_REG_DELTA_Y,pdata
-	call twspi_read
-	branch mouse_data_y_store
-
-	/* sdio high will cost extra 9mA */
-mouse_sensor_sdio_low:
-	fetcht 1,mem_mouse_sensor_sdio_gpio
-	call gpio_get_bit
-	rtn true
-	setarg 0x0a
-	call twspi_read
-	nop 1000
-	branch mouse_sensor_sdio_low
-
-mouse_set_sdio_high:		// make sdio high to make 100uA less
-	setarg 0x8100
-	branch twspi_write
-	
-/****************************sensor*************************/
-
-/*******************mouse fast connect******************/
-mouse_bluetooth_fast_conn_init:
-	jam 0xff,mem_device_fast_conn_flag
-mouse_ble_fast_conn_init:	
-	jam 0x34,mem_xrecord_mode
-	setarg 0x0f0f0f
-	store 3,mem_le_lap
-	store 3,mem_le_lap+3
-	branch mouse_start_reconnect
-
-mouse_buletooth_fast_conn_end:
-	bpatch patch11_6,mem_patch11
-	call hid_device_select_reconn_device
-	call mouse_bluetooth_fast_conn_disable
-	fetch 1,mem_device_flag
-	beq MODE_BT_DEVICE1,mouse_device1_check_auto_discover
-	beq MODE_BT_DEVICE2,mouse_device2_check_auto_discover
-	rtn
-mouse_device1_check_auto_discover:
-	fetch 6,mem_device1_addr
-	branch mouse_device_check_auto_discover
-mouse_device2_check_auto_discover:
-	fetch 6,mem_device2_addr
-mouse_device_check_auto_discover:	
-	fetcht 6,mem_device_compare_addr
-	isub temp,null
-	branch mouse_start_discovery ,zero
-	branch mouse_start_reconnect_device
-
-mouse_bluetooth_fast_conn_disable:
-	jam 0x5a,mem_device_fast_conn_flag
-	rtn	
-/*******************mouse fast connect******************/
-
-mouse_stop_bluetooth_mode:
-	fetch 2,mem_ui_state_map
-	bbit1 UI_STATE_BLE_CONNECTED,app_ble_disconnect
-	branch mouse_stop_discovery
-mouse_disconnect:
-	setarg 0
-	store 2,mem_device_no_data_timer
-	fetch 2,mem_ui_state_map
-	bbit1 UI_STATE_BLE_CONNECTED,app_ble_disconnect
-	rtn
-	
-mouse_check_125Hz:
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	rtnbit0 MOUSE_ENABLE_BT_125Hz
-mouse_bluetooth_125Hz:
-	nbranch mouse_bluetooth_125hz_clear,user
-	fetch 1,mem_bluetooth_125hz_cnt
-	increase 1,pdata
-	and_into 0x0f,pdata
-	store 1,mem_bluetooth_125hz_cnt
-	nrtn blank
-mouse_bluetooth_125hz_clear:
-	jam 0,mem_bluetooth_125hz_cnt
-	branch disable_user
-
-mouse_current_mult_update:
-	fetch 1,mem_sensor_motion_gpio
-	rtnne GPIO_DISABLE
-	jam 0,mem_lpm_mult
-	jam 30,mem_mouse_current_mult_timer
-	rtn
-
-
-mouse_priority_bb_event:	
-	bpatch patch11_7,mem_patch11
-	copy regc,pdata
-	beq BT_EVT_LE_CONNECTED,mouse_le_bb_event_connected
-	beq BT_EVT_LE_DISCONNECTED,mouse_le_bb_disconnected
-	beq BT_EVT_BUTTON_LONG_PRESSED,mouse_bb_event_discovery_btn
-	beq BT_EVT_LE_PAIRING_SUCCESS,mouse_le_pairing_success
-	beq BT_EVT_LE_ENC_INFO,mouse_le_enc_info
-	beq BT_EVT_LE_START_ENC,mouse_le_ll_start_encryt
-	beq BT_EVT_LE_PAIRING_COMPLETE,app_ble_store_reconn_info
-	beq BT_EVT_LE_PARSE_CONN_PAPA_UPDATE_RSP,mouse_le_conn_param_update_rsp_recieved
-	beq BT_EVT_24G_PAIRING_COMPLETE,mouse_24g_pairing_complete
-	beq BT_EVT_24G_ATTEMPT_FAIL,mouse_24g_attempt_fail
-	beq BT_EVT_24G_ATTEMPT_SUCCESS,mouse_24g_attempt_success
-	beq BT_EVT_LE_PARSE_CONN_PARAM_ACCEPTED,mouse_le_parse_conn_param_accepted
-	rtn
-
-/***************************le*************************/
-mouse_le_bb_event_connected:
-	call mouse_device_poweron_led_config
-	jam 0,mem_mouse_long_mult_flag
-	call mouse_init_sensor_reset
-	jam 1,mem_device_le_bb_connected_flag
-	call mouse_24g_first_store_reconn_info
-	fetch 1,mem_device_le_reconnect_flag
-	nbranch mouse_le_bb_event_connected_next,blank
-	jam 0x14,mem_device_send_secutiry_request_timer
-mouse_le_bb_event_connected_next:
-	fetch APP_DISC_RSN_SIZE,mem_app_disconn_reason_flag
-	set0 APP_DISC_BY_BUTTON ,pdata
-	store APP_DISC_RSN_SIZE,mem_app_disconn_reason_flag
-	jam 0,mem_device_direct_timer
-	fetch 2,mem_le_battery_level_updata_timer_init
-	store 2,mem_le_battery_level_updata_timer
-	call mouse_no_data_timer_init
-	branch mouse_stop_discovery
-
-mouse_le_bb_disconnected:
-	setarg 0
-	store 2,mem_le_battery_level_updata_timer
-	jam 0,mem_device_le_bb_connected_flag
-	arg LE_INTERVAL_7_5MS,temp
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	bbit1 MOUSE_ENABLE_BT_125Hz,mouse_le_bb_disconnected_next
-	arg LE_INTERVAL_8_75MS,temp
-mouse_le_bb_disconnected_next:	
-	storet 2,mem_le_interval_min
-	storet 2,mem_le_interval_min+2
-	jam LE_LPM_ENABLE,mem_le_conn_param_reject
-	jam 0,mem_mouse_clear_sensor_data_flag
-	call le_clr_config_more_data
-	branch mouse_bb_disconnected
-
-mouse_le_pairing_success:
-	arg LL_PAIRING_SUCCESS_FLAG,queue
-	branch mouse_le_enable_connect_flag
-
-mouse_le_enc_info:
-mouse_updata_le_param:
-	jam BT_CMD_LE_UPDATE_CONN,mem_fifo_temp
-	branch ui_ipc_send_cmd
-	
-mouse_le_ll_start_encryt:
-	fetch 1,mem_device_le_reconnect_flag
-	beq 1,mouse_le_ll_reconn_start_encryt
-	branch mouse_le_ll_enable_start_enc_flag
-mouse_le_ll_reconn_start_encryt:
-	call mouse_updata_le_param
-	jam 20,mem_le_start_encrypt_timer
-mouse_le_ll_enable_start_enc_flag:
-	arg LL_START_ENC_FLAG,queue
-	branch mouse_le_enable_connect_flag
-
-mouse_le_enable_connect_flag:
-	fetch 1,mem_le_connect_status_flag
-	qset1 pdata
-	store 1,mem_le_connect_status_flag
-	rtn
-
-mouse_le_conn_param_update_rsp_recieved:
-	fetch 2,mem_le_l2cap_signaling_conn_param_update_rsp_result
-	rtneq BLE_SIGNALING_CONNECT_PARAMETER_UPDATE_ACCEPTED
-	fetch 1,mem_le_tsniff
-	rshift2 pdata,pdata
-	sub pdata,LE_INTERVAL_15MS,null
-	rtn positive
-	setarg LE_INTERVAL_11_25MS
-	call mouse_le_interval_store
-	call mouse_updata_le_param
-mouse_le_conn_param_lpm_disable:
-	jam LE_LPM_DISABLE,mem_le_conn_param_reject
-	rtn
-
-mouse_le_bb_event_connect_complete:
-	fetch 1,mem_device_le_reconnect_flag
-	nrtn blank
-	fetch 1,mem_le_att_handle
-	sub pdata,34,pdata
-	nrtn zero
-	jam 0,mem_le_start_encrypt_timer
-mouse_le_write_enable:	
-	arg WRITE_REQ_ENABLE_FLAG,queue
-	branch mouse_le_enable_connect_flag
-
-mouse_le_parse_conn_param_accepted:
-	fetch 1,mem_le_new_conninterval
-	sub pdata,LE_INTERVAL_15MS,null
-	nbranch mouse_le_conn_param_lpm_disable,positive
-	call mouse_le_interval_store
-	fetch 1,mem_le_new_connslavelatency
-	branch mouse_le_lpm_mult_reinit,blank
-	fetcht 1,mem_lpm_mult_init
-	isub temp,null
-	branch mouse_le_lpm_mult_reinit,positive
-	fetch 1,mem_le_new_connslavelatency
-	store 1,mem_lpm_mult
-	branch mouse_le_conn_param_lpm_enable
-mouse_le_lpm_mult_reinit:
-	fetch 1,mem_lpm_mult_init
-	store 1,mem_lpm_mult
-mouse_le_conn_param_lpm_enable:
-	jam LE_LPM_ENABLE,mem_le_conn_param_reject
-	rtn
-	
-/*
-mouse_le_disable_connect_flag:
-	fetch 1,mem_le_connect_status_flag
-	qset0 pdata
-	store 1,mem_le_connect_status_flag
-	rtn
-	
-mouse_le_clean_connect_flag:
-	jam 0,mem_le_connect_status_flag
-	rtn
-*/
-
-
-/*
-mouse_le_reconn_write_enable_timer_reinit:
-	fetch 1,mem_device_le_reconnect_flag
-	rtn blank
-	fetch 1,mem_le_connect_status_flag
-	and pdata,0x03,pdata
-	rtneq 0x03
-	jam 2,mem_le_start_encrypt_timer
-	rtn
-*/
-mouse_le:
-	bpatch patch12_0,mem_patch12
-	call le_fifo_check_nearly_full
-	nrtn blank
-	fetch 1,mem_device_fast_conn_flag
-	beq 0xff,mouse_le_next
-	fetch 1,mem_le_connect_status_flag
-	and pdata,0x03,pdata
-	rtnne 0x03
-mouse_le_next:	
-	fetch 1,mem_mouse_clear_sensor_data_flag
-	call mouse_clear_sensor_data_by_reset,blank
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	bbit1 MOUSE_24G_PAIRING_FLAG,hid_device_le_send_empty_packet
-	bbit1 MOUSE_SELECT_DEVICE_FLAG,hid_device_le_send_empty_packet
-	bbit1 MOUSE_BT_DISCOVERY_BUTTON_DOWN_FLAG,hid_device_le_send_empty_packet
-	bbit1 MOUSE_BT_DISCOVERY_BUTTON_LONG_DOWN_FLAG,hid_device_le_send_empty_packet
-mouse_le_package:
-	call mouse_motion
-	call mouse_check_125Hz
-	nrtn user
-	call mouse_current_mult_update
-	call mouse_data_xy_release
-	call mouse_wheel_trigger
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	bbit0 MOUSE_ENABLE_KEYBOARD,hid_device_le_send_mouse_data
-	branch hid_device_send_package_data_check
-
-mouse_fill_battery_level_le:
-	arg 1,rega
-	fetcht 2,mem_le_battery_level_handle
-	call le_att_malloc_tx_notify
-	fetch 1,mem_le_battery_level_percentage
-	branch   istore_1_contw_rtn
-
-
-mouse_check_51cmd_adv:
-	jam 0,mem_device_le_reconnect_flag
-	fetch 3,mem_le_adv_ind
-	store 3,mem_le_adv_data+4
-	call mouse_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 mouse_le_adv_data_update
-	branch check_51cmd_adv
-
-mouse_le_check_adv_flag:
-	arg mem_le_adv_data,rega
-mouse_le_check_adv_flag_loop:
-	ifetch 1,rega	//length
-	rtn blank
-	iadd contr,rega
-	ifetch 1,contr	//type
-	rtneq 0x01
-	branch mouse_le_check_adv_flag_loop
-	
-mouse_le_adv_data_update:
-	arg mem_le_adv_data+11,contw
-	arg 19,loopcnt
-	call memcpy
-	branch le_modified_name_adv
-	
-/***************************le*************************/
-mouse_le_parse_att:
-	bpatch patch12_1,mem_patch12
-	copy rega,contr
-	ifetch 3,contr
-	store 3,mem_le_att_opcode
-	beq ATTOP_READ_REQUEST,mouse_le_parse_att_read_request
-	beq ATTOP_WRITE_REQUEST,mouse_le_parse_att_write_request	
-	branch le_parse_att2	
-
-mouse_le_parse_att_read_request:
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	bbit0 MOUSE_ENABLE_LE_BATTERY_SERVICE_CANCEL,le_parse_att_read_request
-	call le_check_encrypt_state
-	fetcht 2,mem_le_att_handle
-	fetch 1,mem_le_configuration
-	bbit1 BIT_BLE_READ_AUTH,mouse_le_send_att_read_response_check_auth
-//input:temp is handle
-mouse_le_send_att_read_response:
-	fetch 2,mem_le_att_handle
-	beq 0x30,le_send_att_error_response_notfound
-	fetcht 2,mem_le_att_handle
-	branch le_send_att_read_response
-
-mouse_le_send_att_read_response_check_auth:
-	fetch 2,mem_le_pairing_handle
-	isub temp,null
-	nbranch mouse_le_send_att_read_response,zero
-	nbranch mouse_le_send_att_read_response,user
-	branch le_send_att_read_response_error_insufficient_auth
-
-mouse_le_parse_att_write_request:		// mac os 10.9.5 reconnect can't move
-	copy contr,rega
-	fetch 2,mem_le_l2cap_size
-	add pdata,-3,regb
-	call le_writeatt_cb
-	branch hid_device_le_parse_att_write_request
-
-mouse_bb_disconnected:
-	bpatch patch12_2,mem_patch12
-	call mouse_bb_discon_clear_stack
-	fetch APP_DISC_RSN_SIZE,mem_app_disconn_reason
-	bbit1 APP_DISC_BLE,mouse4_0_event_bb_disconn
-	bbit1 APP_DISC_BY_BUTTON,app_disconn_reason_clear
-	branch mouse_start_discovery
-	
-mouse_bb_discon_clear_stack:
-	setarg 0
-	store 8,mem_wheel_tb_old_pinlevel
-	istore 2,contw             //clean wheel statue
-	jam 0,mem_mouse_move_flag
-	jam 0,mem_ltk_exists
-	rtn
-
-mouse4_0_event_bb_disconn:
-	jam 0,mem_le_connect_status_flag
-	fetch APP_DISC_RSN_SIZE,mem_app_disconn_reason
-	bbit1 APP_DISC_BY_BUTTON,app_disconn_reason_clear
-	branch mouse_app_enter_hibernate
-
-
-/********************mouse 100ms timer*****************/
-mouse_bb_event_timer:
-	bpatch patch12_3,mem_patch12
-	//adc
-	call mouse_low_voltage_led_timer
-	call mouse_adc_read
-	//led
-	call mouse_logo_led_on_timer
-	call mouse_led_multi_timer
-	call mouse_dpi_led_blink_delay_timer
-	//key
-	call mouse_dpi_key_check_long_press
-	call mouse_bt_discovery_check
-	call mouse_commbination_key_process
-	call mouse_commbination_dpi_check_timer
-	call mouse_commbination_key_select_device_timer
-
-	call mouse_current_mult_update_timer
-	call mouse_wheel_trigger_timer
-	call mouse_store_information_delay_timer
-	call mouse_check_no_data_timeout_timer
-	
-	//24g
-	call mouse_24g_long_sleep_param_update_timer
-mouse_bb_event_timer_next:
-	call g24_pair_timeout_timer
-	call g24_reconn_timeout_timer
-
-	//ble
-	call mouse_check_discovery_timeout_timer
-	call mouse_check_direct_timeout_timer
-	call mouse_le_enable_att_list_timer
-	call mouse_le_battery_updata_timer
-	branch mouse_le_send_smp_security_request_timer	
-
-/***********************************100MS TIMER******************************************/
-
-mouse_bt_discovery_check:
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	rtnbit0 MOUSE_ENABLE_PB_BUTTON_LONG_PRESS_DISCONVERY
-mouse_bt_discovery_by_pb_button:
-	fetch 1,mem_select_device_button_statue
-	rtnne PB_BUTTON_STATE_DOWN
-	arg mem_bt_discovery_count,regc
-	arg mouse_long_button_bt_discovery,regb
-	branch timer_single_step
-		
-mouse_long_button_bt_discovery:
-	fetch 1,mem_device_flag
-	rtneq MODE_24G_DEVICE
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	rtnbit1 MOUSE_BT_DISCOVERY_BUTTON_LONG_DOWN_FLAG
-	arg MOUSE_BT_DISCOVERY_BUTTON_LONG_DOWN_FLAG,queue
-	call mouse_enable_function_flag
-	call app_evt_button_long_pressed
-	branch mouse_bb_event_discovery_btn
-
-mouse_commbination_dpi_check_timer:
-	fetch 1,mem_mouse_commbination_key_dpi
-	rtneq GPIO_DISABLE
-	fetch 1,mem_mouse_pair_flag
-	rtn blank
-	call mouse_check_key_gpio
-	and rega,0x07,pdata
-	fetcht 1,mem_mouse_commbination_key_dpi
-	isub temp,null
-	branch mouse_commbination_dpi_check,zero
-	fetch 1,mem_mouse_commbination_dpi_timer
-mouse_commbination_key_count_init:
-	store 1,mem_mouse_commbination_key_count
-	rtn
-	
-mouse_commbination_dpi_check:	
-	arg mem_mouse_commbination_key_count,regc
-	arg mouse_dpi_process_skip_ghost,regb
-	branch timer_single_step
-
-
-mouse_retransmit_commbination_key_check:
-	fetch 1,mem_24g_shutdown_flag
-	rtn blank
-mouse_commbination_key_select_device_timer:
-	fetch 1,mem_mouse_commbination_key_select_device
-	rtneq GPIO_DISABLE
-	call mouse_check_key_gpio
-	and rega,0x07,pdata
-	fetcht 1,mem_mouse_commbination_key_select_device
-	isub temp,null
-	branch mouse_check_mouse_key_select_device_set,zero
-	fetch 1,mem_mouse_commbination_select_device_timer
-	branch mouse_commbination_key_count_init
-	
-mouse_check_mouse_key_select_device_set:
-	arg mem_mouse_commbination_key_count,regc
-	arg mouse_ready_reconnection_by_button,regb
-	branch timer_single_step
-		
-mouse_commbination_key_process:
-	fetch 1,mem_device_flag
-	beq MODE_24G_DEVICE,mouse_24g_commbination_key_process
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	rtnbit0 MOUSE_ENABLE_COMMBINATION_KEY_BY_BT_DISCOVERY
-	fetcht 1,mem_mouse_commbination_key_bt
-	branch mouse_commbination_key_start
-
-mouse_24g_commbination_key_process:
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	rtnbit0 MOUSE_ENABLE_COMMBINATION_KEY_BY_24G_PAIRING
-	fetcht 1,mem_mouse_commbination_key_24g
-mouse_commbination_key_start:
-	storet 1,mem_mouse_commbination_key
-	call mouse_check_key_gpio
-	and rega,0x07,pdata
-	fetcht 1,mem_mouse_commbination_key
-	isub temp,null
-	branch mouse_commbination_key_down,zero
-mouse_commbination_key_up:
-	fetch 1,mem_ui_button_timeout
-	store 1,mem_combination_ui_button_count	//combination key timer init 
-	fetch 1,mem_commbination_key_statue
-	rtneq COMMBINATION_KEY_STATE_UP
-	jam COMMBINATION_KEY_STATE_UP,mem_commbination_key_statue	
-	rtn
-		
-mouse_commbination_key_down:
-	call mouse_combination_ui_timer
-	fetch 1,mem_commbination_key_statue
-	rtneq COMMBINATION_KEY_STATE_DOWN
-	jam COMMBINATION_KEY_STATE_DOWN,mem_commbination_key_statue
-	rtn
-
-mouse_combination_ui_timer:
-	arg mouse_24g_start_pair_mode,regb
-	arg mem_combination_ui_button_count,regc
-	fetch 1,mem_device_flag
-	beq MODE_24G_DEVICE,timer_single_step
-	arg mouse_long_button_bt_discovery,regb
-	call timer_single_step
-	fetch 1,mem_combination_ui_button_count
-	beq 1,mouse_bt_discovery_button_down_enable	// ble release key press
-	rtn
-
-mouse_check_discovery_timeout_timer:	
-	arg mem_device_discovery_timer,regc
-	arg mouse_check_discovery_timeout,regb
-	branch timer_single_step_2B
-
-mouse_check_discovery_timeout:
-	call mouse_stop_discovery
-	branch mouse_app_enter_hibernate
-
-mouse_check_direct_timeout_timer:	
-	arg mem_device_direct_timer,regc
-	arg mouse_check_direct_timeout,regb
-	call timer_single_step
-	fetch 1,mem_device_direct_timer
-	beq 1,app_ble_stop_direct_adv
-	rtn
-
-mouse_check_direct_timeout:
-	fetch 1,mem_device_fast_conn_flag
-	beq 0xff,mouse_buletooth_fast_conn_end
-	fetch 1,mem_reconn_times
-	nbranch mouse_polling_device,blank
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	bbit1 MOUSE_ENABLE_BT_RECONNECT_TIMEOUT_ENTER_DISCOVERY,mouse_start_discovery
-	bbit1 MOUSE_ENABLE_24G_FIRST_AUTO_PAIRING,mouse_24g_first_bb_event_reconn_timeout
-	branch mouse_app_enter_hibernate
-	
-mouse_le_enable_att_list_timer:
-	arg mem_le_start_encrypt_timer,regc
-	arg mouse_le_write_enable,regb
-	branch timer_single_step
-
-mouse_le_send_smp_security_request_timer:
-	fetch 1,mem_device_le_bb_connected_flag
-	rtn blank
-	arg mem_device_send_secutiry_request_timer,regc
-	arg mouse_le_pairing_sm_start_check,regb
-	branch timer_single_step
-mouse_le_pairing_sm_start_check:
-	fetch 1,mem_device_le_reconnect_flag
-	nrtn blank
-	fetch 1,mem_le_pairing_state
-	rtnne FLAG_LE_PAIRING_NULL
-	branch le_pairing_sm_start
-
-mouse_le_battery_updata_timer:
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	rtnbit1 MOUSE_ENABLE_LE_BATTERY_SERVICE_CANCEL
-	arg mem_le_battery_level_updata_timer,regc
-	arg mouse_le_battery_level_updata,regb
-	branch timer_single_step
-
-mouse_le_battery_level_updata:
-	fetch 2,mem_le_battery_level_updata_timer_init
-	store 2,mem_le_battery_level_updata_timer
-	branch mouse_fill_battery_level_le
-	
-mouse_le_enable_att_list:	
-	fetch 1,mem_le_connect_status_flag
-	rtnbit1 LL_PAIRING_SUCCESS_FLAG
-	call mouse_updata_le_param
-	arg WRITE_REQ_ENABLE_FLAG,queue
-	branch mouse_le_enable_connect_flag
-
-mouse_current_mult_update_timer:
-	arg mem_mouse_current_mult_timer,regc
-	arg mouse_current_mult_reinit,regb
-	branch timer_single_step
-mouse_current_mult_reinit:
-	fetch 1,mem_lpm_mult_init
-	store 1,mem_lpm_mult
-mouse_long_mult_init:
-	fetch 1,mem_mouse_long_mult_count
-	store 1,mem_mouse_long_mult_flag
-	rtn
-
-mouse_check_no_data_timeout_timer:	
-	arg mem_device_no_data_timer,regc
-	arg mouse_check_no_data_timeout,regb
-	branch timer_single_step_2B
-
-mouse_check_no_data_timeout:
-	fetch 1,mem_device_flag
-	beq MODE_24G_DEVICE,mouse_24g_hibernate_set
-	branch mouse_disconnect
-	
-mouse_no_data_timer_init:
-	fetch 2,mem_device_no_data_timeout
-	store 2,mem_device_no_data_timer
-	rtn
-
-mouse_store_information_delay_timer:
-	arg mem_store_information_delay_timer,regc
-	arg mouse_store_device_info_check,regb
-	branch timer_single_step
-
-mouse_store_device_info_check:
-	call mouse_store_device_info
-	fetch 1,mem_device_need_soft_reset
-	nbranch mouse_soft_reset,blank
-	rtn
-
-/***********************************100MS TIMER END******************************************/
-
-mouse_bb_event_discovery_btn:
-	isolate1 mark_24g,mark
-	call mouse_24g_stop,true
-	call mouse_disconnect
-	jam 0,mem_le_connect_status_flag
-	branch mouse_start_discovery
-	
-mouse_start_discovery:
-	bpatch patch12_4,mem_patch12
-	call mouse_device_discovery_led_config
-	fetch 2,mem_ui_state_map
-	isolate1 UI_STATE_BLE_ADV,pdata
-	call mouse_stop_le_adv,true		//reconnect adv
-	call mouse_bluetooth_fast_conn_disable
-	fetch 2,mem_ui_state_map
-	bbit1 UI_STATE_BLE_ADV,mouse_start_discovery_norandom
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	bbit0 MOUSE_ENABLE_BLE_RANDOM_ADDRE,mouse_start_discovery_norandom
-	fetcht 1,mem_random_addr_increase_count
-	increase 1,temp
-	storet 1,mem_random_addr_increase_count
-	storet 1,mem_le_lap+2
-	random pdata					//random ble addr
-	store 2,mem_le_lap
-mouse_start_discovery_norandom:
-	fetch 3,mem_device_le_lap_temp
-	store 3,mem_le_lap+3
-	call app_lpm_mult_disable
-	fetch 2,mem_device_discovery_timeout
-	store 2,mem_device_discovery_timer
-	setarg 0
-	store 2,mem_device_no_data_timer
-	store 2,mem_le_battery_level_updata_timer
-	store 1,mem_device_direct_timer
-	store 1,mem_mouse_clear_sensor_data_flag
-	arg MOUSE_STORE_EEPROM_FLAG,queue
-	call mouse_enable_function_flag
-	call mouse_bt_discovery_button_down_disable
-	branch mouse_check_51cmd_adv
-
-mouse_stop_discovery:
-	bpatch patch12_5,mem_patch12
-	arg MOUSE_BT_DISCOVERY_BUTTON_LONG_DOWN_FLAG,queue
-	call mouse_disable_function_flag
-mouse_stop_le_adv:
-	setarg 0
-	store 1,mem_device_direct_timer
-	store 2,mem_device_discovery_timer
-	branch check_51cmd_stop_adv
-
-mouse_store_remote_bdaddr:
-	bpatch patch12_6,mem_patch12
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	rtnbit0 MOUSE_STORE_EEPROM_FLAG
-	arg MOUSE_STORE_EEPROM_FLAG,queue
-	call mouse_disable_function_flag
-	call hid_device_check_device_addr
-mouse_unplug_clean_bdaddr:
-	call hid_device_before_store_reconn_info
-	branch mouse_store_device_info_delay
-	
-/******************************store info start**************************************/
-	
-mouse_store_device_info_delay:	
-	fetch 1,mem_store_information_delay_timer_init
-	store 1,mem_store_information_delay_timer
-	rtn
-
-mouse_store_device_info:
-	bpatch patch12_7,mem_patch12
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	bbit1 MOUSE_ENABLE_EEPROM,mouse_store_eeprom_device_info
-	bbit1 MOUSE_ENABLE_FLASH,mouse_store_flash_device_info
-	bbit1 MOUSE_ENABLE_OTP,mouse_store_otp_device_info
-	rtn
-
-mouse_store_dpi_info_check:
-	bpatch patch13_0,mem_patch13
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	bbit1 MOUSE_ENABLE_EEPROM,mouse_store_eerpom_dpi
-	bbit1 MOUSE_ENABLE_OTP,mouse_store_otp_dpi
-	bbit1 MOUSE_ENABLE_FLASH,mouse_store_flash_device_info
-	rtn
-
-
-/******************eeprom data store****************/
-mouse_store_eeprom_device_info:
-	arg 128,temp
-	arg mem_device_flag,rega
-	arg MOUSE_INFO_EEPROM_OFFECT,regb
-	branch iicd_write_protect_eep_data
-
-mouse_store_eerpom_dpi:
-	arg 1,temp
-	arg mem_mouse_dpi,rega
-	arg MOUSE_DPI_EEPROM_OFFECT,regb
-	branch iicd_write_protect_eep_data
-	
-
-/******************flash data store****************/
-mouse_store_flash_device_info:
-	call 	hid_device_store_flash_device_info
-	branch mouse_sensor_spi_init
-
-
-
-/******************otp data store****************/
-mouse_store_otp_device_info:
-	call mouse_write_otp_app_initflag
-	call mouse_write_otp_device_flag
-	call mouse_write_otp_device_info
-	branch mouse_write_otp_le_addr_increase_count_info
-
-mouse_write_otp_app_initflag:
-	call mouse_otp_load_app_initflag
-	fetch 2,mem_store_flag
-	arg EEPROM_INIT_FLAG,temp
-	isub temp,null
-	rtn zero
-	branch mouse_otp_store_app_initflag
-
-/**********otp device flag store********/
-mouse_write_otp_device_flag:
-	fetchr regb,2,mem_otp_offset_device_flag
-	copy regb,regc
-mouse_write_otp_device_flag_loop:
-	call mouse_read_otp_device_flag_common
-	fetch 1,mem_device_otp_flag_temp
-	branch mouse_device_flag_store,blank
-	store 1,mem_device_flag_last
-	increase 1,regc
-	fetch 2,mem_otp_offset_device_flag_end
-	isub regc,null
-	nrtn positive
-	copy regc,regb
-	branch mouse_write_otp_device_flag_loop
-
-mouse_device_flag_store:
-	fetch 1,mem_device_flag_last
-	and pdata,0xf0,pdata
-	branch mouse_device_flag_store_check,blank
-	
-	fetch 1,mem_device_flag
-	call mouse_device_flag_otp_store_judge			// add device_flag check
-	store 1,mem_device_flag_value
-	
-mouse_devoce_flag_store_end:	
-	arg 1,loopcnt
-	copy regc,regb
-	arg mem_device_flag_value,rega
-	branch otp_write			/* regb = otp address, rega pointers data, loopcnt is count */
-
-mouse_device_flag_store_check:
-	fetcht 1,mem_device_flag_last
-	fetch 1,mem_device_flag
-	call mouse_device_flag_otp_store_judge
-	
-	isub temp,null
-	rtn zero
-	lshift4 pdata,pdata
-	iadd temp,pdata
-	store 1,mem_device_flag_value
-	
-	copy regc,pdata
-	fetcht 2,mem_otp_offset_device_flag
-	isub temp,null
-	branch mouse_devoce_flag_store_end,zero
-	
-	increase -1,regc
-	branch mouse_devoce_flag_store_end
-
-mouse_device_flag_otp_store_judge:
-	rtnne MODE_24G_DEVICE
-	increase 4,pdata
-	rtn
-
-/**********otp addr store********/
-mouse_write_otp_device_info:
-	fetch 1,mem_device_flag
-	beq MODE_24G_DEVICE,mouse_write_otp_24g_addr
-	beq MODE_BT_DEVICE1,mouse_write_otp_le_device1
-	beq MODE_BT_DEVICE2,mouse_write_otp_le_device2
-	rtn
-
-mouse_write_otp_24g_addr:
-	fetchr regb,2,mem_otp_offset_24g_addr
-	copy regb,regc
-mouse_otp_store_24g_addr_loop:
-	call mouse_read_otp_24g_addr_common
-	fetch 4,mem_mouse_24g_addr_temp
-	branch mouse_24g_addr_store,blank	
-	store 4,mem_mouse_24g_addr_last
-	increase 4,regc
-	fetch 2,mem_otp_offset_24g_addr_end
-	isub regc,null
-	nrtn positive	//if read end,retention last value
-	copy regc,regb
-	branch mouse_otp_store_24g_addr_loop
-
-mouse_24g_addr_store:
-	fetch 4,mem_mouse_24g_addr_last
-	fetcht 4,mem_device_24g_addr
-	isub temp,null
-	rtn zero
-	arg 4,loopcnt
-	arg mem_device_24g_addr,rega
-	copy regc,regb
-	branch otp_write			/* regb = otp address, rega pointers data, loopcnt is count */
-
-mouse_write_otp_le_device1:
-	fetchr regb,2,mem_otp_offset_le_addr1
-	copy regb,regc
-mouse_otp_store_le_addr1_loop:
-	call mouse_read_otp_le_addr1_common
-	fetch 6,mem_mouse_le_addr1_temp
-	branch mouse_le_addr1_store,blank	
-	store 6,mem_mouse_le_addr1_last
-	increase 6,regc
-	fetch 2,mem_otp_offset_le_addr1_end
-	isub regc,null
-	nrtn positive	//if read end,retention last value
-	copy regc,regb
-	branch mouse_otp_store_le_addr1_loop
-
-mouse_le_addr1_store:
-	fetch 6,mem_mouse_le_addr1_last
-	fetcht 6,mem_device1_addr
-	isub temp,null
-	rtn zero
-	arg 6,loopcnt
-	arg mem_device1_addr,rega
-	copy regc,regb
-	branch otp_write			/* regb = otp address, rega pointers data, loopcnt is count */
-
-
-mouse_write_otp_le_device2:
-	fetchr regb,2,mem_otp_offset_le_addr2
-	copy regb,regc
-mouse_otp_store_le_addr2_loop:
-	call mouse_read_otp_le_addr2_common
-	fetch 6,mem_mouse_le_addr2_temp
-	branch mouse_le_addr2_store,blank	
-	store 6,mem_mouse_le_addr2_last
-	increase 6,regc
-	fetch 2,mem_otp_offset_le_addr2_end
-	isub regc,null
-	nrtn positive	//if read end,retention last value
-	copy regc,regb
-	branch mouse_otp_store_le_addr2_loop
-
-mouse_le_addr2_store:
-	fetch 6,mem_mouse_le_addr2_last
-	fetcht 6,mem_device2_addr
-	isub temp,null
-	rtn zero
-	arg 6,loopcnt
-	arg mem_device2_addr,rega
-	copy regc,regb
-	branch otp_write			/* regb = otp address, rega pointers data, loopcnt is count */
-
-
-/**************store le addr increase count**********/
-mouse_write_otp_le_addr_increase_count_info:
-	fetch 1,mem_device_flag
-	rtneq MODE_24G_DEVICE
-	fetchr regb,2,mem_otp_offset_le_addr_increase_count
-	copy regb,regc
-mouse_otp_store_le_addr_increase_count_loop:
-	call mouse_read_otp_le_addr_increase_count_common
-	fetch 1,mem_random_addr_increase_count_temp
-	branch mouse_le_addr_increase_count_store,blank	
-	store 1,mem_random_addr_increase_count_last
-	increase 1,regc
-	fetch 2,mem_otp_offset_le_addr_increase_count_end
-	isub regc,null
-	nrtn positive	//if read end,retention last value
-	copy regc,regb
-	branch mouse_otp_store_le_addr_increase_count_loop
-
-mouse_le_addr_increase_count_store:
-	fetch 1,mem_random_addr_increase_count_last
-	fetcht 1,mem_random_addr_increase_count
-	isub temp,null
-	rtn zero
-	arg 1,loopcnt
-	arg mem_random_addr_increase_count,rega
-	copy regc,regb
-	branch otp_write			/* regb = otp address, rega pointers data, loopcnt is count */
-
-
-/**********otp dpi store********/
-mouse_store_otp_dpi:
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	rtnbit0 MOUSE_ENABLE_LOAD_AND_STORE_DPI
-	fetchr regb,2,mem_otp_offset_dpi
-	copy regb,regc
-mouse_otp_store_dpi_loop:
-	call mouse_read_otp_dpi_common
-	fetch 1,mem_mouse_dpi_temp
-	branch mouse_otp_dpi_store,blank
-	store 1,mem_mouse_dpi_last
-	increase 1,regc
-	fetch 2,mem_otp_offset_dpi_end
-	isub regc,null
-	nrtn positive
-	copy regc,regb
-	branch mouse_otp_store_dpi_loop
-
-mouse_otp_dpi_store:
-	fetch 1,mem_mouse_dpi_last
-	and pdata,0xf0,pdata
-	branch mouse_dpi_store_last_check,blank
-	fetch 1,mem_mouse_dpi
-	call mouse_dpi_otp_store_judge	//add dpi check
-	store 1,mem_mouse_otp_dpi_value
-mouse_dpi_store_end:	
-	arg 1,loopcnt
-	copy regc,regb
-	arg mem_mouse_otp_dpi_value,rega
-	branch otp_write			/* regb = otp address, rega pointers data, loopcnt is count */
-
-mouse_dpi_store_last_check:
-	fetcht 1,mem_mouse_dpi_last
-	fetch 1,mem_mouse_dpi
-	call mouse_dpi_otp_store_judge
-	isub temp,null
-	rtn zero
-	lshift4 pdata,pdata
-	iadd temp,pdata
-	store 1,mem_mouse_otp_dpi_value
-	
-	copy regc,pdata
-	fetcht 2,mem_otp_offset_dpi
-	isub temp,null
-	branch mouse_dpi_store_end,zero
-	
-	increase -1,regc
-	branch mouse_dpi_store_end
-
-mouse_dpi_otp_store_judge:
-	rtnne MOUSE_DPI_LEVEL1
-	increase 7,pdata
-	rtn
-	
-/******************************store info end**************************************/
-	
-
-
-/******************************load info start**************************************/
-
-mouse_device_flag_check:
-	fetch 1,mem_device_flag
-	sub pdata,4,null
-	rtn positive
-	call set_pdata_0
-	branch mouse_store_device_flag
-
-/******************eeprom data load****************/
-mouse_load_eeprom_info_check:
-	call iicd_read_init_pin
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	isolate1 MOUSE_ENABLE_2K_EEPROM,pdata
-	ncall clear_eeprom_size_2k,true
-	call set_eeprom_size_2k,true
-	call mouse_eeprom_load_recon_info
-	call mouse_device_flag_check
-	branch mouse_app_initflag_load_check
-
-mouse_eeprom_load_recon_info:
-	arg 128,temp
-	arg mem_device_flag,rega
-	arg MOUSE_INFO_EEPROM_OFFECT,regb
-	branch iicd_read_eep_data
-
-mouse_load_eeprom_dpi:
-	arg 1,temp
-	arg mem_mouse_dpi,rega
-	arg MOUSE_DPI_EEPROM_OFFECT,regb
-	branch iicd_read_eep_data
-
-
-/******************flash data load****************/
-mouse_load_flash_info_check:
-	call hid_device_load_flash_info_check
-	call mouse_device_flag_check
-	call mouse_app_initflag_load_check
-	branch mouse_sensor_spi_init
-	
-mouse_information_flash_parameters:
-	setarg mem_device_information_end
-	arg mem_device_information_start,temp
-	isub temp,temp
-	fetch 3,mem_flash_base
-	arg mem_device_information_start,rega
-	rtn
-	
-mouse_spid_flash_release_form_powerdown:
-	jam FLASH_COMMAND_RELEASE_FROM_POWERDOWN,mem_temp
-mouse_spid_write_flash_cmd:
-	call delay_nop100
-	call spid_unlock_flash
-	arg mem_write_flash_head_temp,rega
-	fetcht 1,mem_temp
-	call mouse_spid_write_flash_cmd_common
-	branch delay_nop100
-
-mouse_spid_flash_powerdown:
-	jam FLASH_COMMAND_POWERDOWN,mem_temp
-	branch mouse_spid_write_flash_cmd
-
-mouse_spid_write_flash_cmd_common:
-	istoret 1,rega
-	rshift16 pdata,temp
-	istoret 1,contw
-	rshift8 pdata,temp
-	istoret 1,contw
-	istore 1,contw
-	deposit rega
-	store 2,core_spid_txaddr
-	setarg 0
-	store 2,core_spid_rxlen
-	jam spid_start,core_misc_ctrl
-	branch wait_spid_done
-		
-mouse_flash_erase_sector:
-	fetch 3,mem_flash_base
-	store 3,mem_spi_write_addr
-	branch spid_flash_erase_sector+2
-
-mouse_spid_write_flash:
-	copy pdata,regc
-	copy rega,pdata
-	increase -4,pdata
-	copy pdata,regb
-	ifetch 4,regb
-	store 4,mem_write_flash_head_temp
-	copy regc,pdata
-	call spid_write_flash
-	fetch 4,mem_write_flash_head_temp
-	istore 4,regb
-	rtn
-
-mouse_flash_power_down:
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	rtnbit0 MOUSE_ENABLE_FLASH
-	call mouse_spid_flash_powerdown
-	call twspi_enable	// 2 wire mode
-	fetcht 1,mem_spi_cs_gpio		//disable flash
-	call gpio_out_inactive
-	fetcht 1,mem_spi_hold_gpio
-	branch device_gpio_config_input_pd
-
-
-/******************otp data load****************/
-mouse_load_otp_info_check:
-	call mouse_read_otp_dpi
-	call mouse_read_otp_device_flag
-	call mouse_device_flag_check
-	call mouse_read_otp_device_info
-mouse_app_initflag_load_check:
-	bpatch patch13_1,mem_patch13
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	isolate1 MOUSE_ENABLE_OTP,pdata
-	call mouse_otp_load_app_initflag,true
-	fetch 2,mem_store_flag
-	arg EEPROM_INIT_FLAG,temp
-	isub temp,null
-	branch hid_device_load_device_info,zero
-mouse_app_initflag_load:
-	storet 2,mem_store_flag
-	call hid_device_ble_init_address
-	fetch 1,mem_device_flag_temp
-	store 1,mem_device_flag
-	store 1,mem_random_addr_increase_count
-mouse_load_default_dpi:
-	fetch 1,mem_config_sensor_dpi
-mouse_temp_store_dpi:
-	store 1,mem_mouse_dpi
-	rtn
-
-mouse_otp_load_app_initflag:
-	arg 2,loopcnt
-	fetchr regb,2,mem_otp_offset_app_initflag
-	arg mem_store_flag,rega
-	branch otp_read_data
-	
-mouse_otp_store_app_initflag:
-	arg 2,loopcnt
-	arg mem_store_flag,rega
-	fetchr regb,2,mem_otp_offset_app_initflag
-	branch otp_write
-
-/**************load device flag**********/
-mouse_read_otp_device_flag:
-	fetchr regb,2,mem_otp_offset_device_flag
-	copy regb,regc
-mouse_read_otp_device_flag_loop:
-	call mouse_read_otp_device_flag_common
-	fetch 1,mem_device_otp_flag_temp
-	branch mouse_device_flag_load,blank
-	store 1,mem_device_flag_last
-	increase 1,regc
-	fetch 2,mem_otp_offset_device_flag_end
-	isub regc,null
-	nbranch mouse_device_flag_load,positive	//if read end,retention last value
-	copy regc,regb
-	branch mouse_read_otp_device_flag_loop
-
-mouse_read_otp_device_flag_common:
-	arg 1,loopcnt
-	arg mem_device_otp_flag_temp,rega
-	branch otp_read_data				/* regb=otp address, rega points to data, loopcnt is count */
-
-mouse_device_flag_load:
-	fetch 1,mem_device_flag_last
-	copy pdata,temp
-	and pdata,0xf0,pdata
-	branch mouse_device_flag_load_last,blank
-	rshift4 pdata,pdata
-	branch mouse_device_flag_load_end
-
-mouse_device_flag_load_last:
-	copy temp,pdata
-mouse_device_flag_load_end:
-	sub pdata,0,null
-	branch mouse_device_flag_temp_load,zero
-	sub pdata,4,null
-	call set_pdata_0,zero
-mouse_store_device_flag:
-	store 1,mem_device_flag
-	rtn
-
-mouse_device_flag_temp_load:
-	fetch 1,mem_device_flag_temp
-	branch mouse_store_device_flag
-
-/****************otp load addr*************/
-mouse_read_otp_device_info:
-	call mouse_read_otp_24g_addr
-	call mouse_read_otp_le_device1
-	call mouse_read_otp_le_device2
-	branch mouse_read_otp_le_addr_increase_count_info
-	
-mouse_read_otp_le_device1:
-	call mouse_read_otp_le_device1_addr
-	branch mouse_read_otp_le_device1_locall_addr
-
-mouse_read_otp_le_device2:
-	call mouse_read_otp_le_device2_addr
-	branch mouse_read_otp_le_device2_locall_addr
-
-/*************************load le addr1**********************************/
-mouse_read_otp_le_device1_addr:
-	fetchr regb,2,mem_otp_offset_le_addr1
-	copy regb,regc
-mouse_read_otp_le_device1_addr_loop:
-	call mouse_read_otp_le_addr1_common	
-	fetch 6,mem_mouse_le_addr1_temp
-	branch mouse_le_addr1_load,blank	
-	store 6,mem_mouse_le_addr1_last
-	increase 6,regc
-	fetch 2,mem_otp_offset_le_addr1_end
-	isub regc,null
-	nbranch mouse_le_addr1_load,positive	//if read end,retention last value
-	copy regc,regb
-	branch mouse_read_otp_le_device1_addr_loop
-
-mouse_read_otp_le_addr1_common:
-	arg 6,loopcnt
-	arg mem_mouse_le_addr1_temp,rega
-	branch otp_read_data				/* regb=otp address, rega points to data, loopcnt is count */	
-
-mouse_le_addr1_load:
-	fetch 6,mem_mouse_le_addr1_last
-	store 6,mem_device1_addr
-	rtn
-
-
-mouse_read_otp_le_device1_locall_addr:
-	fetchr regb,2,mem_otp_offset_le_locall_addr1
-	copy regb,regc
-mouse_read_otp_le_device1_locall_addr_loop:
-	call mouse_read_otp_le_locall_addr1_common	
-	fetch 6,mem_mouse_le_locall_addr1_temp
-	branch mouse_le_locall_addr1_load,blank	
-	store 6,mem_mouse_le_locall_addr1_last
-	increase 6,regc
-	fetch 2,mem_otp_offset_le_locall_addr1_end
-	isub regc,null
-	nbranch mouse_le_locall_addr1_load,positive	//if read end,retention last value
-	copy regc,regb
-	branch mouse_read_otp_le_device1_locall_addr_loop
-
-mouse_read_otp_le_locall_addr1_common:
-	arg 6,loopcnt
-	arg mem_mouse_le_locall_addr1_temp,rega
-	branch otp_read_data				/* regb=otp address, rega points to data, loopcnt is count */	
-
-mouse_le_locall_addr1_load:
-	fetch 6,mem_mouse_le_locall_addr1_last
-	fetcht 6,mem_device_compare_addr
-	isub temp,null
-	call mouse_device_le_locall_addr1_init,zero
-	store 6,mem_device1_locall_addr
-	rtn
-
-mouse_device_le_locall_addr1_init:
-	fetch 6,mem_le_lap
-	rtn
-
-/*************************load le addr2**********************************/
-mouse_read_otp_le_device2_addr:
-	fetchr regb,2,mem_otp_offset_le_addr2
-	copy regb,regc
-mouse_read_otp_le_device2_addr_loop:
-	call mouse_read_otp_le_addr2_common	
-	fetch 6,mem_mouse_le_addr2_temp
-	branch mouse_le_addr2_load,blank	
-	store 6,mem_mouse_le_addr2_last
-	increase 6,regc
-	fetch 2,mem_otp_offset_le_addr2_end
-	isub regc,null
-	nbranch mouse_le_addr2_load,positive	//if read end,retention last value
-	copy regc,regb
-	branch mouse_read_otp_le_device2_addr_loop
-
-mouse_read_otp_le_addr2_common:
-	arg 6,loopcnt
-	arg mem_mouse_le_addr2_temp,rega
-	branch otp_read_data				/* regb=otp address, rega points to data, loopcnt is count */	
-
-mouse_le_addr2_load:
-	fetch 6,mem_mouse_le_addr2_last
-	store 6,mem_device2_addr
-	rtn
-
-
-mouse_read_otp_le_device2_locall_addr:
-	fetchr regb,2,mem_otp_offset_le_locall_addr2
-	copy regb,regc
-mouse_read_otp_le_device2_locall_addr_loop:
-	call mouse_read_otp_le_locall_addr2_common	
-	fetch 6,mem_mouse_le_locall_addr2_temp
-	branch mouse_le_locall_addr2_load,blank	
-	store 6,mem_mouse_le_locall_addr2_last
-	increase 6,regc
-	fetch 2,mem_otp_offset_le_locall_addr2_end
-	isub regc,null
-	nbranch mouse_le_locall_addr2_load,positive	//if read end,retention last value
-	copy regc,regb
-	branch mouse_read_otp_le_device2_locall_addr_loop
-
-mouse_read_otp_le_locall_addr2_common:
-	arg 6,loopcnt
-	arg mem_mouse_le_locall_addr2_temp,rega
-	branch otp_read_data				/* regb=otp address, rega points to data, loopcnt is count */	
-
-mouse_le_locall_addr2_load:
-	fetch 6,mem_mouse_le_locall_addr2_last
-	fetcht 6,mem_device_compare_addr
-	isub temp,null
-	call mouse_device_le_locall_addr2_init,zero
-	store 6,mem_device2_locall_addr
-	rtn
-
-mouse_device_le_locall_addr2_init:
-	fetch 6,mem_le_lap
-	add pdata,0x0100,pdata
-	rtn
-
-/**************load 24g addr**********/
-mouse_read_otp_24g_addr:
-	fetchr regb,2,mem_otp_offset_24g_addr
-	copy regb,regc
-mouse_read_otp_24g_addr_loop:
-	call mouse_read_otp_24g_addr_common
-	fetch 4,mem_mouse_24g_addr_temp
-	branch mouse_24g_addr_load,blank	
-	store 4,mem_mouse_24g_addr_last
-	increase 4,regc
-	fetch 2,mem_otp_offset_24g_addr_end
-	isub regc,null
-	nbranch mouse_24g_addr_load,positive	//if read end,retention last value
-	copy regc,regb
-	branch mouse_read_otp_24g_addr_loop
-
-mouse_read_otp_24g_addr_common:
-	arg 4,loopcnt
-	arg mem_mouse_24g_addr_temp,rega
-	branch otp_read_data				/* regb=otp address, rega points to data, loopcnt is count */
-	
-mouse_24g_addr_load:
-	fetch 4,mem_mouse_24g_addr_last
-	store 4,mem_device_24g_addr
-	rtn
-
-/**************load le addr increase count**********/
-mouse_read_otp_le_addr_increase_count_info:
-	fetchr regb,2,mem_otp_offset_le_addr_increase_count
-	copy regb,regc
-mouse_read_otp_le_addr_increase_count_loop:
-	call mouse_read_otp_le_addr_increase_count_common
-	fetch 1,mem_random_addr_increase_count_temp
-	branch mouse_le_addr_increase_count_load,blank	
-	store 1,mem_random_addr_increase_count_last
-	increase 1,regc
-	fetch 2,mem_otp_offset_le_addr_increase_count_end
-	isub regc,null
-	nbranch mouse_le_addr_increase_count_load,positive	//if read end,retention last value
-	copy regc,regb
-	branch mouse_read_otp_le_addr_increase_count_loop
-
-mouse_read_otp_le_addr_increase_count_common:
-	arg 1,loopcnt
-	arg mem_random_addr_increase_count_temp,rega
-	branch otp_read_data				/* regb=otp address, rega points to data, loopcnt is count */
-	
-mouse_le_addr_increase_count_load:
-	fetch 1,mem_random_addr_increase_count_last
-	store 1,mem_random_addr_increase_count
-	rtn
-
-/*************load dpi**********/
-mouse_read_otp_dpi:
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	bbit0 MOUSE_ENABLE_LOAD_AND_STORE_DPI,mouse_load_default_dpi
-	fetchr regb,2,mem_otp_offset_dpi
-	copy regb,regc
-mouse_read_otp_dpi_loop:
-	call mouse_read_otp_dpi_common	
-	fetch 1,mem_mouse_dpi_temp
-	branch mouse_dpi_load,blank	
-	store 1,mem_mouse_dpi_last
-	increase 1,regc
-	fetch 2,mem_otp_offset_dpi_end
-	isub regc,null
-	nbranch mouse_dpi_load,positive	//if read end,retention last value
-	copy regc,regb
-	branch mouse_read_otp_dpi_loop
-
-mouse_read_otp_dpi_common:
-	arg 1,loopcnt
-	arg mem_mouse_dpi_temp,rega
-	branch otp_read_data				/* regb=otp address, rega points to data, loopcnt is count */
-
-mouse_dpi_load:
-	fetch 1,mem_mouse_dpi_last
-	copy pdata,temp
-	and pdata,0xf0,pdata
-	branch mouse_dpi_load_last,blank
-	rshift4 pdata,pdata
-	branch mouse_dpi_load_end
-
-mouse_dpi_load_last:
-	copy temp,pdata
-mouse_dpi_load_end:
-	sub pdata,7,null
-	call set_pdata_0,zero
-	branch mouse_temp_store_dpi
-
-/******************************load info end**************************************/
-
-
-mouse_idle:
-	bpatch patch13_2,mem_patch13
-	call mouse_low_voltage_led_no_enter_lpm
-	call ui_check_paring_button
-	call mouse_dpi_check
-	call mouse_dpi_another_gpio_check
-	call mouse_select_device_check
-	call mouse_check_select_device_by_switch
-	call mouse_bt_button_check
-	call mouse_wheel_check
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	rtnbit0 MOUSE_ENABLE_USB
-	bpatch patch13_3,mem_patch13
-	call mouse_usb_isr
-	branch mouse_usb_mode
-	
-mouse_select_device_check:
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	bbit1 MOUSE_ENABLE_SELECT_DEVICE_BY_PB_BUTTON,mouse_select_device_by_pb_button
-	bbit1 MOUSE_ENABLE_PB_BUTTON_LONG_PRESS_DISCONVERY,mouse_select_device_by_pb_button
-	rtn
-
-mouse_select_device_by_pb_button:	
-	call mouse_select_device_by_pb_button_check
-	branch mouse_select_device_by_pb_button_exit
-	
-mouse_select_device_by_pb_button_check:
-	bpatch patch13_4,mem_patch13
-	arg 0,rega
-	jam MOUSE_PB_KEY,mem_mouse_key_temp
-	fetcht 1,mem_config_select_device_button_gpio
-	call mouse_pb_button_check
-	store 1,mem_mouse_pbkey_press_status
-	fetch 1,mem_matrix_public_gpio
-	beq GPIO_DISABLE,mouse_3io6key_pb_button_check_end	
-	branch mouse_matrix_public_gpio_reset
-
-mouse_retransmit_select_device_by_pb_button:
-	fetch 1,mem_config_select_device_button_gpio
-	rtneq GPIO_DISABLE
-	call mouse_select_device_by_pb_button_check
-	copy rega,pdata
-	bbit1 MOUSE_PB_KEY,mouse_select_device_button_down+2
-	branch mouse_select_device_button_up
-	
-mouse_3io6key_pb_button_check_end:
-	fetcht 1,mem_config_select_device_button_gpio
-	call device_gpio_config_input_pu
-mouse_select_device_by_pb_button_exit:	
-	copy rega,pdata
-	bbit1 MOUSE_PB_KEY,mouse_select_device_button_down
-	branch mouse_select_device_button_up
-
-mouse_pb_button_check:
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	bbit1 MOUSE_ENABLE_PB_BUTTON_CONNECT_GND,mouse_pb_button_connect_gnd
-	fetch 1,mem_mouse_pbkey_press_status
-	copy pdata,regc
-	fetch 1,mem_matrix_public_gpio
-	beq GPIO_DISABLE,mouse_3io6key_check
-	fetch 1,mem_mouse_ghost_flag
-	nbranch mouse_select_device_by_pb_button_end,blank
-	branch mouse_pb_button_connect_matrix
-
-mouse_select_device_by_pb_button_end:
-	jam PB_BUTTON_STATE_UP,mem_select_device_button_statue
-	jam 0,mem_mouse_pbkey_press_status
-	rtn
-
-mouse_pb_button_connect_gnd:
-	fetch 1,mem_mouse_pbkey_press_status
-	branch mouse_check_key_connect_gnd
-
-mouse_pb_button_connect_matrix:
-	call gpio_get_bit
-	fetcht 1,mem_matrix_public_gpio
-	branch mouse_pb_button_connect_gnd,true
-	fetcht 1,mem_matrix_public_gpio
-	call gpio_out_active
-	fetcht 1,mem_config_select_device_button_gpio
-	fetch 1,mem_mouse_pbkey_press_status
-	branch mouse_check_key_connect_gnd
-	
-mouse_select_device_button_up:
-	fetch 1,mem_select_device_button_statue
-	rtneq PB_BUTTON_STATE_UP
-	jam PB_BUTTON_STATE_UP,mem_select_device_button_statue	
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	rtnbit1 MOUSE_ENABLE_PB_BUTTON_SHORT_PRESS_ENTER_DISCOVERY
-	fetch 1,mem_bt_discovery_count
-	sub pdata,20,null
-	ncall mouse_ready_reconnection_by_button,positive		// press button less than 30-20=1000ms
-	fetch 1,mem_ui_button_timeout
-	store 1,mem_bt_discovery_count
-	rtn
-
-mouse_select_device_button_down:
-	call mouse_select_device_ghost_check
-	rtn user
-	fetch 1,mem_select_device_button_statue
-	rtneq PB_BUTTON_STATE_DOWN
-	jam PB_BUTTON_STATE_DOWN,mem_select_device_button_statue
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	bbit1 MOUSE_ENABLE_PB_BUTTON_SHORT_PRESS_ENTER_DISCOVERY,mouse_long_button_bt_discovery
-	fetch 1,mem_device_direct_timer
-	rtn blank
-	fetch 1,mem_device_direct_timeout
-	store 1,mem_device_direct_timer
-	rtn
-
-mouse_select_device_ghost_check:
-	disable user
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	rtnbit1 MOUSE_ENABLE_PB_BUTTON_CONNECT_GND
-mouse_ghost_key_value_check:
-	fetch 1,mem_mouse_lkey_press_status
-	rtn blank
-	fetch 1,mem_mouse_rkey_press_status
-	rtn blank
-	fetch 1,mem_mouse_mkey_press_status
-	rtn blank
-	branch enable_user
-
-//===========================select device by switch start==================================//	
-	
-mouse_check_select_device_by_switch:
-	bpatch patch13_5,mem_patch13
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	rtnbit0 MOUSE_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO
-	bbit0 MOUSE_ENABLE_SWITCH_GPIO_CONNECT_VIN,mouse_switch_gpio_connect_gnd_check
-mouse_switch_gpio_connect_vin_check:
-	call mouse_switch_gpio_connect_vin
-	fetch 1,mem_device_switch_gpio
-	branch mouse_gpio_config_pu_check
-
-mouse_switch_gpio_connect_gnd_check:
-	call mouse_switch_gpio_connect_gnd
-	fetch 1,mem_device_switch_gpio
-	branch mouse_gpio_config_pd_check
-	
-mouse_switch_gpio_connect_vin:
-	fetch 1,mem_device_switch_gpio
-	call mouse_gpio_config_pd_check
-	fetcht 1,mem_device_switch_gpio
-	call gpio_get_bit
-	branch mouse_select_btdevice,true
-	branch mouse_select_24gdevice
-
-mouse_switch_gpio_connect_gnd:
-	fetch 1,mem_device_switch_gpio
-	call mouse_gpio_config_pu_check
-	fetcht 1,mem_device_switch_gpio
-	call gpio_get_bit
-	branch mouse_select_24gdevice,true
-	branch mouse_select_btdevice
-
-mouse_select_btdevice:
-	fetch 1,mem_device_flag
-	rtneq MODE_BT_DEVICE1
-	jam MODE_BT_DEVICE1,mem_device_flag
-	branch mouse_select_device_set
-
-mouse_select_24gdevice:
-	fetch 1,mem_device_flag
-	rtneq MODE_24G_DEVICE
-	jam MODE_24G_DEVICE,mem_device_flag
-mouse_select_device_set:
-	call mouse_select_device_stop_set
-	branch mouse_soft_reset
-
-//=========================================================//
-
-mouse_check_select_device_by_switch_once:
-	bpatch patch13_6,mem_patch13
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	rtnbit0 MOUSE_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO
-	bbit0 MOUSE_ENABLE_SWITCH_GPIO_CONNECT_VIN,mouse_switch_gpio_connect_gnd_check_once
-mouse_switch_gpio_connect_vin_check_once:
-	call mouse_switch_gpio_connect_vin_once
-	fetch 1,mem_device_switch_gpio
-	branch mouse_gpio_config_pu_check
-
-mouse_switch_gpio_connect_gnd_check_once:
-	call mouse_switch_gpio_connect_gnd_once
-	fetch 1,mem_device_switch_gpio
-	branch mouse_gpio_config_pd_check
-
-
-mouse_switch_gpio_connect_vin_once:
-	fetch 1,mem_device_switch_gpio
-	call mouse_gpio_config_pd_check
-	fetcht 1,mem_device_switch_gpio
-	call gpio_get_bit
-	branch mouse_check_select_btdevice,true
-	branch mouse_check_select_24g_device
-
-mouse_switch_gpio_connect_gnd_once:
-	
-	fetch 1,mem_device_switch_gpio
-	call mouse_gpio_config_pu_check
-	fetcht 1,mem_device_switch_gpio
-	call gpio_get_bit
-	branch mouse_check_select_24g_device,true
-	branch mouse_check_select_btdevice
-
-mouse_check_select_24g_device:	
-	fetch 1,mem_device_flag
-	rtneq MODE_24G_DEVICE
-	jam MODE_24G_DEVICE,mem_device_flag
-mouse_select_device_stop_set:
-	call mouse_24g_stop
-	branch mouse_stop_bluetooth_mode
-
-mouse_check_select_btdevice:
-	fetch 1,mem_device_flag
-	rtneq MODE_BT_DEVICE1
-	jam MODE_BT_DEVICE1,mem_device_flag
-	branch mouse_select_device_stop_set
-	
-//===========================select device by switch end==================================//	
-
-
-mouse_ready_reconnection_by_button:
-	bpatch patch13_7,mem_patch13
-	fetch 1,mem_device_number
-	rtneq 1		// 1channel
-	call mouse_select_device_number
-	storet 1,mem_device_flag
-mouse_store_device_number_before_reset:	
-	call mouse_select_device_enable
-	call mouse_stop_bluetooth_mode
-	call app_evt_button_long_pressed
-	call mouse_select_device_disable
-	jam 1,mem_device_need_soft_reset
-	branch mouse_store_device_info_delay
-
-mouse_soft_reset:
-	call mouse_select_device_enable
-	branch soft_reset_chip
-
-mouse_select_device_number:
-	fetcht 1,mem_device_flag
-	increase 1,temp
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	bbit1 MOUSE_ENABLE_24G,mouse_select_device_number_24g
-	sub temp,2,null
-	rtn positive
-mouse_select_device_count_clean_bt:
-	arg 1,temp
-	rtn
-	
-mouse_select_device_number_24g:	
-	fetch 1,mem_device_number
-	increase -1,pdata
-	isub temp,null
-	rtn positive
-mouse_select_device_count_clean_24g:
-	arg 0,temp
-	rtn
-
-mouse_store_device_number2eeprom:
-	arg 1,temp
-	arg mem_device_flag,rega
-	arg 0,regb
-	branch iicd_write_protect_eep_data
-		
-mouse_bt_button_check:
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	rtnbit0 MOUSE_ENABLE_PB_BUTTON_SHORT_PRESS_ENTER_DISCOVERY
-	branch mouse_select_device_by_pb_button
-	
-mouse_select_device_enable:
-	arg MOUSE_SELECT_DEVICE_FLAG,queue
-	branch mouse_enable_function_flag
-mouse_select_device_disable:
-	arg MOUSE_SELECT_DEVICE_FLAG,queue
-	branch mouse_disable_function_flag
-mouse_bt_cannel_reconn_enable:
-	arg MOUSE_BT_CANNEL_RECONN_FLAG,queue
-	branch mouse_enable_function_flag
-mouse_bt_cannel_reconn_disable:
-	arg MOUSE_BT_CANNEL_RECONN_FLAG,queue
-	branch mouse_disable_function_flag
-mouse_bt_discovery_button_down_enable:
-	arg MOUSE_BT_DISCOVERY_BUTTON_DOWN_FLAG,queue
-	branch mouse_enable_function_flag
-mouse_bt_discovery_button_down_disable:
-	arg MOUSE_BT_DISCOVERY_BUTTON_DOWN_FLAG,queue
-	branch mouse_disable_function_flag
-
-mouse_adc_read_enable:
-	arg MOUSE_ENABLE_ADC,queue
-	branch mouse_enable_function_flag
-
-mouse_24g_set_250Hz:
-	arg MOUSE_ENABLE_24G_250Hz,queue
-	branch mouse_enable_function_flag
-
-mouse_24g_search_dongle_enable:
-	arg MOUSE_ENABLE_24G_SEARCH_DONGLE,queue
-	branch mouse_enable_function_flag
-	
-mouse_16M_enable:
-	arg MOUSE_ENABLE_16M,queue
-	branch mouse_enable_function_flag
-	
-mouse_dpi_4level_enable:
-	arg MOUSE_ENABLE_DPI_LEVEL_4,queue
-	branch mouse_enable_function_flag
-
-mouse_enable_function_flag:
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	qset1 pdata
-	store MOUSE_FLAG_LEN,mem_mouse_flag
-	rtn
-
-mouse_disable_function_flag:
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	qset0 pdata
-	store MOUSE_FLAG_LEN,mem_mouse_flag
-	rtn
-	
-mouse_polling_device:
-	bpatch patch14_0,mem_patch14
-	fetch 1,mem_reconn_times
-	increase -1,pdata
-	store 1,mem_reconn_times
-	fetcht 1,mem_device_flag
-	sub temp,1,null
-	ncall mouse_select_device_number,zero
-	storet 1,mem_device_flag
-	call mouse_store_device_number2eeprom
-	call hid_device_before_store_reconn_info
-	branch mouse_start_reconnect_device
-
-	
-//notice: need to call p_mouse_drawing_optima_init when waked from mult
-mouse_drawing_optima:
-	bpatch patch14_1,mem_patch14
-	fetch 1,mem_config_sensor_type
-	rtneq P3212
-	rtneq KA8G2
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	rtnbit0 MOUSE_ENABLE_SMOOTHER
-	fetch 4,mem_mouse_x
-	rtn blank
-	call mouse_data_abs_check
-	setarg 0x03	//asm_flag enable condition
-	call mouse_pdata_greater_than_check
-	call mouse_disable_asm,blank
-	ncall mouse_enable_asm,blank
-	setarg 0x02	//asm_flag disable condition
-	call mouse_data_less_than_check
-	call mouse_disable_asm,blank
-	fetch 1,mem_mouse_asm_flag
-	beq 1,mouse_drawing_optima_modify
-mouse_drawing_optima_init:
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	rtnbit0 MOUSE_ENABLE_SMOOTHER
-	arg 5,loopcnt
-	arg mem_mouse_asm_flag,contw
-	branch clear_mem
-
-mouse_drawing_optima_modify:
-	call mouse_drawing_optima_xy_offset_modify
-	fetch 2,mem_mouse_x_pre
-	store 2,mem_data_pre
-	fetch 2,mem_mouse_x
-	store 2,mem_data_current
-	call mouse_drawing_optima_data_x
-	fetch 2,mem_data_pre
-	store 2,mem_mouse_x_pre
-	fetch 2,mem_data_current
-	store 2,mem_mouse_x
-
-	fetch 2,mem_mouse_y_pre
-	store 2,mem_data_pre
-	fetch 2,mem_mouse_y
-	store 2,mem_data_current
-	call mouse_drawing_optima_data_y
-	fetch 2,mem_data_pre
-	store 2,mem_mouse_y_pre
-	fetch 2,mem_data_current
-mouse_data_y_store:
-	store 2,mem_mouse_y
-	rtn
-
-mouse_drawing_optima_xy_offset_modify:
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	rtnbit0 MOUSE_ENABLE_XY_OFFSET
-	bpatch patch14_2,mem_patch14
-	fetch 2,mem_mouse_x_pre
-	store 2,mem_data_value
-	call mouse_pre_xy_data_judge
-	store 2,mem_mouse_x_pre
-	fetch 2,mem_mouse_x
-	store 2,mem_data_value
-	call mouse_current_xy_data_judge
-	store 2,mem_mouse_x
-	fetch 2,mem_mouse_y_pre
-	store 2,mem_data_value
-	call mouse_pre_xy_data_judge
-	store 2,mem_mouse_y_pre
-	fetch 2,mem_mouse_y
-	store 2,mem_data_value
-	call mouse_current_xy_data_judge
-	branch mouse_data_y_store
-
-mouse_pre_xy_data_judge:	
-	fetch 1,mem_data_value+1
-	branch mouse_pre_xy_pdata_offset,blank
-	branch mouse_pre_xy_ndata_offset
-
-mouse_pre_xy_pdata_offset:
-	fetch 1,mem_data_value
-	call mouse_pre_xy_get_0_4_times
-	store 1,mem_data_value
-mouse_xy_data_offset_new:
-	fetch 2,mem_data_value
-	rtn
-mouse_pre_xy_ndata_offset:
-	fetch 1,mem_data_value
-	call mouse_pdata_invert
-	call mouse_pre_xy_get_0_4_times
-	call disable_blank,blank
-	call mouse_pdata_get_new_value
-	branch mouse_xy_data_offset_new
-	
-mouse_current_xy_data_judge:
-	fetch 1,mem_data_value+1
-	branch mouse_current_xy_pdata_offset,blank
-	branch mouse_current_xy_ndata_offset
-mouse_current_xy_pdata_offset:
-	fetch 1,mem_data_value
-	call mouse_current_xy_get_0_6_times
-	store 1,mem_data_value
-	branch mouse_xy_data_offset_new
-mouse_current_xy_ndata_offset:	
-	fetch 1,mem_data_value
-	call mouse_pdata_invert
-	call mouse_current_xy_get_0_6_times
-	call disable_blank,blank
-	call mouse_pdata_get_new_value
-	branch mouse_xy_data_offset_new
-	
-mouse_pre_xy_get_0_4_times:
-	mul32 pdata,4,pdata
-	div pdata,5
-	branch mouse_div_end
-	
-mouse_current_xy_get_0_6_times:	//0.6 times
-	mul32 pdata,12,pdata
-	div pdata,10
-mouse_div_end:
-	call wait_div_end
-	quotient pdata
-	rtn	
-	
-mouse_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 mouse_drawing_optima_data
-
-mouse_drawing_optima_data_y:
-	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 mouse_drawing_optima_data
-
-/**********
-input:data_pre,data_current
-output:data_pre,data_current after optima
-***********/
-mouse_drawing_optima_data:
-	store 3,mem_data_sum
-	isolate1 16,pdata
-	branch mouse_data_sum_overflow,true
-	fetch 1,mem_data_sum+1
-	beq 0xff,mouse_data_sum_n
-	fetch 1,mem_data_sum
-mouse_data_store_pre:
-	rshift pdata,pdata
-	store 2,mem_data_pre
-	store 2,mem_data_current
-	rtn
-mouse_data_sum_overflow:
-	fetch 1,mem_data_sum+1	//sum positive
-	beq 0,mouse_data_sum_overflow_p
-	fetch 3,mem_data_sum	
-	branch mouse_data_store_pre
-mouse_data_sum_overflow_p:
-	jam 0,mem_data_sum+2
-	fetch 1,mem_data_sum
-	branch mouse_data_store_pre
-
-mouse_data_sum_n:
-	fetch 1,mem_data_sum	//sum negetive
-	call mouse_pdata_get_half
-	store 1,mem_data_pre
-	store 1,mem_data_current
-	branch mouse_data_zero,blank
-	setarg 0xff
-mouse_data_set_direction:	
-	store 1,mem_data_pre+1
-	store 1,mem_data_current+1
-	rtn
-mouse_data_zero:
-	setarg 0
-	branch mouse_data_set_direction
-
-mouse_pdata_get_half:
-	call mouse_pdata_invert
-	rshift pdata,pdata
-mouse_pdata_get_new_value:	
-	call mouse_rega_in_out
-	sub pdata,0,pdata
-	store 1,mem_data_value	
-	rtn
-
-mouse_pdata_invert:
-	sub pdata,0,pdata
-mouse_rega_in_out:	
-	store 1,mem_rega
-	fetch 1,mem_rega
-	rtn
-
-mouse_disable_asm:
-	jam 0,mem_mouse_asm_flag
-	rtn
-mouse_enable_asm:
-	jam 1,mem_mouse_asm_flag
-	rtn
-
-//rega mouse_x, regb mouse_y, pdata refer
-mouse_pdata_greater_than_check:
-	isub rega,null
-	nbranch disable_blank,positive
-	isub regb,null
-	nbranch disable_blank,positive
-	branch enable_blank
-mouse_data_less_than_check:
-	isub rega,null
-	nrtn positive
-	isub regb,null
-	nrtn positive
-	branch enable_blank
-
-mouse_data_abs_check:
-	fetch 2,mem_mouse_x
-	call mouse_data_abs
-	copy pdata,rega
-	fetch 2,mem_mouse_y
-	call mouse_data_abs
-	copy pdata,regb
-	rtn
-
-/***********
-input: data_current
-output:pdata,abs
-************/
-mouse_data_abs:
-	store 2,mem_data_current
-	fetch 1,mem_data_current+1
-	beq 0xff,mouse_data_reversal
-	fetch 1,mem_data_current
-mouse_data_abs_store:
-	and_into 0xff,pdata
-	//output:pdata
-	rtn
-mouse_data_reversal:
-	fetch 2,mem_data_current
-	sub pdata,0,pdata
-	branch mouse_data_abs_store
-
-mouse_24g_long_sleep_param_update_timer:
-	arg mem_24g_long_sleep_param_update_timer,regc
-	arg mouse_24g_long_sleep_normal_param,regb
-	branch timer_single_step
-mouse_24g_long_sleep_normal_param:
-	fetch 4,mem_24g_long_sleep_set1
-	store 4,mem_24g_enter_hibernate
-	branch mouse_long_mult_init
-
-
-mouse_24g_long_sleep_set:
-	fetch 1,mem_24g_long_sleep_set_level
-	beq 0x00,mouse_24g_long_sleep_set_30ms
-	beq 0x01,mouse_24g_long_sleep_set_50ms
-	beq 0x02,mouse_24g_long_sleep_set_80ms
-	beq 0x03,mouse_24g_long_sleep_set_100ms
-mouse_24g_long_sleep_set_80ms:
-	setarg 0x0ea600
-mouse_24g_long_sleep_set_end:	
-	store 4,mem_24g_long_sleep_set1
-	rtn
-mouse_24g_long_sleep_set_30ms:
-	setarg 0x05e740
-	branch mouse_24g_long_sleep_set_end
-mouse_24g_long_sleep_set_50ms:
-	setarg 0x0927c0
-	branch mouse_24g_long_sleep_set_end
-mouse_24g_long_sleep_set_100ms:
-	setarg 0x124f80
-	branch mouse_24g_long_sleep_set_end
-
-mouse_24g_hibernate_set:
-	bpatch patch14_3,mem_patch14
-	jam 0,mem_mouse_pair_flag
-	jam 0,mem_24g_attempt_fail_flag
-	call g24_transmit_next_packet
-	setarg -1
-	store 8,mem_24g_enter_hibernate
-	setarg 0
-	store 7,mem_mouse_key
-	jam 1,mem_24g_shutdown_flag
-	call mouse_sensor_powerdown
-	call mouse_setgpio_hibernate
-	branch mouse_24g_long_sleep
-
-mouse_wakeup_24g:
-	bpatch patch14_4,mem_patch14
-	fetch 1,mem_24g_shutdown_flag
-	ncall mouse_wakeup_24g_from_long_sleep,blank
-	jam 0,mem_24g_shutdown_flag
-	rtn
-
-mouse_wakeup_24g_from_long_sleep:
-	jam 1,mem_mouse_pair_flag
-	call mouse_init_sensor_wakeup
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	rtnbit0 MOUSE_ENABLE_WHEEL_WAKE_UP_CANCEL
-mouse_wheel_gpio_init:
-	fetcht 1,mem_whee_a_data_gpio
-	call device_gpio_config_input_pu
-	fetcht 1,mem_whee_b_data_gpio
- 	branch device_gpio_config_input_pu	
-
-mouse_24g_transmit_start:
-	call mouse_24g_fast_conn_mode_check
-	fetch 1,mem_24g_shutdown_flag
-	nbranch mouse_24g_short_sleep,blank
-	branch g24_transmit_start_next
-
-mouse_24g_fast_conn_mode_check:
-	fetch 4,mem_24g_receiver_addr
-	fetcht 4,mem_24g_fast_conn_addr
-	isub temp,null
-	branch mouse_soft_agc_enable,zero
-mouse_soft_agc_disable:
-	jam 0xff,mem_gain_fix
-	rtn
-
-mouse_soft_agc_enable:
-	jam 0,mem_gain_fix
-	jam TX_POWER_FACTORY,mem_tx_power
-	rtn
-
-device_store_normal_tx_power:
-	fetch 1,mem_tx_power
-	store 1,mem_device_normal_tx_power
-	rtn
-
-device_fetch_normal_tx_power:
-	fetch 1,mem_device_normal_tx_power
-	store 1,mem_tx_power
-	rtn
-
-mouse_24g_stop:
-	set0 mark_24g,mark
-	jam STATE_24G_STOP,mem_24g_conn_sm
-	arg MOUSE_24G_PAIRING_FLAG,queue
-	branch mouse_disable_function_flag
-
-mouse_24g_start_mode:
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	bbit0 MOUSE_ENABLE_24G,mouse_24g_mode_setup_error
-	call mouse_device_24g_pair_led_config
-	call mouse_wakeup_from_power_check	// wake from hibernate :enble user
-	branch mouse_24g_reconn_dongle_start,user
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	bbit1 MOUSE_ENABLE_AUTO_24G_PARING,mouse_24g_reconn_general_dongle
-	bbit0 MOUSE_ENABLE_24G_POWER_ON_PAIRING,mouse_24g_reconn_general_dongle
-	call mouse_key_check_once
-	and rega,0x07,pdata
-	fetcht 1,mem_mouse_commbination_key_24g
-	isub temp,null
-	branch mouse_24g_start_pair_mode,zero
-	branch mouse_24g_reconn_general_dongle
-
-mouse_24g_mode_setup_error:
-	fetch 1,mem_reconn_times
-	nbranch mouse_polling_device,blank
-	rtn
-
-mouse_24g_first_start_auto_pair_mode:
-	call mouse_wakeup_from_power_check
-	branch mouse_24g_first_start_reconn,user  	// wake from hibernate :enble user
-mouse_24g_reconn_general_dongle:	
-	jam MODE_24G_DEVICE,mem_device_flag
-	fetch 2,mem_device_24g_power_on_fast_conn_timer
-	store 2,mem_24g_reconn_timeout
-	jam FAST_CONN_AND_RECEIVER,mem_24g_reconn_type
-	branch g24_reconn_start
-
-mouse_24g_start_auto_pair:
-	fetch 2,mem_24g_pair_timeout_init
-	store 2,mem_24g_reconn_timeout
-	jam PAIR_AND_3_0_ADDR,mem_24g_reconn_type
-	branch g24_reconn_start
-
-mouse_24g_first_start_reconn:
-	fetch 1,mem_device_flag
-	beq MODE_24G_DEVICE,mouse_24g_reconn_dongle_start
-	call mouse_bluetooth_fast_conn_disable
-mouse_24g_first_bluetooth_reconnect:
-	call mouse_24g_stop
-	jam MODE_BT_DEVICE1,mem_device_flag
-	call hid_device_select_reconn_device
-	branch mouse_le_fast_conn_judge
-
-mouse_24g_first_bb_event_reconn_timeout:
-	call mouse_wakeup_from_power_check
-	branch mouse_app_enter_hibernate,user
-	branch mouse_start_discovery
-
-mouse_24g_first_store_reconn_info:
-	call mouse_wakeup_from_power_check
-	rtn user
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	bbit1 MOUSE_ENABLE_24G_FIRST_AUTO_PAIRING,mouse_store_device_info_delay
-	rtn
-
-mouse_24g_start_pair_mode:
-	call mouse_device_24g_pair_led_config
-	jam 0,mem_24g_reconn_type
-	arg MOUSE_24G_PAIRING_FLAG,queue
-	call mouse_enable_function_flag
-	setarg 0
-	store 2,mem_24g_reconn_timeout	
-	call mouse_stop_discovery
-mouse_24g_pair_mode_check:
-	jam TYPE_MS,mem_24g_data_type
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	bbit0 MOUSE_ENABLE_KEYBOARD,g24_pair_start
-	jam TYPE_KB,mem_24g_data_type
-	branch g24_pair_start
-
-mouse_24g_attempt_fail:
-	call mouse_soft_agc_disable
-	call device_fetch_normal_tx_power
-	fetch 1,mem_24g_attempt_fail_flag
-	nbranch mouse_24g_hibernate_set,blank
-	fetch 1,mem_24g_reconn_type
-	beq FAST_CONN_AND_3_0_ADDR,mouse_24g_fast_conn_attempt_fail
-	beq FAST_CONN_AND_RECEIVER,mouse_24g_fast_conn_attempt_fail
-	beq PAIR_AND_3_0_ADDR,mouse_24g_auto_pair_attempt_fail
-	beq RECEIVER_AND_3_0_ADDR,mouse_reconn_dongle_attempt_fail
-mouse_24g_attempt_fail_enter_hibernate:
-	call mouse_24g_stop
-	fetch 1,mem_reconn_times
-	nbranch mouse_polling_device,blank
-	fetch 1,mem_device_flag
-	beq MODE_24G_DEVICE,mouse_app_enter_hibernate
-	rtn
-
-mouse_24g_fast_conn_attempt_fail:
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag 
-	bbit1 MOUSE_ENABLE_24G_FIRST_AUTO_PAIRING,mouse_24g_start_auto_pair
-	bbit1 MOUSE_ENABLE_AUTO_24G_PARING,mouse_24g_start_auto_pair
-	bbit0 MOUSE_ENABLE_24G_AUTO_PAIR_NERVER_BEEN_PAIRED,mouse_24g_reconn_dongle_start
-	fetch 4,mem_device_24g_addr		// auto pair first time
-	fetcht 4,mem_device_compare_addr
-	isub temp,null
-	branch mouse_24g_start_pair_mode,zero
-mouse_24g_reconn_dongle_start:
-	fetch 2,mem_24g_reconn_timeout_init
-	store 2,mem_24g_reconn_timeout
-	jam RECEIVER_AND_3_0_ADDR,mem_24g_reconn_type
-	branch g24_reconn_start
-
-mouse_24g_auto_pair_attempt_fail:
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag 
-	bbit0 MOUSE_ENABLE_24G_FIRST_AUTO_PAIRING,mouse_24g_attempt_fail_enter_hibernate
-	fetch 1,mem_device_number
-	beq 1,mouse_24g_attempt_fail_enter_hibernate		//24g first mode and only 2.4g device
-	branch mouse_24g_first_bluetooth_reconnect
-
-mouse_reconn_dongle_attempt_fail:
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	bbit0 MOUSE_ENABLE_24G_FIRST_AUTO_PAIRING,mouse_24g_attempt_fail_enter_hibernate
-	bbit1 MOUSE_ENABLE_EEPROM,mouse_24g_attempt_fail_enter_hibernate
-	bbit1 MOUSE_ENABLE_FLASH,mouse_24g_attempt_fail_enter_hibernate
-	bbit1 MOUSE_ENABLE_OTP,mouse_24g_attempt_fail_enter_hibernate
-	branch mouse_24g_start_auto_pair
-	
-mouse_24g_attempt_success:
-	fetch 4,mem_24g_addr
-	store 4,mem_24g_receiver_addr
-	store 4,mem_device_24g_addr		// if need store 24g address to eeprom/flash,need get mem_24g_addr
-	call g24_ch_syncword_crc8_init
-	call mouse_no_data_timer_init
-	call mouse_device_poweron_led_config
-	call mouse_init_sensor_reset
-	jam 0,mem_mouse_long_mult_flag
-	jam 0,mem_24g_conn_sm
-	jam 0,mem_24g_reconn_type
-	fetch 4,mem_24g_receiver_addr
-	fetcht 4,mem_24g_fast_conn_addr
-	isub temp,null
-	rtn zero
-	call mouse_soft_agc_disable
-	call device_fetch_normal_tx_power
-	branch mouse_24g_first_store_reconn_info
-	
-mouse_24g_pairing_complete:
-	call mouse_soft_agc_disable
-	call device_fetch_normal_tx_power
-	call mouse_init_sensor_reset
-	call mouse_read_sensor_common
-	call mouse_device_poweron_led_config
-	call mouse_no_data_timer_init
-	arg MOUSE_24G_PAIRING_FLAG,queue
-	call mouse_disable_function_flag
-	setarg 0
-	store 2,mem_24g_pair_timeout
-	store 2,mem_24g_reconn_timeout
-	store 1,mem_24g_conn_sm
-	store 1,mem_mouse_move_flag
-	store 1,mem_24g_reconn_type
-
-
-	fetch 4,mem_24g_addr
-	store 4,mem_24g_receiver_addr
-	store 4,mem_device_24g_addr
-	branch mouse_store_device_info_delay
-
-mouse_24g_short_sleep_clear_wake:
-	call clear_wake
-	branch lpm_write_gpio_wakeup
-
-mouse_24g_package_data:
-	bpatch patch14_5,mem_patch14
-	rtnmark0 mark_24g
-	call mouse_motion
-	nrtn user
-	fetch 1,mem_mouse_24g_long_sleep_flag
-	jam 0,mem_mouse_24g_long_sleep_flag
-	ncall mouse_24g_short_sleep_clear_wake,blank	
-	
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	bbit0 MOUSE_ENABLE_KEYBOARD,mouse_24g_mouse_package_data
-	fetch 1,mem_customer_key
-	nbranch mouse_24g_keyboard_package_data,blank
-mouse_24g_mouse_package_data:
-	call mouse_data_xy_release
-	fetch 1,mem_24g_data_type
-	bbit1 1,mouse_24g_mouse_package_data_now	// last package is keyboard data
-	fetcht 1,mem_24g_txbuf+1
-	fetch 1,mem_mouse_key
-	ior temp,pdata
-	store 1,mem_mouse_key
-	fetcht 1,mem_24g_txbuf+6
-	fetch 1,mem_mouse_z
-	iadd temp,pdata
-	store 1,mem_mouse_z
-	fetcht 1,mem_24g_txbuf+7
-	fetch 1,mem_mouse_tz
-	iadd temp,pdata
-	store 1,mem_mouse_tz	
-mouse_24g_mouse_package_data_now:	
-	jam TYPE_MS,mem_24g_data_type
-	arg 7,rega	//length
-	arg mem_mouse_key,regb //tx buff
-	fetch 2,mem_mouse_z
-	rtn blank
-	branch g24_transmit_by_interrupt_enable
-
-mouse_24g_keyboard_package_data:
-	jam TYPE_KB,mem_24g_data_type
-	arg 9,rega	//length
-	branch hid_device_24g_keyboard_package_data_set
-
-mouse_g24_retransmit:
-	fetch 1,mem_device_need_soft_reset
-	nrtn blank
-	call mouse_g24_retransmit_100ms_timer
-	branch g24_retransmit0
-
-mouse_g24_retransmit_100ms_timer:
-	arg 12,queue
-	call timer_check
-	nrtn blank
-mouse_g24_retransmit_100ms_timer_next:
-	call mouse_retransmit_select_device_by_pb_button
-	call mouse_retransmit_commbination_key_check
-	call mouse_dpi_check_once
-	call mouse_dpi_key_check_long_press
-mouse_g24_retransmit_100ms_timer_init:
-	arg 12,queue
-	setarg 160
-	branch timer_init
-	
-mouse_dpi_check_once:
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	rtnbit0 MOUSE_ENABLE_SELECT_DEVICE_BY_DPI_BUTTON
-	branch mouse_dpi_check
-
-/**************************************g24 new process start********************************************/
-mouse_24g_before_lpm_sleep:
-	call lpm_puchk_set_check
-	branch hid_device_before_lpm_set
-
-/**************************************g24 new process end********************************************/
-
-/*******************logo led*******************/
-mouse_logo_led_on_timer:
-	fetch 1,mem_mouse_logo_led_gpio
-	rtneq GPIO_DISABLE
-	fetch 2,mem_device_no_data_timer
-	rtn blank
-	fetch 2,mem_device_no_data_timeout
-	fetcht 2,mem_device_no_data_timer
-	isub temp,temp
-	fetch 2,mem_mouse_logo_led_on_time_init
-	isub temp,pdata
-	branch mouse_logo_led_on,positive
-mouse_logo_led_off:
-	fetcht 1,mem_mouse_logo_led_gpio
-	branch mouse_led_off
-mouse_logo_led_on:
-	fetcht 1,mem_mouse_logo_led_gpio
-	branch mouse_led_on
-	
-/*******************logo led end*******************/
-
-
-
-/*******************dpi led*******************/
-mouse_dpi_led_blink_delay_timer:
-	arg mem_mouse_dpi_led_delay_count,regc
-	arg mouse_dpi_led_blink_init,regb
-	branch timer_single_step
-	
-mouse_dpi_led_blink_init:
-	bpatch patch14_6,mem_patch14
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	bbit1 MOUSE_ENABLE_DPI_LEVEL_4,mouse_dpi_led_blink_set_4_level
-mouse_dpi_led_blink_set_3_level:			//800-1200-1600
-	fetch 1,mem_mouse_dpi
-	beq MOUSE_DPI_LEVEL1,mouse_dpi_level_2_blink	//1200
-	beq MOUSE_DPI_LEVEL2,mouse_dpi_level_3_blink	//1600		
-	beq MOUSE_DPI_LEVEL3,mouse_dpi_level_1_blink	//800
-	rtn
-	
-mouse_dpi_led_blink_set_4_level:			//800-1000-1200-1600
-	fetch 1,mem_mouse_dpi
-	beq MOUSE_DPI_LEVEL1,mouse_dpi_level_3_blink		//1200
-	beq MOUSE_DPI_LEVEL2,mouse_dpi_level_4_blink		//1600
-	beq MOUSE_DPI_LEVEL3,mouse_dpi_level_1_blink		//800
-	beq MOUSE_DPI_LEVEL4,mouse_dpi_level_2_blink		//1000
-	rtn
-
-mouse_dpi_level_1_blink:
-	setarg 2
-	branch mouse_multi_dpi_led_blink_enable
-
-mouse_dpi_level_2_blink:
-	setarg 4
-	branch mouse_multi_dpi_led_blink_enable
-
-mouse_dpi_level_3_blink:
-	setarg 6
-	branch mouse_multi_dpi_led_blink_enable
-
-mouse_dpi_level_4_blink:
-	setarg 8
-	branch mouse_multi_dpi_led_blink_enable
-	
-mouse_multi_dpi_led_blink_enable:
-	store 1,mem_mouse_multi_led_blink_count
-	jam 4,mem_mouse_multi_led_blink_type
-	call mouse_multi_dpi_led_blink_timer_init	
-	jam MULTI_LED_BLINK,mem_mouse_multi_led_type
-	branch mouse_multi_led_enable
-
-mouse_dpi_led_blink_delay:
-//	fetch 2,mem_device_discovery_timer
-//	nrtn blank
-//	fetch 2,mem_24g_pair_timeout
-//	nrtn blank
-//	fetch 2,mem_24g_reconn_timeout
-//	nrtn blank
-//	fetch 1,mem_mouse_multi_led_powon_timer
-//	nrtn blank
-	fetch 1,mem_mouse_pair_flag
-	rtn blank
-	fetch 1,mem_mouse_dpi_led_delay_count_init
-	branch mouse_dpi_led_blink_init,blank
-	store 1,mem_mouse_dpi_led_delay_count  //delay 1s led blink
-	rtn
-
-/*******************dpi led end*******************/
-
-
-
-/*******************low voltage led*************************/
-
-mouse_check_dpi_blink:
-	disable user
-	fetch 1,mem_mouse_multi_led_blink_type		//04:dpi blink
-	sub pdata,4,null
-	nrtn zero
-	branch enable_user
-
-mouse_low_voltage_led_timer:
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	rtnbit0 MOUSE_ENABLE_LOW_LED
-	rtnbit0 MOUSE_LOW_VOLTAGE_FLAG
-//	fetch 2,mem_device_discovery_timer
-//	nrtn blank
-//	fetch 2,mem_24g_pair_timeout
-//	nrtn blank
-//	fetch 2,mem_24g_reconn_timeout
-//	nrtn blank
-//	fetch 1,mem_mouse_multi_led_powon_timer
-//	nrtn blank
-	fetch 1,mem_mouse_pair_flag
-	rtn blank
-	call mouse_check_dpi_blink		//need judge blink led=dpi? if led=dpi led->rtn
-	rtn user
-
-	fetch 1,mem_mouse_multi_low_led_blink_count
-	branch mouse_low_led_blink_count_init_judge,blank
-mouse_low_led_blink_timer:
-	fetcht 1,mem_adc_low_volatage_led_timer_count
-	increase 1,temp
-	storet 1,mem_adc_low_volatage_led_timer_count
-	fetch 1,mem_mouse_low_led_blink_timer
-	isub temp,null
-	ncall mouse_low_led_timer_count_clean,positive
-	fetch 1,mem_mouse_low_led_blink_half_timer
-	isub temp,null
-	nbranch mouse_low_voltage_led_off_judge,positive
-mouse_low_voltage_led_on_judge:
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	bbit1 MOUSE_ENABLE_LOW_FOR_LED,mouse_device_led_on
-mouse_low_voltage_led_on:
-	fetcht 1,mem_mouse_low_voltage_alarm_gpio 
-	branch mouse_led_on
-
-mouse_low_led_timer_count_clean:
-	jam 1,mem_adc_low_volatage_led_timer_count
-	fetch 1,mem_mouse_multi_low_led_blink_count	//blink count decrease
-	increase -1,pdata
-	store 1,mem_mouse_multi_low_led_blink_count
-mouse_low_voltage_led_off_judge:
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	bbit1 MOUSE_ENABLE_LOW_FOR_LED,mouse_device_led_off
-mouse_low_voltage_led_off:
-	fetcht 1,mem_mouse_low_voltage_alarm_gpio
-	branch mouse_led_off
-
-mouse_low_led_blink_count_init_judge:
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	bbit1 MOUSE_ENABLE_LOW_LED_BLINK_LIMIT,mouse_low_voltage_led_off_judge
-	call mouse_multi_low_led_blink_count_init
-	branch mouse_low_led_blink_timer
-	
-/*******************low voltage led end*************************/
-
-
-/*******************multi led start*************************/
-/***parm init****/
-
-mouse_device_multi_led_parm_init:
-	jam 0,mem_mouse_multi_led_blink_enable
-	call mouse_device_multi_led_all_off		//can be remove?
-	jam 0,mem_mouse_multi_led_blink_type
-	fetch 1, mem_mouse_low_led_blink_timer
-	rshift pdata,pdata
-	store 1,mem_mouse_low_led_blink_half_timer
-	rtn
-mouse_multi_low_led_blink_count_init:
-	fetch 1,mem_mouse_multi_lowled_blink_count_init
-	store 1,mem_mouse_multi_low_led_blink_count
-	rtn
-
-mouse_multi_led_blink_timer_init:
-	fetch 1,mem_mouse_multi_led_blink_type		//00:rtn	01:24g blink	02:le blink		03:reconn blink 	04:low blink	05:dpi blink
-	beq 1,mouse_device_24g_led_blink_timer_init
-	beq 2,mouse_device_le_discovery_led_blink_timer_init
-	beq 3,mouse_device_le_reconn_led_blink_timer_init
-mouse_multi_dpi_led_blink_timer_init:
-	fetch 1,mem_mouse_dpi_led_blink_timer_init
-mouse_store_multi_led_blink_timer:
-	store 1,mem_mouse_multi_led_blink_timer
-	rtn
-mouse_device_24g_led_blink_timer_init:
-	fetch 1,mem_mouse_multi_24gled_blink_timer_init
-	branch mouse_store_multi_led_blink_timer
-mouse_device_le_discovery_led_blink_timer_init:
-	fetch 1,mem_mouse_multi_le_discovery_blink_timer_init
-	branch mouse_store_multi_led_blink_timer
-mouse_device_le_reconn_led_blink_timer_init:
-	fetch 1,mem_mouse_multi_le_reconn_blink_timer_init
-	branch mouse_store_multi_led_blink_timer
-
-//===led poweron config===//
-mouse_device_poweron_led_config:	//power on
-	bpatch patch14_7,mem_patch14
-	fetch 1,mem_mouse_multi_led_powon_timer_init
-	store 1,mem_mouse_multi_led_powon_timer
-	jam MULTI_LED_ON,mem_mouse_multi_led_type
-mouse_multi_led_enable:
-	jam OFF,mem_mouse_multi_led_state
-	jam ON,mem_mouse_multi_led_blink_enable
-	rtn
-
-//===led blink config===//
-mouse_device_24g_pair_led_config:		//24g pair led config
-	bpatch patch15_0,mem_patch15
-//	call mouse_device_24g_led_blink_timer_init
-	call mouse_multi_led_blink_enable_init
-	jam 1,mem_mouse_multi_led_blink_type
-	fetch 1,mem_mouse_le_reconn_blink_limit
-	rtn blank
-	fetch 1,mem_mouse_multi_24gled_blink_count_init
-	branch mouse_device_led_blink_count_init
-
-mouse_device_le_reconn_led_config:		//le recon led config
-	bpatchx patch3a_3,mem_patch3a
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	rtnbit0 MOUSE_ENABLE_BT_RECONN_LED_EFFECT
-//	call mouse_device_le_reconn_led_blink_timer_init
-	call mouse_multi_led_blink_enable_init
-	jam 3,mem_mouse_multi_led_blink_type
-	fetch 1,mem_mouse_le_reconn_blink_limit
-	rtn blank
-	fetch 1,mem_mouse_multi_le_reconn_blink_count_init
-mouse_device_led_blink_count_init:
-	store 1,mem_mouse_multi_led_blink_count
-	rtn	
-
-mouse_device_discovery_led_config:		//ble discovery led config
-//	call mouse_device_le_discovery_led_blink_timer_init
-	jam 0,mem_mouse_le_reconn_blink_limit
-	jam 2,mem_mouse_multi_led_blink_type
-mouse_multi_led_blink_enable_init:
-	bpatchx patch3a_4,mem_patch3a
-	jam 0x0a,mem_mouse_multi_led_blink_timer
-	jam 1,mem_mouse_multi_led_blink_enable
-	jam MULTI_LED_BLINK,mem_mouse_multi_led_type
-	branch mouse_device_multi_led_on
-
-
-//====multi timer====//
-mouse_led_multi_timer:
-	fetch 1,mem_mouse_multi_led_blink_enable
-	rtn blank
-	fetch 1,mem_mouse_multi_led_type
-	beq MULTI_LED_BLINK,mouse_multi_led_type_blink
-mouse_device_multi_led_type_on:
-	fetch 1,mem_mouse_multi_led_powon_timer
-	branch mouse_device_poweron_led_off,blank
-	increase -1,pdata
-	store 1,mem_mouse_multi_led_powon_timer
-	branch mouse_device_led_on
-
-mouse_device_poweron_led_off:
- 	jam 0,mem_mouse_multi_led_blink_enable
- 	jam 1,mem_mouse_pair_flag
-	call mouse_multi_low_led_blink_count_init
-	branch mouse_device_led_off
-
-mouse_multi_led_type_blink:
-	bpatch patch15_1,mem_patch15
-	fetch 1,mem_mouse_multi_led_blink_type	//00:rtn	01:24g blink	02:le blink		03:reconn blink 	04:low blink	05:dpi blink
-	rtn blank
-	beq 4,mouse_device_led_blink_limit	//dpi blink
-	branch mouse_device_led_blink_judge
-
-mouse_device_led_blink_judge:
-	fetch 1,mem_mouse_le_reconn_blink_limit
-	beq 1,mouse_device_led_blink_limit
-	branch mouse_multi_led_type_blink_next
-
-mouse_device_led_blink_limit:
-	fetch 1,mem_mouse_multi_led_blink_count
-	branch mouse_multi_led_off_judge, blank		//blink count =0
-mouse_multi_led_type_blink_next:	//blink no limit
-	arg mem_mouse_multi_led_blink_timer,regc
-	arg mouse_multi_led_type_blink_start,regb
-	branch timer_single_step
-	
-mouse_multi_led_type_blink_start:
-	fetch 1,mem_mouse_multi_led_blink_type
-	beq 4,mouse_multi_led_blink_count_decrease		//dpi blink
-	fetch 1,mem_mouse_le_reconn_blink_limit
-	beq 1,mouse_multi_led_blink_count_decrease
-mouse_multi_led_blink:
-	call mouse_multi_led_blink_timer_init
-	fetch 1,mem_mouse_multi_led_state
-	beq ON,mouse_multi_led_off_judge_next
-	branch mouse_multi_led_on_judge
-
-mouse_multi_led_blink_count_decrease:
-	fetch 1,mem_mouse_multi_led_blink_count	
-	increase -1,pdata
-	store 1,mem_mouse_multi_led_blink_count
-	branch mouse_multi_led_blink
-
-//=====led on/off interface=====//
-mouse_multi_led_on_judge:
-	fetch 1,mem_mouse_multi_led_blink_type
-	beq 4,mouse_multi_dpi_led_on_judge
-mouse_device_multi_led_on:
-	jam ON,mem_mouse_multi_led_state
-mouse_device_led_on:
-	bpatch patch15_2,mem_patch15
-	fetch 1,mem_device_flag
-	beq MODE_24G_DEVICE,mouse_device_24g_led_on
-	beq MODE_BT_DEVICE1,mouse_device_bt1_led_on
-	beq MODE_BT_DEVICE2,mouse_device_bt2_led_on
-	rtn
-mouse_device_24g_led_on:
-	fetcht 1,mem_mouse_1io2led_multi_24gled
-	branch mouse_led_on	//by mouse.dat config
-mouse_device_bt1_led_on:
-	fetcht 1,mem_mouse_1io2led_multi_bt1led
-	branch mouse_led_on	//by mouse.dat config
-mouse_device_bt2_led_on:
-	fetcht 1,mem_mouse_1io2led_multi_bt2led
-mouse_led_on:
-	branch gpio_out_active	//by mouse.dat config
-
-mouse_led_off:
-	branch gpio_out_inactive	//by mouse.dat config
-
-mouse_multi_led_off_judge:
-	jam 0,mem_mouse_multi_led_blink_enable
-	jam 0,mem_mouse_multi_led_blink_type
-mouse_multi_led_off_judge_next:
-	fetch 1,mem_mouse_multi_led_blink_type
-	beq 4,mouse_multi_dpi_led_off_judge
-mouse_device_multi_led_off:
-	jam OFF,mem_mouse_multi_led_state
-mouse_device_led_off:
-	bpatch patch15_3,mem_patch15
-	fetch 1,mem_device_flag
-	beq MODE_24G_DEVICE,mouse_device_24g_led_off
-	beq MODE_BT_DEVICE1,mouse_device_bt1_led_off
-	beq MODE_BT_DEVICE2,mouse_device_bt2_led_off
-	rtn
-mouse_device_24g_led_off:
-	fetcht 1,mem_mouse_1io2led_multi_24gled
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	bbit0 MOUSE_ENABLE_1IO2LED,mouse_led_off
-	branch gpio_set_analog
-mouse_device_bt1_led_off:
-	fetcht 1,mem_mouse_1io2led_multi_bt1led
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	bbit0 MOUSE_ENABLE_1IO2LED,mouse_led_off
-	branch gpio_set_analog
-mouse_device_bt2_led_off:
-	fetcht 1,mem_mouse_1io2led_multi_bt2led
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	bbit0 MOUSE_ENABLE_1IO2LED,mouse_led_off
-	branch gpio_set_analog
-
-mouse_device_multi_led_all_off:		//dpi+low no
-	call mouse_device_24g_led_off
-	call mouse_device_bt1_led_off
-	call mouse_device_bt2_led_off
-	call mouse_low_voltage_led_off_judge
-	branch mouse_multi_dpi_led_off_judge
-
-mouse_multi_dpi_led_off_judge:
-	jam OFF,mem_mouse_multi_led_state
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	bbit1 MOUSE_ENABLE_DPI_FOR_LED,mouse_device_multi_led_off
-mouse_multi_dpi_led_off:
-	fetcht 1,mem_mouse_dpi_gpio
-	branch mouse_led_off
-
-mouse_multi_dpi_led_on_judge:
-	jam ON,mem_mouse_multi_led_state
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	bbit1 MOUSE_ENABLE_DPI_FOR_LED,mouse_device_multi_led_on
-mouse_multi_dpi_led_on:
-	fetcht 1,mem_mouse_dpi_gpio
-	branch mouse_led_on	//by mouse.dat config
-
-/*******************multi led end*************************/
-
-mouse_low_voltage_led_no_enter_lpm:	
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	rtnbit0 MOUSE_LOW_VOLTAGE_FLAG
-	fetch 1,mem_adc_low_volatage_led_timer_count
-	fetcht 1,mem_mouse_low_led_blink_half_timer
-	sub pdata,temp,null
-	branch mouse_lpm_mode_clear,positive
-mouse_low_voltage_led_no_enter_lpm_next:	
-	fetch 1,mem_device_flag
-	beq MODE_24G_DEVICE,g24_transmit_by_interrupt_exit_check
-	branch hid_device_enable_lpm
-
-g24_transmit_by_interrupt_exit_check:
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag	
-	rtnbit1 MOUSE_ENABLE_24G_250Hz	
-	branch g24_transmit_by_interrupt_exit
-
-mouse_lpm_mode_clear:
-	fetch 1,mem_device_flag
-	beq MODE_24G_DEVICE,g24_transmit_by_interrupt_enable
-	branch hid_device_disable_lpm
-
-
-mouse_store_signal_rssi:
-//	call rssi_hex2dec
-	fetch 1,mem_rssi
-	branch rssi_signal
-
-mouse_le_transmit:
-	call mouse_store_signal_rssi
-	branch power_ctrl_start
-
-mouse_set_lpm_mult:
-	fetch 2,mem_ui_state_map
-	rtnbit0 UI_STATE_BLE_CONNECTED
-mouse_le_set_lpm_mult:
-	fetch 1,mem_le_connect_status_flag
-	compare 3,pdata,3
-	nbranch disable_blank,true
-	call app_lpm_mult_enable
-	branch enable_blank
-
-mouse_24g_long_sleep:
-	bpatch patch15_4,mem_patch15
-	call g24_lpm_wait
-	nrtn user
-	jam 1,mem_mouse_24g_long_sleep_flag
-	call g24_setgpio_lpm_before
-	jam 0,mem_mouse_24g_sleep_miss
-	call mouse_24g_send_time_long_wake
-	fetch 1,mem_24g_shutdown_flag
-	ncall mouse_setgpio_hibernate,blank
-	fetch 8,mem_24g_enter_hibernate
-	branch g24_long_seep2	
-
-mouse_24g_short_sleep:
-	fetch 1,mem_mouse_sleep_deal_type
-	branch g24_short_sleep,blank
-	call g24_lpm_wait
-	nrtn user
-	fetch 1,mem_mouse_24g_sleep_miss
-	jam 0,mem_mouse_24g_sleep_miss
-	sub pdata,0,null
-	nbranch mouse_24g_short_sleep_last_miss,zero
-	fetcht 2,mem_24g_retransmit
-	sub temp,0,null
-	branch mouse_24g_short_sleep_default,zero
-
-	fetch 4,mem_mouse_24g_tx_time_last_delt
-	branch mouse_24g_short_sleep_default,blank
-mouse_24g_short_sleep_last_miss:
-	fetcht 4,mem_mouse_24g_sleep_miss_temp
-	isolate1 31,temp
-	branch mouse_24g_sub_miss_temp,true
-	fetch 4,mem_mouse_24g_tx_time_last_delt
-	iadd temp,pdata
-mouse_24g_short_sleep_notify:
-	fetcht 4,mem_mouse_24g_tsniff
-	isub temp,temp
-	storet 4,mem_mouse_24g_sleep_miss_temp
-	nbranch mouse_24g_short_sleep_long,positive
-	fetch 3,mem_24g_short_sleep_set
-	isub temp,pdata
-	nbranch mouse_24g_short_sleep_2,positive
-	arg 0x600,temp
-	isub temp,null
-	nbranch mouse_24g_short_sleep_2,positive
-mouse_24g_short_sleep2:
-	jam 250,mem_mouse_24g_tx_time_offset
-mouse_24g_short_sleep3:
-	call clk2lpo
-	storet 4,mem_sleep_counter
-	branch lpm_sleep
-
-mouse_24g_short_sleep_default:
-	call mouse_24g_miss_temp_clear
-	fetch 3,mem_24g_short_sleep_set
-	branch mouse_24g_short_sleep2
-
-mouse_24g_short_sleep_long:
-	sub temp,0,temp
-	fetch 3,mem_24g_short_sleep_set
-	iadd temp,pdata
-	branch mouse_24g_short_sleep2
-
-mouse_24g_miss_temp_clear:
-	setarg 0
-	store 4,mem_mouse_24g_sleep_miss_temp
-	rtn
-	
-mouse_24g_short_sleep_2:
-	jam 1,mem_mouse_24g_sleep_miss
-	rtn
-
-mouse_24g_sub_miss_temp:
-	arg -1,pdata
-	isub temp,regext
-	fetch 4,mem_mouse_24g_tx_time_last_delt
-	isub regext,pdata
-	branch mouse_24g_short_sleep_notify
-
-mouse_24g_transmit_callback:
-	call mouse_24g_send_time_check
-	branch mouse_wakeup_24g
-
-mouse_24g_send_time_check:
-	fetch 1,mem_mouse_sleep_deal_type
-	rtn blank
-	fetch 1,mem_24g_transmit_by_interrupt
-	beq G24_TX_TIMER_INT_ENABLE,mouse_24g_send_timer_first
-	fetch 1,mem_mouse_24g_tx_count
-	branch mouse_24g_send_timer_first,blank
-	copy clkn,pdata
-	fetcht 6,mem_mouse_24g_tx_time_last
-	store 6,mem_mouse_24g_tx_time_last
-	call clk_diff_rt
-	store 4,mem_mouse_24g_tx_time_last_delt
-
-	fetch 1,mem_mouse_24g_sleep_miss
-	nrtn blank
-	fetch 2,mem_24g_retransmit
-	nrtn blank
-	fetch 4,mem_mouse_24g_sleep_miss_temp
-	nrtn blank
-	
-	fetch 4,mem_mouse_24g_tx_time_last_delt
-	fetcht 4,mem_mouse_24g_tsniff
-	lshift temp,temp
-	isub temp,null
-	branch mouse_24g_send_time_long_wake,positive
-	
-	fetcht 5,mem_mouse_24g_tx_time_sum
-	iadd temp,pdata
-	store 5,mem_mouse_24g_tx_time_sum	
-	fetcht 1,mem_mouse_24g_tx_count
-	fetch 1,mem_mouse_24g_tx_time_sum_count
-	isub temp,null
-	branch mouse_24g_send_time_check_average,zero
-	increase 1,temp
-	storet 1,mem_mouse_24g_tx_count
-	rtn
-
-mouse_24g_send_time_check_average:
-	jam 1,mem_mouse_24g_tx_count
-	arg 0,temp
-	fetch 5,mem_mouse_24g_tx_time_sum
-	storet 5,mem_mouse_24g_tx_time_sum
-	fetcht 1,mem_mouse_24g_tx_time_sum_count
-	idiv temp
-	call wait_div_end
-  	quotient rega
-
-	fetch 4,mem_mouse_24g_tsniff
-	fetcht 1,mem_mouse_24g_tx_time_offset
-	isub temp,temp
-
-	copy rega,pdata
-	isub temp,pdata
-	branch mouse_24g_send_time_check_average_late,positive
-	sub pdata,0,pdata
-	
-	rshift2 pdata,pdata
-	fetcht 3,mem_24g_short_sleep_set
-	iadd temp,temp
-	bpatch patch15_5,mem_patch15
-	fetch 3,mem_mouse_24g_short_sleep_set_init
-	arg 0x1800,rega
-	iadd rega,pdata
-	isub temp,null
-	nbranch mouse_24g_send_time_check_average_min,positive
-mouse_24g_short_sleep_storet:
-	storet 3,mem_24g_short_sleep_set
-	rtn
-
-mouse_24g_send_time_check_average_late:
-	rshift2 pdata,temp
-	fetch 3,mem_24g_short_sleep_set
-	isub temp,temp
-	bpatch patch15_6,mem_patch15
-	fetch 3,mem_mouse_24g_short_sleep_set_init
-	arg 0x1800,rega
-	isub rega,pdata
-	isub temp,null
-	branch mouse_24g_send_time_check_average_min,positive
-	branch mouse_24g_short_sleep_storet
-
-mouse_24g_send_time_check_average_min:
-	store 3,mem_24g_short_sleep_set
-	rtn
-
-mouse_24g_send_timer_first:
-	jam 1,mem_mouse_24g_tx_count
-	copy clkn,pdata
-	store 6,mem_mouse_24g_tx_time_last
-	rtn
-
-mouse_24g_send_time_long_wake:
-	setarg 0
-	store 1,mem_mouse_24g_tx_count
-	store 5,mem_mouse_24g_tx_time_sum
-	rtn
-
-/******************************************USB MODE*******************************************/
-mouse_usb_check_enable:
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	rtnbit0 MOUSE_ENABLE_USB
-	jam USB_INTERFACE_REMOVE,mem_usb_vdd_status
-	rtn
-	
-mouse_usb_isr:
-	call mouse_usb_interface_check
-	fetch 1,mem_usb_vdd_status
-	rtnne USB_INTERFACE_INSERT
-	branch usb_isr
-
-mouse_usb_interface_check:
-	bpatch patch15_7,mem_patch15
-	fetcht 1,mem_usb_offline_check_gpio
-	call gpio_get_bit
-	nbranch mouse_usb_mode_disable,true
-mouse_usb_mode_enable:
-	fetch 1,mem_usb_vdd_status
-	rtneq USB_INTERFACE_INSERT
-	jam USB_INTERFACE_INSERT,mem_usb_vdd_status
-	setarg 0
-	store 2,mem_24g_pair_timeout
-	store 2,mem_24g_reconn_timeout
-	jam 0,mem_lpm_mode
-	call select_system_clk_12M_dpll
-	call mouse_24g_stop
-	call mouse_stop_bluetooth_mode
-	disable wake
-	call mouse_init_sensor_reset
-
-	setarg mouse_usb_config_param
-	store 2,mem_cb_usb_config
-	fetch 1,mem_usb_tx_interval_retention
-	store 1,mem_usb_tx_interval
-	arg mem_usb_vid_pid_retention,contr
-	arg mem_usb_vid_pid,contw
-	arg 9,loopcnt
-	call memcpy
-	branch usb_init
-
-mouse_usb_mode_disable:
-	fetch 1,mem_usb_keyboard_flag
-	rtneq USB_INTERFACE_REMOVE
-	jam USB_INTERFACE_REMOVE,mem_usb_vdd_status
-	jam 0,mem_usb_device_enumeration_endflag
-	jam 0,mem_usb_status
-	jam 0,mem_usb_state
-	fetch 2,core_clkoff
-	set1 CLOCK_OFF_USB,pdata
-	store 2,core_clkoff
-	jam 1,mem_lpm_mode
-	call select_system_clk_12M_dpll
-	branch mouse_soft_reset
-	
-mouse_usb_mode:
-	fetch 1,core_usb_addr
-	store 1,mem_usb_addr
-	rtnbit0 7
-	call mouse_usb_timer_check
-	nrtn user
-	call mouse_motion
-	nrtn user
-	fetch 1,core_usb_txbusy
-	rtnbit1 2
-	branch mouse_push_data_to_usb
-	
-mouse_push_data_to_usb:
-	fetch 1,core_usb_addr
-	rtnbit0 7
-	bpatch patch16_0,mem_patch16
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	bbit0 MOUSE_ENABLE_KEYBOARD,hid_device_push_mouse_data_to_usb
-	fetch 1,mem_customer_key
-	beq 1,hid_device_push_keyboard_data_to_usb
-	branch hid_device_push_mouse_data_to_usb
-
-mouse_usb_timer_check:
-	call disable_user
-	fetcht 4,mem_btclk_sensor
-	copy clkn_bt,pdata
-	isub temp,null
-	ncall mouse_usb_timer_timeout,positive
-	copy pdata,regb
-	fetch 4,mem_btclk_sensor
-	fetcht 1,mem_wire_usb_interval
-	iadd temp,temp
-	copy regb,pdata
-	isub temp,null		
-	nrtn positive
-	set0 28,pdata
-	store 4,mem_btclk_sensor
-	branch enable_user
-
-mouse_usb_timer_timeout:
-	rtn zero
-	set1 28,pdata
-	rtn
-	
-mouse_usb_timer_init:
-	setarg 0
-	store 4,mem_btclk_sensor
-	rtn
-
-mouse_usb_config_param:
-	bpatch patch16_1,mem_patch16
-	call mouse_usb_config_kb_check
-	call mouse_usb_report_rate_set
-	call mouse_usb_config_param_setup
-mouse_usb_device_name_config:
-	fetch 1,mem_usb_device_name_retention
-	rtn blank
-	arg mem_usb_device_name_retention,contr
-	arg mem_string2,contw
-	arg 30,loopcnt
-	branch memcpy
-
-mouse_usb_config_kb_check:
-	jam DONGLE_KB_BIND_OTP_OFFECT,mem_usb_keyboard_flag
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	rtnbit0 MOUSE_ENABLE_KEYBOARD
-	jam DONGLE_KB_BIND_SUCCESS,mem_usb_keyboard_flag
-	rtn
-
-mouse_usb_config_param_setup:
-	call usb_tx_interval_config
-	call dongle_usb_vid_pid_config
-mouse_usb_hid_icon_config:
-	fetch 1,mem_usb_keyboard_flag
-	branch dongle_usb_hid_icon_config+1
-
-mouse_usb_report_rate_set:
-	call mouse_usb_timer_init
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	bbit1 MOUSE_ENABLE_USB_250,mouse_usb_report_rate_set_250hz
-	bbit1 MOUSE_ENABLE_USB_500,mouse_usb_report_rate_set_500hz
-	bbit1 MOUSE_ENABLE_USB_1000,mouse_usb_report_rate_set_1000hz
-mouse_usb_report_rate_set_125hz:
-	jam 32,mem_wire_usb_interval
-	rtn
-mouse_usb_report_rate_set_250hz:
-	jam 16,mem_wire_usb_interval
-	rtn
-mouse_usb_report_rate_set_500hz:
-	jam 8,mem_wire_usb_interval
-	rtn
-mouse_usb_report_rate_set_1000hz:
-	jam 4,mem_wire_usb_interval
-	rtn
-
-
-/*****************close define  COMPILE_MOUSE**********/
-else
-
-endif
-
-
-
Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/app_rec.prog
===================================================================
--- /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/app_rec.prog	(revision 5679)
+++ /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/app_rec.prog	(nonexistent)
@@ -1,2084 +0,0 @@
-
-
-ifdef COMPILE_REMOTE_CONTROL
-rec_cb_function:
-	setarg rec_process_idle
-	store 2,mem_cb_idle_process
-
-//	setarg rec_2_5ms_timer
-//	store 2,mem_rec_cb_timer
-	rtn
-
-
-rec_process_idle:
-	call rec_ui_timer_check
-	rtn
-
-rec_ui_timer_check:
-	bpatch patch16_2,mem_patch16
-	arg 0,rega
-	fetcht 4,mem_rec_ui_timer_btclk
-	copy clkn_bt,regb
-	copy regb,pdata
-	isub temp,null
-	ncall ui_timer_timeout,positive
-rec_ui_timer_check_loop:
-	copy regb,pdata
-	increase 8,temp    //8btclk = 2.5ms
-	isub temp,null
-	nbranch rec_ui_timer_check_end,positive
-	increase 1,rega   //increase 1 every 100ms count
-	and rega,0x0f,pdata
-	nbranch rec_ui_timer_check_loop,blank
-	arg 0,rega  	//reset timer if it's longer than 1.5s between 2 checks
-	call rec_ui_timer_check_send_evt
-rec_ui_timer_init:
-	storer clkn_bt,4,mem_rec_ui_timer_btclk
-	rtn
-rec_ui_timer_check_end:
-	copy rega,pdata
-	rtn blank
-	increase -8,temp    //8btclk = 2.5ms
-	set0 28,temp
-	storet 4,mem_rec_ui_timer_btclk
-rec_ui_timer_check_send_evt:
-	store 1,mem_rec_ui_timer_count
-rec_evt_timer_loop:
-	fetch 1,mem_rec_ui_timer_count
-	rtn blank
-	increase -1,pdata
-	store 1,mem_rec_ui_timer_count
-	fetch 2,mem_rec_cb_timer
-	call callback_func
-	branch rec_evt_timer_loop
-
-/*
-rec_2_5ms_timer:
-	call rec_tscan_key_check_2_5ms_timer
-	rtn
-
-rec_tscan_key_check_2_5ms_timer:
-	arg mem_rec_tscan_timer,regc
-	arg rec_tscan_key_start,regb
-	branch timer_single_step
-rec_tscan_key_start:
-	call rec_set_tscan_timeout
-	call rec_tscan
-	branch rec_tscan_key_send	
-	
-rec_set_tscan_timeout:
-	fetch 1,mem_rec_tscan_timeout
-	store 1,mem_rec_tscan_timer
-	rtn
-*/
-
-
-////////////////////////////////////////////////////////////////TSACN START///////////////////////////////////////////////////////	
-
-rec_tscan:
-	bpatch patch16_3,mem_patch16
-	fetch 1,mem_rec_tscan_row_nums
-	rtn blank
-	jam 0,mem_rec_tscan_col_scanned
-	jam 0,mem_rec_tscan_sequence
-	call rec_gpio_wakeup_disable
-rec_tscan_gnd_process:
-	call rec_tscan_get_gndkey_state	
-	fetch 1,mem_rec_tscan_gndkey_need_send_flag
-	nrtn blank
-	call rec_tscan_gpio_set_before_lpm
-	call lpm_write_gpio_wakeup
-rec_tscan_process:
-	bpatch patch16_4,mem_patch16
-	call rec_tscan_col_state_init
-	call rec_tscan_row_state_init
-	call rec_tscan_get_row_state
-	call rec_tscan_pull_up_current_col_gpio
-	branch rec_tscan_col_state_next_gpio_check
-
-/*
- * @brief: gpio config output low
- * @param: none
- * @return: none
- */
-rec_tscan_col_state_init:	
-	arg mem_rec_tscan_col_gpio,rega
-	fetch 1,mem_rec_tscan_col_scanned
-	iadd rega,rega
-	storer rega,2,mem_rec_tscan_col_gpio_ptr
-	ifetcht 1,rega
-	branch gpio_config_output
-
-/*
- * @brief: gpio config input pull up
- * @param: none
- * @return: none
- */
-rec_tscan_row_state_init:	
-	fetch 1,mem_rec_tscan_row_nums
-	rtn blank
-	fetcht 1,mem_rec_tscan_col_scanned
-	isub temp,pdata
-	iforce loopcnt
-	arg mem_rec_tscan_row_gpio,rega
-	fetch 1,mem_rec_tscan_col_scanned
-	iadd rega,rega
-rec_tscan_row_gpio_config_input_pull_up:
-	ifetch 1,rega
-	call rec_gpio_weak_pullup
-	increase 1,rega
-	loop rec_tscan_row_gpio_config_input_pull_up
-	rtn
-
-
-rec_tscan_get_row_state:
-	jam 0,mem_rec_tscan_row_scanned
-	fetch 1,mem_rec_tscan_row_nums
-	fetcht 1,mem_rec_tscan_col_scanned
-	isub temp,pdata
-	store 1,mem_rec_tscan_row_scan_loop_count
-
-	arg mem_rec_tscan_row_gpio,rega
-	fetch 1,mem_rec_tscan_col_scanned
-	iadd rega,rega
-rec_tscan_get_row_state_loop:
-	ifetcht 1,rega
-	storet 1,mem_rec_gpio_bit_check
-	call rec_tscan_debounce
-	nrtn user
-
-	call rec_tscan_record_key_coord,true
-	increase 1,rega
-	fetch 1,mem_rec_tscan_row_scanned
-	increase 1,pdata
-	store 1,mem_rec_tscan_row_scanned
-	
-	fetcht 1,mem_rec_tscan_sequence
-	increase 1,temp
-	storet 1,mem_rec_tscan_sequence
-	
-	fetcht 1,mem_rec_tscan_row_scan_loop_count
-	isub temp,null
-	nbranch rec_tscan_get_row_state_loop,positive
-
-	fetch 2,mem_rec_tscan_record_row
-	rtn blank
-	store 2,mem_rec_tscan_record_now
-	
-	setarg 0
-	store 2,mem_rec_tscan_record_row
-	rtn
-
-rec_tscan_record_key_coord:
-	storer rega,2,mem_rec_tscan_current_gpio_ptr
-	
-//	call rec_tscan_get_gndkey_state	//check ghost key
-//	fetch 1,mem_rec_tscan_gndkey_need_send_flag
-//	nrtn blank
-
-	fetch 1,mem_rec_tscan_row_scanned
-	copy pdata,queue
-	fetcht 1,mem_rec_tscan_record_row
-	qset1 temp
-	storet 1,mem_rec_tscan_record_row
-
-	fetch 1,mem_rec_tscan_col_scanned
-	copy pdata,queue
-	fetcht 1,mem_rec_tscan_record_col
-	qset1 temp
-	storet 1,mem_rec_tscan_record_col
-
-	call rec_tscan_combin_key_num_output
-
-	fetchr rega,2,mem_rec_tscan_current_gpio_ptr
-	rtn
-
-rec_tscan_combin_key_num_output:
-	fetcht 2,mem_rec_tscan_record_row
-	arg mem_rec_tscan_key_nums_list,rega
-rec_tscan_combin_key_num_loop:
-	ifetch 2,rega
-	rtn blank
-	isub temp,null
-	call rec_tscan_output_combin_key_num,zero
-	increase 2,rega
-	branch rec_tscan_combin_key_num_loop
-
-rec_tscan_output_combin_key_num:
-	fetchr queue,1,mem_rec_tscan_sequence
-	fetch 8,mem_rec_tscan_key_num_bit
-	qset1 pdata
-	store 8,mem_rec_tscan_key_num_bit	
-	rtn
-
-rec_tscan_pull_up_current_col_gpio:
-	fetch 2,mem_rec_tscan_col_gpio_ptr
-	ifetch 1,pdata
-	branch rec_gpio_weak_pullup
-
-rec_tscan_col_state_next_gpio_check:
-	fetch 1,mem_rec_tscan_col_scanned
-	increase 1,pdata
-	store 1,mem_rec_tscan_col_scanned
-	fetcht 1,mem_rec_tscan_col_nums
-	isub temp,null
-	nbranch rec_tscan_process,positive
-	fetch 2,mem_rec_tscan_record_now
-	branch rec_tscan_key_up,blank
-rec_tscan_key_down:
-	store 2,mem_rec_tscan_record_temp
-	fetch 1,mem_rec_tscan_key_need_send_flag
-	nbranch rec_tscan_key_value_clear,blank
-	fetch 1,mem_rec_tscan_key_state
-	rtneq KEY_DOWN
-	jam KEY_DOWN,mem_rec_tscan_key_state	
-	jam 1,mem_rec_tscan_key_need_send_flag
-	bpatch patch16_5,mem_patch16
-	call rec_tscan_key_num_output
-	fetch 2,mem_ui_state_map
-	rtnbit1 UI_STATE_BLE_ADV
-	branch rec_led_start_on
-
-rec_tscan_key_up:
-	fetch 1,mem_rec_tscan_key_state
-	rtneq KEY_UP
-	jam KEY_UP,mem_rec_tscan_key_state
-	fetch 2,mem_ui_state_map
-	bbit1 UI_STATE_BLE_ADV,rec_tscan_key_up_send
-	fetch 1,mem_rec_nec_learn_state
-	nbranch rec_tscan_key_up_send,blank
-	call rec_led_start_off
-rec_tscan_key_up_send:
-	setarg 0
-	store 8,mem_rec_tscan_key_num_bit
-	store 1,mem_rec_tscan_key_need_send_flag
-rec_tscan_key_up_config:
-	jam 0,mem_rec_tscan_current_key_num
-	arg mem_rec_key_release_le,regc
-	branch push_buffer_in_queue
-
-rec_tscan_key_num_output:
-	call rec_tscan_key_num_check
-rec_tscan_record_init:
-	setarg 0
-	store 2,mem_rec_tscan_record_temp
-	rtn
-
-rec_tscan_key_value_clear:
-	setarg 0
-	store 2,mem_rec_tscan_record_now
-	rtn
-
-rec_tscan_get_gndkey_state:
-	arg 0,rega
-	arg 0,regb
-	force 0,regext_index
-	fetch 1,mem_rec_tscan_gpio_nums
-	iforce loopcnt
-	arg mem_rec_tscan_col_gpio,regc
-rec_tscan_get_gndkey_loop:
-	call rec_save_regc
-	call rec_save_rega
-	ifetch 1,regc
-	call rec_gpio_weak_pullup
-	call rec_rescue_rega
-	call rec_rescue_regc
-	ifetcht 1,regc
-	storet 1,mem_rec_gpio_bit_check
-	call rec_tscan_debounce
-	nrtn user
-
-	copy regb,queue
-	call rec_tscan_store_gndkey_press_state,true
-	ncall rec_tscan_store_gndkey_release_state,true
-	increase 1,regc
-	increase 1,regb
-	loop rec_tscan_get_gndkey_loop
-	copy rega,pdata
-	branch rec_tscan_gndkey_up,blank
-rec_tscan_gndkey_down:
-	store 1,mem_rec_tscan_gndkey_record_temp
-	fetch 1,mem_rec_tscan_gndkey_state
-	rtneq KEY_DOWN
-	jam KEY_DOWN,mem_rec_tscan_gndkey_state
-	jam 1,mem_rec_tscan_gndkey_need_send_flag
-	bpatch patch16_6,mem_patch16
-	call rec_tscan_gndkey_num_output
-	fetch 2,mem_ui_state_map
-	rtnbit1 UI_STATE_BLE_ADV
-	branch rec_led_start_on
-
-rec_tscan_gndkey_up:
-	fetch 1,mem_rec_tscan_gndkey_state
-	rtneq KEY_UP
-	jam KEY_UP,mem_rec_tscan_gndkey_state
-	fetch 2,mem_ui_state_map
-	bbit1 UI_STATE_BLE_ADV,rec_tscan_gndkey_up_send
-	fetch 1,mem_rec_nec_learn_state
-	nbranch rec_tscan_gndkey_up_send,blank
-	call rec_led_start_off
-rec_tscan_gndkey_up_send:
-	jam 0,mem_rec_tscan_gndkey_need_send_flag
-	branch rec_tscan_key_up_config
-
-rec_tscan_gndkey_num_output:
-	call rec_tscan_gndkey_num_check
-rec_tscan_gndkey_record_param_init:
-	jam 0,mem_rec_tscan_gndkey_record_temp
-	rtn
-
-rec_tscan_gndkey_num_check:
-	fetcht 1,mem_rec_tscan_gndkey_record_temp
-	arg mem_rec_tscan_gndkey_nums_list,rega
-	arg 0,regb
-rec_tscan_gndkey_num_loop:
-	ifetch 1,rega
-	rtn blank
-	isub temp,null
-	branch rec_tscan_output_gndkey_num,zero
-	increase 1,rega
-	increase 1,regb
-	branch rec_tscan_gndkey_num_loop
-
-rec_tscan_store_gndkey_press_state:
-	qset1 rega
-	rtn
-
-rec_tscan_store_gndkey_release_state:
-	qset0 rega
-	rtn
-
-
-rec_gpio_bit_first_set:
-	jam 1,mem_rec_gpio_bit_first
-	rtn
-rec_gpio_bit_second_set:
-	jam 1,mem_rec_gpio_bit_second
-	rtn
-rec_tscan_debounce:
-	call disable_user
-	jam 0,mem_rec_gpio_bit_first
-	jam 0,mem_rec_gpio_bit_second
-	fetcht 1,mem_rec_gpio_bit_check
-	call gpio_get_bit
-	call rec_gpio_bit_first_set,true
-	nop 1200
-	fetcht 1,mem_rec_gpio_bit_check
-	call gpio_get_bit
-	call rec_gpio_bit_second_set,true
-	fetch 1,mem_rec_gpio_bit_first
-	fetcht 1,mem_rec_gpio_bit_second
-	isub temp,null
-	nrtn zero
-	branch enable_user
-	
-
-//pdata: gpio number 
-rec_gpio_weak_pullup:	
-	store 1,mem_rec_gpio_for_wake_pullup
-	call rec_gpio_set_input
-	fetch 1,mem_rec_gpio_for_wake_pullup	
-rec_gpio_set_lpm_weak_pullup:
-	arg 0x01,regc
-	div pdata,2
-	call wait_div_end
-	quotient temp
-	remainder pdata
-	ncall rec_gpio_set_0x10_regc,blank	
-	copy temp,pdata
-	arg core_gpio_wakeup_cfg,contw
-	until null,lpo_edge
-	until null,lpo_edge
-	iadd contw,contw
-	ifetch 1,contw
-	ior regc,pdata
-	istore 1,contw
-	branch lpm_write_wait
-	
-rec_gpio_set_0x10_regc:
-	arg 0x10,regc
-	rtn
-
-//pdata: gpio number
-rec_gpio_set_input:
-	or pdata,0x80,pdata
-	arg gpcfg_input,temp
-	branch gpio_config_function
-	
-rec_gpio_wakeup_disable:
-	branch lpm_config_puchk_disable
-
-rec_save_regc:
-	copy regc,pdata
-	branch rec_save_reg
-
-rec_rescue_regc:
-	call rec_rescue_reg
-	copy pdata,regc
-	rtn
-
-rec_save_rega:
-	copy rega,pdata
-	branch rec_save_reg
-
-rec_rescue_rega:
-	call rec_rescue_reg
-	copy pdata,rega
-	rtn
-
-rec_save_reg:
- 	increase 1,regext_index
- 	copy pdata,regext
- 	rtn
-
-rec_rescue_reg:
- 	copy regext,pdata
- 	increase -1,regext_index
- 	rtn	
-
-rec_tscan_gpio_set_before_lpm:
-	call rec_tscan_gpio_config_high_impedance
-	call rec_tscan_gpio_config_tri_angle_wakeup
-	call rec_gpio_wakeup_disable
-rec_gpio_wakeup_enable:
-	setarg 0xf0
-	store 1,core_puwakeup
-	branch lpm_write_wait
-
-rec_tscan_gpio_config_high_impedance:
-	fetch 1,mem_rec_tscan_gpio_nums
-	arg mem_rec_tscan_col_gpio,rega
-	branch rec_gpio_config_high_impedance	
-
-rec_tscan_gpio_config_tri_angle_wakeup:
-	fetchr regb,1,mem_rec_gpio_wakeup_source
-	fetch 1,mem_rec_tscan_gpio_nums
-	arg mem_rec_tscan_col_gpio,rega
-	branch rec_gpio_wakeup_config
-
-/*
- * @brief: gpio config high-impedance
- * @param: rega: gpio buff ptr, pdata: buff length
- * @return: none
- */
-rec_gpio_config_high_impedance:	
-	copy pdata,loopcnt
-rec_high_impedance_loop:
-	ifetcht 1,rega
-	call gpio_set_high_impedance
-	increase 1,rega
-	loop rec_high_impedance_loop
-	rtn
-
-
-/*
- * @brief: gpio wakeup config
- * @param: rega: gpio buff ptr, pdata: buff length, regb: wakeup source
- * @return: none
- */
-rec_gpio_wakeup_config:
-	copy pdata,loopcnt
-rec_gpio_wakeup_config_loop:
-	ifetcht 1,rega
-	rshift temp,pdata
-	arg mem_gpio_wakeup_cfg,contw
-	iadd contw,contw
-	call rec_gpio_wakeup_addr_search
-	ifetcht 1,contw
-	ior temp,pdata
-	istore 1,contw
-	increase 1,rega
-	loop rec_gpio_wakeup_config_loop
-	rtn
-
-rec_gpio_wakeup_addr_search:
-	copy regb,pdata
-	isolate0 0,temp
-	rtn true
-	lshift4 pdata,pdata
-	rtn
-
-rec_tscan_output_gndkey_num:
-	bpatch patch16_7,mem_patch16
-	copy regb,pdata
-	fetcht 1,mem_rec_gnd_key_offset
-	iadd temp,pdata
-rec_tscan_output_key_map:
-	arg mem_rec_key_map,regc
-	iadd regc,regc
-	ifetch 1,regc
-	store 1,mem_rec_tscan_current_key_num
-	increase -1,pdata
-	mul32 pdata,MAX_QUEUE_UNIT,pdata
-	arg mem_rec_key_press_le,regc
-	iadd regc,regc
-	branch rec_push_buffer_in_queue
-
-rec_tscan_key_num_check:
-	fetcht 2,mem_rec_tscan_record_temp
-	arg mem_rec_tscan_key_nums_list,rega
-	arg 0,regb
-rec_tscan_key_num_loop:
-	ifetch 2,rega
-	rtn blank
-	isub temp,null
-	branch rec_tscan_output_key_num,zero
-	increase 2,rega
-	increase 1,regb
-	branch rec_tscan_key_num_loop
-
-rec_tscan_output_key_num:
-	bpatch patch17_0,mem_patch17
-	copy regb,pdata
-	branch rec_tscan_output_key_map
-
-rec_push_buffer_in_queue:
-	bpatch patch17_1,mem_patch17
-	fetch 1,mem_rec_le_connect_state
-	nbranch rec_puch_buffer_in_queue_check,blank
-rec_push_buffer_in_queue_end:
-	call rec_key_type_select
-	branch push_buffer_in_queue
-
-rec_puch_buffer_in_queue_check:
-	fetch 1,mem_rec_le_enable_notify
-	rtn blank
-	branch rec_push_buffer_in_queue_end
-
-rec_key_type_select:
-	ifetch 1,regc
-	increase 1,regc
-	beq KEYPAD_TYPE_CONSUMER,rec_set_key_type_consumer
-	beq KEYPAD_TYPE_MOUSE,rec_set_key_type_mouse
-	beq KEYPAD_TYPE_KEYPAD,rec_set_key_type_keypad
-	beq KEYPAD_TYPE_NEC,rec_set_key_type_nec
-	rtn
-rec_set_key_type_consumer:
-	jam KEYPAD_TYPE_CONSUMER,mem_rec_keypad_type
-	rtn
-rec_set_key_type_mouse:
-	jam KEYPAD_TYPE_MOUSE,mem_rec_keypad_type
-	rtn
-rec_set_key_type_keypad:
-	jam KEYPAD_TYPE_KEYPAD,mem_rec_keypad_type
-	rtn
-rec_set_key_type_nec:
-	jam KEYPAD_TYPE_NEC,mem_rec_keypad_type
-	rtn
-
-rec_tscan_key_send:
-	bpatch patch17_2,mem_patch17
-	call queue_pop_one_byte
-	nrtn user
-	store 1,mem_rec_keypad_fun
-	fetch 1,mem_rec_tscan_current_key_num
-	call rec_nec_disable,blank
-rec_tscan_send_keypad:	
-	fetch 2,mem_ui_state_map
-	bbit0 UI_STATE_BLE_CONNECTED,rec_send_nec_keypad
-	fetch 1,mem_rec_keypad_type
-	beq KEYPAD_TYPE_CONSUMER,rec_le_send_consumer
-	beq KEYPAD_TYPE_MOUSE,rec_le_send_mouse
-	beq KEYPAD_TYPE_KEYPAD,rec_le_send_keyboard
-	beq KEYPAD_TYPE_NEC,rec_send_nec_keypad
-	rtn
-
-rec_send_nec_keypad:	
-	fetch 1,mem_rec_tscan_current_key_num
-	beq 0x00,rec_nec_disable
-	fetch 1,mem_rec_keypad_fun
-	pincrease -1
-	mul32 pdata,3,pdata
-	arg mem_rec_key_nec_value_list,temp
-	iadd temp,contr
-	ifetch 2,contr
-	ifetcht 1,contr
-	branch rec_nec_6122_start
-
-rec_le_send_consumer:
-	call le_fifo_check_nearly_full
-	nrtn blank
-	fetch 1,mem_rec_keypad_fun
-	pincrease -1
-	mul32 pdata,3,pdata
-	arg mem_rec_key_consumer_value_list,temp
-	iadd temp,contr
-	arg 3,loopcnt
-	arg mem_pdatatemp,contw	
-	call memcpy
-	jam 3,mem_rec_le_data_len
-	fetcht 2,mem_rec_report_id2_handle
-rec_le_send_data:
-	fetch 1,mem_rec_le_enable_notify
-	rtn blank
-	fetchr rega,1,mem_rec_le_data_len
-	call le_att_malloc_tx_notify
-	fetcht 1,mem_rec_le_data_len
-	copy temp,loopcnt
-	arg mem_pdatatemp,contr
-	branch memcpy
-
-
-rec_le_send_mouse:
-	call le_fifo_check_nearly_full
-	nrtn blank
-	fetch 1,mem_rec_keypad_fun
-	pincrease -1
-	mul32 pdata,4,pdata
-	arg mem_rec_key_mouse_value_list,temp
-	iadd temp,contr
-	arg 4,loopcnt
-	arg mem_pdatatemp,contw	
-	call memcpy
-	jam 4,mem_rec_le_data_len
-	fetcht 2,mem_rec_report_id4_handle
-	branch rec_le_send_data
-
-rec_le_send_keyboard:
-	call le_fifo_check_nearly_full
-	nrtn blank
-	fetch 1,mem_rec_keypad_fun
-	pincrease -1
-	mul32 pdata,10,pdata
-	arg mem_rec_key_keyboard_value_list,temp
-	iadd temp,contr
-	ifetch 2,contr
-rec_le_fill_standard_key_data:	
-	arg 8,loopcnt
-	arg mem_pdatatemp,contw	
-	call memcpy
-	jam 8,mem_rec_le_data_len
-	fetcht 2,mem_rec_report_id1_handle
-	branch rec_le_send_data
-
-
-////////////////////////////////////////////////////////////////TSACN END///////////////////////////////////////////////////////
-
-
-////////////////////////////////////////////////////////////////LED START///////////////////////////////////////////////////////
-
-rec_led_start_on:
-	arg 0,rega
-	branch ui_led_on_global
-
-rec_led_start_off:
-	arg 0,rega
-	branch ui_led_off_global
-
-/*
-rec_led_le_pair:
-	arg mem_rec_le_pair_led_style,regc
-	branch rec_led_style_config
-
-rec_led_le_reconn:
-	arg mem_rec_le_reconn_led_style,regc
-	branch rec_led_style_config
-
-rec_led_adc_low:
-	arg mem_rec_adc_low_led_style,regc
-rec_led_style_config:
-	arg 0,rega
-	call calc_curr_struct_prt
-	arg 7,loopcnt
-	branch ui_led_set_style_global+2
-
-rec_led_stop_blink:
-	arg 0,rega
-	branch ui_led_blink_stop_global
-
-rec_led2_start_blink:
-	arg mem_rec_led2_style,regc
-	arg 1,rega
-	branch rec_led_style_config+1
-
-rec_led2_stop_blink:
-	arg 1,rega
-	branch ui_led_blink_stop_global
-
-rec_led2_start_on:
-	arg 1,rega
-	branch ui_led_on_global
-
-rec_led2_start_off:
-	arg 1,rega
-	branch ui_led_off_global
-*/
-////////////////////////////////////////////////////////////////LED END///////////////////////////////////////////////////////
-
-
-///////////////////////////////////////////////////////////////NEC SEND START///////////////////////////////////////////////////////
-
-  /*
- * @brief: send nec data
- * @param: pdata: usercode, temp: datacode
- * @return: none
- */
-rec_nec_send_userdata_6122:
-	store 2,mem_rec_nec_usercode
-	storet 1,mem_rec_nec_datacode
-	force 0,regext_index
-	call rec_nec_init_6122
-	call rec_nec_send_boot_6122
-	fetch 1,mem_rec_nec_usercode
-	call rec_nec_send_byte_6122
-	fetch 1,mem_rec_nec_usercode+1
-	call rec_nec_send_byte_6122
-	fetch 1,mem_rec_nec_datacode
-	call rec_nec_send_byte_6122
-	fetch 1,mem_rec_nec_datacode
-	invert pdata,pdata
-	call rec_nec_send_byte_6122
-	setarg 570
-	call rec_nec_carrier
-	setarg 1
-	branch rec_nec_empty
-
-rec_nec_init_6122:
-	setarg 0
-	call pwm_init+3
-	call pwm_disable
-	call rec_pwm_duty_cycle_set
-	fetch 1,mem_rec_nec_send_gpio
-	branch pwm_enable	
-
-
-  /*
- * @brief: pwm duty config
- * @param: rega: pcnt, regb: ncnt, pdata: pwm channel select
- * @return: none
- */
-rec_pwm_duty_cycle_set:
-	arg 157,rega
-	arg 157,regb
-	arg 0,pdata	
-	call pwm_duty_cycle_set
-	jam 0,core_pwm_en
-	rtn
-
-
-  /*
- * @brief: send nec bootdata
- * @param: none
- * @return: none
- */
-rec_nec_send_boot_6122:
-	setarg 9000
-	call rec_nec_carrier
-	setarg 4500
-rec_nec_empty:	
-	jam 0,core_pwm_en
-	branch rec_nec_delay_us
-
-
-  /*
- * @brief: nec carrier time
- * @param: pdata: time, unit 1us
- * @return: none
- */
-rec_nec_carrier:	
-	jam 1,core_pwm_en
-	branch rec_nec_delay_us
-
-
-  /*
- * @brief: delay timer
- * @param: pdata: delay time
- * @return: none
- */
-rec_nec_delay_us:
-	rtn blank	
-rec_nec_delay_us_loop:
-	increase -1,pdata
-	nop 8
-	nbranch rec_nec_delay_us_loop,blank
-	rtn	
-
-
-  /*
- * @brief: send nec one byte
- * @param: pdata: nec data
- * @return: none
- */
-rec_nec_send_byte_6122:
-	arg 8,loopcnt
-rec_nec_send_byte_loop_6122:
-	call rec_save_reg
-	call rec_nec_send_bit_6122
-	call rec_rescue_reg
-	rshift pdata,pdata
-	loop rec_nec_send_byte_loop_6122
-	rtn
-
-  /*
- * @brief: send nec bit check
- * @param: pdata: nec data
- * @return: none
- */
-rec_nec_send_bit_6122:
-	bbit0 0,rec_nec_send_bit0_6122
-	bbit1 0,rec_nec_send_bit1_6122	
-	rtn
-
-rec_nec_send_bit0_6122:
-	arg 570,rega
-	arg 550,regb
-	branch rec_nec_send_bit
-
-rec_nec_send_bit1_6122:
-	arg 570,rega
-	arg 1680,regb
-	branch rec_nec_send_bit
-
-
-  /*
- * @brief: send nec one bit
- * @param: rega: carrier time, regb: empty time
- * @return: none
- */
-rec_nec_send_bit:
-	copy rega,pdata
-	call rec_nec_carrier
-	copy regb,pdata
-	branch rec_nec_empty
-
-
-  /*
- * @brief: send nec repeat code
- * @param: none
- * @return: none
- */
-rec_nec_send_repeat_6122:
-	setarg 9000
-	call rec_nec_carrier
-	setarg 2250
-	call rec_nec_empty
-	setarg 560
-	call rec_nec_carrier
-	setarg 1
-	branch rec_nec_empty
-
-
-/*
- * @brief: nec data send
- * @param: pdata:boot data, temp:user data
- * @return: key state
- */
-rec_nec_6122_start:
-	call rec_nec_send_userdata_6122
-	call rec_nec_send_repeat_6122_timer_init
-	jam 16,mem_rec_nec_timer	//first package need about 40ms	
-	rtn
-	
-rec_nec_disable:
-	call rec_nec_send_repeat_6122_timer_clear
-rec_nec_6122_stop:
-	call pwm_disable
-rec_nec_io_disable:
-	fetch 1,mem_rec_nec_send_gpio
-rec_gpio_config_output_low:
-	arg gpcfg_output_low,temp
-	branch gpio_config_function_int
-
-rec_gpio_config_output_high:
-	arg gpcfg_output_high,temp
-	branch gpio_config_function_int
-
-rec_nec_send_repeat_6122_timer_init:
-	setarg 43		//107.5ms, unit 2.5ms
-rec_nec_timer_set:
-	store 1,mem_rec_nec_timeout
-	store 1,mem_rec_nec_timer
-	rtn
-
-rec_nec_send_repeat_6122_timer_clear:
-	setarg 0
-	branch rec_nec_timer_set
-	
-
-///////////////////////////////////////////////////////////////NEC SEND END///////////////////////////////////////////////////////
-
-
-///////////////////////////////////////////////////////////////NEC RECEIVE START///////////////////////////////////////////////////////
-/*
-rec_nec_learn_init: 
-	arg mem_rec_nec_rx_start,contw
-	arg 768,loopcnt
-	call clear_mem	
-	
-	jam gpcfg_no_ie,core_gpio_conf+3	//gpio3
-	fetch 2,core_clkoff
-	set0 CLOCK_OFF_NEC,pdata
-	store 2,core_clkoff	
-
-	setarg mem_rec_nec_rx_start
-	store 2,mem_pdatatemp
-	setarg mem_rec_nec_rx_end
-	istore 2,contw
-	fetch 4,mem_pdatatemp
-	jam 0x00,core_nec_ctrl	
-	arg FUN_NEC_ENABLE|0x37,temp						//1M
-//	arg FUN_NEC_ENABLE|0x35,temp							//2M
-//	arg FUN_NEC_ENABLE|0x33,temp							//6M
-//	arg FUN_NEC_ENABLE|FUN_NEC_CLK_DIVIDE_24,temp		//12M
-	call nec_init_config
-	fetch 1,core_lpm_sysctl	
-	or pdata,0xe0,pdata		//bit5: ir rx en, bit6-7: ir rx gain control
-	store 1,core_lpm_sysctl
-	until null,lpo_edge
-	fetch 1,core_nec_ctrl	//nec analogue function enable
-	set1 6,pdata
-	store 1,core_nec_ctrl
-	setarg mem_rec_nec_rx_store_start
-	store 2,mem_rec_nec_store_sptr
-	store 2,mem_rec_nec_store_wptr
-	setarg mem_rec_nec_rx_store_end
-	store 2,mem_rec_nec_store_eptr	
-
-	fetch 4,core_clkn
-	store 4,mem_rec_nec_learn_stime		
-	fetch 4,mem_rec_nec_learn_timeout	//nec learn timeout
-	store 4,mem_rec_nec_learn_outtime
-	setarg mem_rec_period_cal
-	store 2,mem_rec_period_cal_ptr
-	jam 0,mem_rec_period_cal_count
-	jam 1,mem_rec_nec_learn_state
-	rtn
-
-rec_nec_receive_data2buff:
-	call rec_nec_rx_num_big_3	
-	call rec_nec_receive_data,user
-	branch rec_nec_receiver_data_save	
-
-rec_nec_rx_num_big_3:
-	disable user
-	call rec_nec_rx_num
-	sub pdata,3,null
-	rtn positive
-	enable user
-	rtn	
-*/
-
-//pdata:rx num
-rec_nec_rx_num:
-	fetch 2,core_nec_wptr
-	fetcht 2,core_nec_rptr
-	isub temp,pdata
-	nbranch rec_nec_rptr_big_wptr,positive	
-	rtn
-rec_nec_rptr_big_wptr:
-	fetcht 2,core_nec_wptr
-	fetch 2,core_nec_rptr
-	isub temp,temp
-	setarg NEC_STORE_BUF_SIZE
-	isub temp,pdata	
-	rtn
-
-rec_nec_receive_data:
-	fetch 2,core_nec_rptr
-	ifetcht 3,pdata
-	storet 1,mem_rec_nec_receive_data0
-	rshift8 temp,temp
-	storet 1,mem_rec_nec_receive_data1
-	rshift8 temp,temp
-	storet 1,mem_rec_nec_receive_data2
-	
-	fetch 1,mem_rec_nec_receive_data0
-	and_into 0x80,pdata
-	bne 0x80, rec_nec_receive_one_data
-	branch rec_nec_receive_two_data
-
-rec_nec_receive_one_data:
-	fetch 1,mem_rec_nec_receive_data0
-	store 1,mem_rec_nec_receive_data
-	fetch 2,core_nec_rptr
-	fetcht 2,core_nec_end_addr
-	isub temp,pdata
-	branch rec_nec_rptr_reset,positive
-	fetch 2,core_nec_rptr
-	increase 1,pdata
-	store 2,core_nec_rptr
-	jam 1,mem_rec_nec_data
-	rtn	
-
-rec_nec_receive_two_data:
-	fetch 1,mem_rec_nec_receive_data2
-	and_into 0x80,pdata
-	beq 0x80,rec_nec_receive_three_data
-	fetch 1,mem_rec_nec_receive_data1
-	lshift8 pdata,pdata
-	rshift pdata,pdata
-	fetcht 1,mem_rec_nec_receive_data0
-	and_into 0x7f,temp
-	ior temp,pdata
-	store 2,mem_rec_nec_receive_data
-	fetch 2,core_nec_rptr
-	fetcht 2,core_nec_end_addr
-	isub temp,pdata
-	branch rec_nec_rptr_reset,positive
-	fetch 2,core_nec_rptr
-	increase 2,pdata
-	store 2,core_nec_rptr
-	jam 2,mem_rec_nec_data
-	rtn
-
-rec_nec_receive_three_data:
-	fetch 1,mem_rec_nec_receive_data2
-	and_into 0x7f,pdata
-	lshift16 pdata,pdata
-	rshift pdata,rega
-	fetch 1,mem_rec_nec_receive_data1
-	lshift8 pdata,pdata
-	rshift pdata,pdata
-	fetcht 1,mem_rec_nec_receive_data0
-	and_into 0x7f,temp
-	ior temp,pdata
-	ior rega,pdata
-	store 3,mem_rec_nec_receive_data
-
-	fetch 2,core_nec_rptr
-	fetcht 2,core_nec_end_addr
-	isub temp,pdata
-	branch rec_nec_rptr_reset,positive
-	
-	fetch 2,core_nec_rptr
-	increase 3,pdata
-	store 2,core_nec_rptr
-	jam 3,mem_rec_nec_data
-	rtn
-
-rec_nec_rptr_reset:
-	arg mem_rec_nec_rx_start,temp
-	iadd temp,pdata
-	store 2,core_nec_rptr
-	rtn
-/*
-rec_nec_receiver_data_save:
-	fetch 3,mem_rec_nec_receive_data
-	rtn blank
-	fetch 1,mem_rec_nec_data
-	rtn blank
-	beq 1,rec_nec_carry_time
-	fetch 1,mem_rec_nec_rx_count
-	call rec_nec_update_timeout,blank
-	fetch 1,mem_rec_nec_rx_count
-	increase 1,pdata
-	store 1,mem_rec_nec_rx_count
-	fetch 2,mem_rec_nec_store_wptr
-	fetcht 2,mem_rec_nec_store_eptr
-	isub temp,null
-	branch rec_nec_receiver_init_wtr,positive
-	fetchr loopcnt,1,mem_rec_nec_data
-	fetch 2,mem_rec_nec_store_wptr
-	copy pdata,contw
-	fetch 2,mem_rec_nec_carry_time
-	istore 2,contw
-	arg mem_rec_nec_receive_data,contr
-rec_nec_receiver_data_save_loop:
-	ifetch 1,contr
-	istore 1,contw
-	loop rec_nec_receiver_data_save_loop	
-	copy contw,pdata
-	store 2,mem_rec_nec_store_wptr
-	setarg 0
-	store 3,mem_rec_nec_receive_data
-	store 3,mem_rec_nec_carry_time
-	rtn
-*/
-rec_nec_receiver_init_wtr:
-	setarg mem_rec_nec_rx_store_start
-	store 2,mem_rec_nec_store_sptr
-	store 2,mem_rec_nec_store_wptr
-	rtn
-
-rec_nec_carry_time:
-	call rec_nec_carry_store
-	fetch 1,mem_rec_nec_receive_data
-	fetcht 2,mem_rec_nec_carry_time
-	iadd temp,pdata
-	store 2,mem_rec_nec_carry_time
-	setarg 0
-	store 3,mem_rec_nec_receive_data
-	store 1,mem_rec_nec_data
-	rtn
-
-rec_nec_carry_store:
-	fetch 1,mem_rec_period_cal_count
-	sub pdata,20,null
-	rtn zero
-	increase 1,pdata
-	store 1,mem_rec_period_cal_count
-	fetch 1,mem_rec_nec_receive_data
-	fetcht 2,mem_rec_period_cal_ptr
-	istore 1,temp
-	increase 1,temp
-	storet 2,mem_rec_period_cal_ptr	
-	rtn	
-
-//pdata:run time
-rec_nec_receive_run_time:	
-	fetch 4,core_clkn
-	fetcht 4,mem_rec_nec_learn_stime
-	isub temp,pdata	
-	rtn
-
-//positive: timeout positive is 1
-rec_nec_receive_timeout:
-	fetcht 4,mem_rec_nec_learn_outtime
-	isub temp,null
-	rtn
-	
-rec_nec_update_timeout:
-	fetch 4,core_clkn	
-	store 4,mem_rec_nec_learn_stime	
-	setarg 620
-	store 4,mem_rec_nec_learn_outtime
-	rtn
-
-rec_nec_learn_analysis:
-	fetch 1,mem_rec_nec_rx_count
-	rtn blank
-	mul32 pdata,4,pdata
-	increase -10,pdata
-	copy pdata,loopcnt
-	store 1,mem_rec_nec_rx_len
-	arg mem_rec_nec_rx_store_start,contr
-	increase 6,contr
-	arg mem_rec_nec_rx_data,contw
-	branch memcpy
-	
-
-///////////////////////////////////////////////////////////////NEC RECEIVE START///////////////////////////////////////////////////////
-
-
-///////////////////////////////////////////////////////////////ADPCM ENCODE START///////////////////////////////////////////////////////
-
-  /*
- * @brief: adpcm encode
- * @param: mem_ad_in_numSamples1, mem_ad_in_ptr1, mem_ad_out_ptr1
- * @return: none
- */
-rec_audio_adpcm_encode:
-	jam 40,mem_rec_ad_in_numSamples1
-	fetch 2,mem_rec_adc_dma_rptr
-	store 2,mem_rec_ad_in_ptr1
-	setarg mem_rec_adpcm
-	store 2,mem_rec_ad_out_ptr1
-rec_adpcm_encode:
-	fetch 4,mem_rec_ad_state_valpred1
-	store 4,mem_rec_ad_valpred1
-	
-	fetch 4,mem_rec_ad_state_index1
-	store 4,mem_rec_ad_index1
-	
-	fetch 1,mem_rec_ad_index1		// step = stepsizeTable[index];  
-	lshift2 pdata,pdata
-	arg mem_rec_ad_stepsizeTable1,temp
-	iadd temp,temp
-	ifetch 4,temp
-	store 4,mem_rec_ad_step1
-	
-	jam 1,mem_rec_ad_bufferstep1
-rec_adpcm_encode_loop:
-	call rec_adpcm_get_val_from_inp 	// val = *inp++;
-
-	fetch 4,mem_rec_ad_val1			// diff = val - valpred;
-	fetcht 4,mem_rec_ad_valpred1
-	isub temp,pdata
-	store 4,mem_rec_ad_diff1
-	
-	call rec_adpcm_encode_cal_delta	//sign = (diff < 0) ? 8 : 0;
-	call rec_adpcm_set_diff_by_sign	//if ( sign ) diff = (-diff);
-
-	jam 0,mem_rec_ad_delta1			//delta = 0;
-
-	fetch 4,mem_rec_ad_step1 			//vpdiff = (step >> 3);
-	rshift3 pdata,pdata
-	store 4,mem_rec_ad_vpdiff1
-
-	call rec_check_diff_big_step1  		//if ( diff >= step ) {  delta = 4;
-
-	fetch 4,mem_rec_ad_step1			//step >>= 1;
-	rshift pdata,pdata
-	store 4,mem_rec_ad_step1
-
-	call rec_check_diff_big_step2		//if ( diff >= step  ) {    delta |= 2;
-
-	fetch 4,mem_rec_ad_step1			//step >>= 1;
-	rshift pdata,pdata
-	store 4,mem_rec_ad_step1
-
-	call rec_check_diff_big_step3		//if ( diff >= step ) {delta |= 1;
-
-	call rec_check_sign_deal1			//	if ( sign )
-
-	call rec_adpcm_check_valpred_more_32767 //if ( valpred > 32767 )
-
-	fetch 1,mem_rec_ad_delta1			//delta |= sign;
-	fetcht 1,mem_rec_ad_sign1
-	ior temp,pdata
-	store 1,mem_rec_ad_delta1
-
-	fetch 1,mem_rec_ad_delta1			//index += indexTable[delta];
-	arg mem_rec_ad_indexTable1,temp
-	iadd temp,temp
-	ifetch 1,temp
-	call rec_char_2_int32
-	fetcht 4,mem_rec_ad_index1
-	iadd temp,pdata
-	store 4,mem_rec_ad_index1
-
-	call rec_adpcm_check_index_less_0		//if ( index < 0 ) index = 0;
-	call rec_adpcm_check_index_big_88		//if ( index > 88 ) index = 88;
-
-	fetch 4,mem_rec_ad_index1			// step = stepsizeTable[index];  
-	lshift2 pdata,pdata
-	arg mem_rec_ad_stepsizeTable1,temp
-	iadd temp,temp
-	ifetch 4,temp
-	store 4,mem_rec_ad_step1
-
-	call rec_adpcm_check_bufferstep		//if(bufferstep){
-
-	fetch 1,mem_rec_ad_bufferstep1		//bufferstep = !bufferstep;
-	arg 0x01,temp
-	ixor temp,pdata
-	store 1,mem_rec_ad_bufferstep1
-
-	fetch 1,mem_rec_ad_in_numSamples1
-	increase -1,pdata
-	store 1,mem_rec_ad_in_numSamples1
-	nbranch rec_adpcm_encode_loop, blank
-
-
-	fetch 1,mem_rec_ad_bufferstep1
-	call rec_adpcm_set_bufferstep_to_outp,blank
-
-	fetch 4,mem_rec_ad_valpred1
-	store 4,mem_rec_ad_state_valpred1
-
-	fetch 4,mem_rec_ad_index1
-	store 4,mem_rec_ad_state_index1
-	rtn
-
-//pdata :diff
-rec_adpcm_encode_cal_delta:
-	fetch 4,mem_rec_ad_diff1
-	bbit1 31,rec_adpcm_encode_cal_smaller_zero
-	setarg 0
-rec_adpcm_encode_store_sign1:
-	store 1,mem_rec_ad_sign1
-	rtn
-
-rec_adpcm_encode_cal_smaller_zero:
-	setarg 8
-	branch rec_adpcm_encode_store_sign1
-
-rec_adpcm_set_diff_by_sign:
-	fetch 1,mem_rec_ad_sign1
-	nbranch rec_adpcm_diff_negation,blank
-	rtn
-
-rec_adpcm_diff_negation:
-	fetch 4,mem_rec_ad_diff1
-	sub pdata,0,pdata
-	store 4,mem_rec_ad_diff1
-	rtn
-
-rec_check_diff_big_step1:
-	fetch 4,mem_rec_ad_diff1
-	fetcht 4,mem_rec_ad_step1
-	isub temp,pdata
-	rtnbit1 31
-	jam 4,mem_rec_ad_delta1
-rec_check_diff_big_common:
-	fetch 4,mem_rec_ad_diff1
-	fetcht 4,mem_rec_ad_step1
-	isub temp,pdata
-	store 4,mem_rec_ad_diff1
-rec_check_diff_big_common_next:
-	fetch 4,mem_rec_ad_vpdiff1
-	fetcht 4,mem_rec_ad_step1
-	iadd temp,pdata
-	store 4,mem_rec_ad_vpdiff1
-	rtn
-
-rec_check_diff_big_step2:
-	fetch 4,mem_rec_ad_diff1
-	fetcht 4,mem_rec_ad_step1
-	isub temp,pdata
-	rtnbit1 31
-	fetch 1,mem_rec_ad_delta1
-	or pdata,2,pdata
-	store 1,mem_rec_ad_delta1
-	branch rec_check_diff_big_common
-
-rec_check_diff_big_step3:
-	fetch 4,mem_rec_ad_diff1
-	fetcht 4,mem_rec_ad_step1
-	isub temp,pdata
-	rtnbit1 31
-	fetch 1,mem_rec_ad_delta1
-	or pdata,1,pdata
-	store 1,mem_rec_ad_delta1
-	branch rec_check_diff_big_common_next
-
-rec_check_sign_deal1:
-	fetch 1,mem_rec_ad_sign1
-	branch rec_valpred_add_vpdiff,blank
-rec_valpred_sub_vpdiff:
-	fetch 4,mem_rec_ad_valpred1
-	fetcht 4,mem_rec_ad_vpdiff1
-	isub temp,pdata
-rec_valpred1_store:
-	store 4,mem_rec_ad_valpred1
-	rtn
-
-rec_valpred_add_vpdiff:
-	fetch 4,mem_rec_ad_valpred1
-	fetcht 4,mem_rec_ad_vpdiff1
-	iadd temp,pdata
-	branch rec_valpred1_store
-	
-rec_adpcm_check_valpred_more_32767:
-	fetch 4,mem_rec_ad_valpred1
-	arg 32767,temp
-	isub temp,pdata
-	bbit0 31,rec_adpcm_valpred_more_32767
-rec_adpcm_check_valpred_less_f32767:	
-	fetch 4,mem_rec_ad_valpred1
-	arg -32767,temp
-	isub temp,pdata
-	bbit1 31,rec_adpcm_valpred_less_f32767
-	rtn
-
-rec_adpcm_valpred_more_32767:
-	setarg 32767
-	branch rec_valpred1_store
-	
-rec_adpcm_valpred_less_f32767:
-	setarg -32767
-	branch rec_valpred1_store
-	
-rec_adpcm_check_index_less_0:
-	fetch 4,mem_rec_ad_index1
-	arg 0,temp
-	isub temp,pdata
-	bbit1 31,rec_adpcm_set_0_index
-	rtn
-
-rec_adpcm_check_index_big_88:
-	fetch 4,mem_rec_ad_index1
-	arg 88,temp
-	isub temp,pdata
-	bbit0 31,rec_adpcm_set_88_index
-	rtn
-
-rec_adpcm_set_0_index:
-	setarg 0
-rec_adpcm_store_index1:
-	store 4,mem_rec_ad_index1
-	rtn
-
-rec_adpcm_set_88_index:
-	setarg 88
-	branch rec_adpcm_store_index1
-
-rec_adpcm_check_bufferstep:
-	fetch 1,mem_rec_ad_bufferstep1
-	branch rec_adpcm_bufferstep_eque_0,blank
-rec_adpcm_bufferstep_neque_0:
-	fetch 1,mem_rec_ad_delta1
-	and pdata,0x0f,pdata
-	store 4,mem_rec_ad_outputbuffer1	
-	rtn
-
-//*outp++=((delta<<4)&0xf0)|outputbuffer
-rec_adpcm_bufferstep_eque_0:
-	fetch 1,mem_rec_ad_delta1
-	lshift4,pdata,pdata
-	and pdata,0xf0,pdata
-	fetcht 4,mem_rec_ad_outputbuffer1
-	ior temp,pdata
-rec_adpcm_bufferstep_increase_out_ptr1:
-	fetcht 2,mem_rec_ad_out_ptr1
-	istore 1,temp	
-	increase 1,temp
-	storet 2,mem_rec_ad_out_ptr1
-	rtn
-
-rec_adpcm_set_bufferstep_to_outp:
-	fetch 4,mem_rec_ad_outputbuffer1
-	branch rec_adpcm_bufferstep_increase_out_ptr1
-	
-
-//val = *inp++;
-//val: int ,4 byte
-//inp:shourt int ,2byte
-rec_adpcm_get_val_from_inp:	
-	fetcht 2,mem_rec_ad_in_ptr1
-	ifetch 2,temp
-	increase 2,temp
-	storet 2,mem_rec_ad_in_ptr1
-	call rec_int16_2_int32
-	store 4,mem_rec_ad_val1
-	rtn
-
-/*
-pdata: intput,int16 data
-pdata:output int data
-*/
-rec_int16_2_int32:
-	bbit1 15,rec_int16_2_int32_less_0
-	rtn
-
-rec_int16_2_int32_less_0:
-	arg 0xffff,temp
-	lshift16 temp,temp
-rec_calca_ixor:
-	ixor temp,pdata
-	rtn
-
-
-/*
-pdata: intput,char data
-pdata:output int data
-*/
-rec_char_2_int32:
-	bbit1 7,rec_char_2_int32_less_0
-	rtn
-rec_char_2_int32_less_0:
-	arg 0xffffff,temp
-	lshift8 temp,temp
-	branch rec_calca_ixor
-	
-///////////////////////////////////////////////////////////////ADPCM ENCODE END///////////////////////////////////////////////////////
-
-
-///////////////////////////////////////////////////////////////AUDIO START///////////////////////////////////////////////////////
-
-rec_voice_notify_apk:
-	arg 20,rega
-	fetcht 2,mem_rec_voice_notify_apk_handle
-rec_le_notify_data:
-	call le_att_malloc_tx_notify
-	arg mem_rec_voice_notify,contr
-	arg 20,loopcnt
-	branch memcpy
-	
-rec_voice_start_apk:
-	jam 0x01,mem_pdatatemp
-rec_voice_notify_apk_data:
-	jam 1,mem_rec_le_data_len
-	fetcht 2,mem_rec_control_notify_apk_handle
-	branch rec_le_send_data
-
-rec_voice_end_apk:
-	jam 0x00,mem_pdatatemp
-	branch rec_voice_notify_apk_data
-
-
-rec_voice_notify_box:
-	arg 20,rega
-	fetcht 2,mem_rec_voice_notify_box_handle
-	branch rec_le_notify_data
-
-rec_voice_start_box:
-	setarg 0x221
-rec_voice_notify_box_data:
-	store 3,mem_pdatatemp
-	jam 3,mem_rec_le_data_len
-	fetcht 2,mem_rec_control_notify_box_handle
-	branch rec_le_send_data 
-
-rec_voice_end_box:
-	setarg 0xcccc
-	branch rec_voice_notify_box_data
-
-
-///////////////////////////////////////////////////////////////AUDIO END///////////////////////////////////////////////////////
-
-
-///////////////////////////////////////////////////////////////FILTER POLICY START///////////////////////////////////////////////////////
-/*
-rec_le_adv_loop:
-	fetch 1,mem_le_adv_enable
-	rtn blank
-	arg le_adv_interval_timer,queue
-	call timer_check
-	nrtn blank
-	enable swfine
-	call le_init_adv
-	call le_next_adv_channel
-	call le_send_adv_ind
-	nbranch le_adv_not_match,match
-	fetch 1,mem_le_req_rcv
-	increase 1,pdata
-	store 1,mem_le_req_rcv
-	fetch 1,mem_le_rxbuf_adv_header
-	and pdata,0x0f,pdata
-	store 1,mem_rec_le_req_type
-	beq SCAN_REQ,rec_le_send_scan_response
-	beq CONNECT_REQ,rec_le_parse_connect_req
-	branch le_adv_not_match
-
-rec_le_parse_connect_req:
-rec_le_send_scan_response:
-rec_le_white_list_filter_check:
-	fetch 1,mem_rec_white_list_num
-	beq 0,rec_scan_filter_pass
-	fetch 1,mem_rec_le_scan_filter_policy
-	beq NONE_FILTER,rec_scan_filter_pass
-	beq WHITE_LIST_SCAN_FILTER,rec_white_filter_scan_check
-	beq WHITE_LIST_CONNECT_FILTER,rec_scan_filter_pass
-	beq WHITE_LIST_CONN_SCAN_FILTER,rec_white_filter_scan_check
-rec_white_filter_scan_check:
-	fetch 1,mem_rec_white_list_num
-	branch end_of_packet,blank
-	call rec_check_addr_in_white_list
-	nbranch end_of_packet,blank
-rec_scan_filter_pass:
-	fetch 1,mem_rec_le_req_type
-	beq SCAN_REQ,le_send_scan_response+1
-	beq CONNECT_REQ,le_parse_connect_req
-	rtn
-
-rec_check_addr_in_white_list:
-	fetchr loopcnt,1,mem_rec_white_list_num
-	increase -1,loopcnt
-	fetcht 6, mem_le_rxbuf+2
-	setarg mem_rec_white_list
-	copy pdata,contr
-rec_addr_compare:
-	ifetch 6,contr
-	isub temp,pdata
-	rtn blank
-	loop rec_addr_compare
-	rtn
-
-rec_le_add_white_list:
-	fetch 1,mem_rec_white_list_num
-	sub pdata,7,null
-	nrtn positive
-	setarg mem_rec_white_list
-	fetcht 1,mem_rec_white_list_num
-	mul32 temp,6,temp
-	iadd temp,contw
-	fetch 6,mem_le_plap
-	istore 6,contw
-	
-	fetch 1,mem_rec_white_list_num
-	increase 1,pdata
-	store 1,mem_rec_white_list_num
-	rtn
-
-rec_le_clear_white_list:
-	jam 0,mem_rec_white_list_num
-	rtn
-*/
-
-///////////////////////////////////////////////////////////////FILTER POLICY END///////////////////////////////////////////////////////
-
-
-
-///////////////////////////////////////////////////////////////OTA START///////////////////////////////////////////////////////
-
-rec_ota_process:
-	bpatch patch17_3,mem_patch17
-	copy rega,contr
-	ifetch 1,contr
-	rtnne OTA_COMMAND
-	ifetch 1,contr
-	store 1,mem_rec_ota_notify_opcode
-	beq OTA_PORTOCOL_VERSION_REQUEST,rec_ota_parse_protocol_version_req
-	beq OTA_BUCK_SIZE_REQUEST,rec_ota_parse_buck_size_req
-	beq OTA_START_REQUEST,rec_ota_parse_start_req
-	beq OTA_DATA_WRITE_CMD,rec_ota_parse_data_write_cmd
-	beq OTA_DATA_WRITE_REQUEST,rec_ota_prep_data_write_rsp
-	beq OTA_END_REQUEST,rec_ota_parse_end_req
-rec_ota_init:
-	setarg -1
-	store 2,mem_rec_ota_write_index
-	setarg 0
-	store 4,mem_rec_ota_total_sum
-	store 2,mem_rec_ota_write_length
-	jam OTA_RESULT_SUCCESS,mem_rec_ota_notify_result
-	rtn
-
-rec_ota_parse_protocol_version_req:
-	arg 5,rega
-	call rec_ota_tx_notify_success
-	fetch 2,mem_rec_ota_version
-	istore 2,contw
-	jam OTA_LE_CONN_PARAM_UPDATE_ENABLE,mem_rec_ota_le_conn_param_update
-	fetch 8,mem_rec_ota_le_conn_update_param
-	store 8,mem_le_interval_min
-	branch le_l2cap_tx_update_req
-
-rec_ota_parse_buck_size_req:
-	arg 7,rega
-	call rec_ota_tx_notify_success
-	fetch 2,mem_rec_ota_buck_size
-	istore 2,contw
-	fetch 2,mem_rec_ota_packet_max_len
-	istore 2,contw
-	rtn
-
-rec_ota_parse_start_req:
-	ifetch 1,contr
-	store 1,mem_rec_ota_update_flash_mode
-	beq OTA_UPDATE_FLASH_NORMAL,rec_ota_parse_start_req_update_normal
-rec_ota_tx_flashmode_not_support:
-	arg 4,rega
-	jam OTA_RESULT_FLASHMODE_NOT_SUPPORT,mem_rec_ota_notify_result
-	call rec_ota_tx_notify_common
-	fetch 1,mem_rec_ota_update_flash_mode
-	branch  istore_1_contw_rtn
-
-
-rec_ota_tx_start_req_success:
-	arg 4,rega
-	call rec_ota_tx_notify_success
-	fetch 1,mem_rec_ota_update_flash_mode
-	branch  istore_1_contw_rtn
-
-
-rec_ota_parse_start_req_update_normal:
-	call rec_ota_tx_start_req_success
-	call rec_ota_init
-	setarg 0
-	store 3,mem_rec_ota_flash_offset_addr
-	jam 1,mem_rec_ota_enable
-	setarg 0
-	arg 0x10,temp
-	arg mem_rec_ota_flash_buf,rega
-	call spid_read_flash
-	call rec_ota_set_flash_start_addr
-	fetchr rega,3,mem_rec_ota_flash_base_addr
-	arg 9,loopcnt
-rec_erase_num_sector_flash:
-	force 0,regext_index
-rec_erase_num_sector_flash_loop:
-	call rec_spi_wait_flash
-	storer rega,3,mem_spi_write_addr
-	call rec_save_loopcnt_rega
-	call spid_flash_erase_sector
-	call rec_rescue_rega_loopcnt
-	setarg 4096
-	iadd rega,rega
-	loop rec_erase_num_sector_flash_loop
-	rtn
-
-rec_ota_set_flash_start_addr:
-	bpatchx patch3e_1,mem_patch3e
-	fetcht 3,mem_rec_code_b_flash_addr
-	storet 3,mem_rec_ota_flash_base_addr
-	storet 3,mem_rec_ota_write_flash_addr_start
-	fetch 1,mem_rec_ota_flash_buf
-	rtneq 0x60	//0x6000
-	fetcht 3,mem_rec_code_a_flash_addr
-	storet 3,mem_rec_ota_flash_base_addr
-	storet 3,mem_rec_ota_write_flash_addr_start
-	rtn
-
-rec_ota_parse_data_write_cmd:
-rec_ota_parse_data_write_req:
-rec_ota_parse_data_write_data_store:
-	fetcht 2,mem_le_l2cap_size
-	increase -8,temp
-	fetch 2,mem_rec_ota_write_length
-	iadd temp,pdata
-	store 2,mem_rec_ota_write_length
-	copy temp,loopcnt
-	copy rega,contr
-	increase 5,contr
-	call rec_queue_ota_push
-	fetch 2,mem_rec_ota_write_index
-	increase 1,pdata
-	store 2,mem_rec_ota_write_index
-	rtn
-
-rec_ota_prep_data_write_rsp:
-	call rec_ota_parse_data_write_req
-	jam OTA_RESULT_SUCCESS,mem_rec_ota_notify_result
-	jam OTA_DATA_WRITE_REQUEST,mem_rec_ota_notify_opcode
-	arg 3,rega
-	branch rec_ota_tx_notify_common
-
-rec_ota_tx_notify_success:
-	jam OTA_RESULT_SUCCESS,mem_rec_ota_notify_result
-//input rega:length
-rec_ota_tx_notify_common:
-	fetcht 2,mem_rec_ota_notify_handle
-	call le_att_malloc_tx_notify
-	setarg OTA_EVENT
-	istore 1,contw
-	fetch 1,mem_rec_ota_notify_result
-	istore 1,contw
-	fetch 1,mem_rec_ota_notify_opcode
-	branch istore_1_contw_rtn
-
-rec_ota_parse_end_req:
-	force 0,regext_index
-	call rec_save_contr
-	call rec_ota_data2flash_remain
-	jam 0,mem_rec_ota_enable
-	setarg 0
-	store 3,mem_rec_ota_flash_offset_addr
-	store 4,mem_rec_ota_total_sum
-	call rec_ota_sum_all
-	call rec_rescue_contr
-	increase 1,contr
-	ifetch 4,contr	//length
-	store 4,mem_pdatatemp
-	ifetch 4,contr	//checksum
-	store 4,mem_pdatatemp+4
-
-	fetch 4,mem_pdatatemp
-	fetcht 4,mem_rec_ota_write_length
-	isub temp,null
-	nbranch rec_ota_tx_length_error,zero
-
-	fetch 4,mem_rec_ota_total_sum
-	fetcht 4,mem_pdatatemp+4
-	isub temp,null
-	nbranch rec_ota_result_error_write_flash,zero
-	call rec_ota_updata_head	
-	jam 2,mem_rec_ota_reset_timeout
-rec_ota_tx_end_req_return:
-	arg 0x0c,rega
-	call rec_ota_tx_notify_common
-	fetch 1,mem_rec_ota_update_flash_mode
-	istore 1,contw
-	fetch 4,mem_rec_ota_write_length
-	istore 4,contw
-	fetch 4,mem_rec_ota_total_sum
-	istore 4,contw
-	rtn
-
-rec_ota_tx_length_error:
-	jam OTA_RESULT_LENGTH_ERROR,mem_rec_ota_notify_result
-	branch rec_ota_tx_end_req_return
-
-rec_ota_result_error_write_flash:
-	jam OTA_RESULT_WRITE_FLASH_ERROR,mem_rec_ota_notify_result
-	rtn
-
-rec_ota_data2flash_remain:
-	fetch 1,mem_rec_ota_enable
-	rtn blank
-	call rec_ota_queue_count_256
-	rtn positive
-	fetcht 2,mem_rec_queue_ota_count
-	call rec_save_temp
-	copy temp,loopcnt
-	arg mem_rec_ota_flash_buf,contw
-	call rec_queue_ota_pop
-	call rec_spi_wait_flash
-	call rec_rescue_temp
-	call rec_save_temp
-	call rec_ota_data2flash
-	call rec_rescue_temp
-	branch rec_ota_increase_flash_offset_addr
-
-rec_ota_queue_count_256:
-	fetch 2,mem_rec_queue_ota_count
-	arg 256,temp
-	isub temp,null
-	rtn	
-
-//temp : out page sum
-rec_ota_sum_page:
-	arg 0x100,loopcnt
-	branch rec_ota_sum
-
-rec_ota_sum_all:
-	fetch 2,mem_rec_ota_write_length
-	fetcht 2,mem_rec_ota_flash_offset_addr
-	isub temp,pdata
-	rtn zero
-	call rec_save_reg
-	call rec_ota_data_from_flash_len
-	call rec_rescue_reg
-	call rec_ota_sum_len
-	fetch 4,mem_rec_ota_total_sum
-	iadd temp,pdata
-	store 4,mem_rec_ota_total_sum
-	branch rec_ota_sum_all
-
-rec_ota_sum_len:
-	arg 0x100,temp
-	isub temp,null
-	branch rec_ota_sum_page,positive
-	copy pdata,loopcnt
-rec_ota_sum:
-	arg mem_rec_ota_flash_buf,contr
-	arg 0,temp
-rec_ota_sum_loop:
-	ifetch 1,contr
-	iadd temp,temp
-	loop rec_ota_sum_loop
-	rtn
-
-rec_ota_data_from_flash_len:
-	arg 0x100,temp
-	isub temp,null
-	branch rec_ota_data_from_flash_page,positive
-	call rec_save_reg
-	copy pdata,loopcnt
-	call rec_ota_data_from_flash
-	call rec_rescue_reg
-	copy pdata,temp
-	branch rec_ota_increase_flash_offset_addr
-
-rec_ota_data_from_flash:
-	fetch 3,mem_rec_ota_flash_base_addr
-	fetchr regb,3,mem_rec_ota_flash_offset_addr
-	iadd regb,pdata
-	arg mem_rec_ota_flash_buf,rega
-	branch spid_read_flash
-
-rec_ota_data_from_flash_page:
-	arg 0x100,temp
-	call rec_ota_data_from_flash
-	arg 0x100,temp
-	branch rec_ota_increase_flash_offset_addr
-
-
-rec_ota_polling:
-	fetch 1,mem_rec_ota_enable
-	ncall rec_ota_data2flash_page,blank
-	rtn
-
-rec_ota_data2flash_page:
-	fetch 1,mem_rec_ota_enable
-	rtn blank
-	call rec_ota_queue_count_256
-	nrtn positive
-	arg 256,loopcnt
-	arg mem_rec_ota_flash_buf,contw
-	call rec_queue_ota_pop
-	call rec_spi_wait_flash
-	arg 256,temp
-	call rec_ota_data2flash
-	arg 256,temp
-rec_ota_increase_flash_offset_addr:
-	fetch 2,mem_rec_ota_flash_offset_addr
-	iadd temp,pdata
-	store 2,mem_rec_ota_flash_offset_addr
-	rtn
-
-rec_ota_data2flash:
-	fetch 3,mem_rec_ota_flash_base_addr
-	fetchr regb,3,mem_rec_ota_flash_offset_addr
-	iadd regb,pdata
-	arg mem_rec_ota_flash_buf,rega
-	branch spid_write_flash_data
-	
-
-rec_queue_ota_init:
-	setarg mem_rec_queue_ota_buf
-	fetcht 2,mem_rec_ota_queue_size
-rec_queue_init_config:
-	increase -1,temp
-	copy pdata,contw
-	increase -8,contw
-	istore 2,contw
-	iadd temp,pdata
-	istore 2,contw
-	isub temp,pdata
-	istore 2,contw
-	istore 2,contw
-	rtn
-
-rec_queue_ota_push:
-	call rec_save_contr
-	bpatch patch17_4,mem_patch17
-	fetch 2,mem_rec_queue_ota_count
-	iadd loopcnt,pdata
-	store 2,mem_rec_queue_ota_count
-	setarg mem_rec_queue_ota_buf
-	call rec_queue_enter_config
-	call rec_rescue_contr
-	call rec_enter_queue
-	fetch 2,mem_rec_queue_ota_count
-	fetcht 2,mem_rec_ota_queue_size
-	isub temp,null
-	call rec_queue_ota_data_loss,positive
-	rtn
-rec_queue_ota_data_loss:
-	rtn
-
-rec_queue_ota_pop:
-	call rec_save_contw
-	fetch 2,mem_rec_queue_ota_count
-	isub loopcnt,pdata
-	store 2,mem_rec_queue_ota_count
-	setarg mem_rec_queue_ota_buf
-	call rec_queue_out_config
-	call rec_rescue_contw
-rec_out_queue:
-	copy contu,pdata
-	isub temp,null
-	branch assert,zero
-rec_out_queue_loop:
-	ifetch 1,contru
-	istore 1,contw
-	loop rec_out_queue_loop	
-	istorer contru,2,rega
-	rtn
-
-rec_ota_updata_head:
-	call rec_ota_read_head
-	setarg 0
-	call rec_spid_flash_erase_page
-rec_ota_write_head_check:
-	bpatch patch17_5,mem_patch17
-	fetch 1,mem_rec_ota_flash_buf
-	beq 0x60,rec_ota_write_head_B
-	beq 0xf0,rec_ota_write_head_A
-rec_ota_write_head_A:
-	fetch 3,mem_rec_code_a_flash_addr
-	branch rec_ota_write_head
-
-rec_ota_read_head:
-	setarg 0
-	arg 0x100,temp
-	arg mem_rec_ota_flash_buf,rega
-	branch spid_read_flash
-
-rec_ota_write_head_B:
-	fetch 3,mem_rec_code_b_flash_addr
-rec_ota_write_head:	
-	increase 2,pdata
-	byteswap pdata,pdata
-	store 2,mem_rec_ota_flash_buf
-	arg 0x100,temp
-	arg mem_rec_ota_flash_buf,rega
-	setarg 0	
-	branch spid_write_flash_data
-
-
-rec_spid_flash_erase_page:
-	store 3,mem_spi_write_addr
-	call rec_spi_wait_flash
-	call spid_init_flash
-	call spid_unlock_flash
-	arg mem_spid_tbuf,rega
-	jam 4,core_spid_txlen
-	fetch 3,mem_spi_write_addr
-	arg FLASH_COMMAND_PAGE_ERASE,temp
-	branch spid_write_flash_common
-
-rec_spi_wait_flash:
-	setarg mem_spid_tbuf
-	store 2,core_spid_txaddr
-	setarg mem_spid_rbuf
-	store 2,core_spid_rxaddr
-	jam 0,core_spid_txlen+1
-	setarg FLASH_READ_SATUS
-	call spid_read_reg
-	bbit1 FLASH_STATUS_WIP,rec_spi_wait_flash
-	rtn
-	
-rec_save_contr:
-	copy contr,pdata
-	branch rec_save_reg
-
-rec_rescue_contr:
-	call rec_rescue_reg
-	branch get_contr_end
-	
-rec_save_contw:
-	copy contw,pdata
-	branch rec_save_reg
-
-rec_rescue_contw:
-	call rec_rescue_reg
-	branch get_contw_end
-
-rec_save_loopcnt_rega:
-	call rec_save_loopcnt
-	branch rec_save_rega
-
-rec_rescue_rega_loopcnt:
-	call rec_rescue_rega
-rec_rescue_loopcnt:
-	call rec_rescue_reg
-	copy pdata,loopcnt
-	rtn
-
-rec_save_loopcnt:
-	copy loopcnt,pdata
-	branch rec_save_reg
-
-rec_save_temp:
-	copy temp,pdata
-	branch rec_save_reg
-
-rec_rescue_temp:
-	call rec_rescue_reg
-	copy pdata,temp
-	rtn
-
-///////////////////////////////////////////////////////////////OTA END///////////////////////////////////////////////////////
-
-
-///////////////////////////////////////////////////////////////QUEUE START///////////////////////////////////////////////////////
-/*
- * @brief: config push queue addr
- * @param: none
- * @return: pdata: adpcm data buff start addr
- */
-rec_queue_enter_config:
-	increase -8,pdata
-	ifetchr contus,2,pdata
-	increase 2,pdata	
-	ifetchr contue,2,pdata
-	increase 2,pdata	
-	ifetchr temp,2,pdata
-	increase 2,pdata
-	ifetchr contu,2,pdata
-	copy pdata,rega
-	rtn
-
-
-/*
- * @brief: config pop queue addr
- * @param: none
- * @return: pdata: adpcm data buff start addr
- */
-rec_queue_out_config:
-	increase -8,pdata
-	ifetchr contus,2,pdata
-	increase 2,pdata	
-	ifetchr contue,2,pdata
-	increase 2,pdata
-	ifetchr contu,2,pdata
-	copy pdata,rega
-	increase 2,pdata	
-	ifetchr temp,2,pdata
-	rtn
-
-
-/*
- * @brief: data push queue
- * @param: contr: queue read ptr value, contwu:queue write ptr value, rega: queue write ptr
- * @param: loopcnt: length, temp: queue read ptr value
- * @return: none
- */
-rec_enter_queue:
-rec_enter_queue_loop:
-	ifetch 1,contr
-	istore 1,contwu
-	loop rec_enter_queue_loop	
-	istorer contwu,2,rega
-	copy contwu,pdata	
-	isub temp,null
-	branch assert,zero
-	rtn
-
-///////////////////////////////////////////////////////////////QUEUE END///////////////////////////////////////////////////////
-
-endif
-
-
Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/app_shutter.prog
===================================================================
--- /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/app_shutter.prog	(revision 5679)
+++ /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/app_shutter.prog	(nonexistent)
@@ -1,624 +0,0 @@
-
-ifdef COMPILE_SHUTTER
-
-shutter_init:
-	call enable_authrom
-	rtn wake
-
-	setarg shutter_process_idle
-	store 2,mem_cb_idle_process
-
-	setarg shutter_process_bb_event
-	store 2,mem_cb_bb_event_process
-
-	setarg ble_shutter_receive_data
-	store 2,mem_cb_att_write
-
-	setarg shutter_le_bb_event_timer
-	store 2,mem_cb_event_timer
-
-	setarg shutter_key_change
-	store 2,mem_cb_shutter_keycan
-
-	call shutter_common_init
-
-	bpatch patch17_6,mem_patch17
-	call shutter_load_buffer_config_form_DataRom
-
-shutter_power_switch:
-	fetch 1, mem_shutter_hard_soft_switch_case
-	beq HARD_SWITCH, shutter_hart_swtich_power_on
-	fetch 1,mem_shutter_soft_switch_button_gpio
-	store 1,mem_ui_button_gpio
-	branch ui_soft_swtich_init
-
-
-shutter_common_init:
-	setarg shutter_le_before_hibernate
-	store 2,mem_cb_before_hibernate
-
-	setarg shutter_process_lpm_before
-	store 2,mem_cb_before_lpm
-
-	setarg shutter_soft_swtich_power_on
-	store 2,mem_shutter_soft_switch_poweron_callback_function
-
-	setarg shutter_soft_swtich_power_off
-	store 2,mem_shutter_soft_switch_poweroff_callback_function
-
-	jam 7,mem_version
-	call le_modified_name_adv
-	call shutter_init_param
-	call keyscan_key_init
-	call queue_init
-	branch ui_led_init_global
-
-
-/**************hard swtich function**************/
-shutter_hart_swtich_power_on:
-	jam UI_BUTTON_GPIO_DISABLE,mem_ui_button_gpio
-	jam SS_STATE_POWER_ON,mem_shutter_soft_switch_power_state
-	branch shutter_start_reconnect
-/****************************/
-
-/**************lpm lock callback function**************/
-shutter_le_scale_lpm_lock:
-	fetch 1,mem_shutter_soft_switch_power_state
-	beq SS_STATE_POWER_OFF,app_get_lpm_wake_lock
-	call l2cap_malloc_get_full_map
-	fetch 1,mem_used_map
-	nbranch app_get_lpm_wake_lock,blank
-	branch app_put_lpm_wake_lock
-/****************************/
-
-/**************c512bt event callback function*************/
-shutter_process_bb_event:
-	copy regc,pdata
-
-/**************ble shutter event*****************/
-	beq BT_EVT_LE_CONNECTED,ble_shutter_process_baseband_connect
-	beq BT_EVT_LE_DISCONNECTED,ble_shutter_process_baseband_disconnect
-	beq BT_EVT_LE_RECONNECT_COMPLETE,ble_shutter_process_reconnect_complete
-	beq BT_EVT_LE_PARSE_CONN_PAPA_UPDATE_RSP,ble_shutter_process_parse_connect_parameter_update_response
-/***************soft swtich event****************/
-	beq BT_EVT_BUTTON_LONG_PRESSED,ui_soft_switch_botton_long_press
-	beq BT_EVT_BUTTON_DOWN,shutter_process_soft_swtich_button_down
-	beq BT_EVT_BUTTON_UP,shutter_process_soft_swtich_button_up
-	rtn
-/****************************/
-
-
-/******************ble shutter event**********************/
-ble_shutter_process_baseband_connect:
-	call shutter_stop_bluetooth_discovery
-	setarg 0
-	store 2,mem_ble_shutter_reconn_timer
-	branch app_led_off
-
-ble_shutter_process_baseband_disconnect:
-	call queue_init
-	jam 0,mem_ble_shutter_enable_notify
-	branch shutter_start_reconnect
-
-ble_shutter_process_reconnect_complete:
-	call queue_init
-	jam 1,mem_ble_shutter_enable_notify
-	call shutter_dy_check_iphone
-	call app_lpm_mult_enable
-	nbranch ble_parameter_updata_response_ios,blank
-	fetch 8,mem_ble_shutter_dy_interval_min_android
-	store 8,mem_le_interval_min
-	branch le_l2cap_tx_update_req
-
-
-ble_shutter_process_parse_connect_parameter_update_response:
-	fetch 2,mem_le_l2cap_signaling_conn_param_update_rsp_result
-	rtneq BLE_SIGNALING_CONNECT_PARAMETER_UPDATE_ACCEPTED
-	fetch 8,mem_ble_shutter_interval_min_new
-	rtn blank
-	store 8,mem_le_interval_min
-	branch le_l2cap_tx_update_req
-/**************************************/
-
-shutter_process_soft_swtich_button_down:
-	fetch 1,mem_shutter_hard_soft_switch_case
-	rtneq HARD_SWITCH
-	fetch 1,mem_shutter_soft_switch_power_state
-	rtnne SS_STATE_POWER_ON
-	call shutter_store_currenct_led_state
-	branch app_led_on
-
-shutter_store_currenct_led_state:
-	jam 1,mem_shutter_soft_swtich_botton_down
-	arg 11,loopcnt
-	arg mem_shutter_soft_swtich_led_struct_temp,contw
-	arg mem_shutter_led_struct_app_led,contr
-	branch memcpy
-
-shutter_process_soft_swtich_button_up:
-	fetch 1,mem_shutter_hard_soft_switch_case
-	rtneq HARD_SWITCH
-	fetch 1,mem_shutter_soft_switch_power_state
-	beq SS_STATE_POWER_ON,shutter_load_currenct_led_state
-	branch ui_soft_switch_botton_up
-
-shutter_load_currenct_led_state:
-	fetch 1,mem_shutter_soft_swtich_botton_down
-	rtnne 1
-	jam 0,mem_shutter_soft_swtich_botton_down
-	fetch 2,mem_ui_state_map
-	bbit1 UI_STATE_BLE_CONNECTED,app_led_off
-	arg 11,loopcnt
-	arg mem_shutter_soft_swtich_led_struct_temp,contr
-	arg mem_shutter_led_struct_app_led,contw
-	branch memcpy
-
-/**************************************/
-
-
-shutter_le_bb_event_timer:
-/**************shutter check sleep timer**********************/
-	call shutter_check_sleep_timer
-/************************************/
-/**************soft reset power off timer**********************/
-	call shutter_check_power_off_timer
-/************************************/
-
-/**************ble shutter timer**********************/
-	branch ble_shutter_reconn_timer
-/************************************/
-
-/**************shutter check sleep timer**********************/
-shutter_check_sleep_timer:
-	arg mem_shutter_sleep_timer,regc
-	arg shutter_sleep_timeout,regb
-	branch timer_single_step_2B
-shutter_sleep_timeout:
-	jam SS_STATE_POWER_OFF,mem_shutter_soft_switch_power_state
-	call app_led_off
-	call shutter_disconnect_current_connection
-	branch shutter_wait_power_off
-
-/**************soft reset power off timer**********************/
-shutter_check_power_off_timer:
-	arg mem_shutter_power_off_timer,regc
-	arg shutter_check_power_off_timeout,regb
-	branch timer_single_step
-
-shutter_check_power_off_timeout:
-	fetch 2,mem_ui_state_map
-	bbit1 UI_STATE_BLE_CONNECTED,shutter_wait_power_off
-	fetch 1,mem_shutter_led_struct_app_led_type
-	beq UI_LED_STATE_BLINK_START,shutter_wait_power_off
-	beq UI_LED_STATE_BLINK_LIGHTING,shutter_wait_power_off
-	beq UI_LED_STATE_BLINK_DARKING,shutter_wait_power_off
-	branch app_enter_hibernate
-/************************************/
-
-/**************ble shutter timer**********************/
-ble_shutter_reconn_timer:
-	fetch 1,mem_shutter_soft_switch_power_state
-	rtnne SS_STATE_POWER_ON
-	arg mem_ble_shutter_reconn_timer,regc
-	arg shutter_start_bluetooth_discovery,regb
-	branch timer_single_step_2B
-/************************************/
-
-shutter_process_idle:
-	call shutter_send_data_to_master
-	branch keyscan_key_process
-
-
-shutter_process_lpm_before:
-	call gpio_set_before_lpm
-	branch keyscan_process_lpm_before
-
-shutter_le_before_hibernate:
-	jam UI_BUTTON_GPIO_DISABLE,mem_ui_button_gpio
-	call gpio_set_before_lpm
-	branch disable_authrom
-
-//////////////////////////////////////////////////////////////////////////////////////////
-
-
-/****************shutter bluetooth control**********************/
-shutter_stop_bluetooth_discovery:
-//	fetch 1,mem_shutter_bluetooth_type
-//	bbit1 BLE_SHUTTER,ble_shutter_stop_bluetooth_discovery
-//	rtn
-ble_shutter_stop_bluetooth_discovery:
-	fetch 2,mem_ble_shutter_connect_timeout
-	store 2,mem_shutter_sleep_timeout
-	store 2,mem_shutter_sleep_timer
-	branch app_ble_stop_adv
-
-
-shutter_start_bluetooth_discovery:
-	fetch 1,mem_shutter_soft_switch_power_state
-	rtnne SS_STATE_POWER_ON
-//	fetch 1,mem_shutter_bluetooth_type
-//	bbit1 BLE_SHUTTER,ble_shutter_start_discovery
-//	rtn
-ble_shutter_start_discovery:
-	fetch 2,mem_ui_state_map
-	rtnbit1 UI_STATE_BLE_CONNECTED
-	fetch 2,mem_ble_shutter_discovery_timeout
-	store 2,mem_shutter_sleep_timeout
-	store 2,mem_shutter_sleep_timer
-	fetch 2,mem_ble_shutter_discovery_adv_interval
-	call shutter_ble_adv_interval_set
-	call app_led_start_blink
-	fetch 4,mem_ble_shutter_discovery_blink_on_time
-	store 4,mem_shutter_led_struct_app_led_on_time
-	fetch 2,mem_ui_state_map
-	rtnbit1 UI_STATE_BLE_ADV
-	branch app_ble_start_adv
-
-shutter_soft_swtich_power_on:
-shutter_start_reconnect:
-	fetch 1,mem_shutter_soft_switch_power_state
-	rtnne SS_STATE_POWER_ON
-//	fetch 1,mem_shutter_bluetooth_type
-//	bbit1 BLE_SHUTTER,ble_shutter_start_reconnect
-//	rtn
-ble_shutter_start_reconnect:
-	fetch 2,mem_ble_shutter_reconn_timer
-	fetcht 2,mem_ble_shutter_reconn_timeout
-	storet 2,mem_ble_shutter_reconn_timer
-	nrtn blank
-	fetch 2,mem_ble_shutter_reconn_adv_interval
-	call shutter_ble_adv_interval_set
-	call app_led_start_blink
-	fetch 4,mem_ble_shutter_reconn_blink_on_time
-	store 4,mem_shutter_led_struct_app_led_on_time
-	fetch 2,mem_ui_state_map
-	rtnbit1 UI_STATE_BLE_ADV
-	branch app_ble_start_adv
-
-shutter_disconnect_current_connection:
-	fetch 2,mem_ui_state_map
-	bbit1 UI_STATE_BLE_CONNECTED,app_ble_disconnect
-	branch shutter_stop_bluetooth_discovery
-/**************************************/
-/////////////////////////////////////////////////////////////////////////
-//output:if user is enable,mean,can send data
-shutter_check_data_enable:
-	call disable_user
-	fetch 2,mem_ui_state_map
-	bbit1 UI_STATE_BLE_CONNECTED,shutter_check_ble_data_enable
-	rtn
-
-shutter_check_ble_data_enable:
-	fetch 1,mem_ble_shutter_enable_notify
-	rtn blank
-	branch enable_user
-/////////////////////////////////////////////////////////////////////////
-
-/////////////////////////////////////////////////////////////////////////
-//output:if user is enable,mean,bluetooth disconnect
-shutter_check_bluetooth_conn:
-	call disable_user
-	fetch 2,mem_ui_state_map
-	rtnbit1 UI_STATE_BLE_CONNECTED
-	branch enable_user
-/////////////////////////////////////////////////////////////////////////
-
-/////////////////////////////////////////////////////////////////////////
-shutter_change_bluetooth_status_bt_disconn:
-//	fetch 1,mem_shutter_bluetooth_type
-//	bbit1 BLE_SHUTTER,ble_shutter_change_bluetooth_status_bt_disconn
-//	rtn
-ble_shutter_change_bluetooth_status_bt_disconn:
-	branch shutter_start_reconnect
-
-/////////////////////////////////////////////////////////////////////////
-
-shutter_check_send_data:
-	disable user2
-	fetch 2,mem_shutter_sleep_timeout
-	store 2,mem_shutter_sleep_timer
-
-	call shutter_check_bluetooth_conn
-	branch shutter_change_bluetooth_status_bt_disconn,user
-
-	call shutter_check_data_enable
-	nrtn user
-	branch enable_user2
-
-//queue = key index
-//rega =1 press, =0 release
-shutter_key_change:
-	call shutter_check_send_data
-	nrtn user2
-	deposit rega
-	branch shutter_key_release,blank
-shutter_key_press:
-	call app_led_on
-	arg mem_key0_press,regc
-	branch push_queue_press_or_release
-
-shutter_key_release:
-	call app_led_off
-	arg mem_key0_release,regc
-
-push_queue_press_or_release:
-	arg MAX_QUEUE_NUM,pdata
-	imul32 queue,pdata
-	iadd regc,regc
-
-//input:regc the address that want push to queue buffer
-push_buffer_in_queue:
-	ifetch 1,regc
-	rtn blank
-	call queue_push_one_byte
-	increase 1,regc
-	branch push_buffer_in_queue
-
-
-shutter_send_data_to_master:
-	fetch 2,mem_ui_state_map
-	bbit1 UI_STATE_BLE_CONNECTED,pop_queue_to_ble_data
-	rtn
-
-pop_queue_to_ble_data:
-	call le_fifo_check_nearly_full
-	nrtn blank
-	call queue_pop_one_byte
-	nrtn user
-	pincrease -1
-	mul32 pdata,SHUTTER_BLE_DATA_BUFFER,pdata
-	arg mem_ble_data_buffer1,temp
-	iadd temp,contr
-	branch le_send_notify_from_list
-
-///////////queue function////////////
-//input:pdata is data that want push
-queue_push_one_byte:
-	store 1,mem_pdatatemp
-	arg mem_pdatatemp,rega
-	branch queue_push
-
-queue_pop_one_byte:
-	arg mem_pdatatemp,rega
-	call queue_pop
-	nrtn user
-	fetch 1,mem_pdatatemp
-	rtn
-
-///////////queue function ending////////////
-ble_shutter_receive_data:
-	fetch 2,mem_le_att_handle
-	beq GATT_KEYBOARD_WRITE_HANDLE,ble_shutter_process_reconnect_complete
-	rtn
-
-shutter_init_param:
-	jam 0x02,mem_shutter_power_off_timeout
-/////////////ble connect interval//////////////
-	setarg 0x00200008
-	store 4,mem_ble_shutter_interval_min		//set min interval is 10ms,set max interval is 40ms
-	setarg 0x012c0005
-	istore 4,contw
-///////////////////////////////////////
-//////////////////MTU/////////////
-	jam 0x17,mem_le_local_mtu
-///////////////////////////////////////
-////////////////justwork/////////
-	setarg 0x1b
- 	store 2,mem_le_pairing_handle
-	branch le_set_fixed_ltk_justwork
-///////////////////////////////////////
-
-shutter_load_buffer_config_form_DataRom:
-///////load data Rom/////////
-	arg BLE_KEY_VALUE_LIST_SIZE,loopcnt
-	arg mem_ble_data_buffer1,contw
-	arg BLE_SHUTTER_KEY_VALUE_LIST_ADDR,contr
-	branch memcpy_fast
-
-shutter_soft_swtich_power_off:
-	arg 0,rega
-	arg mem_shutter_power_off_led_style,regc
-	call ui_led_set_style_global
-	call shutter_disconnect_current_connection
-shutter_wait_power_off:
-	fetch 1,mem_shutter_power_off_timeout
-	store 1,mem_shutter_power_off_timer
-	rtn
-
-
-/*************soft swtich ui config*********************/
-ui_soft_swtich_init:
-	setarg SS_STATE_POWER_UP
-	call ui_soft_swtich_init_power_on_time
-	jam UI_BUTTON_STATE_UP,mem_ui_button_last_state
-	call ui_button_init
-	call ui_button_polling
-ui_soft_switch_first_power_on:
-	fetch 1,mem_shutter_soft_switch_first_power_on
-	branch ui_soft_swtich_init_next, blank
-	fetch 1,core_lpm_isogate
-	bbit1 cold_wake,ui_soft_switch_power_on
-ui_soft_swtich_init_next:
-	fetch 2,mem_ui_state_map
-	rtnbit1 UI_STATE_BTN_DOWN
-	branch app_enter_hibernate
-
-ui_soft_swtich_init_power_on_time:
-	fetcht 2,mem_power_param_ptr
-	istore 1,temp		//init power state
-	ifetch 1,contw		//power on time
-	store 1,mem_ui_button_timeout
-	rtn
-
-
-ui_soft_switch_botton_up:
-	fetch 2,mem_power_param_ptr
-	ifetch 1,pdata
-	rtnne SS_STATE_POWER_UP
-	branch app_enter_hibernate
-
-
-ui_soft_switch_botton_long_press:
-	fetcht 2,mem_power_param_ptr
-	ifetch 1,temp
-	beq SS_STATE_POWER_ON,ui_soft_switch_power_off
-ui_soft_switch_power_on:
-	setarg SS_STATE_POWER_ON
-	fetcht 2,mem_power_param_ptr
-	istore 1,temp		//init power state
-	add temp,SS_POWER_OFF_TIME,contr
-	ifetch 1,contr
-	istore 1,mem_ui_button_timeout
-	ifetch 2,contr
-	branch callback_func
-
-ui_soft_switch_power_off:
-	setarg SS_STATE_POWER_OFF
-	call ui_soft_swtich_init_power_on_time
-	add temp,SS_POWER_OFF_CB,contr
-	ifetch 2,contr
-	branch app_enter_hibernate,blank		//no call back function , just enter hibernate
-	branch callback_func
-
-/*************soft swtich ui config ending*********************/
-
-//pdata:adv interval value
-shutter_ble_adv_interval_set:
-	store 2,mem_lpm_interval
-	increase -4,pdata
-	store 2,mem_le_adv_interval
-	rtn
-
-le_send_notify_from_list:
-	ifetch 1,contr	//length
-	copy pdata,rega
-	ifetcht 2,contr	//handle
-	call store_contr
-	call le_att_malloc_tx_notify
-	copy rega,loopcnt
-	call get_contr
-	branch memcpy
-
-shutter_le_uuid_table_conf:
-	setarg BLE_SHUTTER_GATT_LIST_ADDR
-	store 2,mem_ui_le_uuid_table	//BLE ATT LIST END
-	rtn
-
-
-/*************shutter default_init starting*********************/
-shutter_default_init:
-	fetch 2,mem_shutter_key_conf0_temp
-	store 2,mem_shutter_key_conf0
-	fetch 1,mem_shutter_led_struct_app_led_gpio_temp
-	store 1,mem_shutter_led_struct_app_led_gpio
-	store 1,mem_shutter_power_off_led_style_gpio
-	fetch 1,mem_shutter_hard_soft_switch_case_temp
-	store 1,mem_shutter_hard_soft_switch_case
-	fetch 1,mem_shutter_soft_switch_button_gpio_temp
-	store 1,mem_shutter_soft_switch_button_gpio
-
-	setarg 0x0002
-	store 2,mem_key0_press
-	setarg 0x0001
-	store 2,mem_key1_press
-	setarg 0x0006
-	store 2,mem_key0_release
-	store 2,mem_key1_release
-	setarg mem_shutter_soft_switch_power_state
-	store 2,mem_power_param_ptr
-	setarg 0x201400
-	store 3,mem_shutter_soft_switch_power_state
-	jam 0x01,mem_lpm_mode
-	setarg 0x0100
-	store 2,mem_lpm_interval
-	jam 0x08,mem_lpm_overhead
-	jam 0x05,mem_lpm_mult
-	jam 0x02,mem_lpm_mult_timeout
-	setarg 0x0096
-	store 2,mem_ble_shutter_reconn_blink_on_time
-	istore 2,contw
-	setarg 0x0296
-	store 2,mem_ble_shutter_discovery_blink_on_time
-	istore 2,contw
-	setsect 0,0x10
-	setsect 1,0x8008
-	setsect 2,0x2c000
-	setsect 3,0x04
-	store 8,mem_ble_shutter_interval_min_new
-	jam 0x01,mem_ui_led_struct_num
-	setarg mem_shutter_led_struct_app_led
-	store 2,mem_ui_led_struct_ptr
-	setarg 0x0000
-	store 2,mem_shutter_led_struct_app_led
-	setsect 0,0x1a0
-	setsect 1,0x68
-	setsect 2,0x00
-	setsect 3,0x00
-	store 8,mem_shutter_led_struct_app_led_on_time
-	setarg 0x0301
-	store 2,mem_shutter_power_off_led_style
-	setsect 0,0x1a0
-	setsect 1,0xe8
-	setsect 2,0x00
-	setsect 3,0x00
-	store 8,mem_shutter_power_off_led_style_on_time
-	setarg 0x000e
-	store 2,mem_ble_shutter_reconn_adv_interval
-	setarg 0x0140
-	store 2,mem_ble_shutter_discovery_adv_interval
-	store 2,mem_le_adv_interval
-	setarg 0x0050
-	store 2,mem_ble_shutter_reconn_timeout
-	jam 0x07,mem_le_adv_channel_map
-	jam 0x00,mem_le_adv_enable
-	setsect 0,0xfb
-	setsect 1,0x2c212
-	setsect 2,0x800f
-	setsect 3,0x21
-	store 8,mem_local_rx_max_octets
-	setsect 0,0x0bb8
-	setsect 1,0x02ee
-	store 4,mem_ble_shutter_discovery_timeout
-	setarg mem_queue_each_size
-	store 2,mem_queue_ptr
-	setarg 0x2001
-	store 2,mem_queue_each_size
-	jam 0x1f,mem_le_adv_data_len
-	setsect 0,0x10102
-	setsect 1,0x80c1
-	setsect 2,0x18120
-	setsect 3,0x640c
-	store 9,mem_le_adv_data
-	setsect 0,0x3c1
-	istore 2,contw
-	jam 0x1f,mem_le_scan_data_len
-	setsect 0,0x2090d
-	setsect 1,0x34c15
-	setsect 2,0x28532
-	setsect 3,0x1d1d5
-	store 9,mem_le_scan_data
-	setsect 0,0x26574
-	setsect 1,0x1c
-	istore 3,contw
-	setarg mem_shutter_keyscan
-	store 2,mem_keyscan_ptr
-	jam 0x02,mem_shutter_key_num
-	setarg mem_shutter_nv_data
-	store 2,mem_nv_data_ptr
-	jam 0x05,mem_nv_data_number
-	fetch 1,mem_shutter_dy_conf
-	beq SHUTTER_TYPE,shutter_le_uuid_table_conf
-	beq SHUTTER_DY_TYPE,shutter_dy_le_uuid_table_conf
-	rtn
-
-
-/*************shutter default_init ending*********************/
-
-
-
-
-
-else
-	branch assert
-
-endif
Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/app_shutter_dy.prog
===================================================================
--- /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/app_shutter_dy.prog	(revision 5679)
+++ /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/app_shutter_dy.prog	(nonexistent)
@@ -1,1556 +0,0 @@
-
-ifdef COMPILE_SHUTTER
-
-/*************dy config*********************/
-shutter_dy_6_key_conf:
-	//6key
-	fetch SHUTTER_SIX_KEY,mem_shutter_dy_key_conf
-	store SHUTTER_SIX_KEY,mem_shutter_key_conf0
-	jam SHUTTER_SIX_KEY,mem_shutter_key_num
-	setarg mem_shutter_key_num
-	store 2,mem_keyscan_ptr
-	rtn
-
-shutter_dy_7_key_conf:
-	//7key
-	fetch SHUTTER_SEVEN_KEY,mem_shutter_dy_key_conf
-	store SHUTTER_SEVEN_KEY,mem_shutter_key_conf0
-	jam SHUTTER_SEVEN_KEY,mem_shutter_key_num
-	setarg mem_shutter_key_num
-	store 2,mem_keyscan_ptr
-	rtn
-
-shutter_dy_8_key_conf:
-	//8key
-	fetch SHUTTER_EIGHT_KEY,mem_shutter_dy_key_conf
-	store SHUTTER_EIGHT_KEY,mem_shutter_key_conf0
-	jam SHUTTER_EIGHT_KEY,mem_shutter_key_num
-	setarg mem_shutter_key_num
-	store 2,mem_keyscan_ptr
-	rtn
-
-shutter_dy_key_conf:
-	fetch 1,mem_shutter_key_num_conf
-	beq SHUTTER_SIX_KEY,shutter_dy_6_key_conf
-	beq SHUTTER_SEVEN_KEY,shutter_dy_7_key_conf
-	beq SHUTTER_EIGHT_KEY,shutter_dy_8_key_conf
-	rtn
-
-shutter_dy_adv_conf:
-	bpatch patch17_7,mem_patch17
-	//adv data
-	fetch 8,mem_shutter_ble_discovery_time_conf
-	store 8,mem_ble_shutter_discovery_timeout
-	setarg 0x0096
-	store 2,mem_ble_shutter_reconn_timeout
-
-	fetch 7,mem_shutter_led_on_light_dark_led_conf
-	store 7,mem_shutter_led_struct_app_led
-	fetch 7,mem_shutter_led_off_light_dark_led_conf
-	store 7,mem_shutter_power_off_led_style
-
-	fetch 4,mem_shutter_reconn_blink_on_time_conf
-	store 4,mem_ble_shutter_reconn_blink_on_time
-	fetch 4,mem_shutter_discovery_blink_on_time_conf
-	store 4,mem_ble_shutter_discovery_blink_on_time
-	/*
-	fetch 8,mem_le_dy_adv_data
-	store 8,mem_le_adv_data
-	fetch 3,mem_le_dy_adv_data+8
-	store 3,mem_le_adv_data+8
-
-	fetch 8,mem_le_dy_scan_data
-	store 8,mem_le_scan_data
-	fetch 4,mem_le_dy_scan_data+8
-	store 4,mem_le_scan_data+8
-	*/
-
-	setarg 0x000e
-	store 2,mem_ble_shutter_reconn_adv_interval
-	setarg 0x0140
-	store 2,mem_ble_shutter_discovery_adv_interval
-	store 2,mem_le_adv_interval
-
-//	setarg mem_shutter_le_uuid_sup	//BLE ATT LIST
-//	store 2,mem_ui_le_uuid_table
-
-//	call shutter_load_dy_keyvalue_buffer_config_form_DataRom
-	rtn
-
-shutter_dy_le_uuid_table_conf:
-	setarg mem_shutter_le_uuid_sup	//BLE ATT LIST
-	store 2,mem_ui_le_uuid_table	//BLE ATT LIST END
-	rtn
-
-shutter_dy_init:
-	call enable_authrom
-	rtn wake
-
-	call shutter_dy_key_conf
-	call shutter_dy_adv_conf
-
-	setarg shutter_dy_process_idle
-	store 2,mem_cb_idle_process
-
-	setarg shutter_dy_process_bb_event
-	store 2,mem_cb_bb_event_process
-
-	setarg ble_shutter_dy_receive_data
-	store 2,mem_cb_att_write
-
-	setarg shutter_dy_le_bb_event_timer
-	store 2,mem_cb_event_timer
-
-	setarg shutter_dy_key_change
-	store 2,mem_cb_shutter_keycan
-
-	setarg shutter_dy_le_before_hibernate
-	store 2,mem_cb_before_hibernate
-
-	setarg shutter_dy_process_lpm_before
-	store 2,mem_cb_before_lpm
-
-	setarg shutter_soft_swtich_power_on
-	store 2,mem_shutter_soft_switch_poweron_callback_function
-
-	setarg shutter_soft_swtich_power_off
-	store 2,mem_shutter_soft_switch_poweroff_callback_function
-
-	jam 7,mem_version
-	call le_modified_name_adv
-	call shutter_init_param
-	call keyscan_key_init
-	call queue_init
-	call ui_led_init_global
-
-	fetch 2,mem_shutter_le_pairing_handle
- 	store 2,mem_le_pairing_handle
-	fetch 8,mem_ble_shutter_interval_min_new
-	store 8,mem_ble_shutter_interval_min
-	call shutter_dy_iphone_every_move_max_set
-	bpatch patch18_0,mem_patch18
-	branch shutter_power_switch
-
-shutter_dy_process_lpm_before:
-	call gpio_set_before_lpm
-	branch keyscan_process_lpm_before
-
-shutter_dy_le_before_hibernate:
-	jam UI_BUTTON_GPIO_DISABLE,mem_ui_button_gpio
-	call gpio_set_before_lpm
-	call dy_set_key_gpio_before_hiernate
-	branch disable_authrom
-
-dy_set_key_gpio_before_hiernate:
-	fetch 1,mem_shutter_hard_soft_switch_case_temp
-	rtn blank
-	fetch 1,mem_shutter_key_num_conf
-	copy pdata,loopcnt
-	arg mem_shutter_key_conf0,rega
-dy_set_key_gpio_loop:
-	ifetch 1,rega
-	fetcht 1,mem_shutter_soft_switch_button_gpio_temp
-	isub temp,null
-	branch dy_set_key_gpio_loop_end,zero
-	sub pdata,0xff,null
-	branch dy_set_key_gpio_loop_end,zero
-	copy pdata,temp
-	call dy_shutter_gpio_config_input_pd
-dy_set_key_gpio_loop_end:
-	increase 1,rega
-	loop dy_set_key_gpio_loop
-	rtn
-
-dy_shutter_gpio_config_input_pd:
-	set1 gpio_active_bit,temp
-	branch gpio_config_input
-
-shutter_dy_process_idle:
-	call shutter_dy_shutter_send_data_to_master
-	arg key_scan_timer,queue
-	call timer_check
-	nrtn blank
-	setarg 0x20
-	arg key_scan_timer,queue
-	call timer_init
-	disable user
-	call keyscan_process_lpm_before
-	branch shutter_dy_keyscan_key_process
-
-shutter_dy_iphone_every_move_max_set:
-	setarg 0x2b
-	mul32 pdata,EVERY_PAYLOAD_LEN,pdata
-	arg mem_shutter_mousekey_value_list,temp
-	iadd temp,rega
-	increase 3,rega
-	arg IPHONE_ONCE_MAX_MOVE_VALUE,temp
-	istoret 1,rega
-	increase 11,rega
-	arg 0xfff,pdata
-	isub temp,pdata
-	lshift4 pdata,pdata
-	istore 2,rega
-	rtn
-
-shutter_dy_shutter_send_data_to_master:
-	fetch 2,mem_ui_state_map
-	bbit1 UI_STATE_BLE_CONNECTED,shutter_dy_pop_queue_to_ble_data
-	arg mem_queue_curr_num,contw
-	arg 35,loopcnt
-	branch clear_mem
-
-shutter_dy_pop_queue_to_ble_data:
-	call le_fifo_check_nearly_full
-	nrtn blank
-	call queue_empty
-	rtn blank
-	fetcht 4,mem_key_send_clk
-	copy clkn_bt,pdata
-	isub temp,temp
-	rtn zero
-	nbranch shutter_dy_pop_queue_to_ble_data2, positive
-	fetch 1,mem_send_data_delay
-	isub temp,null
-	rtn positive
-shutter_dy_pop_queue_to_ble_data2:
-	copy clkn_bt,pdata
-	store 4,mem_key_send_clk
-	call queue_pop_one_byte
-	nrtn user
-	pincrease -1
-	mul32 pdata,10,pdata
-	arg mem_shutter_mousekey_value_list,temp
-	iadd temp,contr
-	branch le_send_notify_from_list
-
-
-shutter_dy_le_bb_event_timer:
-	call shutter_dy_shutter_1s_timer
-	call shutter_dy_link_key_loop_timer
-	call shutter_dy_long_key_volume_timer
-	call shutter_dy_iphone_move_mid_timer
-	call shutter_dy_clear_key_state_timer
-	call shutter_check_sleep_timer
-	branch shutter_dy_check_power_off_timer
-
-shutter_dy_iphone_move_mid_timer:
-	arg mem_shutter_move_mid_timer,regc
-	arg shutter_dy_iphone_move_mid_timeout,regb
-	branch timer_single_step
-
-shutter_dy_iphone_move_mid_timeout:
-	call queue_empty
-	nrtn blank
-	fetch 2,mem_key_value_xmem
-	nrtn blank
-shutter_dy_iphone_move_mid:
-	call shutter_dy_check_iphone
-	rtn blank
-	copy queue,pdata
-	compare 0x04,pdata,0x07 //SHUTTER_UP_KEY_NUM
-	branch shutter_dy_iphone_up_mid,true
-
-	copy queue,pdata
-	compare 0x01,pdata,0x07 //SHUTTER_LIKE_KEY_NUM
-	branch shutter_dy_iphone_like_mid,true
-	arg mem_shutter_iphone_move_mid,regc
-	branch push_buffer_in_queue
-
-shutter_dy_iphone_up_mid:
-	arg mem_shutter_iphone_up_mid,regc
-	branch push_buffer_in_queue
-
-shutter_dy_iphone_like_mid:
-	arg mem_shutter_iphone_like_mid,regc
-	branch push_buffer_in_queue
-
-shutter_dy_clear_key_state_timer:
-	arg mem_shutter_like_timeout,regc
-	arg shutter_dy_clear_key_state_timeout,regb
-	branch timer_single_step
-
-shutter_dy_clear_key_state_timeout:
-	arg SHUTTER_KEY_CONF_SATE_BYTES,loopcnt
-	arg mem_shutter_key_state1,contw
-	branch clear_mem
-
-
-shutter_dy_check_power_off_timer:
-	arg mem_shutter_power_off_timer,regc
-	arg shutter_dy_check_power_off_timeout,regb
-	branch timer_single_step
-shutter_dy_check_power_off_timeout:
-	fetch 2,mem_ui_state_map
-	bbit1 UI_STATE_BLE_CONNECTED,shutter_wait_power_off
-	branch app_enter_hibernate
-
-shutter_dy_process_bb_event:
-	copy regc,pdata
-	beq BT_EVT_LE_CONNECTED,ble_shutter_dy_process_baseband_connect
-	beq BT_EVT_LE_DISCONNECTED,ble_shutter_dy_process_baseband_disconnect
-	beq BT_EVT_LE_PAIRING_SUCCESS,ble_shutter_dy_pairing_success
-	beq BT_EVT_LE_PARSE_CONN_PAPA_UPDATE_RSP,ble_dy_shutter_process_parse_connect_parameter_update_response
-	rtneq BT_EVT_LE_PARSE_CONN_PAPA_UPDATE_RSP
-	beq BT_EVT_LE_START_ENC,shutter_dy_le_find_service_hand_by_uuid
-	branch shutter_process_bb_event
-
-ble_dy_shutter_process_parse_connect_parameter_update_response:
-	fetch 2,mem_le_l2cap_signaling_conn_param_update_rsp_result
-	rtneq BLE_SIGNALING_CONNECT_PARAMETER_UPDATE_ACCEPTED
-	fetch 8,mem_ble_shutter_interval_min_new
-	rtn blank
-	call shutter_dy_check_iphone
-	nbranch ble_parameter_updata_response_ios,blank
-	fetch 8,mem_ble_shutter_dy_interval_min_android
-	store 8,mem_le_interval_min
-	branch le_l2cap_tx_update_req
-
-ble_parameter_updata_response_ios:
-	fetch 8,mem_ble_shutter_dy_interval_min_ios
-	store 8,mem_le_interval_min
-	branch le_l2cap_tx_update_req
-
-ble_shutter_dy_pairing_success:
-	jam 1,mem_shutter_pairing_success
-	call shutter_dy_clear_move_config
-//	setarg ANDROID_INITIAL_MOVE_X
-	fetch 2,mem_android_initial_move_x
-	store 2, mem_shutter_move_data_x
-//	arg ANDROID_INITIAL_MOVE_Y,temp
-	fetcht 2,mem_android_initial_move_y
-	setarg 0xfff
-	isub temp,pdata
-	store 2, mem_shutter_move_data_y
-	rtn
-
-ble_shutter_dy_process_baseband_disconnect:
-	jam 0,mem_shutter_le_conned
-	jam 0,mem_shutter_pairing_success
-	call shutter_dy_move_mode_disable
-	call shutter_dy_over_clear
-	branch ble_shutter_process_baseband_disconnect
-
-ble_shutter_dy_process_baseband_connect:
-	copy clkn_bt,pdata
-	store 4,mem_key_send_clk
-	call shutter_dy_remote_not_iphone
-	branch ble_shutter_process_baseband_connect
-
-
-shutter_dy_check_send_data:
-	disable user2
-	fetch 2,mem_shutter_sleep_timeout
-	store 2,mem_shutter_sleep_timer
-	call shutter_check_bluetooth_conn
-	branch shutter_change_bluetooth_status_bt_disconn,user
-	call shutter_check_data_enable
-	nrtn user
-	branch enable_user2
-
-shutter_dy_over_clear:
-	jam 0,mem_last_press_key_value
-	rtn
-
-shutter_dy_key_value_filter:
-	copy queue,pdata
-	rtnne SHUTTER_LIKE_KEY_NUM
-	branch shutter_dy_key_press_next
-
-shutter_dy_key_change:
-	call shutter_dy_check_send_data
-	nrtn user2
-	deposit rega
-	branch shutter_dy_shutter_key_release,blank//no data release
-shutter_dy_key_press:
-	bpatch patch18_1,mem_patch18
-	fetch 1,mem_shutter_link_loop_flag
-	nbranch shutter_dy_key_value_filter,blank
-shutter_dy_key_press_next:
-	jam 1,mem_shutter_key_pressed
-	call app_led_on
-	call shutter_dy_key_press_clk
-	call shutter_dy_jude_queue_size
-	branch shutter_dy_over_clear,positive
-	copy queue,pdata
-	fetcht 1,mem_last_press_key_value
-	isub temp,null
-	ncall shutter_dy_iphone_check_move_mid,zero
-	copy queue,pdata
-	store 1,mem_last_press_key_value
-	fetcht 1,mem_move_mode_key_index
-	isub temp,null
-	branch shutter_dy_key_move_to_specify_location,zero
-	fetch 1,mem_move_mode_trigger_enable
-	nbranch shutter_dy_move_set,blank
-shutter_dy_page_set:
-	call shutter_dy_le_get_press_ptr
-	arg MAX_QUEUE_NEW_PRESS,pdata
-	branch shutter_dy_push_queue_press_or_release
-
-shutter_dy_move_set:
-	call shutter_dy_jude_clear_move_config
-	copy queue,pdata
-	beq SHUTTER_LIKE_KEY_NUM,shutter_dy_page_set
-	call shutter_dy_check_move_data
-	branch shutter_dy_move_to_specify_location
-
-shutter_dy_key_move_to_specify_location:
-	jam 1,mem_shutter_first_move
-	branch shutter_dy_move_to_specify_location
-
-shutter_dy_iphone_check_move_mid:
-	bpatch patch18_2,mem_patch18
-	fetch 1,mem_move_mode_trigger_enable
-	branch shutter_dy_iphone_move_mid,blank
-	copy queue,pdata
-	beq SHUTTER_LIKE_KEY_NUM,shutter_dy_iphone_move_mid
-	rtn
-shutter_dy_key_press_clk:
-	arg SHUTTER_KEY_CONF_SATE_BYTES,pdata
-	imul32 queue,pdata
-	arg mem_shutter_key_state0,regc
-	iadd regc,regc
-	copy clkn_bt,pdata
-	istore KEY_STATE_PRESS_CLK_LENGTH,regc
-	increase KEY_STATE_PRESS_COUNT_OFFSET,regc
-	ifetch 1,regc
-	increase 1,pdata
-	istore 1,regc
-	rtn
-shutter_dy_shutter_key_release:
-	bpatch patch18_3,mem_patch18
-	fetch 1,mem_move_mode_trigger_enable
-	call shutter_dy_key_release_led,blank
-shutter_dy_shutter_key_release_time:
-	arg SHUTTER_KEY_CONF_SATE_BYTES,pdata
-	imul32 queue,pdata
-	arg mem_shutter_key_state0,regc
-	iadd regc,regc
-	ifetcht  4,regc
-	sub temp,0,null
-	rtn zero //already release
-	copy clkn_bt,pdata
-	isub temp,temp
-	ncall ui_timer_timeout,positive
-	add regc,KEY_STATE_LONGPRESS_OFFSET,contr
-	ifetch 1,contr
-	nbranch shutter_dy_push_queue_long_release, blank
-	increase KEY_STATE_RELEASE_CLK_OFFSET,regc
-	copy clkn_bt,pdata
-	istore KEY_STATE_RELEASE_CLK_LENGTH,regc
-	rtn
-
-shutter_dy_key_release_led:
-	fetch 1,mem_shutter_link_loop_flag
-	nbranch app_led_on,blank
-	branch app_led_off
-
-shutter_dy_push_queue_release:
-	add regc,4,contr
-	ifetch 1,contr
-	branch shutter_dy_push_queue_release1
-
-shutter_dy_push_queue_release1:
-	call shutter_clear_dy_key_state
-	fetch 1,mem_move_mode_trigger_enable
-	nbranch shutter_dy_move_mode_queue_release,blank
-shutter_dy_push_queue_release1_next:
-	call shutter_dy_jude_queue_size
-	branch shutter_dy_over_clear,positive
-	call shutter_dy_le_get_release_ptr
-	copy queue,pdata
-	beq SHUTTER_PHOTO_KEY_NUM,shutter_dy_le_get_release_ptr_volume
-	arg MAX_QUEUE_NUM_RELEASE,pdata
-shutter_dy_push_queue_press_or_release:
-	imul32 queue,pdata
-	iadd regc,regc
-	branch push_buffer_in_queue
-
-shutter_dy_move_mode_queue_release:
-	copy queue,pdata
-	beq SHUTTER_LIKE_KEY_NUM,shutter_dy_push_queue_release1_next
-	beq SHUTTER_PHOTO_KEY_NUM,shutter_dy_push_queue_release1_next
-	rtn
-
-shutter_dy_jude_queue_size:
-	call queue_get_size
-	ifetcht 1,contr
-	isub temp,pdata
-	sub pdata,MAX_QUEUE_NEW_PRESS,null
-	rtn
-
-shutter_dy_push_queue_long_release:
-	jam 1,mem_shutter_long_key_released_flag
-	call shutter_clear_dy_key_state
-	call shutter_dy_clear_volume_timer
-	arg mem_key0_long_release,regc
-	arg MAX_QUEUE_NUM_LONG_RELEASE,pdata
-	branch shutter_dy_push_queue_press_or_release
-
-shutter_clear_dy_key_state:
-	arg SHUTTER_KEY_CONF_SATE_BYTES,loopcnt
-	copy regc,contw
-	branch clear_mem
-
-shutter_dy_keyscan_key_process:
-	fetch 2,mem_key_value_xmem
-	store 2,mem_key_value_retention
-	call shutter_dy_keyscan_key_process_next
-	fetch 2,mem_key_value_retention
-	store 2,mem_key_value_xmem
-
-	arg 0,queue
-	fetch 1,mem_shutter_key_num
-	copy pdata,loopcnt
-	arg mem_shutter_key_state0,regc
-shutter_dy_keyscan_key_check_release_loop:
-	copy loopcnt,pdata
-	store 2,mem_temp
-	copy regc,pdata
-	store 2,mem_regc
-	copy queue,pdata
-	store 2,mem_temp+2
-	call shutter_dy_keyscan_key_check_release
-
-	fetch 2,mem_regc
-	copy pdata,regc
-	fetch 2,mem_temp+2
-	copy pdata,queue
-	call shutter_dy_keyscan_key_check_long_press
-
-	fetch 2,mem_temp+2
-	add pdata,1,queue
-	fetch 2,mem_regc
-	add pdata,SHUTTER_KEY_CONF_SATE_BYTES,regc
-	fetch 2,mem_temp
-	copy pdata,loopcnt
-	loop shutter_dy_keyscan_key_check_release_loop
-	rtn
-
-shutter_dy_keyscan_key_check_long_press:
-	ifetch KEY_STATE_PRESS_CLK_LENGTH,regc
-	rtn blank
-	copy pdata,temp
-	copy clkn_bt,pdata
-	isub temp,temp
-	nrtn positive
-	setarg 2500 //1000ms 3200
-	isub temp,null
-	rtn positive
-	copy clkn_bt,pdata
-	istore 4,regc
-	increase KEY_STATE_LONGPRESS_OFFSET,regc
-	setarg 1  //long press flag
-	istore KEY_STATE_LONGPRESS_LENGTH,regc
-	fetch 1,mem_shutter_long_key_released_flag
-	rtn blank
-	jam 0,mem_shutter_long_key_released_flag
-	bpatch patch18_4,mem_patch18
-	call shutter_dy_long_key_function
-	fetch 1,mem_move_mode_set
-	beq MOVE_COMBINE_KEY,shutter_dy_key_long_press_set_key_normal
-	beq MOVE_SINGLE_KEY,shutter_dy_key_long_press_set_move_trigger
-	rtn
-
-shutter_dy_key_long_press_set_key_normal:
-	call shutter_dy_long_press_android_or_ios
-	arg MAX_QUEUE_NUM_LONG,pdata
-	branch shutter_dy_push_queue_press_or_release
-
-shutter_dy_key_long_press_set_move_trigger:
-	copy queue,pdata
-	fetcht 1,mem_move_mode_key_index
-	isub temp,null
-	nbranch shutter_dy_key_long_press_set_key_normal,zero
-	fetch 1,mem_move_mode_trigger_enable
-	setflip 0,pdata
-	store 1,mem_move_mode_trigger_enable
-	nrtn blank
-shutter_dy_move_mode_disable:
-	jam 0,mem_move_mode_trigger_enable
-	branch app_led_off
-
-shutter_dy_long_press_android_or_ios:
-	arg mem_key0_long_press,regc
-	call shutter_dy_check_iphone
-	rtn blank
-	arg mem_key0_long_press_i,regc
-	rtn
-
-shutter_dy_keyscan_key_check_release:
-	add regc,KEY_STATE_RELEASE_CLK_OFFSET,regb
-	ifetch KEY_STATE_RELEASE_CLK_LENGTH,regb
-	rtn blank
-	copy pdata,temp
-	copy clkn_bt,pdata
-	isub temp,temp
-	ncall ui_timer_timeout,positive
-	setarg 1000 //100ms 320
-	isub temp,null
-	branch shutter_dy_push_queue_release
-shutter_dy_keyscan_key_process_next:
-	fetch 2,mem_key_num_ptr
-	ifetch 1,pdata
-	rtn blank
-
-	setarg 0
-	store 2,mem_key_value_temp
-	call keyscan_scan_key
-	nbranch lpm_button_clean_wake_lock,user
-	call lpm_button_get_wake_lock
-	disable user
-	fetch 1,mem_le_adv_enable
-	nrtn blank
-	bpatch patch18_5,mem_patch18
-	fetch 1,mem_move_mode_set
-	beq MOVE_SINGLE_KEY,shutter_dy_skip_check_combine_key
-	call shutter_dy_check_combine_key_release
-	call shutter_dy_check_combine_key
-	rtn user
-shutter_dy_skip_check_combine_key:
-	call shutter_dy_single_key_led
-	fetch 2,mem_key_value_temp
-	store 2,mem_key_value_temp4
-	jam 0,mem_key_value_temp6
-	force 0,queue
-	branch keyscan_key_lp1
-
-shutter_dy_single_key_led:
-	fetch 1,mem_last_press_key_value
-	fetcht 1,mem_move_mode_key_index
-	isub temp,null
-	branch app_led_on,zero
-	fetch 1,mem_move_mode_trigger_enable
-	nbranch app_led_off,blank
-	rtn
-
-shutter_dy_check_combine_key:
-	arg 0,queue
-shutter_dy_check_combine_key_loop:
-	arg mem_combine_key0,regb
-	arg 2,pdata
-	imul32 queue,pdata
-	iadd regb,regb
-	ifetch 2,regb
-
-	rtn blank
-	fetcht 2,mem_key_value_temp
-	ixor temp,null
-	branch shutter_dy_check_combine_key_parse,zero
-	increase 1,queue
-	branch shutter_dy_check_combine_key_loop
-
-shutter_dy_check_combine_key_parse:
-	store 2,mem_combine_key_state0
-	call app_led_on
-	arg mem_combine_key0_press,regc
-	arg MAX_QUEUE_NUM_COMBINEKEY,pdata
-	imul32 queue,pdata
-	iadd regc,regc
-	call shutter_dy_push_buffer_in_queue
-	branch shutter_dy_combine_key_enableuser
-
-shutter_dy_push_buffer_in_queue:
-	call shutter_dy_jude_clear_move_config
-	ifetch 1,regc
-	rtn blank
-	call shutter_dy_check_move_data
-shutter_dy_move_to_specify_location:
-	call shutter_dy_jude_clear_move_config
-	call shutter_dy_check_iphone
-	nbranch shutter_dy_move_ios_to_specify_location,blank
-	arg 0x1c,pdata
-	call queue_push_one_byte
-	arg 0x1d,pdata
-	branch queue_push_one_byte
-
-shutter_dy_move_ios_to_specify_location:
-	call shutter_dy_move_down_left_corner
-	call shutter_dy_move_x_max
-	call shutter_dy_move_y_max
-	arg 0x29,pdata
-	branch queue_push_one_byte
-
-shutter_dy_move_down_left_corner_count_set:
-	fetcht 1,mem_shutter_back_count
-	call shutter_dy_check_iphone
-	rtn blank
-	fetcht 1,mem_shutter_iphone_beyond_y_count
-	increase 1,temp
-	fetch 1,mem_shutter_first_move
-	rtn blank
-	fetcht 1,mem_shutter_back_count
-	jam 0,mem_shutter_first_move
-	rtn
-
-shutter_dy_move_down_left_corner:
-	call shutter_dy_move_down_left_corner_count_set
-	copy temp,pdata
-	rtn blank
-	store 1,mem_shutter_back_count_cache
-shutter_dy_move_down_left_corner_loop:
-	arg 0x2b,pdata
-	call queue_push_one_byte
-	fetch 1,mem_shutter_back_count_cache
-	increase -1,pdata
-	store 1,mem_shutter_back_count_cache
-	rtn blank
-	branch shutter_dy_move_down_left_corner_loop
-
-shutter_dy_move_x_max:
-	fetch 1,mem_shutter_iphone_beyond_x_count
-	rtn blank
-	store 1,mem_shutter_iphone_beyond_x_cache
-shutter_dy_move_x_max_number:
-	arg 0x2c,pdata
-	call queue_push_one_byte
-	fetch 1,mem_shutter_iphone_beyond_x_cache
-	increase -1,pdata
-	store 1,mem_shutter_iphone_beyond_x_cache
-	rtn blank
-	branch shutter_dy_move_x_max_number
-
-shutter_dy_move_y_max:
-	fetch 1,mem_shutter_iphone_beyond_y_count
-	rtn blank
-	store 1,mem_shutter_iphone_beyond_y_cache
-shutter_dy_move_y_max_number:
-	arg 0x2d,pdata
-	call queue_push_one_byte
-	fetch 1,mem_shutter_iphone_beyond_y_cache
-	increase -1,pdata
-	store 1,mem_shutter_iphone_beyond_y_cache
-	rtn blank
-	branch shutter_dy_move_y_max_number
-
-shutter_dy_check_combine_key_release:
-	fetch 2,mem_combine_key_state0
-	rtn blank
-	fetcht 2,mem_key_value_temp
-	sub temp,0,null
-	branch shutter_dy_check_combine_key_release_all,zero
-	isub temp,null
-	rtn zero
-	storet 2,mem_combine_key_state0
-	fetch 2,mem_combine_key_release_value
-	isub temp,null
-	call app_led_off,zero
-shutter_dy_combine_key_enableuser:
-	fetch 2,mem_key_value_temp
-	store 2, mem_key_value_retention
-	branch enable_user
-shutter_dy_check_combine_key_release_all:
-	jam 1,mem_shutter_long_key_released_flag
-	call app_led_off
-	arg mem_combine_key_release,regc
-	call shutter_dy_push_buffer_in_queue
-	setarg 0
-	store 2,mem_combine_key_state0
-	jam 50,mem_shutter_1s_timer
-	call shutter_dy_combine_key_enableuser
-	fetch 1,mem_shutter_key_num
-	mul32 pdata,SHUTTER_KEY_CONF_SATE_BYTES,loopcnt
-	arg mem_shutter_key_state0,contw
-	branch clear_mem
-shutter_dy_check_move_data:
-	bpatch patch18_6,mem_patch18
-	fetch 1,mem_move_mode_set
-	beq MOVE_SINGLE_KEY,shutter_dy_check_move_data_single_key
-	beq MOVE_COMBINE_KEY,shutter_dy_check_move_data_combine_key
-	rtn
-shutter_dy_check_move_data_single_key:
-	copy queue,pdata
-	beq SHUTTER_LEFT_KEY_NUM,shutter_dy_move_left
-	beq SHUTTER_RIGHT_KEY_NUM,shutter_dy_move_right
-	beq SHUTTER_UP_KEY_NUM,shutter_dy_move_up
-	beq SHUTTER_DOWN_KEY_NUM,shutter_dy_move_down
-	rtn
-shutter_dy_check_move_data_combine_key:
-	ifetch 1,regc
-	beq 0x01,shutter_dy_move_left
-	beq 0x02,shutter_dy_move_right
-	beq 0x03,shutter_dy_move_up
-	beq 0x04,shutter_dy_move_down
-	beq 0x05,shutter_dy_get_move_data
-	rtn
-
-shutter_dy_get_move_data:
-	call shutter_dy_check_iphone
-	nbranch shutter_dy_get_move_data_iphone,blank
-	setarg 0x1b
-	mul32 pdata,EVERY_PAYLOAD_LEN,pdata
-	arg mem_shutter_mousekey_value_list,temp
-	iadd temp,contw
-	increase 5,contw
-	fetch 4,mem_shutter_move_data
-	istore 4,contw
-	rtn
-
-shutter_dy_get_move_data_iphone:
-	setarg 0x29
-	mul32 pdata,EVERY_PAYLOAD_LEN,pdata
-	arg mem_shutter_mousekey_value_list,temp
-	iadd temp,contw
-	increase 3,contw
-	fetch 2,mem_shutter_move_data_x
-	istore 3,contw
-	increase 7,contw
-	fetch 2,mem_shutter_move_data_y
-	lshift4 pdata,pdata
-	lshift8 pdata,pdata
-	istore 3,contw
-	rtn
-	//branch p_store_move_config_info
-shutter_dy_move_x_empty_check:
-	fetch 1,mem_shutter_iphone_beyond_x_count
-	rtn blank
-	increase -1,pdata
-	store 1,mem_shutter_iphone_beyond_x_count
-	arg IPHONE_ONCE_MAX_MOVE_VALUE,pdata
-	rtn
-shutter_dy_every_move_size_set:
-	arg ANDROID_EVERY_MOVE_SIZE,temp
-	call shutter_dy_check_iphone
-	rtn blank
-	arg IPHONE_EVERY_MOVE_SIZE,temp
-	rtn
-shutter_dy_move_left:
-	call shutter_dy_every_move_size_set
-	fetch 2,mem_shutter_move_data_x
-	isub temp,null
-	ncall shutter_dy_move_x_empty_check,positive
-	nrtn positive//if move_x to zero,rtn
-	isub temp,pdata
-shutter_dy_move_store_x:
-	store 2,mem_shutter_move_data_x
-shutter_dy_move_data_store:
-	bpatch patch18_7,mem_patch18
-	call shutter_dy_check_iphone
-	branch shutter_dy_move_android_data_store,blank	//android
-	//ios
-	fetch 2,mem_shutter_move_data_x
-	fetcht 2,mem_shutter_move_data_y
-	lshift8 temp,temp
-	lshift4 temp,temp
-	iadd temp,pdata
-	store 3,mem_shutter_move_data
-	call shutter_dy_get_ios_move_data
-	branch shutter_dy_move_ios_release_data
-
-shutter_dy_get_ios_move_data:
-	setarg 0x28
-	mul32 pdata,EVERY_PAYLOAD_LEN,pdata
-	arg mem_shutter_mousekey_value_list,temp
-	iadd temp,contw
-	increase 3,contw
-	fetch 3,mem_shutter_move_data
-	istore 3,contw
-	rtn
-
-shutter_dy_move_ios_release_data:
-	setarg 0x29
-	mul32 pdata,EVERY_PAYLOAD_LEN,pdata
-	arg mem_shutter_mousekey_value_list,temp
-	iadd temp,contw
-	increase 3,contw
-	fetch 3,mem_shutter_move_data
-	istore 3,contw
-	rtn
-
-shutter_dy_move_android_data_store:
-	fetch 2,mem_shutter_move_data_x
-	fetcht 2,mem_shutter_move_data_y
-	lshift16 temp,temp
-	iadd temp,pdata
-	store 4,mem_shutter_move_data
-	call shutter_dy_move_android_release_data
-	branch shutter_dy_data_android_xy_data
-
-shutter_dy_move_android_release_data:
-	setarg 0x1b
-	mul32 pdata,EVERY_PAYLOAD_LEN,pdata
-	arg mem_shutter_mousekey_value_list,temp
-	iadd temp,contw
-	increase 5,contw
-	fetch 4,mem_shutter_move_data
-	istore 4,contw
-	rtn
-
-shutter_dy_data_android_xy_data:
-	setarg 0x1c
-	mul32 pdata,EVERY_PAYLOAD_LEN,pdata
-	arg mem_shutter_mousekey_value_list,temp
-	iadd temp,contw
-	increase 5,contw
-	fetch 4,mem_shutter_move_data
-	istore 4,contw
-	rtn
-
-shutter_dy_move_x_check_max:
-	fetch 2,mem_shutter_move_data_x
-	arg IPHONE_ONCE_MAX_MOVE_VALUE,temp
-	isub temp,temp
-	nrtn positive
-	copy temp,pdata
-	fetcht 1,mem_shutter_iphone_beyond_x_count
-	sub temp,0x03,null
-	branch shutter_dy_clear_move_x,zero
-	increase 1,temp
-	storet 1,mem_shutter_iphone_beyond_x_count
-	branch shutter_dy_move_store_x
-shutter_dy_clear_move_x:
-	jam 0,mem_shutter_iphone_beyond_x_count
-	arg 0,pdata
-	branch shutter_dy_move_store_x
-shutter_dy_move_right:
-	call shutter_dy_check_iphone
-	ncall shutter_dy_move_x_check_max,blank
-	call shutter_dy_every_move_size_set
-	fetch 2,mem_shutter_move_data_x
-shutter_dy_move_right_next:
-	iadd temp,pdata
-	arg 0xfff,temp
-	call ceiling
-	branch shutter_dy_move_store_x
-
-shutter_dy_move_up:
-	call shutter_dy_check_iphone
-	branch shutter_dy_dnroid_up_check_y,blank
-shutter_dy_move_y_check_max:
-	call shutter_dy_every_move_size_set
-	fetch 2,mem_shutter_move_data_y
-	isub temp,pdata
-	store 2,mem_shutter_move_data_y
-	fetcht 2,mem_shutter_move_data_y
-	setarg 0xfff
-	isub temp,pdata
-	arg IPHONE_ONCE_MAX_MOVE_VALUE,temp
-	isub temp,temp
-	nbranch shutter_dy_move_data_store, positive
-	setarg 0xfff
-	isub temp,pdata
-	fetcht 1,mem_shutter_iphone_beyond_y_count
-	sub temp,0x05,null
-	branch shutter_dy_clear_move_y,zero
-	increase 1,temp
-	storet 1,mem_shutter_iphone_beyond_y_count
-	branch shutter_dy_move_store_y
-
-shutter_dy_dnroid_up_check_y:
-	call shutter_dy_every_move_size_set
-	fetch 2,mem_shutter_move_data_y
-	isub temp,null
-	nrtn positive
-	isub temp,pdata
-	store 2,mem_shutter_move_data_y
-	branch shutter_dy_move_data_store
-
-
-shutter_dy_clear_move_y:
-	jam 0,mem_shutter_iphone_beyond_y_count
-shutter_dy_android_move_y_empty_check:
-	setarg 0xfff
-	branch shutter_dy_move_store_y
-
-shutter_dy_move_y_empty_check:
-	call shutter_dy_check_iphone
-	branch shutter_dy_android_move_y_empty_check,blank
-	fetch 1,mem_shutter_iphone_beyond_y_count
-	branch shutter_dy_android_move_y_empty_check, blank
-	increase -1,pdata
-	store 1,mem_shutter_iphone_beyond_y_count
-	setarg 0xffff
-	arg IPHONE_ONCE_MAX_MOVE_VALUE,temp
-	isub temp,pdata
-	iadd rega,pdata
-shutter_dy_move_store_y:
-	store 2,mem_shutter_move_data_y
-	branch shutter_dy_move_data_store
-
-shutter_dy_move_down:
-	call shutter_dy_check_iphone
-	branch shutter_dy_move_android_down,blank
-shutter_dy_move_down_next:
-	call shutter_dy_every_move_size_set
-	fetch 2,mem_shutter_move_data_y
-	iadd temp,pdata
-	arg 0xfff,temp
-	isub temp,rega
-	call shutter_dy_move_y_empty_check,positive
-	branch shutter_dy_move_store_y
-
-shutter_dy_move_android_down:
-	call shutter_dy_every_move_size_set
-	fetch 2,mem_shutter_move_data_y
-	iadd temp,pdata
-	arg 0xfff,temp
-	call ceiling
-	branch shutter_dy_move_store_y
-
-ble_shutter_dy_receive_data:
-	fetch 2,mem_le_att_handle
-	beq GATT_KEYBOARD_WRITE_HANDLE_NEW,ble_shutter_process_reconnect_complete
-	rtn
-
-shutter_dy_le_find_service_hand_by_uuid:
-	arg 23,rega
-	arg LE_L2CAP_CID_ATT,regb
-	call le_fifo_malloc_tx_l2cap
-	setarg ATTOP_FIND_BY_TYPE_VALUE_REQUEST
-	istore 1,contw
-	setarg 0x0001		//start handle
-	istore 2,contw
-	setarg 0xffff		//end handle
-	istore 2,contw
-	setarg 0x2800		//uuid type
-	istore 2,contw
-	arg mem_dy_le_search_service_uuid,contr
-	branch memcpy16
-
-
-shutter_dy_le_parse_att:
-	bpatch patch19_0,mem_patch19
-	copy rega,contr
-	ifetch 3,contr
-	store 3,mem_le_att_opcode
-	beq ATTOP_FIND_BY_TYPE_VALUE_RESPONSE,shutter_dy_le_parse_att_find_by_type_value_rsp
-	beq ATTOP_ERROR_RESPONSE,shutter_dy_le_parse_error_rsp
-	beq ATTOP_READ_REQUEST,shutter_dy_le_parse_att_read_request
-	beq ATTOP_READ_BLOB_REQUEST,shutter_dy_le_parse_att_read_blob_request
-	branch le_parse_att2
-
-shutter_dy_le_parse_att_read_blob_request:
-	ifetch 2,contr
-	store 2,mem_le_att_offset
-	iforce rega
-	fetcht 2,mem_le_att_handle
-	fetch 2,mem_le_pairing_handle
-	isub temp,null
-	nbranch le_send_att_read_blob_response,zero
-	call shutter_dy_check_iphone
-	nbranch shutter_dy_le_parse_att_read_blob_request_ios,blank
-	fetcht 2,mem_shutter_le_map_len_android
-	branch shutter_dy_le_parse_att_read_blob_request2
-
-shutter_dy_le_parse_att_read_blob_request_ios:
-	fetcht 2,mem_shutter_le_map_len_ios
-shutter_dy_le_parse_att_read_blob_request2:
-	arg mem_shutter_le_hid_map,contr
-	call store_contr
-	copy temp,pdata
-	isub rega,pdata
-	nbranch le_send_att_error_response_notfound,positive
-	increase 1,pdata
-	sub pdata,23,null
-	branch le_send_att_read_blob_response_less,positive
-	force 23,pdata
-	branch le_send_att_read_blob_response_less
-
-shutter_dy_le_parse_att_read_request:
-	fetcht 2,mem_le_att_handle
-	fetch 1,mem_le_configuration
-	bbit1 BIT_BLE_READ_AUTH,shutter_dy_le_send_att_read_response_check_auth
-	branch le_send_att_read_response
-shutter_dy_le_send_att_read_response_check_auth:
-	fetch 2,mem_le_pairing_handle
-	isub temp,null
-	nbranch le_send_att_read_response,zero
-	call le_check_encrypt_state
-	nbranch shutter_dy_le_send_att_read_response,user
-	branch le_send_att_read_response_error_insufficient_auth
-
-shutter_dy_le_send_att_read_response:
-	fetch 2,mem_le_pairing_handle
-	isub temp,null
-	nbranch le_send_att_read_response,zero
-	arg mem_shutter_le_hid_map,contr
-	force 23,pdata
-	branch le_send_att_read_response_less
-
-shutter_dy_le_parse_att_find_by_type_value_rsp:
-shutter_dy_le_remote_iphone:
-	bpatch patch19_1,mem_patch19
-	jam 5,mem_shutter_back_count
-	jam 1,mem_iphone_flag
-	jam 1,mem_last_shutter_le_iphone_flag
-	jam 240,mem_send_data_delay
-	jam 10,mem_shutter_move_mid_timer
-	jam 1,mem_shutter_first_move
-	call shutter_dy_load_move_config_info
-	fetch 1,mem_shutter_pairing_success
-	rtn blank
-	call shutter_dy_clear_move_config
-	arg IPHONE_ONCE_MAX_MOVE_VALUE,temp
-//	setarg IPHONE_INITIAL_MOVE_X
-	fetch 2,mem_iphone_initial_move_x
-	arg mem_shutter_move_data_x,rega
-	arg mem_shutter_iphone_beyond_x_count,regb
-	call shutter_dy_iphone_move_initial_set
-	arg IPHONE_ONCE_MAX_MOVE_VALUE,temp
-//	setarg IPHONE_INITIAL_MOVE_Y
-	fetch 2,mem_iphone_initial_move_y
-	arg mem_shutter_move_data_y,rega
-	arg mem_shutter_iphone_beyond_y_count,regb
-	call shutter_dy_iphone_move_initial_set
-	setarg 0xfff
-	fetcht 2,mem_shutter_move_data_y
-	isub temp,pdata
-	store 2,mem_shutter_move_data_y
-	rtn
-
-shutter_dy_iphone_move_initial_set:
-	idiv temp
-	call wait_div_end
-	quotient pdata
-	remainder temp
-	istore 1,regb
-	istoret 2,rega
-	rtn
-shutter_dy_le_parse_error_rsp:
-	increase -2,contr
-	ifetch 1,contr
-	beq ATTOP_FIND_BY_TYPE_VALUE_REQUEST,shutter_dy_not_iphone_read_conf
-	rtn
-shutter_dy_remote_not_iphone:
-	jam 1,mem_shutter_back_count
-	jam 0,mem_iphone_flag
-	jam 0,mem_last_shutter_le_iphone_flag
-	jam 10,mem_send_data_delay
-	rtn
-
-shutter_dy_not_iphone_read_conf:
-	call shutter_dy_remote_not_iphone
-	branch shutter_dy_load_move_config_info
-
-shutter_dy_check_iphone:
-	fetch 1,mem_iphone_flag
-	rtn
-
-
-shutter_dy_le_get_press_ptr:
-	arg mem_dy_key0_press,regc
-	call shutter_dy_check_iphone
-	rtn blank
-	jam 120,mem_send_data_delay
-	arg mem_key0_press_i,regc
-	rtn
-shutter_dy_le_get_release_ptr:
-shutter_dy_le_get_release_ptr_set:
-	arg mem_key0_release_new,regc
-	call shutter_dy_check_iphone
-	rtn blank
-	arg mem_key0_release_new_i,regc
-	jam 12,mem_send_data_delay
-	copy queue,pdata
-	rtneq SHUTTER_LIKE_KEY_NUM
-	rtn
-shutter_dy_le_get_release_ptr_volume:
-	bpatch patch19_2,mem_patch19
-	fetch 1,mem_key3_press_count
-	setflip 0,pdata
-	store 1,mem_key3_press_count
-	beq 0,shutter_dy_le_get_release_ptr_set_volume_inc
-	beq 1,shutter_dy_le_get_release_ptr_set_volume_dec
-	rtn
-shutter_dy_le_get_release_ptr_set_volume_dec:
-	call shutter_dy_le_get_vol_dec_ptr
-	branch push_buffer_in_queue
-shutter_dy_le_get_release_ptr_set_volume_inc:
-	call shutter_dy_le_get_vol_inc_ptr
-	branch push_buffer_in_queue
-shutter_dy_le_get_vol_inc_ptr:
-	arg mem_key3_release_new,regc
-	call shutter_dy_check_iphone
-	rtn blank
-	arg mem_key3_release_new_i,regc
-	rtn
-shutter_dy_le_get_vol_dec_ptr:
-	arg mem_key3_release_new_t,regc
-	call shutter_dy_check_iphone
-	rtn blank
-	arg mem_key3_release_new_i_t,regc
-	rtn
-
-
-shutter_dy_long_key_function:
-	copy queue,pdata
-	beq SHUTTER_LIKE_KEY_NUM,shutter_dy_link_key_long_press
-	beq SHUTTER_DOWN_KEY_NUM,shutter_dy_loop_send_volume_dec_page
-	beq SHUTTER_UP_KEY_NUM,shutter_dy_loop_send_volume_inc_page
-	rtn
-
-//volume timer
-shutter_dy_long_key_volume_timer:
-	arg mem_shutter_volume_timer,regc
-	arg shutter_dy_long_key_volume_timeout,regb
-	branch timer_single_step
-shutter_dy_long_key_volume_timeout:
-	jam 4, mem_shutter_volume_timer
-	fetch 1,mem_key3_press_count
-	branch shutter_dy_loop_send_volume_inc_page,blank
-	branch shutter_dy_loop_send_volume_dec_page
-
-
-shutter_dy_loop_send_volume_inc_page:
-	jam 0,mem_key3_press_count
-	jam 4, mem_shutter_volume_timer
-	arg mem_key4_long_press,regc
-	branch push_buffer_in_queue
-
-shutter_dy_loop_send_volume_dec_page:
-	jam 1,mem_key3_press_count
-	jam 4, mem_shutter_volume_timer
-	arg mem_key2_long_press,regc
-	branch push_buffer_in_queue
-shutter_dy_clear_volume_timer:
-	jam 0,mem_key3_press_count
-	jam 0, mem_shutter_volume_timer
-	rtn
-
-//link timer
-shutter_dy_link_key_loop_timer:
-	arg mem_shutter_link_timer,regc
-	arg shutter_dy_link_key_loop_timeout,regb
-	branch timer_single_step
-shutter_dy_link_key_loop_timeout:
-	jam 2, mem_shutter_link_timer
-	call shutter_dy_link_data_android_or_ios
-	branch push_buffer_in_queue
-
-shutter_dy_link_data_android_or_ios:
-	arg mem_shutter_link_data,regc
-	call shutter_dy_check_iphone
-	rtn blank
-	arg mem_shutter_link_data_i,regc
-	rtn
-
-shutter_dy_link_key_long_press:
-	fetch 1,mem_shutter_link_loop_flag
-	nbranch shutter_dy_clear_link_key_timer,blank
-	jam 1,mem_shutter_link_loop_flag
-	jam 2, mem_shutter_link_timer
-	rtn
-
-shutter_dy_clear_link_key_timer:
-	jam 0,mem_shutter_link_loop_flag
-	jam 0, mem_shutter_link_timer
-	rtn
-
-shutter_dy_jude_clear_move_config:
-	fetch 1,mem_shutter_le_conned
-	nrtn blank
-	jam 1,mem_shutter_le_conned
-	branch shutter_dy_move_data_store
-
-shutter_dy_clear_move_config:
-	setarg 0
-	store 7,mem_move_config
-	rtn
-
-shutter_dy_write_otp_convert_data:
-	call shutter_dy_check_iphone
-	beq 0x01,shutter_dy_store_ios_config_data
-	beq 0x00,shutter_dy_store_android_config
-	rtn
-
-shutter_dy_read_otp_convert_data:
-	fetch 1,mem_otp_last_shutter_le_iphone_flag	//鍒ゆ柇鏄惁鏄疘OS
-	beq 0x01,shutter_dy_get_ios_config
-	beq 0x00,shutter_dy_get_android_config
-	rtn
-
-shutter_dy_store_ios_config_data:
-	fetch 1,mem_shutter_iphone_beyond_x_count
-	mul32 pdata,IPHONE_ONCE_MAX_MOVE_VALUE,pdata
-	copy pdata,temp
-	fetch 2,mem_shutter_move_data_x
-	iadd temp,pdata	//pdata = pdata+temp
-	store 2,mem_otp_shutter_move_data_x
-
-	fetch 1,mem_shutter_iphone_beyond_y_count
-	mul32 pdata,IPHONE_ONCE_MAX_MOVE_VALUE,pdata
-	copy pdata,temp
-	fetch 2,mem_shutter_move_data_y
-	copy pdata,rega
-	setarg 0xfff
-	isub rega,pdata	//pdata = pdata-rega
-	iadd temp,pdata	//pdata = pdata+temp
-	store 2,mem_otp_shutter_move_data_y
-
-	call shutter_dy_check_iphone
-//	fetch 1,mem_last_shutter_le_iphone_flag
-	store 1,mem_otp_last_shutter_le_iphone_flag
-	rtn
-
-shutter_dy_store_android_config:
-	fetch 2,mem_shutter_move_data_x
-	store 2,mem_otp_shutter_move_data_x
-	fetch 2,mem_shutter_move_data_y
-	store 2,mem_otp_shutter_move_data_y
-	call shutter_dy_check_iphone
-	store 1,mem_otp_last_shutter_le_iphone_flag
-	rtn
-shutter_dy_get_ios_config:
-	fetch 2,mem_otp_shutter_move_data_x
-	div pdata,IPHONE_ONCE_MAX_MOVE_VALUE
-	call wait_div_end
-	quotient pdata
-	remainder temp
-	store 1,mem_shutter_iphone_beyond_x_count
-	copy temp,pdata
-	store 2,mem_shutter_move_data_x
-	fetch 2,mem_otp_shutter_move_data_y
-	div pdata,IPHONE_ONCE_MAX_MOVE_VALUE
-	call wait_div_end
-	quotient pdata
-	remainder temp
-	store 1,mem_shutter_iphone_beyond_y_count
-	//copy temp,pdata
-	setarg 0xfff
-	isub temp,pdata	//pdata = pdata-temp
-	store 2,mem_shutter_move_data_y
-//	fetch 1,mem_otp_last_shutter_le_iphone_flag
-//	store 1,mem_last_shutter_le_iphone_flag
-	rtn
-shutter_dy_get_android_config:
-	fetch 2,mem_otp_shutter_move_data_x
-	store 2,mem_shutter_move_data_x
-	fetch 2,mem_otp_shutter_move_data_y
-	store 2,mem_shutter_move_data_y
-//	fetch 1,mem_otp_last_shutter_le_iphone_flag
-//	store 1,mem_last_shutter_le_iphone_flag
-	rtn
-
-shutter_dy_store_move_config_info:
-	branch shutter_dy_campare_effective_addr_write_otp
-
-shutter_dy_load_move_config_info:
-	branch shutter_dy_campare_effective_addr_read_otp
-
-//寰幆鎵炬暟鎹紝鍒ゆ柇鏄惁涓虹┖鏁版嵁
-shutter_dy_shutter_uart_config_loop:
-	call shutter_dy_update_read_check_addr
-	fetch 2,mem_otp_read_offset_addr
-	call shutter_dy_shutter_read_move_config_from_otp_addr
-	jam 0,mem_shutter_first_read_flag
-	fetch 5,mem_otp_move_config
-	jam 0,mem_shutter_valid_data_flag
-	jam 0,mem_shutter_temp_count
-	call shutter_dy_campare_otp_data
-	fetch 1,mem_shutter_temp_count
-	rtneq 0
-	branch shutter_dy_shutter_uart_config_loop
-
-//绗竴娆′粠0x1fe0澶勫線鍓嶈
-shutter_dy_shutter_get_first_read_addr:
-//	setarg SHUTTER_EFUSE_START_OFFECT
-	fetch 2,mem_shutter_efuse_start_offset
-	increase -5,pdata
-	store 2,mem_otp_read_offset_addr
-	rtn
-
-//涓嬫璇伙紝鏇存柊mem_otp_read_offset_addr 鍦板潃
-shutter_dy_shutter_next_read_addr:
-	fetch 2,mem_otp_read_offset_addr
-	increase -5,pdata
-	store 2,mem_otp_read_offset_addr
-	rtn
-
-//涓婃璇伙紝鏇存柊mem_otp_read_offset_addr 鍦板潃
-shutter_dy_shutter_last_read_addr:
-	fetch 2,mem_otp_read_offset_addr
-	pincrease 5
-	store 2,mem_otp_read_offset_addr
-	rtn
-
-shutter_dy_shutter_read_ios_android_addr:
-	fetch 2,mem_otp_read_ios_android_addr
-	pincrease 5
-	store 2,mem_otp_read_ios_android_addr
-	//妫鏌ュ湪鍖洪棿鍐
-	fetch 2,mem_otp_read_ios_android_addr
-	copy pdata, temp
-//	setarg SHUTTER_EFUSE_START_OFFECT
-	fetch 2,mem_shutter_efuse_start_offset
-	isub temp,pdata	//pdata = pdata-temp
-	arg SHUTTER_PARA_TOTAL_NUM,temp	//temp = 5
-	isub temp,null	//pdata = pdata-temp, 澶т簬绛変簬0锛宲ositive缃1
-//	nrtn positive
-	nbranch shutter_dy_shutter_not_find_ios_or_android,positive
-	rtn
-
-shutter_dy_update_read_check_addr:
-	fetch 1,mem_shutter_first_read_flag	//绗1娆¤鏍囪瘑
-	beq 0x01,shutter_dy_shutter_get_first_read_addr
-	beq 0x00,shutter_dy_shutter_next_read_addr
-	rtn
-
-//姣旇緝鏁版嵁锛屽垽鏂槸鍚︿负0
-shutter_dy_campare_otp_data:
-	arg 0x0,regb
-	copy regb, temp
-	fetch 2,mem_otp_shutter_move_data_x
-	icompare 0xffff,temp
-//	isub temp,pdata	//pdata = pdata-temp
-	ncall shutter_dy_set_shutter_valid_data_flag,true
-	arg 0x0,regb
-	copy regb, temp
-	fetch 2,mem_otp_shutter_move_data_y
-	icompare 0xffff,temp
-	ncall shutter_dy_set_shutter_valid_data_flag,true
-	arg 0x0,regb
-	copy regb, temp
-	fetch 1,mem_otp_last_shutter_le_iphone_flag
-	icompare 0xff,temp
-	ncall shutter_dy_set_shutter_valid_data_flag,true
-	rtn
-
-//mem_shutter_temp_count +1 鎿嶄綔
-shutter_dy_set_shutter_valid_data_flag:
-	fetch 1,mem_shutter_temp_count
-	pincrease 1
-	store 1,mem_shutter_temp_count
-	rtn
-shutter_dy_shutter_judge_ios_or_android:
-	jam 1,mem_shutter_temp_count
-	call shutter_dy_shutter_read_ios_android_addr
-	fetch 2,mem_otp_read_ios_android_addr
-	call shutter_dy_shutter_read_move_config_from_otp_addr
-	call shutter_dy_check_iphone
-	copy pdata, temp
-	fetch 1,mem_otp_last_shutter_le_iphone_flag
-	icompare 0xff,temp
-	call shutter_dy_clear_temp_count,true
-
-	fetch 1,mem_shutter_temp_count
-	rtneq 0
-	branch shutter_dy_shutter_judge_ios_or_android
-
-
-shutter_dy_shutter_not_find_ios_or_android:
-	bpatch patch19_3,mem_patch19
-	call shutter_dy_clear_temp_count
-	call shutter_dy_check_iphone
-	branch shutter_dy_shutter_android_save_init_loaction,blank
-	branch shutter_dy_shutter_ios_save_init_loaction
-shutter_dy_shutter_android_save_init_loaction:
-	fetch 2,mem_android_initial_move_x
-	store 2, mem_shutter_move_data_x
-	fetch 2,mem_android_initial_move_y
-	store 2, mem_shutter_move_data_y
-	branch shutter_dy_store_move_config_info
-
-shutter_dy_shutter_ios_save_init_loaction:
-	arg IPHONE_ONCE_MAX_MOVE_VALUE,temp
-//	setarg IPHONE_INITIAL_MOVE_X
-	fetch 2,mem_iphone_initial_move_x
-	arg mem_shutter_move_data_x,rega
-	arg  mem_shutter_iphone_beyond_x_count,regb
-	call shutter_dy_iphone_move_initial_set
-	arg IPHONE_ONCE_MAX_MOVE_VALUE,temp
-//	setarg IPHONE_INITIAL_MOVE_Y
-	fetch 2,mem_iphone_initial_move_y
-	arg mem_shutter_move_data_y,rega
-	arg  mem_shutter_iphone_beyond_y_count,regb
-	call shutter_dy_iphone_move_initial_set
-	setarg 0xfff
-	fetcht 2,mem_shutter_move_data_y
-	isub temp,pdata
-	store 2,mem_shutter_move_data_y
-	branch shutter_dy_store_move_config_info
-
-shutter_dy_clear_temp_count:
-	jam 0,mem_shutter_temp_count
-	rtn
-//鍙栨湁鏁堝湴鍧缁檓em_otp_write_offset_addr
-shutter_dy_campare_effective_addr_read_otp:
-	bpatch patch19_4,mem_patch19
-	jam 1,mem_shutter_first_read_flag
-	call shutter_dy_shutter_uart_config_loop
-	//鑾峰緱浜嗗湴鍧
-	//鏍￠獙鏄惁鏄秺鐣
-//	setarg SHUTTER_EFUSE_END_OFFECT
-	fetch 2,mem_shutter_efuse_end_offset
-	copy pdata, temp
-	fetch 2,mem_otp_read_offset_addr
-	isub temp,pdata	//pdata = pdata-temp
-	arg 0x0,temp	//temp = 0
-	isub temp,null	//null = pdata-temp, 澶т簬绛変簬0锛宲ositive缃1
-	nrtn positive
-	fetch 2,mem_otp_read_offset_addr
-	copy pdata, temp
-//	setarg SHUTTER_EFUSE_START_OFFECT
-	fetch 2,mem_shutter_efuse_start_offset
-	increase -5,pdata
-	isub temp,pdata	//pdata = pdata-temp
-	//璇讳笂涓娆″湴鍧
-//	ncall p_shutter_last_read_addr,zero
-	fetch 2,mem_otp_read_offset_addr
-	store 2,mem_otp_read_ios_android_addr
-	call shutter_dy_shutter_judge_ios_or_android
-	fetch 2,mem_otp_read_ios_android_addr
-	ncall shutter_dy_shutter_read_move_config_from_otp_addr,zero
-
-	//妫鏌ヤ负0鍒欎笉璧嬪
-	jam 0,mem_shutter_temp_count
-	call shutter_dy_campare_otp_data
-	fetch 1,mem_shutter_temp_count
-	rtneq 0
-	branch shutter_dy_read_otp_convert_data
-
-//鍙栨湁鏁堝湴鍧缁檓em_otp_write_offset_addr
-shutter_dy_campare_effective_addr_write_otp:
-	bpatch patch19_5,mem_patch19
-	jam 1,mem_shutter_first_read_flag
-	call shutter_dy_shutter_uart_config_loop
-	//鑾峰緱浜嗗湴鍧
-	//鏍￠獙鏄惁鏄秺鐣
-//	setarg SHUTTER_EFUSE_END_OFFECT
-	fetcht 2,mem_shutter_efuse_end_offset
-//	copy pdata, temp
-	fetch 2,mem_otp_read_offset_addr
-	isub temp,pdata	//pdata = pdata-temp
-	arg 0x0,temp	//temp = 0
-	isub temp,null	//pdata = pdata-temp, 澶т簬绛変簬0锛宲ositive缃1
-	nrtn positive
-	//妫鏌ュ湪鍖洪棿鍐
-	fetcht 2,mem_otp_read_offset_addr
-//	setarg SHUTTER_EFUSE_START_OFFECT
-	fetch 2,mem_shutter_efuse_start_offset
-	isub temp,pdata	//pdata = pdata-temp
-	arg 0x0,temp	//temp = 0
-	isub temp,null	//pdata = pdata-temp, 澶т簬绛変簬0锛宲ositive缃1
-	nrtn positive
-	fetch 2,mem_otp_read_offset_addr
-	store 2,mem_otp_write_offset_addr
-	call shutter_dy_write_otp_convert_data
-
-	branch shutter_dy_shutter_write_move_config_to_otp_addr
-
-
-shutter_dy_shutter_read_move_config_from_otp_addr:
-	copy pdata,regb
-	bpatch patch19_6,mem_patch19
-	arg SHUTTER_PARA_TOTAL_NUM,loopcnt
-//	fetch 2,mem_otp_read_offset_addr
-	arg mem_otp_move_config,rega
-	branch otp_read_data
-
-
-shutter_dy_shutter_write_move_config_to_otp_addr:
-	arg SHUTTER_PARA_TOTAL_NUM,loopcnt
-	arg mem_otp_move_config,rega
-	fetchr regb, 2, mem_otp_write_offset_addr
-	branch otp_write
-
-shutter_dy_shutter_1s_timer:
-	arg mem_shutter_1s_timer,regc
-	arg shutter_dy_store_move_config_info,regb
-	branch timer_single_step
-
-
-
-/*************shutter dy ending*********************/
-
-endif
-
Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/ble_protocol_stack/le.prog
===================================================================
--- /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/ble_protocol_stack/le.prog	(revision 5679)
+++ /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/ble_protocol_stack/le.prog	(nonexistent)
@@ -1,1881 +0,0 @@
-ifdef COMPILE_LE
-//******************************************//
-//*************LE INIT ****************//
-//******************************************//
-
-le_init_conn:
-	bpatchx patch27_3,mem_patch27
-	disable wake
-	jam 1,mem_le_conn_handle
-	jam 3,mem_le_state
-	jam 1,mem_le_arq
-	setarg -1
-	store 2,mem_le_event_count
-	force 0,pdata
-	store 1,mem_le_ch
-	store 1,mem_le_op
-	store 3,mem_sniff_rcv
-	store 3,mem_sniff_lost
-	call le_clear_enc
-	jam 1,mem_le_txheader
-	jam 0,mem_le_txlen
-	jam FUN_RX_LL_1M_PHY,mem_le_rx_phy
-	jam FUN_TX_LL_1M_PHY,mem_le_tx_phy
-	jam 0,mem_le_l2cap_att_states
-	branch le_supervision_flush
-
-le_init_master:
-	bpatchx patch27_4,mem_patch27
-	enable master
-	jam lemode_master,mem_le_mode
-	jam 1,mem_le_att_handle
-	jam 1,mem_le_search_handle_start
-	setarg 0xffff
-	store 2,mem_le_search_handle_end
-	force 0,pdata
-	store 5,mem_ccm_pcnt_rx
-	set1 LE_CCM_DIRECTIONBIT,pdata
-	store 5,mem_ccm_pcnt_tx	
-	branch le_init_conn
-
-
-le_init_slave:
-	bpatchx patch27_5,mem_patch27
-	disable master
- 	setarg 0x17
- 	store 2,mem_le_remote_mtu
-	increase 4,pdata
-	store 2,mem_remote_rx_max_octets
-	jam lemode_slave,mem_le_mode
-	jam 0,mem_le_adv_enable
-	jam 0,mem_lpm_current_mult
-	call le_clear_pairing_state
-	fetch 2,mem_le_superto
-	store 2,mem_le_init_superto
-	fetch 2,mem_le_tsniff
-	mul32 pdata,5,pdata
-	rshift4 pdata,pdata
-	store 2,mem_le_superto			// vol.6 part B 4.5.2 only 6*conninterval before establish
-	branch le_init_conn
-	
-
-//******************************************//
-//*************LE main process*********//
-//******************************************//
-
-le_conn_dispatch:
-	bpatchx patch27_6,mem_patch27
-	call le_enable
- 	fetch 1,mem_le_state
- 	isolate1 lestate_encryption,pdata
- 	setflag true,mark_ble_encryption,mark
-	call app_process_ble
-	fetch 1,mem_le_mode
-	bbit1 mode_master,le_master_dispatch
-	branch le_slave_dispatch
-	
-//******************************************//
-//***********LE master process*********//
-//******************************************//
-	
-le_master_dispatch:
-	bpatchx patch27_7,mem_patch27
-	enable master
-	call le_supervision_update
-	branch le_master_disconn,positive
-	call le_setup
-	call le_prepare_tx
-	disable match
-	call le_transmit_receive_sifs
-	nrtn match
-	fetch 1,mem_le_conn_rcv
-	increase 1,pdata
-	store 1,mem_le_conn_rcv
-	call le_acknowledge
-	branch le_disable_master
-	
-le_master_disconn:
-	call le_disconnect
-le_disable_master:
-	disable master
-	rtn
-	
-//******************************************//
-//***********LE slave process***********//
-//******************************************//
-le_slave_dispatch:
-	bpatchx patch28_0,mem_patch28
-	jam 0,mem_le_md_count
-	set0 mark_ble_crc_fail,mark
-ifdef SECURE_CONNECTION
-	call sp_calc_sequence_256
-	call le_secure_connect_sm
-endif
-	disable attempt
-	call le_supervision_update
-	branch le_slave_disconn,positive
-	fetch 1,mem_le_rx_phy
-	call le_enable_phy_by_pdata
-	call le_setup
-	call le_receive_slave
-	nbranch le_slave_unsync,sync	// vol.6 part B 4.5.1 respond even crc error
-	call le_got_first_packet
-	branch le_slave_match,match
-	bmark1 mark_ble_crc_fail,le_slave_crc_fail
-	branch le_slave_cont
-	
-
-le_slave_crc_fail:
-le_slave_match:
-	bpatchx patch28_1,mem_patch28
-	fetch 1,mem_le_md_count
-	pincrease 1
-	store 1,mem_le_md_count
-	beq LE_MD_MAX_COUNT,le_slave_cont
-	call le_acknowledge
-	call le_prepare_tx
-	fetch 1,mem_le_tx_phy
-	call le_enable_phy_by_pdata
-	call le_transmit
-	call le_parse
-	fetch 2,mem_cb_ble_transmit
-	call callback_func
-	call le_check_md
-	branch le_slave_more_data,user
-le_slave_cont:
-	bpatchx patch28_2,mem_patch28
-	call le_pairing_sm
- 	call le_check_paring_time
-	call check_51cmd
-	fetch 1,mem_le_op
-	bbit1 op_disconn,le_slave_disconn
-le_slave_unsync:
-	bpatchx patch28_3,mem_patch28
-	call end_of_packet
-	call le_lpm_set_mult
-	branch calc_clke_offset
-
-
-le_check_md:
-	bmark1 mark_ble_rx_md,enable_user
-	bmark1 mark_ble_tx_md,enable_user
-	bmark1 mark_ble_crc_fail,enable_user
-	branch disable_user
-
-
-le_slave_more_data:
-	bpatchx patch28_4,mem_patch28
-	enable attempt
-	call le_transmit_receive_sifs_notx
-	branch le_slave_match,match
-	bmark1 mark_ble_crc_fail,le_slave_crc_fail
-	branch le_slave_cont
-
-le_slave_disconn:
-	//fall through
-le_disconnect:
-	bpatchx patch28_5,mem_patch28
-	call le_clear_connection_info
-	call app_disconn_reason_collect_ble
-	call le_clear_pairing_state
-ifdef SECURE_CONNECTION
-	call le_sc_state_clear
-endif
-	jam BT_EVT_LE_DISCONNECTED,mem_fifo_temp
-	branch ui_ipc_send_event
-
-le_clear_connection_info:
-	arg mem_used_map,contw
-	call memset0_16
-	jam 0,mem_le_conn_handle
-	jam lemode_idle,mem_le_mode
-	jam 0,mem_le_state
-le_clear_pairing_state:
-	bpatchx patch28_6,mem_patch28
-	jam FLAG_LE_ENC_NULL,mem_le_enc_state
-	jam FLAG_LE_PAIRING_NULL,mem_le_pairing_state 
-ifdef SECURE_CONNECTION
-	call sp_clear_flags
-endif
-	rtn
-	
-le_got_first_packet:
-	bpatchx patch28_7,mem_patch28
-	fetch 1,mem_le_conn_rcv
-	increase 1,pdata
-	store 1,mem_le_conn_rcv
-	fetch 1,mem_le_state
-	rtnbit1 lestate_got_first_packet
-	set1 lestate_got_first_packet,pdata
-	store 1,mem_le_state
-	fetch 2,mem_le_init_superto
-	store 2,mem_le_superto
-	setarg 0
-	store 4,mem_le_transmit_window
-	rtn
-
-
-//input: pdata is phy mode
-//bit0 is le 1M phy
-//bit1 is le 2M phy
-//bit2 is le coded phy s2
-//bit7 is le coded phy s8
-le_enable_phy_by_pdata:
-	copy pdata,temp
-	bpatchx patch29_0,mem_patch29
-le_enable_phy_by_pdata1:
-	copy temp,pdata
-	bbit1 BIT_LE_1M_PHY,le_enable
-	bbit1 BIT_LE_2M_PHY,le_enable_2M
-	bbit0 BIT_LE_CODED_PHY,le_enable
-	bbit1 BIT_LE_CODED_PHY_S8,le_enable_coded_s8
-	bbit1 BIT_LE_CODED_PHY_S2,le_enable_coded_s2
-	branch le_enable
-
-le_enable_2M:
-	set0 mark_ble_lr,mark
-	set1 mark_ble_2M,mark
-	rtn
-
-le_enable_coded_s2:
-le_enable_coded:
-	set0 mark_ble_2M,mark
-	set1 mark_ble_lr,mark
-	set0 mark_ble_lr_s8,mark
-	rtn
-
-
-le_enable_coded_s8:
-	set0 mark_ble_2M,mark
-	set1 mark_ble_lr,mark
-	set1 mark_ble_lr_s8,mark
-	rtn
-
-le_enable:
-	bpatchx patch29_1,mem_patch29
-	set0 mark_ble_2M,mark
-	set0 mark_ble_lr,mark
-	rtn
-
-
-le_disable:
-	bpatchx patch29_2,mem_patch29
-	set0 mark_ble_encryption,mark
-	jam 0x01,0x8901
-	jam 0x80,0x8920
-	jam 0x03,0x8930
-	rtn
-	
-le_prep:
-	bpatchx patch29_3,mem_patch29
-	disable enable_crc
-	disable enable_white
-	fetch 3,mem_le_crcinit
-	iforce crc24_init
-	fetch 1,mem_le_ch_mapped
-le_prep_next:
-	reverse pdata,temp
-	set1 1,temp
-	rshift temp,white_init
-	rtn
-	
-
-le_rx_setfreq:
-	call le_setfreq
-le_rf_rx_enable:	
-	call set_freq_rx
-	fetch 2,mem_param_pll_setup
-	call sleep
-	branch rf_rx_enable
-
-le_tx_setfreq:
-	branch txon,match
-	bmark1 mark_ble_crc_fail,txon
-le_tx_setfreq0:
-	call le_setfreq
-	branch set_freq_tx
-	
-le_setfreq:
-	bpatchx patch29_4,mem_patch29
-	call set_sync_on
-	fetch 1, mem_le_testtype
-	nbranch le_ctf_test,blank
-	fetch 1,mem_le_ch_mapped
-	sub pdata,36,null
-	branch le_ctf_normal,positive
-	force 0,temp
-	rtneq 37
-	force 24,temp
-	rtneq 38
-	force 78,temp
-	rtn
-	
-le_ctf_normal:
-	sub pdata,10,null
-	branch le_ctf_low,positive
-	increase 1,pdata
-	
-le_ctf_low:	
-	lshift pdata,pdata
-	add pdata,2,temp
-	rtn
-	
-le_ctf_test:
-	fetch 1,mem_le_ch_mapped
-	lshift pdata,temp
-	rtn
-
-le_sca_map:
-	arg 500,temp
-	rtn blank
-	arg 250,temp
-	rtneq 1
-	arg 150,temp
-	rtneq 2
-	arg 100,temp
-	rtneq 3
-	arg 75,temp
-	rtneq 4
-	arg 50,temp
-	rtneq 5
-	arg 40,temp
-	rtneq 6
-	arg 20,temp
-	rtn
-
-
-	
-le_setup:
-	bpatchx patch29_5,mem_patch29
-	enable swfine
-	fetch 4,mem_le_access
-	iforce access
-	call le_map_channel
-	setarg 0x200
-	branch le_setup_master,master
-	fetch 2,mem_le_receive_window
-	rshift pdata,pdata
-le_setup_master:
-	fetcht 2,mem_param_pll_setup
-	iadd temp,pdata
-	call ahead_window
-	deposit clke
-	rtn
-
-
-le_context_nextevent:
-	bpatchx patch29_6,mem_patch29
-	call push_stack_rega_b_c
-	storer loopcnt ,2,mem_loopcnt
-	add rega,coffset_mode,contr
-	ifetch 1,contr
-	rtnbit0 mode_le
-	add rega,coffset_le_event_cnt,contw
-	ifetch 2,contw
-	increase 1,pdata
-	istore 2,contw
-	call le_update_param
-	call le_update_channel_map
-	call le_update_phy	
-	call le_context_nexthop
-	call pop_stack_rega_b_c
-	fetchr loopcnt ,2,mem_loopcnt
-	rtn
-	
-le_context_nexthop:	
-	add rega,coffset_le_hop,contr
-	ifetch 1,contr
-	add rega,coffset_le_ch,contw
-	ifetcht 1,contw
-	iadd temp,pdata
-	sub pdata,36,null
-	branch le_nexthop_nowrap,positive
-	increase -37,pdata
-le_nexthop_nowrap:
-	istore 1,contw
-	rtn
-
-//input rega
-le_calc_channel_map:
-	add rega,coffset_le_channel_map,contr
-	ifetch 5,contr
-	force 0,temp
-	force 37,loopcnt
-le_count_channels_loop:
-	bbit0 0,le_count_channels_notused
-	increase 1,temp
-le_count_channels_notused:
-	rshift pdata,pdata
-	loop le_count_channels_loop
-	add temp,-1,pdata
-	add rega,coffset_le_channels,contw
-	istore 1,contw
-	rtn
-
-le_map_channel:
-	bpatchx patch29_7,mem_patch29
-	fetch 1,mem_le_ch
-	iforce queue
-	fetcht 5,mem_le_channel_map
-	qisolate1 temp
-	branch le_map_channel_end,true
-le_map_channel_next:
-	fetch 1,mem_le_channels
-	isub queue,pdata
-	branch le_map_channel_cont,positive
-	sub pdata,-1,queue
-	branch le_map_channel_next
-le_map_channel_cont:
-	copy queue,loopcnt
-	force 0,queue
-le_map_channel_loop:
-	qisolate1 temp
-	branch le_map_channel_skip,true
-	increase 1,loopcnt
-le_map_channel_skip:
-	deposit loopcnt
-	branch le_map_channel_end,blank
-	increase 1,queue
-	increase -1,loopcnt
-	branch le_map_channel_loop
-le_map_channel_end:
-	deposit queue
-	store 1,mem_le_ch_mapped
-	rtn
-
-
-le_wait_tx:
-	branch le_wait_master,master
-	until null,timeout
-	rtn
-	
-le_wait_master:
-	arg 0xea0,timeup
-	until clkn_rt,meet
-	rtn
-
-le_receive_adv:
-	disable swfine
-	fetch 2,mem_le_scan_window
-	copy pdata,timeup
-	branch le_receive_packet
-
-
-le_receive_slave:
-	bpatchx patch2a_0,mem_patch2a
- 	call le_dec_init
-	enable swfine
-	fetch 2,mem_le_receive_window
-	fetcht 4,mem_le_transmit_window
-	iadd temp,timeup
-le_receive_packet:
-	call le_rx_setfreq
-le_receive_rxon:
-	bpatchx patch2a_1,mem_patch2a
-	call le_prep
-	bmark0 mark_ble_lr,le_receive_nolr
-	pulse dewhiten_code_calc
-	nop 30
-	call le_prep
-	lshift3 timeup,timeup
-le_receive_nolr:
-	disable match
-	enable decode_fec0
-	enable is_rx
-	disable is_tx
-	copy timeup,stop_watch
-	correlate null,timeout
-	branch le_receive_on_attempt,attempt
-	copy clke,temp
-	storet 6,mem_sync_clke
-le_receive_on_attempt:
-	nbranch le_unsync_end,sync
-	enable swfine
-	fetch 1,mem_le_tx_ifs_defference
-	arg PARAM_20MS_INIT,temp
-	iadd temp,temp
-	fetch 1,mem_system_clk
-	imul32 temp,stop_watch
-	call rf_debug_rx_sync_line	//L-H
-	branch le_receive_skip,attempt
-	call calc_clke_all_modem
-	fetch 1,mem_le_state
-	bbit0 lestate_got_first_packet,le_receive_skip
-	call lpm_adjust_clk,wake
-le_receive_skip:
-	call save_rssi
-	enable enable_white
-	enable enable_crc
-	parse demod,bucket,8
-	rshift3 pwindow,pdata
-	store 1,mem_le_rxbuf_data_header
-	parse demod,bucket,8
-	rshift3 pwindow,pdata
-	store 1,mem_le_rxbuf_data_length
- 	copy pdata,loopcnt
-	branch le_rx_nopayload,zero
-
-	bmark1 mark_ble_encryption,le_rx_dec
-
-le_rx_loop:
-	parse demod,bucket,8
-	rshift3 pwindow,pdata
-	istore 1,contw
-	loop le_rx_loop
-	branch le_rx_nopayload
-
-le_rx_dec: 
-	copy contw,regb
-	bpatchx patch2a_2,mem_patch2a
-	call le_check_retransmit	
-//	bmark1 mark_old_packet,le_retransmit_end_of_packet
-	fetchr rega, 1,mem_le_rxbuf_data_length
-	increase -4,rega
-	nbranch le_crc_fail_consecutive,positive
-//	storer rega, 1,mem_le_rxbuf_data_length
-	call le_dec_start	
-	copy regb,contw
-	arg 0,temp
-	fetchr loopcnt, 1,mem_le_rxbuf_data_length
-	increase -4,loopcnt
-	branch le_rx_dec_loop_end,zero
-le_rx_dec_loop:
-	
-	parse demod,bucket,8
-	rshift3 pwindow,pdata
-	istore 1,contw
-	increase 1,temp
-	and temp,0xf,null
-	call le_dec,zero
-	loop le_rx_dec_loop
-le_rx_dec_loop_end:
-	call le_dec_end	
-	copy regb,contw
-	
-
-le_rx_nopayload:
-	bpatchx patch2a_3,mem_patch2a
-	parse demod,bucket,24	
-	rshift32 pdata,pdata
-	rshift16 pdata,pdata
-	istore 3,contw
-	enable swfine
-	call le_set_until_tx_timer
-	branch le_crc_fail,crc_failed
-	bmark0 mark_ble_encryption,le_rx_match
-	fetch 1,mem_le_rxbuf_data_length
-	branch le_rx_match,blank
-	increase -4,pdata
-	store 1,mem_le_rxbuf_data_length
-	call wait_ccm_done
- 	fetch 1,core_misc_status
-	bbit0 7, le_crc_fail_consecutive
- 	force regidx_result,regext_index
-	storer regext, 4,mem_le_peer_mic
-le_rx_match:
-	call rf_debug_rx_crc_line	//L
-	enable match
-	set0 mark_ble_crc_fail,mark
-le_crc_fail_tx:
-	bpatchx patch2a_4,mem_patch2a
-	call ccm_ctrl_clr
-	fetch 1,mem_le_rx_phy
-	nsetflag ble_coded_info,BIT_LE_CODED_PHY_S8,pdata
-	store 1,mem_le_rx_phy
-	call le_match_set_sync_on
-	branch le_match_set_txfreq
-	
-le_match_set_sync_on:	
-	disable decode_fec0
-	branch set_sync_on
-	
-le_match_set_txfreq:
-	bpatchx patch2a_5,mem_patch2a
-	fetcht 1,mem_last_freq
-	branch set_freq_tx_int	
-	
-
-le_dec_init:
-	rtnmark0 mark_ble_encryption
-	call load_sk
-	force regidx_result,regext_index
-	call aes_clear
-	branch aes_clear_data
-	
-	
-le_dec_start:
-	bpatchx patch2a_6,mem_patch2a
-	jam 0,core_ccm_aad0 
-	jam 1,core_ccm_aad1
-	fetch 1,mem_le_rxbuf_data_header
-	and_into 0x3,pdata
-	store 1,core_ccm_aad2
-	
-	setarg mem_le_rxbuf_data_payload
-	store 2,core_ccm_input_playload_addr
-	store 2,core_ccm_output_playload_addr
-
-	fetchr rega, 1,mem_le_rxbuf_data_length
-	increase -4,rega
-
-	fetcht 5,mem_ccm_pcnt_rx	
-	isolate1 mark_old_packet,mark
-	call le_pcnt_rx_sub1,true
-	call ccm_b0
-	setarg 0
-	store 2,core_ccm_inptr
-	jam 6,core_ccm_ctrl
-	jam 7,core_ccm_ctrl	
-	rtn	
-
-le_pcnt_rx_sub1:
-	sub temp,0,null
-	branch le_pcnt_rx_sub1_0,zero
-	increase -1,temp
-	set1 LE_CCM_DIRECTIONBIT,temp
-	rtn
-
-le_pcnt_rx_sub1_0:
-	setarg 0xffffff
-	lshift16 pdata,pdata
-	arg 0xffff,temp
-	ior temp,temp
-	rtn
-
-le_dec:
-	copy contw,regb
-	fetch 1,mem_le_rxbuf_data_length
-	increase -4,pdata
-	isub temp,null
-	rtn zero
-	storet 2,core_ccm_inptr
-	copy regb,contw
-	rtn
-	
-le_dec_end://mic
-	parse demod,bucket,32
-	rshift32 pdata,pdata
-	rshift8 pdata,pdata
-	istore 4,contw
-	copy contw,regb
-//	store 4,mem_le_peer_mic
-	force regidx_data,regext_index
-	copy  pdata,regext
-	storet 2,core_ccm_inptr
-	rtn
-
-//le_mic_error:
-//	branch le_end_of_packet
-
-le_retransmit_end_of_packet:
-	call le_set_until_tx_timer	// start SIFS timer after last bit of crc
-	call end_of_packet
-	branch le_rx_match
-
-le_crc_fail:
-	call rf_debug_rx_crc_fail_line
-	bmark1 mark_adv,le_crc_fail_consecutive
-	bmark1 mark_ble_crc_fail,le_crc_fail_consecutive //two consecutive packets received with an invalid CRC match within a connection event shall close the event
-	set1 mark_ble_crc_fail,mark
-	branch le_crc_fail_tx
-	
-le_unsync_end:	
-le_crc_fail_consecutive:
-	set0 mark_ble_crc_fail,mark
-	branch le_end_of_packet
-
-le_end_of_packet:
-	bpatchx patch2a_7,mem_patch2a
-	call ccm_ctrl_clr
-	branch end_of_packet
-
-calc_clke_all_modem:
-	fetcht  6,mem_sync_clke
-	copy clke,pdata
-	call clk_diff
-	copy pdata,temp
-	call calc_clke_all_modem_1
-	copy clke,rege
-	copy clke_rt,pdata
-	iadd temp,pdata
-//	add pdata,8,pdata
-	copy pdata,clke_rt	
-	rtn
-	
-calc_clke_all_modem_1:
-	bmark1 mark_ble_lr,calc_clke_modem_coded
-	bmark1 mark_ble_2M,calc_clke_modem_2M
-	fetch 2,mem_param_clke_cal_le_1m
-	copy pdata,clke_rt
-	copy bt_clk,clke_bt
-	rtn
-
-
-calc_clke_modem_coded:
-	fetch 2,mem_param_clke_cal_le_coded
-	copy pdata,clke_rt
-	add bt_clk,1,clke_bt
-	rtn
-
-calc_clke_modem_2M:
-	fetch 2,mem_param_clke_cal_le_2m
-	copy pdata,clke_rt
-	copy bt_clk,clke_bt
-	rtn
-
-
-le_set_until_tx_timer:
-	fetch 1,mem_le_rxbuf_data_length
-	add pdata,5,temp	//PDU Length
-	lshift3 temp,temp	//PDU bit size
-	fetch 1,mem_le_rx_phy
-	bmark1 mark_ble_lr,le_set_until_tx_timer_rx_lr
-	bbit1 BIT_LE_1M_PHY,le_set_until_tx_timer_rx_1M
-	bbit1 BIT_LE_2M_PHY,le_set_until_tx_timer_rx_2M
-le_set_until_tx_timer_rx_lr:
-	branch le_set_until_tx_timer_rx_coded_s2,ble_coded_info
-	branch le_set_until_tx_timer_rx_coded_s8
-
-le_set_until_tx_timer_rx_1M:
-	branch le_calc_stop_watch
-
-le_set_until_tx_timer_rx_2M:
-	rshift temp,temp
-	branch le_calc_stop_watch
-
-le_set_until_tx_timer_rx_coded_s2:
-	add temp,3,temp	//term2
-	lshift temp,temp
-	branch le_set_until_tx_timer_rx_coded
-
-le_set_until_tx_timer_rx_coded_s8:
-	add temp,3,temp	//term2
-	lshift3 temp,temp
-le_set_until_tx_timer_rx_coded:
-	setarg PARAM_CODED_C1_TERM1_TIME_40US
-	iadd temp,temp
-	branch le_calc_stop_watch
-
-le_calc_stop_watch:
-	fetch 1,mem_system_clk
-	imul32 temp,temp		//mips cpu
-	arg PARAM_20MS_INIT,rega
-	imul32 rega,pdata
-	isub temp,temp
-	copy stop_watch,pdata
-	isub temp,stop_watch
-	rtn
-
-le_transmit_receive_sifs_without_change_mode:
-	call le_transmit
-	fetcht 1,mem_last_freq
-	call set_freq_rx
-	call rf_rx_enable
-	enable swfine
-	arg 5500,timeup
-	branch le_receive_rxon
-
-
-le_transmit_receive_sifs:
-	bpatchx patch2b_0,mem_patch2b
-	fetch 1,mem_le_tx_phy
-	call le_enable_phy_by_pdata
-	call le_transmit
-le_transmit_receive_sifs_notx:
-	fetch 1,mem_le_rx_phy
-	call le_enable_phy_by_pdata
-
-	fetcht 1,mem_last_freq
-	call set_freq_rx
-	call rf_rx_enable
-	enable swfine
-	arg 5500,timeup
-	bmark0 mark_ble_lr,le_receive_rxon
-	arg 8500,timeup
-	branch le_receive_rxon
-
-le_transmit_norx:
-	bpatchx patch2b_1,mem_patch2b
-	call le_transmit
-	branch end_of_packet
-	
-le_transmit:
-	bpatchx patch2b_2,mem_patch2b
-	call le_prep
-	call le_tx_setfreq
-	call rf_debug_tx_on_line	//H
-	set1 TXGFSK,radio_ctrl
-	enable encode_fec0
-	enable is_tx
-	disable is_rx
-	call le_wait_tx
-	disable lr_s2en
-	bmark1 mark_ble_lr,le_transmit_lr
-	bmark1 mark_ble_2M,le_transmit_2M
-	rshift16 access,pdata
-	rshift8 pdata,pdata
-	rshift4 pdata,pdata
-	inject mod,40
-le_transmit_packet:
-	enable enable_white
-	enable enable_crc
-	bpatchx patch2b_3,mem_patch2b
-	fetch 1,mem_le_txheader
-	inject mod,8
-	ifetch 1,contr
-	copy pdata,loopcnt
-	inject mod,8
-	sub loopcnt,0,null
-	branch le_tr_nopayload,zero
-
-	fetch 1,core_ccm_ctrl
-	branch le_transmit_packet_not_enc,blank 
-	bmark1 mark_ble_encryption,le_transmit_packet_enc
-le_transmit_packet_not_enc:	
-	arg mem_le_txpayload,contr
-le_tr_loop:
-	ifetch 1,contr
-	inject mod,8
-	loop le_tr_loop
-	
-le_tr_nopayload:
-	enable enable_parity
-	inject mod,24
-	disable enable_parity
-	bmark0 mark_ble_lr,le_transmit_skip
-	disable enable_white
-	setarg 0
-	inject mod,3
-le_transmit_skip:
-	until null,tx_clear
-	nop 100          /* flush out the last bit */
-	bpatchx patch2b_4,mem_patch2b
-	disable encode_fec0
-	disable encode_fec3
-	call set_sync_on
-	call rf_debug_tx_off_line	//L
-le_check_start_pause_enc:
-	fetch 1,mem_le_txheader
-	and pdata,LLID_LE_LL,pdata
-	rtnne LLID_LE_LL
-	fetch 1,mem_le_enc_state
-	beq  FLAG_LE_ENC_PAUSE,le_clear_enc
-	rtnne FLAG_LE_SEND_START_ENC_REQ
-	fetch 1,mem_le_txpayload
-	beq LL_START_ENC_REQ,le_set_enc
-	rtn
-	
-
-le_transmit_packet_enc:
-	increase -4,loopcnt
-	copy loopcnt,temp	
-	call ccm_wait_enc	
-	arg mem_le_txpayload,contr
-le_transmit_packet_enc_loop:
-	ifetch 1,contr
-	inject mod,8
-	loop le_transmit_packet_enc_loop
-	call ccm_check_enc_done
-	copy regext,pdata
-	inject mod,32
-	branch le_tr_nopayload
-
-le_transmit_lr:
-	arg 10,loopcnt
-le_transmit_lr_preamble_loop:
-	setarg 0x3c
-	inject mod,8
-	loop le_transmit_lr_preamble_loop
-	disable encode_fec0
-	enable encode_fec3
-	rshift16 access,pdata
-	rshift16 pdata,pdata
-	rshift4 pdata,pdata
-	inject mod,32
-	bmark1 mark_ble_lr_s8,le_transmit_lr_s8
-le_transmit_lr_s2:
-	setarg 1
-	inject mod,5
-	enable lr_s2en
-	branch le_transmit_packet
-
-le_transmit_lr_s8:
-	setarg 0
-	inject mod,5
-	branch le_transmit_packet
-
-le_transmit_2M:
-	fetch 1,mem_system_clk	
-	fetcht 1,mem_le_tx2m_delay
-	iadd temp,pdata
-	call sleep				//2M 前端发送比1M快
-	rshift16 access,pdata
-	rshift8 pdata,pdata
-	rshift4 pdata,temp
-	copy temp,pdata
-	inject mod,8
-	copy temp,pdata
-	inject mod,40
-	branch le_transmit_packet
-	
-
-le_update_param:
-	arg le_update_param_ahead1_cb,regc
-	arg le_update_param_cb,regb
-	arg lestate_update_param,queue
-	branch le_check_update_flag
-
-le_update_param_ahead1_cb:
-	add rega,coffset_sniff_anchor,contr
-	ifetcht 4,contr
-	add rega,coffest_le_new_transmitwindowsize,contr
-	ifetch 1,contr
-	add rega,coffset_le_window_size,contw
-	istore 1,contw
-	ifetch 2,contr
-	lshift2 pdata,pdata
-	iadd temp,timeup	//add windowsize
-	add rega,coffset_sniff_anchor,contw  
-	deposit timeup
-	istore 4,contw
-	ifetch 2,contr
-	lshift2 pdata,pdata
-	add rega,coffset_tsniff,contw
-	istore 2,contw
-	ifetch 2,contr
-	add rega,coffset_le_slave_latency,contw
-	istore 2,contw
-	ifetch 2,contr
-	store 2,mem_le_init_superto
-	branch le_receive_window_size
-
-le_update_param_cb:
-	ifetch 1,rega
-	set0 lestate_got_first_packet,pdata
-	istore 1,rega
-	storer rega,2,mem_rega
-	jam BT_EVT_LE_PARSE_CONN_PARAM_ACCEPTED,mem_fifo_temp
-	call ui_ipc_send_event
-	fetchr rega,2,mem_rega
-	rtn	
-
-le_update_channel_map:
-	arg 0,regc
-	arg le_update_channel_map_cb,regb
-	arg lestate_update_map,queue
-	branch le_check_update_flag
-	
-le_update_channel_map_cb:
-	add rega,coffset_le_new_map,contr
-	ifetch 5,contr
-	add rega,coffset_le_channel_map,contw
-	istore 5,contw
-	branch le_calc_channel_map
-	
-
-le_update_phy:
-	arg 0,regc
-	arg le_update_phy_cb,regb
-	arg lestate_update_phy,queue
-	branch le_check_update_flag
-	
-le_update_phy_cb:
-	add rega,coffset_le_new_m2s_phy,contr
-	ifetch 1,contr
-	call le_update_phy_cb_m2s
-	istore 1,contw
-	add rega,coffset_le_new_s2m_phy,contr
-	ifetch 1,contr
-	call le_update_phy_cb_s2m
-	istore 1,contw
-	storer rega,2,mem_rega
-	jam BT_EVT_LE_UPDATE_PHY,mem_fifo_temp
-	call ui_ipc_send_event
-	fetchr rega,2,mem_rega
-	rtn	
-
-le_update_phy_cb_m2s:
-	call le_update_phy_cb_m2s_no_change,blank
-	add rega,coffset_le_rx_phy,contw
-	nrtn master
-	fetcht 1,mem_le_tx_phys
-	isolate1 BIT_LE_CODED_PHY_S8,temp
-	setflag true,BIT_LE_CODED_PHY_S8,pdata
-	add rega,coffset_le_tx_phy,contw
-	rtn
-
-le_update_phy_cb_m2s_no_change:
-	add rega,coffset_le_rx_phy,contr
-	ifetch 1,contr
-	nrtn master
-	add rega,coffset_le_tx_phy,contr
-	ifetch 1,contr
-	rtn
-
-le_update_phy_cb_s2m:
-	call le_update_phy_cb_s2m_no_change,blank
-	fetcht 1,mem_le_tx_phys
-	isolate1 BIT_LE_CODED_PHY_S8,temp
-	setflag true,BIT_LE_CODED_PHY_S8,pdata
-	add rega,coffset_le_tx_phy,contw
-	nrtn master
-	set0 BIT_LE_CODED_PHY_S8,pdata
-	add rega,coffset_le_rx_phy,contw
-	rtn
-
-le_update_phy_cb_s2m_no_change:
-	add rega,coffset_le_tx_phy,contr
-	ifetch 1,contr
-	nrtn master
-	add rega,coffset_le_rx_phy,contr
-	ifetch 1,contr
-	rtn
-	
-
-//regb regc is cb function
-//queue is state flag
-le_check_update_flag:
-	bpatchx patch2b_5,mem_patch2b
-	ifetch 1,rega
-	qisolate0 pdata
-	rtn true
-	add rega,coffset_le_event_cnt,contr
-	ifetcht 2,contr
-	add rega,coffset_le_instant,contr
-	ifetch 2,contr
-	
-	isub temp,pdata
-	branch le_update,zero
-	nbranch le_check_update_small,positive
-	sub pdata,1,null
-	branch le_update_ahead1,zero
-	rtn
-	
-le_update_ahead1:
-	copy regc,pdata
-	branch callback_func
-
-le_update:
-	ifetch 1,rega
-	qset0 pdata
-	istore 1,rega
-	copy regb,pdata
-	branch callback_func
-	
-le_check_update_small:
-	add rega,coffset_le_event_cnt,contr
-	ifetch 2,contr
-	add rega,coffset_le_instant,contr
-	ifetch 2,contr
-	isub temp,pdata
-	arg 0xffff,temp
-	isub temp,null
-	branch le_update,zero
-	arg 0xf000,temp
-	isub temp,null
-	nbranch le_update,positive
-	rtn
-	
-
-le_check_retransmit:
-	fetcht 1,mem_le_arq
-	fetch 1,mem_le_rxbuf_data_header
-//	isolate1 md,pdata
-//	setflag true,mark_ble_rx_md,mark
-	rshift pdata,pdata
-	ixor temp,pdata
-	isolate1 nesn,pdata
-	setflag true,mark_old_packet,mark	/* retransmit */
-	rtn
-
-
-le_acknowledge:
-	bpatchx patch2b_6,mem_patch2b
-	call le_supervision_flush
-	rtnmark1 mark_ble_crc_fail
-	call le_check_wak
-	fetch 1,mem_le_rxbuf_data_header
-	isolate1 md,pdata
-	setflag true,mark_ble_rx_md,mark
-	rshift pdata,pdata
-	ixor temp,pdata
-	isolate1 nesn,pdata
-	setflag true,mark_old_packet,mark	/* retransmit */
-	rtnmark1 mark_old_packet
-	fetch 1,mem_le_rxbuf_data_length
-	branch le_ack_unenc,blank		/* empty packet, no decryption */
-	fetch 1,mem_le_state
-	bbit0 lestate_encryption,le_ack_unenc
-	fetcht 4,mem_le_peer_mic
-	fetch 4,mem_ccm_last_mic			
-	isub temp,null
-	branch assert,zero
-	storet 4,mem_ccm_last_mic
-	fetch 5,mem_ccm_pcnt_rx
-	increase 1,pdata
-	set1 LE_CCM_DIRECTIONBIT,pdata
-	store 5,mem_ccm_pcnt_rx
-	
-le_ack_unenc:
-	fetcht 1,mem_le_arq
-	setflip nesn,temp
-	storet 1,mem_le_arq
-	fetch 1,mem_le_configuration
-	rtnbit0 BIT_BLE_DEAL_BB_PACKET
-	bpatchx patch2b_7,mem_patch2b
-	fetch 1,mem_le_rxbuf_data_length
-	rtn blank		//empty packet
-	fetch 1,mem_le_rxbuf_data_header
-	compare LLID_CONTINUE,pdata,3
-	branch le_parse_writing_attribute_continue,true //ACL-U continue
-	compare LLID_START,pdata,3
-	branch le_parse_writing_attribute_start,true
-	rtn
-
-	
-le_check_wak:
-	bpatchx patch2c_0,mem_patch2c
-	fetcht 1,mem_le_arq
-	isolate0 wak,temp
-	rtn true
-	fetch 1,mem_le_rxbuf_data_header
-	lshift pdata,pdata
-	ixor temp,pdata
-	rtnbit0 sn			/* received NESN is same as SN, NAK */
-	set0 wak,temp
-	setflip sn,temp
-	storet 1,mem_le_arq
-	compare 3,temp,3
-//	nrtn true
-	rtn
-	
-
-le_set_enc:
-	fetch 1,mem_le_state
-	set1 lestate_encryption,pdata
-	store 1,mem_le_state
-	set1 mark_ble_encryption,mark
-	rtn	
-	
-le_clear_enc:
-	bpatchx patch2c_1,mem_patch2c
-	jam FLAG_LE_ENC_NULL,mem_le_enc_state
-	arg 0,pdata
-	store 4,mem_ccm_last_mic
-	store 5,mem_ccm_pcnt_tx
-	set1 LE_CCM_DIRECTIONBIT,pdata
-	store 5,mem_ccm_pcnt_rx
-	fetch 1,mem_le_state
-	set0 lestate_encryption,pdata
-	store 1,mem_le_state
-	set0 mark_ble_encryption,mark
-	rtn
-
-
-
-
-le_scan_check_sender_addr_type:
-	arg 1,rega// sender_addr_type
-	fetch 1,mem_le_rxbuf_adv_connect_ind_header
-	rtnbit1 LE_SENDER_ADDR_BIT
-	arg 0,rega
-	rtn
-
-
-le_get_master_rx_max:
-	copy contr,contw
-	fetcht 2,mem_remote_rx_max_octets
-	copy contw,contr
-	rtn
-
-
-le_prepare_tx:
-	bpatchx patch2c_2,mem_patch2c
-	fetch 1,mem_le_arq
-	rtnbit1 wak
-	call le_check_tx_md
-	call le_fifo_get_first_tx_ptr	//no packet to send
-	branch le_send_empty,blank
-	ifetch 2,contr
-	ifetcht 2,contr
-	copy temp,rega
-	isub rega,pdata
-	call le_get_master_rx_max
-	call not_greater_than
-	copy pdata,temp
-	ifetchr type,1,contr
-	copy rega,pdata
-	iadd contr,pdata
-	store 2,mem_contr
-	call le_update_tx_type
-	call le_send_packet
-	
-	call le_fifo_get_first_tx_ptr
-	ifetch 2,contr
-	copy pdata,rega	//rega:total length
-	copy contr,regc
-	ifetcht 2,contr
-	copy temp,regb	//temp&regb is offset
-	isub regb,pdata
-	call le_get_master_rx_max
-	call not_greater_than
-	iadd regb,pdata
-	istore 2,regc
-	isub rega,null
-	nrtn zero
-	branch le_fifo_release_first_node
-
-	
-le_check_tx_md:
-	call le_check_continue
-	rtnmark1 mark_ble_tx_md
-	fetch 1,mem_le_configuration
-	bbit0 BIT_BLE_TRANSMIT_PACKET_BY_MD,le_clear_md
-	call le_fifo_get_second_tx_ptr	//no packet to send
-	branch le_clear_md,blank
-	branch le_set_md
-
-	
-le_check_continue:
-	call le_fifo_get_first_tx_ptr	//no packet to send
-	branch le_clear_md,blank
-	ifetch 2,contr				//pdata:length
-	ifetcht 2,contr				//temp:offest
-	isub temp,rega			//pdata:length - offset
-	call le_get_master_rx_max
-	copy temp,pdata
-	isub rega,null
-	branch le_clear_md,positive				//27 > length -offset
-le_set_md:
-	set1 mark_ble_tx_md,mark
-	rtn
-
-le_clear_md:
-	set0 mark_ble_tx_md,mark
-	rtn
-
-le_update_tx_type:
-	copy rega,pdata
-	rtn blank
-	arg LLID_CONTINUE,type
-	rtn
-
-
-le_att_check_notification_enable: // temp ->handle,output-> pdata,output :contr->rega
-	bpatchx patch2c_3,mem_patch2c
-	increase 1,temp
-	call le_att_get_handle_ptr
-	increase -2,contr
-	ifetch 2,contr
-	arg CLIENT_CHARACTERTIC_CONFIGURATION,temp
-	isub temp,null
-	nrtn zero
-	increase 1,contr
-	copy contr,rega
-	ifetch 1,contr
-	rtn
-	
-
-le_send_empty:
-	force 0,temp
-	force 1,type
-	
-le_send_packet:
-	bpatchx patch2c_4,mem_patch2c
-	storet 1,mem_le_txlen
-	fetcht 1,mem_le_arq
-	set1 wak,temp
-	and temp,0xfc,pdata
-	ior type,pdata
-	store 1,mem_le_arq
-	and_into 0x1f,pdata
-	isolate1 mark_ble_tx_md,mark
-	setflag true,md,pdata
-	store 1,mem_le_txheader
-
-	fetch 1,mem_le_txheader
-	compare 1,type,3
-	nbranch le_send_no_txlen,true
-	fetch 1,mem_le_txlen
-	rtn blank
-	
-le_send_no_txlen:	
-	bmark1 mark_ble_encryption,le_send_packet_enc
-	fetchr loopcnt,1,mem_le_txlen
-	fetch 2,mem_contr
-	copy pdata,contr
-	arg mem_le_txpayload,contw
-	branch memcpy_fast
-	
-le_send_packet_enc:
-	call load_sk
-	branch le_encrypt_new_start
-
-get_lpm_wake_ble_rx_lock:
-	arg wake_lock_ble_rx,queue
-	branch lpm_get_wake_lock
-
-put_lpm_wake_ble_rx_lock:
-	arg wake_lock_ble_rx,queue
-	branch lpm_put_wake_lock
-
-
-le_parse:
-	bpatchx patch2c_5,mem_patch2c
-	rtnmark1 mark_old_packet
-	rtnmark1 mark_ble_crc_fail
-	fetch 1,mem_le_rxbuf_data_header
-	and pdata,0x3,pdata
-	store 1,mem_le_packet_llid
-	fetch 1,mem_le_rxbuf_data_length
-	rtn blank							//empty rtn
-	setarg mem_le_rxbuf_data_payload
-	store 2,mem_le_payload_ptr
-	bpatchx patch2c_6,mem_patch2c
-	fetch 1,mem_le_packet_llid
-	rtneq LLID_RESERVED
-	beq LLID_LE_LL,le_parse_ll
-le_parse_l2cap:
-	call le_check_l2cap_complete
-	nbranch get_lpm_wake_ble_rx_lock,user
-	call put_lpm_wake_ble_rx_lock
-	setarg 0
-	store 2,mem_le_packet_len_recved
-	fetch 2,mem_le_payload_ptr
-	add pdata,2,contr	//l2cap length
-	bpatchx patch2c_7,mem_patch2c
-	ifetch 2,contr
-	beq LE_L2CAP_CID_ATT,le_parse_att
-	beq LE_L2CAP_CID_SMP,le_parse_smp
-	beq LE_L2CAP_CID_SIGNAL,le_parse_signaling
-	rtn
-
-
-le_check_l2cap_complete:
-	fetch 1,mem_le_packet_llid
-	beq LLID_START,le_check_l2cap_llid_start
-	beq LLID_CONTINUE,le_check_l2cap_llid_continue
-	rtn
-
-//input: pdata is CID number
-//output: 	if CID is legal ,enable user
-//		if ICD is illegal,disable user 
-le_check_l2cap_CID_legal:
-	call enable_user
-	arg LE_L2CAP_CID_ATT,temp
-	isub pdata,null
-	rtn zero
-	arg LE_L2CAP_CID_SIGNAL,temp
-	isub pdata,null
-	rtn zero
-	arg LE_L2CAP_CID_SMP,temp
-	isub pdata,null
-	rtn zero
-	branch disable_user
-
-	
-le_check_l2cap_llid_start:
-	fetch 2,mem_le_payload_ptr
-	copy pdata,contr
-	ifetch 2,contr
-	store 2,mem_le_l2cap_size
-	ifetch 2,contr			//CID
-	call le_check_l2cap_CID_legal
-	nrtn user		//CID error
-	fetcht 1,mem_le_rxbuf_data_length
-	storet 2,mem_le_packet_len_recved
-	fetch 2,mem_le_l2cap_size
-	increase 4,pdata		//CID:2 L2cap length 2
-	isub temp,null
-	branch enable_user,zero
-	fetchr loopcnt,1,mem_le_rxbuf_data_length
-	arg mem_le_l2cap_buf,contw
-	fetch 2,mem_le_payload_ptr
-	copy pdata,contr
-	call memcpy_fast
-	branch disable_user
-
-//no input
-//output: 	if CID is legal ,enable user
-//		if ICD is illegal,disable user 
-le_check_l2cap_continue_legal:
-	call enable_user
-	fetch 2,mem_le_packet_len_recved
-	nrtn blank
-	branch disable_user
-
-le_check_l2cap_llid_continue:
-	call le_check_l2cap_continue_legal
-	nrtn user		//check receive start packet
-	fetch 2,mem_le_packet_len_recved
-	arg mem_le_l2cap_buf,contw
-	iadd contw,rega
-	fetcht 1,mem_le_rxbuf_data_length
-	iadd temp,pdata
-	store 2,mem_le_packet_len_recved
-	fetchr loopcnt,1,mem_le_rxbuf_data_length
-	copy rega,contw
-	fetch 2,mem_le_payload_ptr
-	copy pdata,contr
-	call memcpy_fast
-	setarg mem_le_l2cap_buf
-	store 2,mem_le_payload_ptr		//update ptr->mem_le_l2capbuff
-	fetch 2,mem_le_l2cap_size
-	increase 4,pdata
-	fetcht 2,mem_le_packet_len_recved
-	isub temp,null
-	branch enable_user,zero
-	branch disable_user
-
-
-
-	/* rega pointers to data, regb is length */
-le_writeatt_cb:
-	fetch 2,mem_cb_att_write
-	branch callback_func
-	
-le_supervision_update:
-	bpatchx patch2d_0,mem_patch2d
-	fetcht 4,mem_le_supervision_timer
-	call get_clkbt
-	isub temp,timeup					/* and to 28 bits */
-	deposit timeup
-	fetcht 2,mem_le_superto
-	lshift4 temp,temp
-	lshift temp,temp
-	isub temp,pdata
-	rtn
-	
-le_supervision_flush:
-	call get_clkbt
-	store 4,mem_le_supervision_timer
-	rtn
-
-	
-//input rega
-le_receive_window_size:
-	bpatchx patch2d_1,mem_patch2d
-	add rega, coffset_le_peer_sca,contr
-	ifetch 1,contr
-	call le_sca_map
-	add rega, coffset_tsniff,contr
-	ifetch 2,contr
-	imul32 temp,pdata
-	fetcht 2,mem_param_rt_rthalfslot
-	imul32 temp,pdata
-	arg 1000000,temp
-	idiv temp
-	arg PARAM_WINDOWN_SIZE,temp
-	fetch 1,mem_system_clk
-	imul32 temp,temp
-	add rega, coffset_le_window_size,contr
-	ifetch 1,contr
-	imul32 temp,pdata
-	iadd temp,pdata
-	store 4,mem_le_transmit_window	
-	fetch 2,mem_rx_window_sniff
-	call wait_div_end
-	quotient temp
-	iadd temp,pdata
-	add rega, coffset_rx_window,contw
-	istore 2,contw
-	rtn
-
-	
-
-	
-le_modified_name:
-	bpatchx patch2d_2,mem_patch2d
-	call le_modified_name_att_list
-	branch le_modified_name_adv
-
-le_modified_name_att_list:
-	jam 2,mem_le_search_att_type_length
-	arg UUID_CHRCTR_DEVICE_NAME,temp
-	storet 2,mem_le_search_att_type
-	call le_att_get_uuid_ptr
-	rtn blank
-	ifetch 1,contr						// attribute length
-	copy contr,contw
-	fetcht 1,mem_le_name_len
-	copy temp,loopcnt
-	isub temp,null
-	nbranch le_name_length_longer_than_att,positive
-	isub temp,temp
-	arg mem_le_name,contr
-	call memcpy_fast
-	copy temp,loopcnt
-	ncall memcpy_empty,zero
-	rtn
-le_name_length_longer_than_att:
-	copy pdata,loopcnt
-	arg mem_le_name,contr
-	branch memcpy_fast
-
-
-le_modified_name_adv:
-	arg mem_le_adv_data_len+32,regc
-	arg mem_le_adv_data,rega
-	call le_modified_name_adv_and_scan
-	setarg 0
-	setflag user,0,pdata
-	store 1,mem_pdatatemp
-	arg mem_le_scan_data_len+32,regc
-	arg mem_le_scan_data,rega
-	call le_modified_name_adv_and_scan
-	rtn user
-	fetch 1,mem_pdatatemp
-	branch assert,blank
-	rtn
-
-
-le_modified_name_adv_and_scan:
-	bpatchx patch2d_3,mem_patch2d
-	call enable_user
-	call clear_temp_block
-	arg 0,regb	//current length
-	arg mem_le_data_temp,contw
-	call le_modified_name_adv_loop
-	fetch 1,mem_le_name_len
-	add pdata,1,temp
-	iadd regb,rega	
-	increase 2,rega
-	sub rega,0x1f,null
-	nbranch le_modified_name_adv_and_scan_name_overflow,positive
-	istoret 1,contw		//store ble name length
-	arg GAP_ADTYPE_LOCAL_NAME_COMPLETE,temp
-	istoret 1,contw		//store ble name type
-	iforce loopcnt
-	call memcpy_fast
-	copy rega,regb
-le_modified_name_adv_and_scan_store_data:
-	deposit regb
-	store 1,mem_le_data_len_temp
-	arg mem_le_data_len_temp,contr
-	setarg -32
-	iadd regc,contw
-	branch memcpy32
-
-le_modified_name_adv_and_scan_name_overflow:
-	call disable_user
-	branch le_modified_name_adv_and_scan_store_data
-	
-le_modified_name_adv_loop:
-	ifetch 1,rega		//pdata:length
-	rtn blank			//length is zero,ending find
-	pincrease 1		//length += 1
-	ifetcht 1,contr		//pdata:type
-	sub temp,GAP_ADTYPE_LOCAL_NAME_COMPLETE,null
-	branch le_modified_name_adv_found_name,zero
-	iadd regb,regb	
-	copy rega,contr
-	iforce loopcnt
-	call memcpy_fast
-	copy contr,rega
-le_modified_name_adv_loop2:
-	deposit rega
-	isub regc,null
-	rtn positive
-	branch le_modified_name_adv_loop
-
-le_modified_name_adv_found_name:
-	iadd rega,rega
-	branch le_modified_name_adv_loop2
-
-
-memcpy_empty:
-	setarg SPACE
-	istore 1,contw
-	loop memcpy_empty
-	rtn
-
-	
-le_lpm_set_mult:
-	bpatchx patch2d_4,mem_patch2d
-	disable wake
-	branch le_lpm_set_mult_attempt,attempt
-	nbranch le_lpm_lost,match
-le_lpm_set_mult_attempt:
-	call lpm_match
-	fetch 2,mem_rx_window_sniff
-	store 2,mem_le_receive_window
-	fetch 1,mem_le_configuration
-	bbit1 BIT_BLE_SHORT_MULT,lpm_mult_short	//check flag,if flag is 1,always short mult
-	bmark1 mark_old_packet,lpm_mult_short
-	fetch 1,mem_le_rxbuf_data_length
-	nbranch lpm_mult_short,blank		// rx not empty, short interval
-	fetch 1,mem_le_txlen
-	nbranch lpm_mult_short,blank		// tx not empty, short interval
-	
-	fetch 1,mem_le_state
-	bbit1 lestate_update_param,lpm_mult_short
-	bbit1 lestate_update_phy,lpm_mult_short
-	bbit1 lestate_update_map,lpm_mult_short
-	branch lpm_mult_wait_timeout
-	
-le_lpm_lost:
-	fetch 1,mem_sniff_unint_lost
-	sub pdata,30,null
-	nbranch lpm_lost,positive
-	fetcht 2,mem_rx_window_sniff
-	rshift temp,temp
-	fetch 2,mem_le_receive_window
-	iadd temp,pdata
-	store 2,mem_le_receive_window
-	branch lpm_lost
-
-///////////////////////////////BLE CONFIG//////////////////////////////////////////
-le_set_config_fixed_tk:
-	arg BIT_BLE_PASSKEY_FIXED_KEY,queue
-	branch le_set_config
-
-le_clr_config_fixed_tk:
-	arg BIT_BLE_PASSKEY_FIXED_KEY,queue
-	branch le_clr_config
-
-le_set_config_fixed_ltk:
-	arg BIT_BLE_PAIRING_FIXED_LTK,queue
-	branch le_set_config
-
-le_clr_config_fixed_ltk:
-	arg BIT_BLE_PAIRING_FIXED_LTK,queue
-	branch le_clr_config
-
-le_set_config_more_data:
-	arg BIT_BLE_TRANSMIT_PACKET_BY_MD,queue
-	branch le_set_config
-
-le_clr_config_more_data:
-	arg BIT_BLE_TRANSMIT_PACKET_BY_MD,queue
-	branch le_clr_config
-
-le_set_config_read_authentication:
-	arg BIT_BLE_READ_AUTH,queue
-	branch le_set_config
-
-le_clr_config_read_authentication:
-	arg BIT_BLE_READ_AUTH,queue
-	branch le_clr_config
-
-le_set_config_write_authentication:
-	arg BIT_BLE_WRITE_AUTH,queue
-	branch le_set_config
-
-le_clr_config_write_authentication:
-	arg BIT_BLE_WRITE_AUTH,queue
-	branch le_clr_config
-
-le_set_config_short_mult:
-	arg BIT_BLE_SHORT_MULT,queue
-//	branch le_set_config
-le_set_config:
-	fetch 1,mem_le_configuration
-	qset1 pdata
-	store 1,mem_le_configuration
-	rtn
-
-
-le_clr_config_short_mult:
-	arg BIT_BLE_SHORT_MULT,queue
-//	branch le_clr_config
-le_clr_config:
-	fetch 1,mem_le_configuration
-	qset0 pdata
-	store 1,mem_le_configuration
-	rtn
-
-
-
-le_set_fixed_ltk:
-	setarg 0x112233
-	store 3,mem_le_fixed_ltk
-	setarg 0x445566
-	istore 3,contw
-	setarg 0x778899
-	istore 3,contw
-	setarg 0x001122
-	istore 3,contw
-	setarg 0x334455
-	istore 3,contw
-	setarg 0x66
-	branch istore_1_contw_rtn
-
-
-
-le_set_justwork:
-	setarg 0x01000302
-	store 4,mem_le_pres
-	setarg 0x010010
-	store 3,mem_le_pres_max_keysize
-	jam 1,mem_le_pairing_mode
-	rtn
-
-/////////////////////////////////////////////////////////////////////////
-
-le_fifo_malloc_tx_empty:
-	arg 0,rega
-	arg LLID_EMPTY,type
-	branch le_fifo_malloc_tx
-
-
-//rega:len regb:ll opcode
-le_fifo_malloc_tx_ll:
-	bpatchx patch2d_5,mem_patch2d
-	arg LLID_LE_LL,type
-	call le_fifo_malloc_tx
-	copy regb,pdata
-	istore 1,contw
-	rtn
-	
-
-//rega:len regb:cid
-le_fifo_malloc_tx_l2cap:
-	bpatchx patch2d_6,mem_patch2d
-	force LLID_START,type
-	increase 4,rega
-	call le_fifo_malloc_tx
-	increase -4,rega
-	copy rega,pdata
-	istore 2,contw
-	copy regb,pdata
-	istore 2,contw
-	rtn
-
-
-//rega:len type:llid
-le_fifo_malloc_tx:
-	bpatchx patch2d_7,mem_patch2d
-	increase 5,rega
-	call ble_l2cap_malloc
-	increase -5,rega
-	copy rega,pdata
-	istore 2,contw				//lengh
-	setarg 0
-	istore 2,contw				//offset
-	copy type,pdata
-	istore 1,contw				//LLID
-	rtn
-
-
-le_fifo_get_first_tx_ptr:
-	bpatchx patch2e_0,mem_patch2e
-	call l2cap_malloc_fifo_out
-	copy pdata,contr
-	rtn
-
-le_fifo_get_second_tx_ptr:
-	fetch 2,mem_tx_fifo2_ptr
-	rtn
-
-le_fifo_get_last_tx_ptr:
-	call le_fifo_get_last_tx_ptr0
-	copy pdata,contr
-	rtn
-
-
-le_fifo_get_last_tx_ptr0:
-	fetch 2,mem_tx_fifo3_ptr
-	rtn
-
-
-le_fifo_get_first_l2cap_ptr:
-	call le_fifo_get_first_tx_ptr
-	increase 5,contr
-	rtn
-
-le_fifo_get_first_att_ptr:
-	call le_fifo_get_first_tx_ptr
-	increase 9,contr
-	rtn
-
-le_fifo_get_last_att_ptr:
-	call le_fifo_get_last_tx_ptr
-	increase 9,contr
-	rtn
-
-le_fifo_get_last_l2cap_ptr:
-	call le_fifo_get_last_tx_ptr
-	increase 5,contr
-	rtn
-
-
-le_fifo_check_full:
-	branch l2cap_malloc_is_fifo_full
-
-
-le_fifo_check_nearly_full:
-	branch l2cap_malloc_is_fifo_nearly_full
-
-	
-le_fifo_check_empty:
-	branch l2cap_malloc_is_fifo_empty
-
-
-le_fifo_release_first_node:
-	branch l2cap_malloc_free
-
-
-/*
-	function name:le_set_dle (data packet length extension)
-	input:pdata is dle params
-	bit0~bit15 max rx octets
-	bit16~bit31 max rx time
-	bit32~bit47 max tx octets
-	bit48~bit63 max tx time
-*/
-le_set_dle:
-	store 8,mem_local_rx_max_octets
-	branch le_set_feature_data_packet_length_extension
-
-
-/*
-	function name:le_set_phys
-	input:temp is tx & rx phys
-	bit0~bit7 is tx phys
-	bit8~bit15 is rx phys
-*/
-le_set_phys:
-	and temp,0xff,rega
-	call le_set_tx_phy
-	rshift8 temp,rega
-//	branch le_set_rx_phy
-le_set_rx_phy:
-	storer rega,1,mem_le_rx_phys
-	branch le_set_phy_common
-
-le_set_tx_phy:
-	storer rega,1,mem_le_tx_phys
-le_set_phy_common:	
-	isolate1 BIT_LE_2M_PHY,rega
-	call le_set_feature_2M_phy,true
-	isolate1 BIT_LE_CODED_PHY,rega
-	call le_set_feature_coded_phy,true
-	rtn
-
-
-
-le_set_feature_2M_phy:
-	arg BIT_LL_FEATURE_LE_2M_PHY,queue
-	branch le_set_feature
-
-
-le_set_feature_coded_phy:
-	arg BIT_LL_FEATURE_LE_CODED_PHY,queue
-	branch le_set_feature
-
-le_set_feature_data_packet_length_extension:
-	arg BIT_LL_FEATURE_LE_DATA_PACKET_LENGTH_EXTENSION,queue
-//	branch le_set_feature
-le_set_feature:
-	fetch 8,mem_le_local_feature
-	qset1 pdata
-	store 8,mem_le_local_feature
-	rtn
-
-le_set_fixed_ltk_justwork:
-	call le_set_config_fixed_ltk
-	call le_set_justwork
-	call le_set_fixed_ltk
-	branch le_set_config_read_authentication
-
-
Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/ble_protocol_stack/le_advertising.prog
===================================================================
--- /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/ble_protocol_stack/le_advertising.prog	(revision 5679)
+++ /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/ble_protocol_stack/le_advertising.prog	(nonexistent)
@@ -1,396 +0,0 @@
-
-/*
-ble core spec advertising
-*/
-
-le_advertising_dispatch:
-	jam FUN_RX_LL_1M_PHY,mem_le_rx_phy
-	jam FUN_TX_LL_1M_PHY,mem_le_tx_phy
-	set0 mark_ble_crc_fail,mark	
-	set1 mark_adv,mark	
-	set0 mark_ble_encryption,mark
-	call le_enable
-	call le_scan
-	call le_adv
-	set0 mark_adv,mark	
-	branch le_disable
-
-le_scan:
-	bpatchx patch2e_1,mem_patch2e
-	fetch 1,mem_le_scan_enable
-	rtnne LE_SCAN_ENABLE
-	arg le_scan_interval_timer,queue
-	call timer_check
-	nrtn blank
-	fetch 2,mem_le_scan_interval
-	fetcht 2,mem_le_scan_window
-	isub temp,pdata
-	arg le_scan_interval_timer,queue
-	call timer_init
-	disable master
-	call le_init_adv
-	call le_wait_adv
-	nrtn match
-	bpatchx patch2e_2,mem_patch2e
-	fetch 6,mem_le_rxbuf+2
-	store 6,mem_le_plap
-//	call le_scan_dongle
-
-	fetch 1,mem_le_adv_rcv
-	increase 1,pdata
-	store 1,mem_le_adv_rcv
-	call le_create_conn
-	rtn master
-	call le_send_scan_request
-	nrtn match
-	fetch 1,mem_le_scanrsp_rcv
-	increase 1,pdata
-	store 1,mem_le_scanrsp_rcv
-	fetch 9,mem_le_rxbuf+8
-	store 9,mem_temp_block0
-	rtn
-
-
-le_wait_adv:
-	bpatchx patch2e_3,mem_patch2e
-	call le_next_adv_channel
-	call le_receive_adv
-	fetch 1,mem_le_adv_waitcnt
-	increase 1,pdata
-	store 1,mem_le_adv_waitcnt
-	rtn
-
-
-le_create_conn:
-	bpatchx patch2e_4,mem_patch2e
-	fetch 1,mem_cmd_le_create_conn
-	rtnne hci_cmd_le_create_conn
-	fetch 6,mem_le_plap
-	fetcht 6,mem_le_conn_peer_addr
-	isub temp,null
-	nrtn zero
-	call context_new
-	nrtn zero
-	call le_connect_request
-	call le_init_master
-	call le_send_version_ind
-	jam BT_EVT_LE_CONNECTED,mem_fifo_temp
-	call ui_ipc_send_event	
-	jam 0,mem_hci_cmd
-	jam 0,mem_le_peer_sca
-	jam 0,mem_le_scan_enable
-	jam 0,mem_cmd_le_create_conn
-	branch context_save
-
-le_connect_request:
-	bpatchx patch2e_5,mem_patch2e
-	force -1,pdata
-	setsect 2,1
-	store 5,mem_le_channel_map
-	arg mem_le_state,rega	
-	call le_calc_channel_map	
-	force 4,loopcnt
-	arg mem_le_access,contw
-	call generate_random_loop
-	fetch 2,mem_le_timeout
-	store 2,mem_le_superto
-le_con_req_hop_retry:
-	random pdata
-	and_into 0xf,pdata
-	sub pdata,4,null
-	branch le_con_req_hop_retry,positive
-	store 1,mem_le_hop
-//	store 1,mem_tmp1
-	bpatchx patch2e_6,mem_patch2e
-	fetcht 2,mem_le_conn_interval
-	storet 2,mem_le_tsniff	
-	copy temp,regc			// tsniff in regc
-	add clkn_bt,7,pdata			// leave space for offset
-	idiv regc
-	call wait_div_end
-	remainder rega
-	isub rega,pdata
-	iadd regc,pdata
-	fetcht 2,mem_le_dsniff
-	iadd temp,pdata
-	store 4,mem_le_anchor
-	isub clkn_bt,rega
-	increase -6,rega			// window offset
-	arg 0x2205,regb			// length & CONN_REQ PDU
-	fetch 1,mem_le_conn_own_addr_type
-	nsetflag blank,LE_SENDER_ADDR_BIT,regb
-	fetch 1,mem_le_conn_peer_addr_type
-	nsetflag blank,LE_RECEIVER_ADDR_BIT,regb
-	copy regb,pdata
-	store 2,mem_le_txheader
-	fetch 6,mem_le_lap
-	istore 6,contw//own addr
-	fetch 6,mem_le_plap
-	istore 6,contw// peer addr
-	fetch 4,mem_le_access
-	istore 4,contw
-	random pdata
-	istore 2,contw				/* crc init */
-	random pdata
-	istore 1,contw
-	force 2,pdata				/* window size */	
-	istore 1,contw
-	rshift2 rega,pdata
-	istore 2,contw				/* window offset */
-	rshift2 regc,pdata			
-	istore 2,contw				/* conn Interval */
-	bpatchx patch2e_7,mem_patch2e
-	setarg 0					/* slave latency */
-	istore 2,contw
-	fetch 2,mem_le_timeout
-	istore 2,contw
-	fetch 5,mem_le_channel_map
-	istore 5,contw				/* channel map */
-	fetch 1,mem_le_hop
-	arg param_le_sca,temp
-	ior temp,pdata
-	istore 1,contw
-	call le_transmit_norx
-	setarg mem_le_txheader
-	add pdata,18,contr
-	ifetch 3,contr
-	store 3,mem_le_crcinit
-	rtn
-		
-
-le_adv:
-	jam 36,mem_le_ch_mapped
-	jam 0,mem_le_adv_channel_map_temp
-	call le_send_adv_protect_txbuf
-	call le_adv_loop
-	branch le_send_adv_recover_txbuf
-	
-le_adv_loop:
-	bpatchx patch2f_0,mem_patch2f
-	fetch 1,mem_le_adv_enable
-	rtn blank
-	arg le_adv_interval_timer,queue
-	call timer_check
-	nrtn blank
-	enable swfine
-	call le_init_adv
-	call le_next_adv_channel
-	call le_send_adv_ind
-	nbranch le_adv_not_match,match
-	fetch 1,mem_le_req_rcv
-	increase 1,pdata
-	store 1,mem_le_req_rcv
-	fetch 1,mem_le_rxbuf_adv_header
-	and pdata,0x0f,pdata
-	beq SCAN_REQ,le_send_scan_response
-	beq CONNECT_REQ,le_parse_connect_req
-le_adv_not_match:
-	bpatchx patch2f_1,mem_patch2f
-	fetch 1,mem_le_adv_channel_map_temp
-	fetcht 1,mem_le_adv_channel_map
-	isub temp,null
-	nbranch le_adv_loop,zero
-	fetch 1,mem_device_option
-	sub pdata,DVC_OP_CAR,null
-	branch car_le_stop_random_delay_check,zero
-	random pdata 
-	arg 0x1ff,temp
-	iand temp,pdata
-	add pdata,250,pdata
-	call delay
-	arg le_adv_interval_timer,queue
-	fetch 2,mem_le_adv_interval
-	branch timer_init
-	
-le_send_adv_protect_txbuf:
-	arg mem_le_tx_buf_temp,contw
-	arg mem_le_txheader,contr	
-	branch memcpy48
-	
-le_send_adv_recover_txbuf:
-	arg mem_le_tx_buf_temp,contr
-	arg mem_le_txheader,contw
-	branch memcpy48
-
-le_init_adv:
-	bpatchx patch2f_2,mem_patch2f
-	disable master
-le_adv_access:
-	setarg 0x8e89be
-	lshift8 pdata,pdata
-	or_into 0xd6,pdata
-	iforce access
-	setarg 0x555555
-	store 3,mem_le_crcinit
-	rtn
-
-
-
-le_send_adv_ind:
-	bpatchx patch2f_3,mem_patch2f
-	fetch 1,mem_le_adv_type
-	fetcht 1,mem_le_adv_own_addr_type
-	lshift4 temp,temp
-	lshift2 temp,temp
-	iadd temp,temp
-	storet 1,mem_le_txheader
-	beq ADV_DIRECT_IND,le_send_adv_direct_ind
-	fetcht 1,mem_le_adv_data_len
-	add temp,6,pdata
-	store 1,mem_le_txlen
-	fetch 6,mem_le_lap
-	store 6,mem_le_txpayload
-	copy temp,loopcnt
-	arg mem_le_adv_data,contr
-	call memcpy_fast
-	branch le_send_adv_transmit
-
-le_send_adv_direct_ind:
-	setarg 12
-	store 1,mem_le_txlen
-	fetch 6,mem_le_lap
-	store 6,mem_le_txpayload
-	fetch 6,mem_hci_plap
-	istore 6,contw
-le_send_adv_transmit:
-	bpatchx patch2f_4,mem_patch2f
-	fetch 1,mem_le_adv_transmit
-	increase 1,pdata
-	store 1,mem_le_adv_transmit
-	arg 1800,stop_watch
-	disable match
-	branch le_transmit_receive_sifs_without_change_mode
-
-
-le_send_scan_request:
-	bpatchx patch2f_5,mem_patch2f
-	fetch 1,mem_le_scan_type
-	rtnne LE_SCAN_TYPE_ACTIVE
-	fetch 1,mem_le_adv_transmit
-	increase 1,pdata
-	store 1,mem_le_adv_transmit
-	arg 0x0c03,temp// length + SCAN_REQ PDU
-	fetch 1,mem_le_scan_own_addr_type
-	nsetflag blank,LE_SENDER_ADDR_BIT,temp
-	copy rega,pdata
-	nsetflag blank,LE_RECEIVER_ADDR_BIT,temp	
-	storet 2,mem_le_txheader
-	fetch 6,mem_le_lap
-	istore 6,contw
-	fetch 6,mem_le_plap
-	istore 6,contw
-	branch le_transmit_receive_sifs_without_change_mode
-
-le_send_scan_response:
-	bpatchx patch2f_6,mem_patch2f
-	fetch 6,mem_le_rxbuf_adv_scan_req_adv_address
-	fetcht 6,mem_le_lap
-	isub temp,null
-	nrtn zero
-	arg SCAN_RSP,temp
-	fetch 1,mem_le_adv_own_addr_type
-	nsetflag blank,LE_SENDER_ADDR_BIT,temp
-	storet 1,mem_le_txheader
-	fetcht 1,mem_le_scan_data_len
-	add temp,6,pdata
-	store 1,mem_le_txlen
-	fetch 6,mem_le_lap
-	store 6,mem_le_txpayload
-	arg mem_le_scan_data,contr
-	copy temp,loopcnt
-	call memcpy_fast
-	call le_transmit_norx
-	branch le_adv_not_match
-
-le_parse_connect_req:
-	fetch 6,mem_le_rxbuf_adv_connect_ind_adv_address
-	fetcht 6,mem_le_lap
-	isub temp,null
-	nrtn zero
-	call le_scan_check_sender_addr_type
-	storer rega,1,mem_le_conn_peer_addr_type
-	fetch 6,mem_le_rxbuf_adv_connect_ind_init_address
-	store 6,mem_le_plap
-	fetch 8,mem_le_rxbuf_adv_connect_ind_access_address
-	store 8,mem_le_access 	// and crcinit & window size
-	fetcht 2,mem_le_rxbuf_adv_connect_ind_win_offset	// transmit offset
-	bpatchx patch2f_7,mem_patch2f
-	lshift2 temp,temp
-	fetch 2,mem_le_rxbuf_adv_connect_ind_interval	// connInterval
-	lshift2 pdata,pdata
-	store 2,mem_le_tsniff
-	store 4,mem_le_anchor
-	isub temp,pdata
-	add pdata,-2,clke_bt
-	fetch 9,mem_le_rxbuf_adv_connect_ind_latency
-	store 9,mem_le_slave_latency// and super to & channel map
-	fetch 1,mem_le_rxbuf_adv_connect_ind_hop_and_sca
-	and pdata,0x1f,temp
-	storet 1,mem_le_hop
-	rshift4 pdata,temp
-	rshift temp,temp
-	storet 1,mem_le_peer_sca
-	arg mem_le_state,rega
-	call le_receive_window_size
-	arg mem_le_state,rega	
-	call le_calc_channel_map
-	call le_init_slave
-	call context_new
-	nrtn zero
-	bpatchx patch30_0,mem_patch30
-	call calc_clke_offset
-	call le_l2cap_reset_signaling_identifier
-	jam BT_EVT_LE_CONNECTED,mem_fifo_temp
-	call ui_ipc_send_event
-	branch context_save
-
-
-le_next_adv_channel:
-	bpatchx patch30_1,mem_patch30
-	fetch 1,mem_le_ch_mapped
-	beq 37,le_next_adv_channel_curr_channel_37
-	beq 38,le_next_adv_channel_curr_channel_38
-	beq 39,le_next_adv_channel_curr_channel_39
-//	branch le_next_adv_channel_curr_channel_39
-le_next_adv_channel_curr_channel_39:
-	fetcht 1,mem_le_adv_channel_map
-	isolate1 BIT_ADV_CHANNEL_MAP_37,temp		//check 37 channel enable
-	branch set_le_next_adv_channel_37,true
-	isolate1 BIT_ADV_CHANNEL_MAP_38,temp		//check 38 channel enable
-	branch set_le_next_adv_channel_38,true
-//	branch set_le_next_adv_channel_39
-set_le_next_adv_channel_39:
-	jam 39,mem_le_ch_mapped
-	fetch 1,mem_le_adv_channel_map_temp
-	set1 BIT_ADV_CHANNEL_MAP_39,pdata
-set_le_adv_channel_map_temp:
-	store 1,mem_le_adv_channel_map_temp
-	rtn
-
-
-le_next_adv_channel_curr_channel_37:
-	fetcht 1,mem_le_adv_channel_map
-	isolate1 BIT_ADV_CHANNEL_MAP_38,temp		//check 38 channel enable
-	branch set_le_next_adv_channel_38,true
-	isolate1 BIT_ADV_CHANNEL_MAP_39,temp		//check 39 channel enable
-	branch set_le_next_adv_channel_39,true
-//	branch set_le_next_adv_channel_37
-set_le_next_adv_channel_37:
-	jam 37,mem_le_ch_mapped
-	fetch 1,mem_le_adv_channel_map_temp
-	set1 BIT_ADV_CHANNEL_MAP_37,pdata
-	branch set_le_adv_channel_map_temp
-
-le_next_adv_channel_curr_channel_38:
-	fetcht 1,mem_le_adv_channel_map
-	isolate1 BIT_ADV_CHANNEL_MAP_39,temp		//check 39 channel enable
-	branch set_le_next_adv_channel_39,true
-	isolate1 BIT_ADV_CHANNEL_MAP_37,temp		//check 37 channel enable
-	branch set_le_next_adv_channel_37,true
-//	branch set_le_next_adv_channel_38
-set_le_next_adv_channel_38:
-	jam 38,mem_le_ch_mapped
-	fetch 1,mem_le_adv_channel_map_temp
-	set1 BIT_ADV_CHANNEL_MAP_38,pdata
-	branch set_le_adv_channel_map_temp
-
Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/ble_protocol_stack/le_l2cap_att.prog
===================================================================
--- /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/ble_protocol_stack/le_l2cap_att.prog	(revision 5679)
+++ /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/ble_protocol_stack/le_l2cap_att.prog	(nonexistent)
@@ -1,1051 +0,0 @@
-
-
-le_parse_att:
-	copy contr,rega
-	fetch 1,mem_device_option
-	beq DVC_OP_SHUTTER_DY,shutter_dy_le_parse_att
-	beq DVC_OP_KEYBOARD,keyboard_le_parse_att
-	beq DVC_OP_MOUSE,mouse_le_parse_att
-	copy rega,contr
-	ifetch 3,contr
-	store 3,mem_le_att_opcode
-le_parse_att2:
-	beq ATTOP_EXCHANGE_MTU_REQUEST,le_parse_att_exchange_mtu_request
-	beq ATTOP_EXCHANGE_MTU_RESPONSE,le_parse_att_exchange_mtu_response
-	beq ATTOP_FIND_INFORMATION_REQUEST,le_parse_att_find_information_request
-	beq ATTOP_FIND_BY_TYPE_VALUE_REQUEST,le_parse_att_find_by_type_value_request
-	beq ATTOP_READ_BY_TYPE_REQUEST,le_parse_att_read_by_type_request
-	beq ATTOP_READ_REQUEST,le_parse_att_read_request
-	beq ATTOP_READ_BLOB_REQUEST,le_parse_att_read_blob_request
-	beq ATTOP_READ_BY_GROUP_TYPE_REQUEST,le_parse_att_read_by_group_type_request
-	beq ATTOP_WRITE_REQUEST,le_parse_att_write_request
-	beq ATTOP_PREPARE_WRITE_REQUEST,le_parse_att_prepare_write_request
-	beq ATTOP_EXECUTE_WRITE_REQUEST,le_parse_att_execute_write_request
-	beq ATTOP_HANDLE_VALUE_CONFIRMATION,le_parse_handle_value_confirmation
-	beq ATTOP_WRITE_COMMAND,le_parse_att_write_command
-	rtn
-
-
-le_send_att_exchange_mtu_requset:
-	force 3,rega
-	call le_fifo_malloc_tx_l2cap_gatt
-	setarg ATTOP_EXCHANGE_MTU_REQUEST
-le_send_att_exchange_mtu_common:
-	istore 1,contw
-	fetch 2,mem_le_local_mtu
-	istore 2,contw
-	rtn
-
-
-le_parse_att_exchange_mtu_request:
-	call le_parse_att_exchange_mtu_response
-le_send_att_exchange_mtu_response:
-	force 3,rega
-	call le_fifo_malloc_tx_l2cap_gatt
-	setarg ATTOP_EXCHANGE_MTU_RESPONSE
-	branch le_send_att_exchange_mtu_common
-
-le_parse_att_exchange_mtu_response:
-	rshift8 pdata,pdata
-	store 2,mem_le_remote_mtu
-	rtn
-
-le_parse_att_find_information_request:
-	call le_get_search_handle_start_end_common
-	call enable_user
-	branch le_send_att_find_information_response
-
-/* blank:end of list, positive:in range */
-le_att_handle_inrange:
-	ifetch 2,contr
-	and_into 0xff,pdata
-	rtn blank
-	isub regb,null			/* less than start ? */
-	rtn zero
-	nrtn positive
-	isub regc,null			/* greater than end ? */
-	rtn zero
-	branch enable_blank,positive
-	force 1,null
-	rtn
-
-
-le_send_att_find_information_response:
-	arg 3,timeup
-	call le_init_attlist_search
-le_send_att_find_information_res_loop:
-	call le_att_handle_inrange
-	branch le_send_att_find_information_res_end,blank
-	nbranch le_send_att_find_information_res_next,positive
-	increase -2,contr
-	call store_contr
-	call get_contw
-	nbranch le_send_att_find_information_res_store_info2,user
-	call push_stack_rega_b_c
-	storer timeup,4,mem_timeup
-	force 30,rega
-	call le_fifo_malloc_tx_l2cap_gatt
-	fetchr timeup,4,mem_timeup
-	call pop_stack_rega_b_c
-	call disable_user
-	setarg ATTOP_FIND_INFORMATION_RESPONSE
-	istore 1,contw
-	call get_contr
-	ifetch 2,contr
-	ifetchr rega, 1,contr
-	sub rega,16,null
-	branch le_send_att_find_information_res_uuid128,zero
-	sub rega,2,null
-	nbranch le_send_att_error_response_notfound,zero
-le_send_att_find_information_res_uuid16:
-	setarg UUID_SIZE_16BIT
-	istore  1,contw
-	branch le_send_att_find_information_res_store_info
-	
-le_send_att_find_information_res_uuid128:
-	setarg UUID_SIZE_128BIT
-	istore 1,contw
-	arg 1,timeup
-	branch le_send_att_find_information_res_store_info
-		
-le_send_att_find_information_res_store_info2:
-	call get_contr
-	ifetch 2,contr
-	ifetch 1,contr
-	isub rega,null //uuid size format
-	nbranch le_send_att_find_information_res_end,zero
-	
-le_send_att_find_information_res_store_info:
-	call get_contr
-	ifetch 2,contr
-	and_into 0xff,pdata
-	istore 2,contw
-	ifetchr loopcnt, 1,contr
-	call memcpy
-	call store_contw
-	increase -1,timeup
-	branch le_send_att_find_information_res_end,zero
-le_send_att_find_information_res_cont:
-	call le_att_contr_add_len
-	branch le_send_att_find_information_res_loop
-	
-le_send_att_find_information_res_next:
-	call le_att_contr_add_len
-	branch le_send_att_find_information_res_cont
-	
-le_send_att_find_information_res_end:
-	branch le_send_att_error_response_notfound,user
-	branch le_send_auto_len_by_mem
-
-
-le_parse_att_find_by_type_value_request:
-	call le_get_search_handle_start_end_common
-	ifetch 2,contr
-	store 2,mem_le_search_uuid
-	call store_contr
-	arg mem_le_search_att_type_length,contw
-	fetch 2,mem_le_l2cap_size
-	increase -7,pdata
-	call le_get_search_common2
-	branch le_send_att_find_by_type_value_response
-
-
-le_start_end_handle_check_1:
-	disable user
-	fetcht 2,mem_le_search_handle_start
-	fetch 2,mem_le_search_handle_end
-	isub temp,null
-	nbranch le_start_end_handle_check_1_fail,positive
-	deposit temp
-	rtnne 0
-le_start_end_handle_check_1_fail:
-	enable user
-	jam ATT_ERR_INVALID_HANDLE,mem_le_err_code
-	branch le_send_att_error_response
-
-
-le_send_att_find_by_type_value_response:
-	call le_start_end_handle_check_1
-	rtn user
-	fetcht 2,mem_le_search_uuid
-	setarg UUID_GATT_PRIMARY_SERVICE
-	isub temp,null
-	branch le_send_att_find_by_type_value_res_primary,zero
-	branch le_send_att_error_response_notfound
-	
-
-le_send_att_find_by_type_value_res_primary:
-	jam LE_FIND_BY_TYPE_VAL_RES_NOT_FOUND,mem_le_search_res
-	fetcht 2,mem_le_search_handle_start
-	storet 2,mem_temp
-	call le_att_get_handle_info
-	nbranch le_send_att_error_response_notfound,blank
-le_send_att_find_primary_search_loop:
-	fetcht 2,mem_temp
-	call le_att_get_handle_info
-	nbranch le_send_att_error_response_notfound2,blank	
-	copy contr,rega
-	fetch 1,mem_le_curr_att_len
-	copy pdata,loopcnt
-	fetcht 1,mem_le_search_att_type_length
-	isub temp,null
-	nbranch le_send_att_find_primary_search_loop1,zero
-	arg mem_le_search_att_type,regb
-	call string_compare
-
-	branch le_send_att_find_primary_search_end_start_handle_found,zero
-
-	fetch 2,mem_le_cur_uuid
-	fetcht 2,mem_le_search_uuid
-	isub temp,null
-	branch le_send_att_find_primary_search_end_ending_handle_found,zero
-le_send_att_find_primary_search_loop1:
-	fetch 2,mem_temp
-	increase 1,pdata
-	store 2,mem_temp
-	branch le_send_att_find_primary_search_loop
-
-le_send_att_error_response_notfound2:
-	fetch 1,mem_le_search_res
-	beq LE_FIND_BY_TYPE_VAL_RES_FOUND_STARTING_HANDLE,le_send_att_find_primary_search_end_ending_handle_found
-	branch le_send_att_error_response_notfound
-
-	
-le_send_att_find_primary_search_end_start_handle_found:
-	fetch 2,mem_le_cur_uuid
-	fetcht 2,mem_le_search_uuid
-	isub temp,null
-	nbranch  le_send_att_find_primary_search_loop1,zero
-	jam LE_FIND_BY_TYPE_VAL_RES_FOUND_STARTING_HANDLE,mem_le_search_res
-//	copy rega,temp
-	fetcht 2,mem_temp
-	storet 2,mem_le_cur_handle_start
-	branch le_send_att_find_primary_search_loop1
-
-le_send_att_find_primary_search_end_ending_handle_found:
-	fetch 1,mem_le_search_res
-	beq LE_FIND_BY_TYPE_VAL_RES_NOT_FOUND,le_send_att_find_primary_search_loop1
-	jam LE_FIND_BY_TYPE_VAL_RES_FOUND_ENDING_HANDLE,mem_le_search_res
-	fetcht 2,mem_temp
-	increase -1,temp
-	storet 2,mem_le_cur_handle_end
-	
-le_send_att_find_primary_search_end:
-	arg 5,rega
-	call le_fifo_malloc_tx_l2cap_gatt
-	setarg ATTOP_FIND_BY_TYPE_VALUE_RESPONSE
-	istore 1,contw
-	fetch 2,mem_le_cur_handle_start
-	istore 2,contw
-	fetch 2,mem_le_cur_handle_end
-	istore 2,contw
-	rtn
-
-
-
-le_parse_att_read_by_type_request:
-	call le_get_search_handle_start_end_common
-	call le_get_search_att_type
-	branch le_send_att_read_by_type_response
-	
-le_send_att_read_by_type_response:
-	fetcht 2,mem_le_search_handle_start
-	storet 2,mem_temp
-	call le_init_attlist_search
-	call le_att_get_handle_ptr2
-	increase -2,contr
-	copy contr,pdata
-	store 2,mem_le_cur_attlist_start_ptr
-
-	fetcht 2,mem_le_search_att_type
-	setarg UUID_CHRCTR_DEVICE_NAME
-	isub temp,null
-	branch le_send_att_read_by_type_res_device_name,zero
-	setarg UUID_GATT_CHARACTERISTIC
-	isub temp,null
-	nbranch le_send_att_read_by_type_res_not_characteristic,zero
-	arg 2,timeup
-le_send_att_read_by_type_response_loop:
-	call le_att_check_handle_end
-	nbranch le_send_att_read_by_type_response_end,positive
-	fetcht 2,mem_temp
-	call le_att_get_handle_info_from_ptr
-	nbranch le_send_att_read_by_type_response_end,blank
-	call le_att_same_type
-	nbranch le_send_att_read_by_type_response_next_handle,zero
-	nbranch le_send_att_read_by_type_res_found_next,user
-	disable user
- 	call le_get_search_max_mtu_data
-	copy pdata,rega
-	call le_fifo_malloc_tx_l2cap_gatt
-	setarg ATTOP_READ_BY_TYPE_RESPONSE
-	istore 1,contw
-	copy contw,alarm
-	increase 1,contw
-	
-	call le_send_att_read_by_type_write_properties
-	call le_att_next_handle
-	call le_att_get_handle_info_from_ptr
-	call le_send_att_read_by_type_write_uuid
-	fetch 1,mem_le_cur_uuid_length
-	add pdata,5,rega
-	istorer rega,1,alarm
-	
-	sub rega,7,null
-	ncall enable_user2,zero
-	call disable_user2,zero
- 	call le_get_search_max_mtu_data
- 	increase -2,pdata
-	idiv rega
-	call wait_div_end
-	quotient timeup
-	increase -1,timeup
-	branch le_send_att_read_by_type_response_end,zero
-le_send_att_read_by_type_response_next_handle:
-	call le_att_next_handle
-	branch le_send_att_read_by_type_response_loop
-le_send_att_read_by_type_response_end:
-	branch le_send_att_error_response_notfound,user
-	branch le_send_auto_len_by_mem
-
-le_send_att_read_by_type_res_found_next:
-	call le_store_att_record
-	call le_att_next_handle
-	call le_att_get_handle_info_from_ptr
-	call le_send_att_read_by_type_res_check_pair_length_type
-	nbranch le_send_att_read_by_type_response_end,blank
-
-	call get_contw
-	fetch 2,mem_temp
-	increase -1,pdata
-	istore 2,contw
-	call le_write_att_record_common
-	call le_send_att_read_by_type_write_uuid
-	increase -1,timeup
-	branch le_send_att_read_by_type_response_end,zero
-	branch le_send_att_read_by_type_response_next_handle
-
-	
-le_send_att_read_by_type_write_properties:
-	fetch 2,mem_temp
-	istore 2,contw
-	
-	fetch 1,mem_le_curr_att_len
-	copy pdata,loopcnt
-	call get_contr
-	call memcpy_fast
-	branch store_contw
-le_send_att_read_by_type_write_uuid:
-	call get_contw
-	fetch 2,mem_temp
-	istore 2,contw
-	call store_contw
-	fetch 1,mem_le_cur_uuid_length
-	copy pdata,loopcnt
-	call get_contw	
-	call get_contr
-	isub loopcnt,contr
-	increase -1,contr
-	call memcpy_fast
-	branch store_contw
-
-le_send_att_read_by_type_res_not_characteristic:
-	bpatchx patch30_2,mem_patch30
-	call le_att_get_uuid_ptr
-	branch le_send_att_error_response_notfound,blank
-	copy contr,regc
-	
-	call le_get_search_max_mtu_data
-	copy regc,contr
-	ifetcht 1,contr
-	increase 4, temp
-	call not_greater_than
-	copy pdata,regc
-	copy pdata,rega
-	call store_contr
-	call le_fifo_malloc_tx_l2cap_gatt
-
-	setarg ATTOP_READ_BY_TYPE_RESPONSE
-	istore 1,contw
-	add regc,-2,pdata
-	add pdata ,-2,loopcnt
-	istore 1,contw
-	fetch 2,mem_le_cur_handle
-	istore 2,contw
-	call get_contr
-	branch  memcpy_fast
-
-	
-le_send_att_read_by_type_res_device_name:
-	call le_att_get_uuid_ptr
-	branch le_send_att_error_response_notfound,blank
-	increase -5,contr // point to handle
-	ifetch 2,contr		
-	store 2,mem_temp
-	call le_get_search_max_mtu_data
-	fetcht 1,mem_le_name_len
-	increase 4, temp
-	call not_greater_than
-	copy pdata,regc
-	copy pdata,rega
-	call le_fifo_malloc_tx_l2cap_gatt
-	setarg ATTOP_READ_BY_TYPE_RESPONSE
-	istore 1,contw
-	add regc,-2,pdata
-	add pdata ,-2,loopcnt
-	istore 1,contw
-	fetch 2,mem_temp
-	istore 2,contw
-	arg mem_le_name,contr
-	branch memcpy_fast
-	
-
-le_init_attlist_search:
-	bpatchx patch30_3,mem_patch30
-	fetch 2,mem_le_search_handle_start
-	iforce regb
-	fetch 2,mem_le_search_handle_end
-	iforce regc
-	fetch 2,mem_ui_le_uuid_table
-	iforce contr
-	branch enable_user
-
-
-	/* handle in temp, return pointer in contr to length, blank not found */
-le_att_get_handle_ptr:
-	call le_att_get_handle_ptr2
-	branch le_att_get_handle_ptr_found,zero
-	rtn
-	
-le_att_get_handle_ptr2:
-	bpatchx patch30_4,mem_patch30
-	fetch 2,mem_ui_le_uuid_table
-	iforce contr
-le_att_get_handle_loop1:
-	ifetch 2,contr
-	and_into 0xff,pdata
-	rtn blank
-	isub temp,null
-	rtn zero
-	call le_att_contr_add_len
-	call le_att_contr_add_len
-	branch le_att_get_handle_loop1
-	
-le_att_get_handle_ptr_found:
-le_att_contr_add_len:
-	ifetch 1,contr
-	iadd contr,contr	
-	rtn	
-	
-
-le_att_get_uuid_ptr:
-	bpatchx patch30_5,mem_patch30
-	fetch 2,mem_ui_le_uuid_table
-	iforce contr
-le_att_get_uuid_loop:
-	ifetch 2,contr
-	and_into 0xff,pdata
-	rtn blank
-	store 2,mem_le_cur_handle  //handle
-	ifetch 1,contr
-	copy contr,contw
-	iadd contr,contr
-	fetcht 1,mem_le_search_att_type_length
-	isub temp,null
-	nbranch le_att_get_uuid_ptr_next,zero
-	copy pdata,loopcnt
-	copy contw,regb
-	arg mem_le_search_att_type ,rega
-	call string_compare
-	rtn zero
-	fetch 1,mem_le_search_att_type_length
-le_att_get_uuid_ptr_next:	
-	iadd contw,contr
-	call le_att_contr_add_len
-	branch le_att_get_uuid_loop	
-
-
-
-
-//output:temp:new handle num
-//contr:address write data
-le_att_get_last_handle:
-	arg 0x01,temp
-	fetch 2,mem_ui_le_uuid_table
-	iforce contr
-	copy contr,contw
-le_att_get_last_handle_loop:
-	ifetch 2,contr
-	and_into 0xff,pdata
-	rtn blank
-	add pdata,1,temp
-	call le_att_contr_add_len
-	call le_att_contr_add_len
-	copy contr,contw
-	branch le_att_get_last_handle_loop
-
-
-le_att_get_handle_info_from_ptr:
-	fetch 2, mem_le_cur_attlist_start_ptr
-	branch le_att_get_handle_info_fast
-
-le_att_get_handle_info:
-	bpatchx patch30_6,mem_patch30
-	fetch 2,mem_ui_le_uuid_table
-le_att_get_handle_info_fast:
-	iforce contr
-le_att_get_handle_loop:
-	ifetch 2,contr
-	and_into 0xff,pdata
-	branch le_att_unfind_handle,blank
-	isub temp,null
-	branch le_att_finded_handle, zero
-	call le_att_contr_add_len
-	call le_att_contr_add_len
-	branch le_att_get_handle_loop
-	
-le_att_unfind_handle:
-	branch disable_blank
-
-le_att_finded_handle:
-	ifetch 1,contr
-	store 1,mem_le_cur_uuid_length
-	copy pdata,loopcnt
-	arg mem_le_cur_uuid,contw
-	call memcpy_fast
-	ifetch 1,contr
-	store 1,mem_le_curr_att_len
-	call store_contr
-	branch enable_blank
-
-
-
-le_parse_att_read_request:
-	call le_check_encrypt_state
-	fetcht 2,mem_le_att_handle
-	fetch 1,mem_le_configuration
-	bbit1 BIT_BLE_READ_AUTH,le_send_att_read_response_check_auth
-
-//input:temp is handle
-le_send_att_read_response:
-	call le_att_get_handle_ptr2
-	nbranch le_send_att_error_response_notfound,zero
-	call le_send_att_read_response_check_handle,user
-	rtn user
-	call le_att_get_handle_ptr_found
-	increase -2,contr
-	ifetch 2,contr
-	arg UUID_CHRCTR_DEVICE_NAME,temp
-	isub temp,null
-	branch le_send_device_name,zero
-le_send_att_read_response_next:
-	copy contr,regc
-	call le_get_search_max_mtu_data
-	copy regc,contr
-	ifetcht 1,contr
-	increase 1,temp
-	call not_greater_than
-le_send_att_read_response_less:
-	copy pdata,regc
-	copy pdata,rega
-	call store_contr
-	call le_fifo_malloc_tx_l2cap_gatt
-	setarg ATTOP_READ_RESPONSE
-	istore 1,contw
-	add regc,-1,loopcnt
-	call get_contr
-	branch memcpy
-
-le_send_device_name:
-	call le_get_search_max_mtu_data
-	fetcht 1,mem_le_name_len
-	increase 1, temp
-	call not_greater_than
-	copy pdata,regc
-	copy pdata,rega
-
-	call le_fifo_malloc_tx_l2cap_gatt
-	setarg ATTOP_READ_RESPONSE
-	istore 1,contw
-	add regc,-1,loopcnt
-	arg mem_le_name,contr
-	branch memcpy
-	
-	
-le_send_att_read_response_check_auth:
-	fetch 2,mem_le_pairing_handle
-	isub temp,null
-	nbranch le_send_att_read_response,zero
-	nbranch le_send_att_read_response,user
-le_send_att_read_response_error_insufficient_auth:
-	jam ATT_ERR_INSUFFICIENT_AUTHENTICATION,mem_le_err_code
-	branch le_send_att_error_response
-
-le_send_att_read_response_check_handle:
-	increase -2,contr
-	ifetch 2,contr
-	bbit1 BIT_OF_ATT_HANDLE_READ_AUTHENTICATED,le_send_att_read_response_error_insufficient_auth
-	branch disable_user
-
-le_parse_att_read_blob_request:
-	ifetch 2,contr
-	store 2,mem_le_att_offset
-	iforce rega
-	fetcht 2,mem_le_att_handle
-le_send_att_read_blob_response:
-	call le_att_get_handle_ptr 
-	branch le_send_att_error_response_notfound,blank
-	ifetch 1,contr
-	isub rega,loopcnt
-	nbranch le_send_att_error_response_notfound,positive
-	call store_contr
-	call le_get_search_max_mtu_data
-	add loopcnt,1,temp
-	call not_greater_than
-le_send_att_read_blob_response_less:
-	copy pdata,rega
-	copy pdata,regc
-	call le_fifo_malloc_tx_l2cap_gatt
-	setarg ATTOP_READ_BLOB_RESPONSE
-	istore 1,contw
-	add regc,-1,loopcnt
-	fetcht 2,mem_le_att_offset
-	call get_contr
-	iadd temp,contr
-	branch memcpy_fast
-
-
-//查询server
-le_parse_att_read_by_group_type_request:
-	call le_get_search_handle_start_end_common
- 	call le_get_search_att_type
-	branch le_send_att_read_by_group_type_response
-
-
-//mem_le_search_att_type
-//mem_le_search_handle_start
-//mem_le_search_handle_end
-le_send_att_read_by_group_type_response:
-	arg 2,timeup
-	fetcht 2,mem_le_search_handle_start
-	storet 2,mem_temp
-	call le_att_get_handle_ptr2
-	increase -2,contr
-	copy contr,pdata
-	store 2,mem_le_cur_attlist_start_ptr
-le_send_att_read_by_group_type_response_loop:
-	call le_att_check_handle_end		//check current handle >= ending handle
-	nbranch le_send_att_read_by_group_type_end0,positive
-	fetcht 2,mem_temp
-	call le_att_get_handle_info_from_ptr	//get current handle info
-	nbranch le_send_att_read_by_group_type_end1,blank
-
-	call le_att_same_type				//compair attr group type
-	nbranch le_send_att_read_by_group_type_next_handle,zero
-	copy timeup,pdata
-	beq 0,le_send_att_read_by_group_type_end1	//loop count
-	nbranch le_send_att_read_by_group_type_store_write_record,user		//un first
-	disable user
-	//first att uuid
- 	call le_get_search_max_mtu_data
- 	copy pdata,rega
-	call le_fifo_malloc_tx_l2cap_gatt
-	setarg ATTOP_READ_BY_GROUP_TYPE_RESPONSE
-	istore 1,contw
-	fetch 1,mem_le_curr_att_len
-	add pdata,4,rega
-	istorer rega,1,contw
-	call store_contw
-	sub rega,6,null
-	ncall enable_user2,zero
-	call disable_user2,zero
- 	call le_get_search_max_mtu_data
- 	increase -2,pdata
-	idiv rega
-	call wait_div_end
-	quotient timeup
-	branch le_send_att_read_by_group_type_store_record
-le_send_att_read_by_group_type_store_write_record:
-	call le_send_att_read_by_group_type_check_pair_length_type
-	nbranch le_send_att_read_by_group_type_end1,blank
-	fetch 2,mem_temp
-	increase -1,pdata
-	store 2,mem_le_cur_handle_end
-	call le_write_att_record
-le_send_att_read_by_group_type_store_record:
-	fetch 2,mem_temp
-	store 2,mem_le_cur_handle_start
-	call le_store_att_record
-	increase -1,timeup
-//	branch le_send_att_read_by_group_type_last_find,zero		
-le_send_att_read_by_group_type_next_handle:
-	call le_att_next_handle
-	branch le_send_att_read_by_group_type_response_loop
-
-le_send_att_read_by_type_res_check_pair_length_type:
-	fetch 1,mem_le_cur_uuid_length
-	branch le_send_att_read_by_group_type_check_pair_length_type+1
-
-//output:blank is same
-le_send_att_read_by_group_type_check_pair_length_type:
-	fetch 1,mem_le_curr_att_len
-	branch le_send_att_read_by_group_type_check_pair_length_type_16byte,user2
-	increase -2,pdata
-	rtn
-
-le_send_att_read_by_group_type_check_pair_length_type_16byte:
-	increase -16,pdata
-	rtn
-
-le_send_att_read_by_group_type_end0:	//> att handle end
-	fetch 2,mem_temp
-	store 2,mem_le_cur_handle_end
-	branch le_send_att_read_by_group_type_end_common
-le_send_att_read_by_group_type_end1:	//>att max list handle or diff len 
-	fetch 2,mem_temp
-	increase -1,pdata
-	store 2,mem_le_cur_handle_end
-	branch le_send_att_read_by_group_type_end_common
-le_send_att_read_by_group_type_end_common:
-	branch le_send_att_error_response_notfound,user
-	call le_write_att_record
-	branch le_send_auto_len_by_mem
-
-
-
-
-le_parse_att_write_request:
-	copy contr,rega
-	fetch 2,mem_le_l2cap_size
-	add pdata,-3,regb
-	call le_writeatt_cb
-le_send_att_write_response_check_auth:
-	bpatchx patch30_7,mem_patch30
-	call le_check_encrypt_state
-	fetcht 2,mem_le_att_handle
-	call le_att_get_handle_ptr2
-	nbranch le_send_att_write_response_error_invalid_handle,zero
-	call le_send_att_write_response_check_handle,user
-	rtn user
-
-	fetch 1,mem_le_configuration
-	bbit0 BIT_BLE_WRITE_AUTH,le_send_att_write_response
-
-	fetcht 2,mem_le_att_handle
-	fetch 2,mem_le_pairing_handle
-	isub temp,null
-	nbranch le_send_att_write_response,zero
-	call le_check_encrypt_state
-	nbranch le_send_att_write_response,user
-	branch le_send_att_read_response_error_insufficient_auth
-
-
-le_send_att_write_response:
-	force 1,rega
-	call le_fifo_malloc_tx_l2cap_gatt
-	setarg ATTOP_WRITE_RESPONSE
-	istore 1,contw
-	rtn
-
-le_send_att_write_response_check_handle:
-	increase -2,contr
-	ifetch 2,contr
-	bbit1 BIT_OF_ATT_HANDLE_WRITE_AUTHENTICATED,le_send_att_read_response_error_insufficient_auth
-	branch disable_user
-
-le_send_att_write_response_error_invalid_handle:
-	jam ATT_ERR_INVALID_HANDLE,mem_le_err_code
-	branch le_send_att_error_response
-
-
-le_check_encrypt_state:
-	bpatchx patch31_0,mem_patch31
-	call disable_user
-	fetch 1,mem_le_pairing_mode
-	rtneq LE_PAIRING_MODE_NONE
-	fetch 1,mem_context
-	rtnbit1 lestate_encryption
-	branch enable_user
-
-
-le_parse_att_prepare_write_request:
-	add contr,2,rega
-	fetch 2,mem_le_l2cap_size
-	add pdata,-5,regb
-	call le_writeatt_cb
-	branch le_send_att_prepare_write_response
-
-
-le_send_att_prepare_write_response:
-	fetch 2,mem_le_l2cap_size
-	copy pdata,rega
-	call le_fifo_malloc_tx_l2cap_gatt
-	setarg ATTOP_PREPARE_WRITE_RESPONSE
-	istore 1,contw
-	fetch 2,mem_le_att_handle
-	istore 2,contw
-	fetch 2,mem_le_l2cap_size
-	add pdata,-5,loopcnt	
-	fetch 2,mem_le_payload_ptr
-	add pdata,7,contr
-	ifetch 2,contr		//offset
-	istore 2,contw
-	branch memcpy_fast
-
-
-
-le_parse_att_execute_write_request:
-
-le_send_att_execute_write_response:
-	force 1,rega
-	call le_fifo_malloc_tx_l2cap_gatt
-	setarg ATTOP_EXECUTE_WRITE_RESPONSE
-	istore 1,contw
-	rtn
-
-le_parse_handle_value_confirmation:
-	fetch 1,mem_le_l2cap_att_states
-	set0 BLE_L2CAP_RECV_CONFIRMATION_PACKET,pdata
-	store 1,mem_le_l2cap_att_states
-	rtn
-
-le_parse_att_write_command:
-	copy contr,rega
-	fetch 2,mem_le_l2cap_size
-	add pdata,-3,regb
-	branch le_writeatt_cb
-
-
-
-//rga:len temp:handle;rgea,regb,regc already used
-le_att_malloc_tx_notify:
-	copy temp,regc
-	increase 3,rega
-	call le_fifo_malloc_tx_l2cap_gatt
-	increase -3,rega
-	setarg ATTOP_HANDLE_VALUE_NOTIFICATION
-	istore 1,contw
-	copy regc,temp
-	istoret 2,contw
-	rtn
-
-//rga:len temp:handle;rgea,regb,regc already used
-le_att_malloc_tx_indication:
-	fetch 1,mem_le_l2cap_att_states
-	set1 BLE_L2CAP_SEND_INDICATION_PACKET,pdata
-	store 1,mem_le_l2cap_att_states
-	copy temp,regc
-	increase 3,rega
-	call le_fifo_malloc_tx_l2cap_gatt
-	increase -3,rega
-	setarg ATTOP_HANDLE_VALUE_INDICATION
-	istore 1,contw
-	copy regc,temp
-	istoret 2,contw
-	rtn
-
-
-///////////////////////////ATT common function////////////////////////////////////
-
-le_send_att_error_response_notfound:	
-	bpatchx patch31_1,mem_patch31
-	jam ATT_ERR_ATTRIBUTE_NOT_FOUND,mem_le_err_code
-le_send_att_error_response:	
-	force 5,rega
-	call le_fifo_malloc_tx_l2cap_gatt
-	setarg ATTOP_ERROR_RESPONSE
-	istore 1,contw
-	fetch 1,mem_le_att_opcode
-	istore 1,contw
-	fetch 2,mem_le_att_handle
-	istore 2,contw
-	fetch 1,mem_le_err_code
-	istore 1,contw
-	rtn
-
-
-le_fifo_malloc_tx_l2cap_gatt:
-	bpatchx patch31_2,mem_patch31
-	force LE_L2CAP_CID_ATT,regb
-	branch le_fifo_malloc_tx_l2cap
-
-
-le_att_next_handle:
-	fetcht 2,mem_temp
-	increase 1,temp
-	storet 2,mem_temp
-	rtn
-
-le_att_check_handle_end:
-	fetcht 2,mem_temp
-	fetch 2,mem_le_search_handle_end
-	isub temp,null
-	rtn
-
-
-le_att_same_type:
-	bpatchx patch31_3,mem_patch31
-	fetcht 1,mem_le_search_att_type_length
-	arg mem_le_search_att_type,rega
-le_att_check_same_common:
-	fetch 1,mem_le_cur_uuid_length
-	copy pdata,loopcnt
-	isub temp,null
-	nrtn zero
-	arg mem_le_cur_uuid ,regb
-	branch string_compare
-
-
-le_store_att_record:
-	bpatchx patch31_4,mem_patch31
-	fetch 1,mem_le_curr_att_len
-	store 1, mem_temp_block0
-	copy pdata,loopcnt
-	call get_contr
-	branch memcpy_fast
-
-
-le_write_att_record:
-	bpatchx patch31_5,mem_patch31
-	call get_contw
-	fetch 2,mem_le_cur_handle_start
-	istore 2,contw
-	fetch 2,mem_le_cur_handle_end
-	istore 2,contw
-le_write_att_record_common:
-	fetch 1,mem_temp_block0
-	copy pdata,loopcnt
-	call memcpy_fast
-	branch store_contw
-
-
-
-le_send_auto_len_by_mem:
-	bpatchx patch31_6,mem_patch31
-	call get_contw
-	call le_fifo_get_last_att_ptr
-	copy contw,pdata
-	isub contr,rega
-	call le_fifo_get_last_l2cap_ptr
-	copy rega,pdata
-	istore 2,contr
-	increase 4,rega
-	call le_fifo_get_last_tx_ptr
-	copy rega,pdata
-	istore 1,contr
-	rtn
-
-
-le_get_search_handle_start_end_common:
-	rshift8 pdata,pdata
-	store 2,mem_le_search_handle_start
-	ifetch 2,contr
-	store 2,mem_le_search_handle_end
-	rtn
-
-
-le_get_search_max_mtu_data:
-	bpatchx patch31_7,mem_patch31
-	fetch 2,mem_le_remote_mtu
-//	increase -2,pdata
-	fetcht 2,mem_le_local_mtu
-//	increase -2,temp
-//	call not_greater_than
-//	arg 240,temp
-	branch not_greater_than
-	//pdata is max mtu size
-
-
-le_get_search_att_type:
-	bpatchx patch32_0,mem_patch32
-	call store_contr
-	arg mem_le_search_att_type_length,contw
-le_get_search_common:	
-	fetch 2,mem_le_l2cap_size
-	increase -5,pdata
-le_get_search_common2:		
-	istore 1,contw
-	copy pdata,loopcnt
-	call get_contr
-	branch memcpy_fast	
-
-
-
-le_parse_writing_attribute_start:
-	fetch 2,mem_le_rxbuf_data_att_cid//CID
-	rtnne LE_L2CAP_CID_ATT
-	fetch 1,mem_le_l2cap_att_states
-	set1 BLE_L2CAP_DEAL_WITH_CONTINUE_PACKET,pdata
-	store 1,mem_le_l2cap_att_states
-	fetch 3,mem_le_rxbuf_data_att_opcode
-	store 3,mem_le_att_opcode
-	set1 mark_old_packet,mark
-	beq ATTOP_WRITE_REQUEST,le_parse_attribute_write_request
-	beq ATTOP_WRITE_COMMAND,le_parse_attribute_write_command
-	beq ATTOP_EXECUTE_WRITE_REQUEST,le_parse_att_execute_write_request
-	beq ATTOP_EXCHANGE_MTU_REQUEST,le_parse_att_exchange_mtu_request
-	beq ATTOP_HANDLE_VALUE_CONFIRMATION,le_parse_handle_value_confirmation
-	set0 mark_old_packet,mark
-le_clear_l2cap_att_states_deal_with_contiune_packet:
-	fetch 1,mem_le_l2cap_att_states
-	set0 BLE_L2CAP_DEAL_WITH_CONTINUE_PACKET,pdata
-	store 1,mem_le_l2cap_att_states
-	rtn
-
-le_parse_writing_attribute_continue:
-	fetch 1,mem_le_l2cap_att_states
-	rtnbit0 BLE_L2CAP_DEAL_WITH_CONTINUE_PACKET
-	set1 mark_old_packet,mark
-	call le_parse_l2cap_continue_common
-	call le_parse_attribute_check_complete_packet
-	call le_clear_l2cap_att_states_deal_with_contiune_packet,user
-	fetch 1,mem_le_att_opcode
-	beq ATTOP_WRITE_REQUEST,le_send_att_write_response_check_auth
-	rtn
-
-
-le_parse_attribute_write_request:
-	call le_parse_attribute_write_command
-	branch le_send_attribute_write_response_check_auth
-
-le_send_attribute_write_response_check_auth:
-	call le_parse_attribute_check_complete_packet
-	nrtn user
-	branch le_send_att_write_response_check_auth
-
-
-le_parse_attribute_write_command:
-	bpatchx patch32_1,mem_patch32
-	call le_parse_attribute_check_complete_packet_init
-	arg mem_le_rxbuf_data_att_write_payload,rega
-	branch le_writeatt_cb
-
-
-le_parse_attribute_check_complete_packet_init:
-	fetch 1,mem_le_rxbuf_data_att_write_length
-	add pdata,-7,regb
-	increase -4,pdata
-	store 2,mem_le_packet_len_recved	//payload length
-	fetcht 2,mem_le_rxbuf_data_att_write_l2cap_length	//l2cap length
-	storet 2,mem_le_l2cap_size
-	rtn
-
-
-le_parse_l2cap_continue_common:
-	fetchr regb,1,mem_le_rxbuf_data_continue_length
-	fetch 2,mem_le_packet_len_recved
-	iadd regb,temp
-	storet 2,mem_le_packet_len_recved
-	arg mem_le_rxbuf_data_continue_payload,rega
-	branch le_writeatt_cb
-
-
-//enable user,recevie complete packet
-le_parse_attribute_check_complete_packet:
-	call disable_user
-	fetch 2,mem_le_packet_len_recved
-	fetcht 2,mem_le_l2cap_size
-	isub temp,null
-	nrtn zero
-	branch enable_user
-
Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/ble_protocol_stack/le_l2cap_att_wechat.prog
===================================================================
--- /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/ble_protocol_stack/le_l2cap_att_wechat.prog	(revision 5679)
+++ /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/ble_protocol_stack/le_l2cap_att_wechat.prog	(nonexistent)
@@ -1,276 +0,0 @@
-
-ifdef COMPILE_WECHAT
-
-/*
-	function name:le_l2cap_att_receive_data_check_wechat_air_sync_protocol
-	依据微信蓝牙外设协议1.0.4
-	输入:
-		rega is le rx data address
-		regb is le rx data length
-		mem_le_att_handle is write handle
-	输出:
-		user enable 是微信协议
-		disable不是微信协议
-*/
-le_l2cap_att_receive_data_check_wechat_air_sync_protocol:
-	call enable_user
-	fetch 2,mem_le_wechat_air_sync_ptr
-	rtn blank
-	arg le_l2cap_att_receive_data_deal_wechat_air_sync_protocol,regc
-	branch wechat_air_sync_calc_function
-le_l2cap_att_receive_data_deal_wechat_air_sync_protocol:
-	fetcht 2,mem_le_att_handle
-	fetch 1,mem_wechat_indication_handle
-	pincrease 1
-	isub temp,null
-	branch wechat_air_sync_enable_indicate_chara,zero
-	fetch 1,mem_wechat_write_handle
-	isub temp,null
-	branch wechat_air_sync_receive_wechat_data,zero
-	branch disable_user
-	
-wechat_air_sync_enable_indicate_chara:
-	call wechat_air_sync_reset_nSeq
-wechat_air_sync_send_request_auth:
-	call wechat_air_sync_init_authreq_base_request
-	arg mem_wechat_authreq_base_request,rega
-	arg ECI_REQ_AUTH_MESSAGE_LENGTH,loopcnt
-	arg ECI_REQ_AUTH,temp
-	branch wechat_air_sync_send_message
-
-wechat_air_sync_receive_wechat_data:
-	fetch 1,mem_wechat_receive_push_data
-	beq 1,wechat_air_sync_receive_wechat_data_contiune_packet
-	ifetch 2,rega
-	arg WECHAT_RX_HEAD,temp
-	isub temp,null
-	branch wechat_air_sync_receive_wechat_data_head_packet,zero
-wechat_air_sync_receive_wechat_data_contiune_packet:
-	fetch 2,mem_wechat_rx_len
-	iadd regb,pdata
-	store 2,mem_wechat_rx_len	
-	fetch 2,mem_wechat_rx_address
-	copy pdata,contw
-	copy rega,contr
-	copy regb,loopcnt
-	call memcpy_fast
-	copy contw,pdata
-	store 2,mem_wechat_rx_address
-	branch wechat_air_sync_receive_wechat_packet_complete
-
-
-wechat_air_sync_receive_wechat_data_head_packet:
-	fetch 2,mem_wechat_rx_buffer_ptr
-	copy pdata,contw
-	copy rega,contr
-	copy regb,loopcnt
-	call memcpy_fast
-	copy contw,pdata
-	store 2,mem_wechat_rx_address
-	storer regb,2,mem_wechat_rx_len
-	fetchr regc,2,mem_wechat_rx_buffer_ptr
-	add regc,WECHAT_PROTOCOL_MESSAGE_N_CMD_ID,contr
-	ifetch 2,contr
-	arg ECI_PUSH_RECEIVE_DATA,temp
-	isub temp,null
-	call wechat_air_sync_receive_wechat_push_data,zero
-	branch wechat_air_sync_receive_wechat_packet_complete
-
-wechat_air_sync_receive_wechat_push_data:
-	jam 1,mem_wechat_receive_push_data
-	rtn
-
-wechat_air_sync_receive_wechat_packet_complete:
-	fetch 2,mem_wechat_rx_len
-	fetchr regc,2,mem_wechat_rx_buffer_ptr
-	add regc,WECHAT_PROTOCOL_MESSAGE_N_LENGTH,contr
-	ifetcht 2,contr
-	byteswap temp,temp
-	isub temp,null
-	nrtn positive
-	jam 0,mem_wechat_receive_push_data
-	fetchr regc,2,mem_wechat_rx_buffer_ptr
-	add regc,WECHAT_PROTOCOL_MESSAGE_N_CMD_ID,contr
-	ifetch 2,contr
-	arg ECI_RESPONSE_AUTH,temp
-	isub temp,null
-	branch wechat_air_sync_receive_wechat_data_auth_respone,zero
-	arg ECI_PUSH_RECEIVE_DATA,temp
-	isub temp,null
-	branch wechat_air_sync_receive_wechat_data_push_receive_data,zero
-	rtn
-
-wechat_air_sync_receive_wechat_data_auth_respone:
-wechat_air_sync_wechat_send_request_init:
-	call wechat_air_sync_init_authreq_base_request
-	arg mem_wechat_initreq_base_request,rega
-	arg ECI_REQ_INIT_MESSAGE_LENGTH,loopcnt
-	arg ECI_REQ_INIT,temp
-	branch wechat_air_sync_send_message
-
-
-//接收数据的回调，可以使用wechat_air_sync_check_push_data_struct解析函数
-wechat_air_sync_receive_wechat_data_push_receive_data:
-
-	fetch 2,mem_wechat_rx_push_data_cb
-	branch callback_func
-
-/*
-数据解析默认函数，不能保证全部数据格式都能解析
-输出:disable user is no data
-	loopcnt is data length
-	contr is data ptr
-*/
-wechat_air_sync_check_push_data_struct:
-	call disable_user
-	fetchr regc,2,mem_wechat_rx_buffer_ptr
-	add regc,WECHAT_PROTOCOL_MESSAGE_PAYLOAD,contr
-	ifetch 2,contr
-	rtnne TAG_RecvDataPush_BasePush
-	ifetch 1,contr
-	rtnne TAG_RecvDataPush_Data
-	ifetch 1,contr
-	rtn blank
-	copy pdata,loopcnt
-	copy contr,regc
-	branch enable_user
-
-
-wechat_air_sync_send_message:
-	call enable_user2
-wechat_air_sync_send_message_without_payload:
-	fetch 2,mem_wechat_tx_buffer_ptr
-	store 2,mem_wechat_tx_address
-	copy pdata,contw
-	setarg WECHAT_HEAD_MAGIC_NUMBER
-	istore 1,contw			//bMagicNumber
-	setarg WECAHT_HEAD_VERSION
-	istore 1,contw			//bVer
-	add loopcnt,8,regd	//nLength
-	byteswap regd,pdata
-	istore 2,contw			//nLength
-	istoret 2,contw			//nCmdId
-	fetcht 2,mem_wechat_tx_nSeq
-	istoret 2,contw			//Tx nSeq
-	copy contw,regc
-	copy rega,contr
-	call memcpy_fast,user2
-	storer regd,2,mem_wechat_tx_len
-	branch wechat_air_sync_update_nSeq
-	
-wechat_air_sync_update_nSeq:
-	byteswap temp,pdata
-	pincrease 1
-	byteswap pdata,pdata
-	nbranch wechat_air_sync_store_nSeq,blank
-wechat_air_sync_reset_nSeq:
-	setarg 0x0100
-wechat_air_sync_store_nSeq:
-	store 2,mem_wechat_tx_nSeq
-	rtn
-
-
-wechat_air_sync_init_authreq_base_request:
-	setarg 0x000a
-	store 2,mem_wechat_authreq_base_request
-	setarg 0x048084
-	lshift8 pdata,pdata
-	or pdata,0x18,pdata
-	store 4,mem_wechat_authreq_protocol_version
-	setarg 0x0120
-	store 2,mem_wechat_authreq_auth_protocol
-	setarg 0x0228
-	store 2,mem_wechat_authreq_eam_mac_no_encrypt
-	setarg 0x063a
-	store 2,mem_wechat_authreq_mac_address
-	fetch 6,mem_le_lap
-	call inverse_data_6Byte
-	store 6,mem_wechat_authreq_device_address
-	rtn
-
-wechat_air_sync_ble_transmit_wechat_message:
-	fetch 1,mem_le_l2cap_att_states
-	rtnbit1 BLE_L2CAP_RECV_CONFIRMATION_PACKET
-	call le_fifo_check_nearly_full
-	nrtn blank				//no fifo
-	fetch 2,mem_le_wechat_air_sync_ptr
-	rtn blank
-	arg wechat_air_sync_ble_send_wechat_message,regc
-	branch wechat_air_sync_calc_function
-
-wechat_air_sync_ble_send_wechat_message:
-	call module_get_le_remote_mtu
-	fetch 2,mem_wechat_tx_len
-	rtn blank
-	add temp,-3,pdata		//sub handle and opcode
-	fetcht 2,mem_wechat_tx_len
-	call not_greater_than
-	copy pdata,rega
-	copy temp,pdata
-	isub rega,pdata
-	store 2,mem_wechat_tx_len
-	fetcht 1,mem_wechat_indication_handle
-	call le_att_malloc_tx_indication
-	fetch 2,mem_wechat_tx_address
-	copy pdata,contr
-	copy rega,loopcnt
-	call memcpy_fast
-	copy contr,pdata
-	store 2,mem_wechat_tx_address
-	rtn
-
-
-wechat_air_sync_calc_function:
-	call wechat_air_sync_load_in_local_buffer
-	copy regc,pdata
-	call callback_func
-	branch wechat_air_sync_store_in_global_buffer
-
-
-wechat_air_sync_load_in_local_buffer:
-	fetch 2,mem_le_wechat_air_sync_ptr
-	rtn blank
-	copy pdata,contr
-	arg WECHAT_AIR_SYNC_STRUCT_SIZE,loopcnt
-	arg mem_wechat_indication_handle,contw
-	branch memcpy_fast
-
-wechat_air_sync_store_in_global_buffer:
-	fetch 2,mem_le_wechat_air_sync_ptr
-	rtn blank
-	copy pdata,contw
-	arg WECHAT_AIR_SYNC_STRUCT_SIZE,loopcnt
-	arg mem_wechat_indication_handle,contr
-	branch memcpy_fast
-
-
-//input:rega is data ptr
-//regb is data length
-wechat_air_sync_send_wechat_packet:
-	call enable_user
-	fetch 2,mem_le_wechat_air_sync_ptr
-	rtn blank
-	arg wechat_air_sync_send_wechat_packet_cb,regc
-	branch wechat_air_sync_calc_function
-
-wechat_air_sync_send_wechat_packet_cb:
-	fetch 2,mem_wechat_tx_len
-	nrtn blank
-	call disable_user
-	call disable_user2
-	add regb,6,loopcnt
-	arg ECI_REQ_SEND_DATA,temp
-	call wechat_air_sync_send_message_without_payload
-	copy regc,contw
-	setarg 0x12000a
-	istore 3,contw
-	istorer regb,1,contw
-	copy rega,contr
-	copy regb,loopcnt
-	call memcpy_fast
-	setarg 0x0018
-	istore 2,contw
-	rtn
-
-endif
-
Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/ble_protocol_stack/le_l2cap_signalling.prog
===================================================================
--- /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/ble_protocol_stack/le_l2cap_signalling.prog	(revision 5679)
+++ /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/ble_protocol_stack/le_l2cap_signalling.prog	(nonexistent)
@@ -1,54 +0,0 @@
-
-
-le_parse_signaling:
-	ifetch 1,contr
-	ifetcht 1,contr //id
-	ifetcht 2,contr //length
-	beq L2CAP_CONNECTION_PARAMETER_UPDATE_RESPONSE,le_l2cap_parse_conn_parameter_update_rsp
-	rtn
-le_l2cap_parse_conn_parameter_update_rsp:
-	ifetch 2,contr	//result
-	store 2,mem_le_l2cap_signaling_conn_param_update_rsp_result
-	jam BT_EVT_LE_PARSE_CONN_PAPA_UPDATE_RSP,mem_fifo_temp
-	branch ui_ipc_send_event
-
-
-//mem_le_interval_min:the ptr that connection parameter,
-//include 	ConnIntervalMin,ConnIntervalMax,
-//		ConnSlaveLatency,ConnSupervisionTimeout
-le_l2cap_tx_update_req:
-	arg 0x0c,rega
-	arg L2CAP_CONNECTION_PARAMETER_UPDATE_REQUEST,regc
-	call le_fifo_malloc_tx_l2cap_signaling
-	setarg 0x08
-	istore 2,contw
-	fetch 8,mem_le_interval_min
-	istore 8,contw
-	rtn
-
-
-//rega:len regc:signaling opcode
-le_fifo_malloc_tx_l2cap_signaling:
-	call le_l2cap_update_signaling_identifier
-	arg LE_L2CAP_CID_SIGNAL,regb
-	call le_fifo_malloc_tx_l2cap
-	copy regc,pdata
-	istore 1,contw
-	fetch 1,mem_le_signaling_identifier
-	istore 1,contw
-	rtn
-
-
-le_l2cap_update_signaling_identifier:
-	fetch 1,mem_le_signaling_identifier
-	//beq 0xff,le_l2cap_signaling_identifier_set_1
-	pincrease 1
-	store 1,mem_le_signaling_identifier
-	rtnne 0
-	
-le_l2cap_reset_signaling_identifier:
-	jam 1,mem_le_signaling_identifier
-	rtn
-
-
-
Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/ble_protocol_stack/le_l2cap_smp.prog
===================================================================
--- /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/ble_protocol_stack/le_l2cap_smp.prog	(revision 5679)
+++ /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/ble_protocol_stack/le_l2cap_smp.prog	(nonexistent)
@@ -1,612 +0,0 @@
-
-le_pairing_mode_init:
-	fetch  1,mem_le_pairing_mode
-	beq LE_PAIRING_MODE_NONE, le_set_no_pairing
-	beq LE_PAIRING_MODE_LAGACY_JUSTWORK,le_set_pairing_mode_lagacy_just_work
-	beq LE_PAIRING_MODE_LAGACY_PASSKEY,le_set_pairing_mode_lagacy_passkey
-ifdef SECURE_CONNECTION				
-	beq LE_PAIRING_MODE_SECURE_CONNECT_JUSTWORK,le_set_pairing_mode_secure_justwork
-	beq LE_PAIRING_MODE_SECURE_CONNECT_NUMERIC,le_set_pairing_mode_secure_numeric
-	beq LE_PAIRING_MODE_SECURE_CONNECT_PASSKEY,le_set_pairing_mode_secure_passkey
-endif
-	rtn
-	
-ifdef SECURE_CONNECTION				
-le_set_pairing_mode_secure_justwork:
-	jam FLAG_LE_BONDING_MITM_SECURE,mem_le_pres_auth
-	branch le_set_noinputnooutput
-le_set_pairing_mode_secure_numeric:
-	jam FLAG_LE_BONDING_MITM_SECURE,mem_le_pres_auth
-	jam FLAG_IOCAP_DISPLAYYESNO,mem_le_pres_iocap
-	rtn
-le_set_pairing_mode_secure_passkey:	
-	jam FLAG_LE_BONDING_MITM_SECURE,mem_le_pres_auth
-	branch le_set_displayonly
-endif
-
-le_set_no_pairing:
-	jam FLAG_LE_NO_BONDING_NO_MITM,mem_le_pres_auth
-le_set_noinputnooutput:	
-	jam FLAG_IOCAP_NOINPUTNOOUTPUT,mem_le_pres_iocap
-	rtn
-le_set_pairing_mode_lagacy_just_work:
-	jam FLAG_LE_BONDING_MITM,mem_le_pres_auth
-	branch le_set_noinputnooutput
-le_set_pairing_mode_lagacy_passkey:
-	jam FLAG_LE_BONDING_MITM,mem_le_pres_auth
-le_set_displayonly:	
-	jam FLAG_IOCAP_DISPLAYONLY,mem_le_pres_iocap
-	rtn
-
-ifdef SECURE_CONNECTION			
-le_secure_connection_enable:
-	fetch 1,mem_secure_connections_enable
-	set1 SECURE_CONNECTIONS_LE_BIT,pdata
-	store 1,mem_secure_connections_enable
-	rtn
-	
-le_secure_connection_disable:
-	fetch 1,mem_secure_connections_enable
-	set0 SECURE_CONNECTIONS_LE_BIT,pdata
-	store 1,mem_secure_connections_enable
-	rtn
-endif
-
-le_parse_smp:
-	ifetch 1,contr
-	beq SMP_PAIRING_REQUEST,le_parse_smp_pairing_request
-//	beq SMP_PAIRING_RESPONSE,le_parse_smp_pairing_response
-	beq SMP_PAIRING_CONFIRM,le_parse_smp_pairing_confirm
-	beq SMP_PAIRING_RANDOM,le_parse_smp_pairing_random
-	beq SMP_PAIRING_FAILED,le_parse_smp_pairing_failed
-//	beq SMP_ENCRYPTION_INFORMATION,le_parse_smp_encryption_information
-	beq SMP_MASTER_IDENTIFICATION,le_parse_smp_master_identification
-	beq SMP_IDENTITY_INFORMATION,le_parse_smp_identity_information
-	beq SMP_IDENTITY_ADDRESS_INFORMATION,le_parse_smp_identity_address_information
-	beq SMP_SIGNING_INFORMATION,le_parse_smp_signing_information
-	beq SMP_SECURITY_REQUEST,le_parse_smp_security_request
-ifdef SECURE_CONNECTION			
-	beq SMP_PAIRING_PUBLIC_KEY,le_parse_smp_public_key
-	beq SMP_PAIRING_DHKEY_CHECK,le_parse_smp_dhkey_check
-endif 	
-	rtn
-
-
-
-le_send_smp_security_request:
-	force 2,rega
-	call le_fifo_malloc_tx_l2cap_smp
-	setarg SMP_SECURITY_REQUEST
-	istore 1,contw
-	fetch 1,mem_le_pres_auth
-	istore 1,contw
-	rtn
-		
-le_parse_smp_pairing_request:
-	store 1,mem_le_preq
-	ifetch 6,contr
-	istore 6,contw
-	fetch 1,mem_le_pairing_mode
-	beq  LE_PAIRING_MODE_NONE,le_smp_pairing_fail_reason_not_support_pairing
-	call le_send_smp_pairing_response
-ifdef 	SECURE_CONNECTION
-	fetch 1,mem_sc_only_mode
-	branch le_parse_smp_pairing_request2, blank
-	fetch 1,mem_le_preq_auth
-	bbit0  LE_AUTH_SECURE_CONNECTION_PAIRING_BIT,app_ble_disconnect
-	fetch 1,mem_le_pairing_mode
-	bbit0 LE_PAIRING_MODE_SECURE_CONNECT_BIT,app_ble_disconnect
-endif	
-le_parse_smp_pairing_request2:	
-	jam FLAG_LE_PAIRING_RCV_PAIRING_REQ,mem_le_pairing_state
-	fetch 1,mem_le_preq_iocap
-	beq  FLAG_IOCAP_DISPlAYONLY,le_set_tk_0
-	beq  FLAG_IOCAP_DISPLAYYESNO,le_set_tk_0
-	beq  FLAG_IOCAP_NOINPUTNOOUTPUT,le_set_tk_0
-	fetch 1,mem_le_pairing_mode	
-	beq LE_PAIRING_MODE_LAGACY_PASSKEY,le_parse_smp_pairing_req_passkey
-	rtneq LE_PAIRING_MODE_SECURE_CONNECT_PASSKEY
-le_set_tk_0:
-	arg 0,pdata
-	store 4,mem_le_tk
-	rtn
-
-le_parse_smp_pairing_req_passkey:
-	fetch 1,mem_le_configuration
-	bbit1 BIT_BLE_PASSKEY_FIXED_KEY,le_parse_smp_pairing_req_fixed_passkey
-le_genernate_tk:
-	arg mem_le_tk,rega
-	copy rega,contw
-	arg 3,loopcnt
-	call generate_random_loop
-	fetch 2,mem_le_tk + 2
-	and_into 0x7,pdata
-	store 2,mem_le_tk + 2
-le_parse_smp_pairing_req_fixed_passkey:
-	jam BT_EVT_LE_TK_GENERATE,mem_fifo_temp
-	branch ui_ipc_send_event
-
-
-
-le_send_smp_pairing_response:
-	force 7,rega
-	call le_fifo_malloc_tx_l2cap_smp
-	fetch 7,mem_le_pres
-	istore 7,contw
-	rtn
-		
-
-le_parse_smp_pairing_confirm:
-	jam FLAG_LE_PAIRING_RECEIVE_PAIRING_CONFIRM,mem_le_pairing_state
-	arg mem_le_rconfirm,contw
-	call memcpy16
-	fetch 1,mem_le_pairing_mode
-	beq LE_PAIRING_MODE_LAGACY_PASSKEY_RES_INPUT,le_parse_smp_pairing_confirm_passkey_res_input
-ifdef SECURE_CONNECTION				
-	beq LE_PAIRING_MODE_SECURE_CONNECT_PASSKEY,le_parse_smp_pairing_confirm_secure_passkey
-	beq LE_PAIRING_MODE_SECURE_CONNECT_PASSKEY_RES_INPUT,le_parse_smp_pairing_confirm_sc_passkey_res_input
-endif
-	branch le_send_smp_pairing_confirm
-
-	
-le_parse_smp_pairing_confirm_passkey_res_input:
-	jam BT_EVT_LE_GET_PASSKEY,mem_fifo_temp
-	branch ui_ipc_send_event
-	
-ifdef SECURE_CONNECTION				
-le_parse_smp_pairing_confirm_secure_passkey:
-	jam LE_SP_FLAG_COMMIT_256,mem_le_secure_connect_flag
-	jam LE_SC_STAT_PASSKEY_WAIT_CONFIRM,mem_le_secure_connect_state	
-	rtn
-
-le_parse_smp_pairing_confirm_sc_passkey_res_input:
-	fetch 4,mem_le_tk
-	branch le_parse_smp_pairing_confirm_passkey_res_input,blank
-	branch le_parse_smp_pairing_confirm_secure_passkey
-endif
-
-le_send_smp_pairing_confirm:
-	jam FLAG_LE_PAIRING_SEND_PAIRING_CONFIRM,mem_le_pairing_state
-ifdef SECURE_CONNECTION				
-	fetch 1,mem_le_pairing_mode
-	bbit1 LE_PAIRING_MODE_SECURE_CONNECT_BIT,le_send_smp_pairing_confirm_sc
-endif 
-	call generate_confirm
-	force 17,rega
-	call le_fifo_malloc_tx_l2cap_smp
-	setarg SMP_PAIRING_CONFIRM
-	istore 1,contw
-	branch  store_aes_result
-
-ifdef SECURE_CONNECTION					
-le_send_smp_pairing_confirm_sc:
-	arg mem_le_srand,contw	
-	call generate_random
-	call function_f4_cb
-	force 17,rega
-	call le_fifo_malloc_tx_l2cap_smp
-	setarg SMP_PAIRING_CONFIRM
-	istore 1,contw
-	branch  load_inverse_result
-endif
-	
-le_parse_smp_pairing_random:	
-	copy contr,rega
-ifdef SECURE_CONNECTION				
-	fetch 1,mem_le_pairing_mode
-	bbit1 LE_PAIRING_MODE_SECURE_CONNECT_BIT,le_parse_smp_pairing_random_sc
-endif
-	copy rega,contr
-	call authenticate_rconfirm
-	branch le_parse_smp_pairing_random_success,zero
-le_send_pairing_confirm_value_failed:
-	jam PAIRING_FAILED_CONFIRM_VALUE_FAILED,mem_le_ll_pairing_fail_reason
-le_send_pairing_failed:
-	force 2,rega
-	call le_fifo_malloc_tx_l2cap_smp
-	setarg SMP_PAIRING_FAILED
-	istore 1,contw
-	fetch 1,mem_le_ll_pairing_fail_reason
-	istore 1,contw	
-le_parse_smp_pairing_failed:
-	bpatchx patch32_2,mem_patch32
-	force smp_pairing_timer,queue
-	call timer_stop
-	jam FLAG_LE_PAIRING_NULL,mem_le_pairing_state
-	jam BT_EVT_LE_PAIRING_FAIL,mem_fifo_temp
-	branch ui_ipc_send_event
-
-le_smp_pairing_fail_reason_not_support_pairing:
-	jam PAIRING_FAILED_PAIRING_NOT_SUPPORTED,mem_le_ll_pairing_fail_reason
-	branch le_send_pairing_failed
-	
-ifdef SECURE_CONNECTION				
-le_parse_smp_pairing_random_sc:
-	arg mem_le_mrand,contw
-	copy rega,contr
-	call memcpy16	
-	fetch 1,mem_le_pairing_mode
-	beq LE_PAIRING_MODE_SECURE_CONNECT_PASSKEY,le_parse_smp_pairing_random_sc_passkey
-	beq LE_PAIRING_MODE_SECURE_CONNECT_PASSKEY_RES_INPUT,le_parse_smp_pairing_random_sc_passkey
-	call function_g2
-	call le_send_smp_pairing_random
-	fetch 1,mem_le_pairing_mode
-	rtnne LE_PAIRING_MODE_SECURE_CONNECT_NUMERIC
-	jam BT_EVT_LE_GKEY_GENERATE,mem_fifo_temp
-	branch ui_ipc_send_event	
-	
-le_parse_smp_pairing_random_sc_passkey:
-	call function_f4_ca
-	arg mem_AES_CMAC_temp,contw
-	call load_inverse_result	
-	arg mem_AES_CMAC_temp,rega
-	arg mem_le_rconfirm ,regb
-	arg 16,loopcnt
-	call string_compare
-	nbranch le_send_pairing_confirm_value_failed,zero
-	branch le_send_smp_pairing_random
-endif 
-
-le_parse_smp_pairing_random_success:
-	call generate_stk
-	jam BT_EVT_LE_PAIRING_SUCCESS,mem_fifo_temp
-	call ui_ipc_send_event
-	jam 1,mem_ltk_exists
-	jam FLAG_LE_PAIRING_AFTER_AUTH,mem_le_pairing_state
-	
-le_send_smp_pairing_random:
-	force 17,rega
-	call le_fifo_malloc_tx_l2cap_smp
-	setarg SMP_PAIRING_RANDOM
-	istore 1,contw
-	arg mem_le_srand,contr
-	branch memcpy16
-
-le_send_smp_encryption_information:
-	force 17,rega
-	call le_fifo_malloc_tx_l2cap_smp
-	setarg SMP_ENCRYPTION_INFORMATION
-	istore 1,contw
-	fetch 1,mem_le_configuration
-	bbit1 BIT_BLE_PAIRING_FIXED_LTK,le_send_fixed_ltk
-	arg mem_le_ltk,contr
-	branch memcpy16
-
-le_send_fixed_ltk:
-	arg mem_le_fixed_ltk,contr
-	branch memcpy16
-
-
-le_send_smp_master_identification:
-	arg mem_le_ediv,contw
-	force 10,loopcnt
-	call generate_random_loop
-	force 11,rega
-	call le_fifo_malloc_tx_l2cap_smp
-	setarg SMP_MASTER_IDENTIFICATION
-	istore 1,contw
-	fetch 2,mem_le_ediv
-	istore 2,contw
-	fetch 8,mem_le_rand
-	istore 8,contw
-	rtn
-
-le_send_smp_identity_information:
-	force 17,rega
-	call le_fifo_malloc_tx_l2cap_smp
-	setarg SMP_IDENTITY_INFORMATION
-	istore 1,contw
-	setarg 0
-	istore 8,contw
-	istore 8,contw
-	rtn
-	
-
-le_send_smp_identity_address_information:
-	force 8,rega
-	call le_fifo_malloc_tx_l2cap_smp
-	setarg SMP_IDENTITY_ADDRESS_INFORMATION
-	istore 1,contw
-	fetch 1,mem_le_conn_own_addr_type
-	istore 1,contw
-	fetch 6,mem_le_lap	
-	istore 6,contw
-	rtn	
-
-
-le_send_pairing_fail_unspecified_reason:
-	jam PAIRING_FAILED_UNSPECIFIED_REASON,mem_le_ll_pairing_fail_reason
-	branch le_send_pairing_failed
-
-le_check_init_key_distribution:
-	fetch 1,mem_le_pres_init_key_distribution
-	fetcht 1,mem_le_pres_init_key_distribution
-	iand temp,pdata
-	rtn	
-
-le_parse_smp_identity_information:
-	arg mem_le_irk,contw
-	call memcpy16
-	call le_check_init_key_distribution
-	isolate0 LE_INITATOR_IRK_BIT,pdata
-	branch le_send_pairing_fail_unspecified_reason,true
-	fetch 1,mem_device_option
-	rtnne DVC_OP_MODULE
-	call le_check_master_addr_type
-	nrtn user
-	branch app_ble_store_reconn_info
-
-//output:user is enable ,random addr type
-le_check_master_addr_type:
-	call disable_user
-	fetch 1,mem_le_conn_peer_addr_type
-	rtneq MASTER_PUBLIC_ADDR
-	fetch 1,mem_le_preq_init_key_distribution
-	rtnbit0 LE_INITATOR_IRK_BIT
-	branch enable_user
-
-le_parse_smp_identity_address_information:
-	call le_check_init_key_distribution
-	isolate0 LE_INITATOR_IRK_BIT,pdata
-	branch le_send_pairing_fail_unspecified_reason,true
-	rtn
-
-le_parse_smp_master_identification:
-le_parse_smp_signing_information:	
-le_parse_smp_security_request:
-	rtn
-	
-ifdef SECURE_CONNECTION				
-le_parse_smp_public_key:
-	arg mem_le_pubkey_remote_x_256,contw	
-	call memcpy64
-	jam LE_SP_FLAG_COMMIT_256,mem_le_secure_connect_flag
-	jam LE_SC_STAT_RECEIVE_PUBLIC_KEY,mem_le_secure_connect_state
-	rtn
-
-le_parse_smp_dhkey_check:
-	arg mem_sp_confirm_remote,contw
-	call memcpy16	
-	jam LE_SC_STAT_RECEIVE_DHKEY,mem_le_secure_connect_state
-	jam LE_SP_FLAG_COMMIT_256,mem_le_secure_connect_flag
-	rtn	
-
-le_send_smp_pairing_public_key:
-	force 65,rega
-	call le_fifo_malloc_tx_l2cap_smp
-	setarg SMP_PAIRING_PUBLIC_KEY
-	istore 1,contw	
-	arg mem_sc_pubkey_local_x_256,contr
-	branch memcpy64
-	
-le_send_smp_pairing_dhkey_check:
-	call function_f6_eb	
-	force 17,rega
-	call le_fifo_malloc_tx_l2cap_smp
-	setarg SMP_PAIRING_DHKEY_CHECK
-	istore 1,contw
-	branch load_inverse_result
-endif	
-
-le_check_paring_time:
-	fetch 1,mem_le_pairing_state
-	rtneq FLAG_LE_PAIRING_END
-	arg FLAG_LE_PAIRING_RCV_PAIRING_REQ,temp
-	isub temp,null
-	nrtn positive
-	arg smp_pairing_timer,queue
-	call timer_check
-	nrtn blank
-	branch le_send_pairing_fail_unspecified_reason
-
-le_pairing_sm:
-	bpatchx patch32_3,mem_patch32
-	call le_fifo_check_nearly_full
-	nrtn blank	
-	fetch 1,mem_le_pairing_state
-	beq FLAG_LE_PAIRING_NULL,le_pairing_sm_null
-	beq FLAG_LE_PAIRING_START,le_pairing_sm_start
-	beq FLAG_LE_PAIRING_SEND_RECURITY_REQ,le_pairing_sm_send_sec_req
-	beq FLAG_LE_PAIRING_RCV_PAIRING_REQ,le_pairing_sm_rcv_pairing_req
-	beq FLAG_LE_PAIRING_AFTER_AUTH,le_pairing_sm_after_auth
-	beq FLAG_LE_PARING_SEND_ENC_INFORMATION,le_pairng_sm_send_enc_information
-	beq FLAG_LE_PARING_SEND_MASTER_IDENTIFICATION,le_pairng_sm_send_master_indentification
-	beq FLAG_LE_PARING_SEND_INDENTITY_INFORMATION,le_pairng_sm_send_indentity_information
-	rtn
-
-le_pairing_sm_null:
-le_pairing_sm_send_sec_req:
-	fetch 1,mem_le_enc_state
-	rtnne FLAG_LE_SEND_START_ENC_RSP
-	jam FLAG_LE_ENC_END,mem_le_enc_state
-	jam FLAG_LE_PAIRING_END,mem_le_pairing_state
-	jam BT_EVT_LE_RECONNECT_COMPLETE ,mem_fifo_temp
-	branch ui_ipc_send_event	
-	
-	
-le_pairing_sm_start:
-	jam FLAG_LE_PAIRING_SEND_RECURITY_REQ,mem_le_pairing_state
-	branch le_send_smp_security_request
-
-le_pairing_sm_rcv_pairing_req:
-	jam FLAG_LE_PAIRING_WAIT_STK_GENERATION,mem_le_pairing_state
-	setarg TIMER_SMP_PAIRING_TIMEOUT
-	arg smp_pairing_timer,queue
-	branch timer_init
-	
-le_pairing_sm_after_auth:
-	fetch 1,mem_le_enc_state
-	beq FLAG_LE_SEND_START_ENC_RSP,le_pairing_sm_after_auth_start_enc
-	rtn
-	
-le_pairing_sm_after_auth_start_enc:
-	fetch 1,mem_le_pairing_mode
-	bbit1 LE_PAIRING_MODE_SECURE_CONNECT_BIT,le_pairing_sm_after_auth_start_enc_sc
-
-	jam FLAG_LE_PARING_SEND_ENC_INFORMATION,mem_le_pairing_state
-	call le_send_smp_encryption_information
-le_pairing_sm_after_auth_start_enc_common:
-	jam BT_EVT_LE_ENC_INFO,mem_fifo_temp
-	call ui_ipc_send_event
-	fetch 1,mem_device_option
-	rtnne DVC_OP_MODULE
-	call le_check_master_addr_type
-	rtn user
-	branch app_ble_store_reconn_info
-
-le_pairing_sm_after_auth_start_enc_sc:
-	jam FLAG_LE_PARING_SEND_MASTER_IDENTIFICATION,mem_le_pairing_state
-	branch le_pairing_sm_after_auth_start_enc_common
-
-le_pairng_sm_send_enc_information:	
-	jam FLAG_LE_PARING_SEND_MASTER_IDENTIFICATION,mem_le_pairing_state
-	branch le_send_smp_master_identification
-
-le_pairng_sm_send_master_indentification:	
-	fetch 1,mem_le_preq_resp_key_distribution
-	fetcht 1,mem_le_pres_resp_key_distribution
-	iand temp,pdata
-	isolate0 LE_INITATOR_IRK_BIT,pdata
-	branch le_parse_start_enc_rsp_after_auth_end,true
-	jam FLAG_LE_PARING_SEND_INDENTITY_INFORMATION,mem_le_pairing_state
-	branch le_send_smp_identity_information
-
-le_pairng_sm_send_indentity_information:		
-	call le_send_smp_identity_address_information
-	branch le_parse_start_enc_rsp_after_auth_end
-
-
-le_parse_start_enc_rsp_after_auth_end:
-	bpatchx patch32_4,mem_patch32
-	force smp_pairing_timer,queue
-	call timer_stop
-	jam FLAG_LE_ENC_END,mem_le_enc_state
-	jam FLAG_LE_PAIRING_END,mem_le_pairing_state
-	jam BT_EVT_LE_PAIRING_COMPLETE ,mem_fifo_temp
-	branch ui_ipc_send_event	
-	
-
-ifdef SECURE_CONNECTION
-
-le_secure_connect_sm:
-	bpatchx patch32_5,mem_patch32
-	fetch 1,mem_le_pairing_mode
-	rtnbit0 LE_PAIRING_MODE_SECURE_CONNECT_BIT
-	fetch 1,mem_le_secure_connect_flag
-	rtnne LE_SP_FLAG_COMMIT_256
-	jam SP_FLAG_STANDBY,mem_le_secure_connect_flag
-	fetch 1,mem_le_secure_connect_state
-	beq  LE_SC_STAT_RECEIVE_PUBLIC_KEY,le_sc_sm_receive_public_key
-	beq LE_SC_STAT_WAIT_SEND_PUBLIC_KEY,le_sc_sm_wait_send_public_key
-	beq LE_SC_STAT_SEND_PUBLIC_KEY,le_sc_sm_send_public_key
-	beq LE_SC_STAT_RECEIVE_DHKEY,le_sc_sm_receive_dhkey
-	beq LE_SC_STAT_WAIT_CONFIRM_GKEY,le_sc_sm_wait_confirm_gkey
-	beq  LE_SC_STAT_PASSKEY_WAIT_CONFIRM,le_sc_sm_passkey_wait_confirm
-	rtn	
-
-le_sc_state_clear:
-	jam SP_FLAG_STANDBY,mem_le_secure_connect_flag
-	jam LE_SC_STAT_NULL,mem_le_secure_connect_state
-	jam FLAG_LE_SC_CONFRIM_NULL,mem_le_sc_confirm_gkey_flag
-	rtn
-	
-le_sc_sm_passkey_wait_confirm:
-	fetch 1,mem_authentication_passkey_times
-	copy pdata,queue
-	increase 1,pdata
-	store 1,mem_authentication_passkey_times
-	fetch 4,mem_le_tk
-	qisolate1 pdata
-	setarg 0x80
-	setflag true,0,pdata
-	store 1,mem_passkey_1bit
-	branch le_sc_sm_ready_send_pairing_confirm
-	
-le_sc_sm_wait_confirm_gkey:
-	fetch 1,mem_le_sc_confirm_gkey_flag
-	jam FLAG_LE_SC_CONFRIM_NULL,mem_le_sc_confirm_gkey_flag
-	beq FLAG_LE_SC_CONFRIM_GKEY_OK,le_sc_confirm_gkey_ok
-	jam LE_SP_FLAG_COMMIT_256,mem_le_secure_connect_flag
-	rtn
-	
-le_sc_confirm_gkey_ok:
-	jam BT_EVT_LE_PAIRING_SUCCESS,mem_fifo_temp
-	call ui_ipc_send_event	
-	jam FLAG_LE_PAIRING_AFTER_AUTH,mem_le_pairing_state
-	branch le_send_smp_pairing_dhkey_check
-
-le_sc_sm_receive_dhkey:
-	fetch 1,mem_sp_dhkey_invalid
-	beq SP_KEY_VALID_256,le_dhkey_ready
-	jam LE_SP_FLAG_COMMIT_256,mem_le_secure_connect_flag
-	rtn
-
-le_dhkey_ready:
-	call function_f5
-	fetch 1,mem_le_pairing_mode
-	beq LE_PAIRING_MODE_SECURE_CONNECT_PASSKEY ,le_dhkey_ready_common
-	beq LE_PAIRING_MODE_SECURE_CONNECT_PASSKEY_RES_INPUT ,le_dhkey_ready_common
-	call le_set_tk_0 
-le_dhkey_ready_common:
-	call function_f6_ea
-	arg mem_AES_CMAC_temp,rega
-	arg mem_sp_confirm_remote ,regb
-	arg 16,loopcnt
-	call string_compare
-	branch le_dhkey_check_ok,zero
-le_dhkey_check_fail:	
-	jam PAIRING_FAILED_DHKEY_CHECK_FAILED,mem_le_ll_pairing_fail_reason
-	branch le_send_pairing_failed
-
-	
-le_dhkey_check_ok:
-	call sp_calc_check_publickey_256
-	nbranch le_dhkey_check_fail,zero
-	jam 1,mem_ltk_exists
-	fetch 1,mem_le_pairing_mode
-	beq LE_PAIRING_MODE_SECURE_CONNECT_JUSTWORK,le_sc_confirm_gkey_ok
-	beq LE_PAIRING_MODE_SECURE_CONNECT_PASSKEY ,le_sc_confirm_gkey_ok	
-	beq LE_PAIRING_MODE_SECURE_CONNECT_PASSKEY_RES_INPUT ,le_sc_confirm_gkey_ok	
-	jam LE_SP_FLAG_COMMIT_256,mem_le_secure_connect_flag
-	jam LE_SC_STAT_WAIT_CONFIRM_GKEY,mem_le_secure_connect_state	
-	rtn	
-
-le_sc_sm_send_public_key:
-	fetch 1,mem_le_pairing_mode
-	beq LE_PAIRING_MODE_SECURE_CONNECT_PASSKEY,le_sc_sm_send_public_key_passkey
-	beq LE_PAIRING_MODE_SECURE_CONNECT_PASSKEY_RES_INPUT,le_sc_sm_send_public_key_passkey
-	jam 0,mem_passkey_1bit
-le_sc_sm_ready_send_pairing_confirm:
-	branch le_send_smp_pairing_confirm
-
-le_sc_sm_send_public_key_passkey:
-	jam 0,mem_authentication_passkey_times
-	rtneq LE_PAIRING_MODE_SECURE_CONNECT_PASSKEY_RES_INPUT
-	branch le_parse_smp_pairing_req_passkey
-
-	
-le_sc_sm_receive_public_key:
-	jam LE_SP_FLAG_COMMIT_256,mem_le_secure_connect_flag
-	fetch 1,mem_sc_local_key_invalid
-	beq SP_KEY_VALID_256,le_public_key_ready
-	rtn
-	
-le_public_key_ready:
-	jam LE_SC_STAT_WAIT_SEND_PUBLIC_KEY,mem_le_secure_connect_state	
-	jam SP_KEY_INVALID,mem_sp_dhkey_invalid
-	branch sp_dhkey_calc_256	
-
-le_sc_sm_wait_send_public_key:
-	jam LE_SP_FLAG_COMMIT_256,mem_le_secure_connect_flag
-	jam LE_SC_STAT_SEND_PUBLIC_KEY,mem_le_secure_connect_state
-	branch le_send_smp_pairing_public_key
-
-endif
-
-
-le_fifo_malloc_tx_l2cap_smp:
-	bpatchx patch32_6,mem_patch32
-	force LE_L2CAP_CID_SMP,regb
-	branch le_fifo_malloc_tx_l2cap
-
-
Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/ble_protocol_stack/le_ll.prog
===================================================================
--- /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/ble_protocol_stack/le_ll.prog	(revision 5679)
+++ /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/ble_protocol_stack/le_ll.prog	(nonexistent)
@@ -1,340 +0,0 @@
-
-le_parse_ll:
-	fetch 1,mem_le_rxbuf_data_ll_opcode
-	beq LL_CONNECTION_UPDATE_IND,le_parse_connection_update_ind
-	beq LL_CHANNEL_MAP_IND,le_parse_channel_map_ind
-	beq LL_TERMINATE_IND,le_parse_terminate_ind
-	beq LL_ENC_REQ,le_parse_enc_req
-	beq LL_ENC_RSP,le_parse_enc_rsp
-	beq LL_START_ENC_REQ,le_parse_start_enc_req
-	beq LL_START_ENC_RSP,le_parse_start_enc_rsp
-	beq LL_UNKNOWN_RSP,le_parse_unknown_rsp
-	beq LL_FEATURE_REQ,le_parse_feature_req
-	beq LL_FEATURE_RSP,le_parse_feature_rsp
-	beq LL_PAUSE_ENC_REQ,le_parse_pause_enc_req
-	beq LL_PAUSE_ENC_RSP,le_parse_pause_enc_rsp
-	beq LL_VERSION_IND,le_parse_version_ind
-	beq LL_REJECT_IND,le_parse_reject_ind
-	beq LL_PING_REQ,le_parse_ping_req
-	beq LL_PING_RSP,le_parse_ping_rsp
-	beq LL_LENGTH_REQ,le_parse_length_req
-	beq LL_LENGTH_RSP,le_parse_length_rsp
-	beq LL_PHY_REQ,le_parse_phy_req
-	beq LL_PHY_UPDATE_IND,le_parse_phy_update_ind
-p_le_send_unknown_rsp:
-	fetchr regc,1,mem_le_rxbuf_data_ll_opcode
-	branch le_send_unknown_rsp
-
-
-//LL Opcode:0x00
-le_parse_connection_update_ind:
-	ifetch 9,contr
-	store 9,mem_le_new_param
-	ifetch 2,contr
-	store 2,mem_le_instant
-	fetch 1,mem_le_state
-	set1 lestate_update_param,pdata
-	store 1,mem_le_state
-	rtn
-
-
-//LL Opcode:0x01
-le_parse_channel_map_ind:
-	ifetch 5,contr
-	store 5,mem_le_new_map
-	ifetch 2,contr
-	store 2,mem_le_instant
-le_update_map_enable:
-	fetch 1,mem_le_state
-	set1 lestate_update_map,pdata
-	store 1,mem_le_state
-	rtn
-
-
-//LL Opcode:0x02
-le_parse_terminate_ind:
-	setarg 20 // 200ms
-	store 2,mem_le_superto
-	store 2,mem_le_init_superto
-	rtn
-
-
-//LL Opcode:0x03
-le_parse_enc_req:
-	ifetch 8,contr
-	store 8,mem_le_rand
-	ifetch 2,contr
-	store 2,mem_le_ediv
-	ifetch 8,contr
-	store 8,mem_le_skdm
-	ifetch 4,contr
-	store 4,mem_ccm_ivm
-	call le_send_enc_rsp
-	bpatchx patch32_7,mem_patch32
-	fetch 1,mem_le_pairing_state
-	beq FLAG_LE_PAIRING_AFTER_AUTH,le_parse_enc_req_after_auth
-	fetch 1,mem_le_configuration
-	bbit1  BIT_BLE_PAIRING_FIXED_LTK,le_parse_enc_req_fixed_ltk
-	fetch 1,mem_nv_data_number
-	ncall load_device_list_mode_4,blank
-	fetch 1,mem_ltk_exists
-	beq 0,le_ltk_lost
-le_parse_enc_req_after_auth:
-	jam FLAG_LE_RCV_ENC_START,mem_le_enc_state
-	call  le_send_start_enc_req
-	branch generate_sk
-le_parse_enc_req_fixed_ltk:
-	jam 1,mem_ltk_exists
-	arg mem_le_fixed_ltk,contr
-	arg mem_le_ltk,contw
-	call memcpy16
-	branch le_parse_enc_req_after_auth
-	
-le_ltk_lost:
-	jam FLAG_LE_ENC_NULL,mem_le_enc_state
-	jam FLAG_LE_ENC_NULL,mem_le_pairing_state
-	jam BT_EVT_LE_LTK_LOST,mem_fifo_temp
-	branch ui_ipc_send_event
-
-//LL Opcode:0x04
-le_parse_enc_rsp:
-	ifetch 8,contr
-	store 8,mem_le_skds
-	ifetch 4,contr
-	store 4,mem_ccm_ivs
-	branch generate_sk
-
-
-//LL Opcode:0x05
-le_parse_start_enc_req:
-	fetch 1,mem_le_state
-	set1 lestate_encryption,pdata
-	store 1,mem_le_state
-	rtn
-
-//LL Opcode:0x06
-le_parse_start_enc_rsp:
-	rtn master
-	jam BT_EVT_LE_START_ENC,mem_fifo_temp
-	call ui_ipc_send_event	
-	jam FLAG_LE_SEND_START_ENC_RSP,mem_le_enc_state
-	branch le_send_start_enc_rsp
-
-
-//LL Opcode:0x07
-le_parse_unknown_rsp:
-	rtn
-
-
-//LL Opcode:0x08
-le_parse_feature_req:
-	branch le_send_feature_rsp
-
-
-//LL Opcode:0x09
-le_parse_feature_rsp:
-	rtn
-
-
-//LL Opcode:0x0a
-le_parse_pause_enc_req:
-	jam FLAG_LE_ENC_PAUSE,mem_le_enc_state
-	call le_send_pause_enc_rsp	
-	jam BT_EVT_LE_PAUSE_ENC,mem_fifo_temp
-	branch ui_ipc_send_event	
-
-
-//LL Opcode:0x0b
-le_parse_pause_enc_rsp:
-	rtn
-
-
-//LL Opcode:0x0c
-le_parse_version_ind:
-	rtn master
-	branch le_send_version_ind
-
-
-//LL Opcode:0x0d
-le_parse_reject_ind:
-	rtn
-
-
-//LL Opcode:0x13
-le_parse_ping_req:
-	branch le_send_ping_rsp
-
-
-//LL Opcode:0x14
-le_parse_ping_rsp:
-	rtn
-
-
-le_parse_length_req:
-	call le_parse_length_rsp
-	branch le_send_data_length_res
-
-le_parse_length_rsp:
-	ifetch 8,contr
-	store 8,mem_remote_rx_max_octets
-	fetch 2,mem_remote_rx_max_octets
-	fetcht 2,mem_local_tx_max_octets
-	call not_greater_than
-	store 2,mem_remote_rx_max_octets
-	
-	fetch 2,mem_remote_tx_max_octets
-	fetcht 2,mem_local_rx_max_octets
-	call not_greater_than
-	store 2,mem_remote_tx_max_octets
-	rtn
-
-
-//LL Opcode:0x16
-le_parse_phy_req:
-	branch le_send_phy_rsp
-
-
-//LL Opcode:0x18
-le_parse_phy_update_ind:
-	ifetch 2,contr
-	store 2,mem_le_new_m2s_phy
-	ifetch 2,contr
-	store 2,mem_le_instant
-	rtn blank
-	fetch 1,mem_le_state
-	set1 lestate_update_phy,pdata
-	store 1,mem_le_state	
-	rtn
-
-
-///////////////////send ll packet//////////////
-//LL Opcode:0x02
-le_send_terminate_ind_user_terminated:
-	arg ERROR_REMOTE_USER_TERMINATED_CONNECTION,regc
-
-//regc:The ErrorCode field shall be set to inform the remote device why the connection is about to be terminated.
-le_send_terminate_ind:
-	arg 2,rega
-	arg LL_TERMINATE_IND,regb
-	call le_fifo_malloc_tx_ll
-	copy regc,pdata
-	istore 1,contw
-	rtn
-
-
-//LL Opcode:0x04
-le_send_enc_rsp:
-	arg mem_le_skds,contw
-	force 8,loopcnt
-	call generate_random_loop
-	arg mem_ccm_ivs,contw
-	force 4,loopcnt
-	call generate_random_loop
-	arg 13,rega
-	arg LL_ENC_RSP,regb
-	call le_fifo_malloc_tx_ll
-	fetch 8,mem_le_skds
-	istore 8,contw
-	fetch 4,mem_ccm_ivs
-	istore 4,contw
-	rtn
-
-
-//LL Opcode:0x05
-le_send_start_enc_req:
-	jam FLAG_LE_SEND_START_ENC_REQ,mem_le_enc_state
-	arg LL_START_ENC_REQ,regb
-	branch le_send_ll_one_lenth
-
-
-//LL Opcode:0x06
-le_send_start_enc_rsp:
-	arg LL_START_ENC_RSP,regb
-	branch le_send_ll_one_lenth
-
-
-//LL Opcode:0x07
-//input:regc is receive ll opcode
-le_send_unknown_rsp:
-	arg 2,rega
-	arg LL_UNKNOWN_RSP,regb
-	call le_fifo_malloc_tx_ll
-	istorer regc,1,contw
-	rtn	
-
-
-//LL Opcode:0x09
-le_send_feature_rsp:
-	arg 9,rega
-	arg LL_FEATURE_RSP,regb
-	call le_fifo_malloc_tx_ll
-	fetch 8,mem_le_local_feature
-	or pdata,FUN_LL_FEATURE_LE_ENCRYPTION,pdata
-	istore 8,contw
-	rtn
-
-
-//LL Opcode:0x0B
-le_send_pause_enc_rsp:
-	arg LL_PAUSE_ENC_RSP,regb
-	branch le_send_ll_one_lenth
-
-
-//LL Opcode:0x0C
-le_send_version_ind:
-	arg 6,rega
-	arg LL_VERSION_IND,regb
-	call le_fifo_malloc_tx_ll
-	fetch 5,mem_version
-	istore 5,contw
-	rtn
-
-//LL Opcode:0x0D
-le_send_reject_ind:
-	arg 2,rega
-	arg LL_REJECT_IND,regb
-	call le_fifo_malloc_tx_ll
-	setarg LE_ERR_PIN_OR_KEY_MISSING
-	istore 1,contw
-	rtn		
-
-
-//LL Opcode:0x13
-le_send_ping_rsp:
-	arg LL_PING_RSP,regb
-	branch le_send_ll_one_lenth
-	
-le_send_data_length_req:
-	arg LL_LENGTH_REQ,regb
-	branch le_send_data_length
-
-le_send_data_length_res:
-	arg LL_LENGTH_RSP,regb
-le_send_data_length:
-	arg 9,rega
-	call le_fifo_malloc_tx_ll
-	fetch 8,mem_local_rx_max_octets
-	istore 8,contw
-	rtn
-
-
-//LL Opcode:0x17
-le_send_phy_rsp:
-	arg 3,rega
-	arg LL_PHY_RSP,regb
-	call le_fifo_malloc_tx_ll
-	fetch 1,mem_le_tx_phys
-	and pdata,0x07,pdata
-	istore 1,contw
-	fetch 1,mem_le_rx_phys
-	and pdata,0x07,pdata
-	istore 1,contw
-	rtn		
-
-
-//regb:ll opcode
-le_send_ll_one_lenth:
-	arg 1,rega
-	branch le_fifo_malloc_tx_ll
-
-
Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/bt.prog
===================================================================
--- /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/bt.prog	(revision 5679)
+++ /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/bt.prog	(nonexistent)
@@ -1,1802 +0,0 @@
-//define RAM_VERSION
-//define CLK24M
-define SECURE_CONNECTION
-//define COMPILE_KEYSCAN
-define NEC
-
-define DEBUG_RF_INIT
-
-define COMPILE_SHUTTER
-define COMPILE_MOUSE
-define COMPILE_MODULE
-define COMPILE_USB
-define COMPILE_DONGLE
-define COMPILE_LE
-define COMPILE_24G
-define COMPILE_CAR
-define COMPILE_REMOTE_CAR
-define COMPILE_REMOTE_CONTROL
-//define COMPILE_WECHAT
-//define COMPLIE_TEST
-//define COMPLIE_ADPCM
-
-INCLUDE "bt_format"
-
-org 0x0000		// start from patch ram address start
-ifdef SIM
-include sim.prog
-else
-include patch.prog
-endif
-
-/******************************************/
-/***********   ROM Start   ***************/
-/******************************************/
-
-org 0x2000		// start from rom address start
-start:
-	call lpmstate
-
-soft_reset:
-	bpatch patch00_0,mem_patch00
-	clear_stack
-
-	call load_otp_set_init
-	call app_param_init
-	call initialize_radio
-	call iic_init_360khz
-	call init_param
-	call l2cap_init
-	bpatch patch00_1,mem_patch00
-	call ui_init
-	call app_init
-ifdef SECURE_CONNECTION
-	call publickey_init
-//	call sp_wait_pubkey_calc_done
-endif
-	call lpm_recover_clk,wake
-main_loop:	
-	bpatch patch00_2,mem_patch00
-ifdef SECURE_CONNECTION
-	call sp_calc_sequence_256
-	call sp_calc_sequence_256_check
-endif
-	call le_advertising_dispatch
-	call idle_dispatch
-	call app_process_idle
-	call connection_dispatch
-	call g24_dispatch
-	call lpm_dispatch
-	branch main_loop
-
-connection_dispatch:
-	call connection_incontext
-	rtnmark0 mark_context
-	set0 mark_context,mark
-	call context_save
-	branch le_disable
-	
-connection_incontext:
-	bpatch patch00_3,mem_patch00
-	call context_search_insniff
-	nbranch connection_nosniff,zero
-	call context_load
-	add rega,coffset_mode,contr
-	ifetch 1,contr
-	bbit1 mode_le,le_conn_dispatch
-//	bbit1 mode_master, master_dispatch
-//	branch slave_dispatch
-	rtn
-	
-connection_nosniff:
-	jam 0,mem_current_context
-	call context_get_next
-	copy loopcnt,null
-	rtn zero
-	branch assert
-
-
-/**************************************/
-/**************idle dispatch*********/
-/**************************************/
-	
-idle_dispatch:
-	fetch 1,mem_hci_cmd
-	rtn blank
-	beq hci_cmd_le_create_conn,idle_le_create_conn
-	call context_search_conn_handle
-	rtn zero
-	call context_search_plap
-	rtn zero
-idle_exit:
-	jam 0,mem_hci_cmd
-	rtn
-
-idle_le_create_conn:
-	jam hci_cmd_le_create_conn,mem_cmd_le_create_conn
-	jam 0,mem_hci_cmd
-	rtn
-
-
-
-context_load:
-	bpatch patch00_4,mem_patch00
-	set1 mark_context,mark
-	deposit rega
-	store 2,mem_context_ptr
-	force context_size,loopcnt
-	arg mem_le_state,contw
-	add rega,coffset_mode,contr
-	ifetch 1,contr
-	copy rega,contr
-	bbit1 mode_le,memcpy
-	rtn
-	
-context_save:
-	bpatch patch00_5,mem_patch00
-	fetch 2,mem_context_ptr
-	iforce contw
-	force context_size,loopcnt
-	arg mem_le_state,contr
-	branch memcpy
-	
-	
-
-context_get_next:
-	arg context_num,loopcnt
-	fetcht 1,mem_current_context
-context_get_next_loop:
-	increase 1,temp
-	compare context_num,temp,0xff
-	nbranch context_get_next_cont,true
-	arg 0,temp
-context_get_next_cont:
-	storet 1,mem_current_context
-	mul32 temp,context_size,pdata
-	arg mem_context,rega
-	iadd rega,rega
-	ifetch 1,rega
-	bbit1 state_insniff,context_get_next_sniff
-	rtnbit1 state_inconn
-context_get_next_sniff:
-	loop context_get_next_loop
-	rtn
-	
-context_new:
-	bpatch patch00_6,mem_patch00
-	arg context_search_empty,regc
-	call context_search
-	nrtn zero					// all occupied
-	deposit rega
-	store 2,mem_context_ptr
-	branch enable_zero
-	
-
-	
-	//rtn nzero if idle(no conn)
-context_check_idle:
-	arg context_check_inconn,regc
-	branch context_search
-	
-
-	
-	/* return zero if conn handle is found */
-context_search_conn_handle:
-	fetcht 1,mem_hci_conn_handle
-context_search_conn_handle2:
-	arg context_search_handle,regc
-	branch context_search
-	
-	/* return zero if plap is found */
-context_search_plap:
-	bpatch patch00_7,mem_patch00
-	fetcht 6,mem_hci_plap
-context_search_plap2:
-	arg context_search_lap,regc
-	branch context_search
-	/* return zero if sniff anchor is meet and rega pointers to context */
-context_search_insniff:
-	arg context_search_sniff,regc
-	branch context_search
-	/* return zero if sniff window is in content with current transaction */
-context_search_sniff_window:
-	arg context_search_window,regc
-context_search:
-	bpatch patch01_0,mem_patch01
-	arg mem_context,rega
-	arg context_num,loopcnt
-context_search_loop:
-	ifetch 1,rega
-	copy regc,pc
-context_search_next:
-	bpatch patch01_1,mem_patch01
-	increase context_size,rega
-	loop context_search_loop
-	force 1,null
-	rtn
-
-context_search_empty:
-	bbit1 state_inconn,context_search_next
-	branch enable_zero
-	
-context_search_lap:
-	bbit0 state_inconn,context_search_next
-context_search_lap_cont:
-	add rega,coffset_plap,contr
-	ifetch 6,contr
-	isub temp,null
-	rtn zero
-	branch context_search_next
-
-context_search_handle:
-	bbit0 state_inconn,context_search_next
-	add rega,coffset_conn_handle,contr
-	ifetch 1,contr
-	isub temp,null
-	rtn zero
-	branch context_search_next
-
-context_search_sniff:
-	bbit0 state_insniff,context_search_next
-context_search_sniff_loop:
-	call context_get_anchor
-	call sign_pdata_temp
-	isub temp,pdata
-	increase 1,pdata
-	branch context_search_sniff_miss,positive
-	copy contr,regb
-	store 9,mem_temp
-	bpatch patch01_2,mem_patch01
-ifdef SECURE_CONNECTION
-	fetch 1,mem_sc_calc
-	nbranch context_search_sniff_sc,blank
-endif	
-	fetch 9,mem_temp
-	copy regb,contr
-	increase 5,pdata  
-	branch context_search_meet1
-	
-ifdef SECURE_CONNECTION
-context_search_sniff_sc:
-	fetch 9,mem_temp
-	copy regb,contr	
-	increase 20,pdata  
-endif	
-context_search_meet1:
-	nbranch context_search_next,positive
-context_search_meet:
-	copy temp,bt_clk
-	call context_next_anchor
-	branch enable_zero
-	
-	
-context_search_sniff_miss:
-	iforce regb
-	add rega,coffset_tsniff,contr
-	ifetch 2,contr
-	branch context_search_meet,blank
-	call context_next_anchor
-	branch context_search_sniff_loop
-
-sign_pdata_temp:
-	rshift16 pdata,timeup    
-	rshift8 timeup,timeup    
-	branch sign_pdata_temp_p0,zero    
-	compare 0xf,timeup,0xf    
-	nrtn true    
-	rshift16 temp,timeup    
-	rshift8 timeup,timeup    
-	nrtn zero    
-	set1 28,temp    
-	rtn
-sign_pdata_temp_p0:    
-	rshift16 temp,timeup    
-	rshift8 timeup,timeup    
-	compare 0xf,timeup,0xf    
-	nrtn true    
-	set1 28,pdata    
-	rtn
-
-context_check_inconn:
-	bbit0 state_inconn,context_search_next
-	branch enable_zero			// found
-
-	
-context_check_a_wack:
-	bbit0 state_inconn,context_search_next
-	add rega,coffset_mode,contr
-	ifetch 1,contr
-	bbit1 mode_le,context_search_next
-	rtn
-
-context_get_anchor:
-	add rega,coffset_mode,contr
-	ifetcht 1,contr
-	deposit clkn_bt
-	isolate1 mode_master,temp
-	add rega,coffset_sniff_anchor,contr
-	ifetcht 4,contr
-	rtn true
-	add rega,coffset_clk_offset,contr
-	ifetch 6,contr
-	call calc_clke2
-	deposit clke_bt
-	rtn
-
-context_next_anchor:
-	add rega,coffset_tsniff,contr
-	add rega,coffset_sniff_anchor,contw
-	ifetch 2,contr
-	iadd temp,timeup			/* wrap to 28 bits */
-	deposit timeup
-	istore 4,contw
-	branch le_context_nextevent
-	
-
-context_search_window:
-	bbit0 state_insniff,context_search_next
-	call context_get_anchor
-	iadd stop_watch,pdata
-	iadd stop_watch,pdata
-	iadd queue,pdata
-	isub temp,null
-	nbranch context_search_next,positive
-	branch enable_zero
-
-
-
-end_of_packet:
-	bpatch patch01_3,mem_patch01
-	disable lr_s2en
-	disable encode_fec0
-	disable encode_fec2
-	disable decode_fec0
-	disable decode_fec2
-	disable enable_crc
-	disable encrypt
-	disable enable_white
-	branch shutdown_radio,is_rx
-	until null,tx_clear
-	nop 100          /* flush out the last bit */
-	branch shutdown_radio
-
-
-
-	/* enable user if sniff window vialation, queue is extra overhead */
-sniff_check_window:
-	bpatch patch01_4,mem_patch01
-	disable swfine
-	copy temp,stop_watch
-	call context_search_sniff_window
-	disable user
-	nrtn zero
-	force 0,stop_watch
-	branch enable_user
-
-
-calc_slot_offset:
-	bpatch patch01_5,mem_patch01
-	until null,halfslot
-	deposit clke
-	iforce contr
-	rshift16,pdata,pdata
-	isub clkn_bt,loopcnt
-	and_into 3,loopcnt			/* bt portion */
-	nbranch calc_bt_portion,zero
-	force 0,pdata
-	branch calc_skip_bt
-calc_bt_portion:
-	fetcht 2,mem_param_rt_rthalfslot
-	force 0,pdata
-calc_slot_offset_loop:
-	iadd temp,pdata
-	loop calc_slot_offset_loop
-calc_skip_bt:
-	iadd contr,pdata			/* add rt portion */
-	div pdata,12
-	call get_div_result
-	store 2,mem_slot_offset
-	rtn
-
-calc_clke_offset:
-	bpatch patch01_6,mem_patch01
-	deposit clke
-	copy clkn,temp
-	isub temp,null
-	nsetflag positive,44,pdata
-	isub temp,temp
-	fetch 2,mem_param_rt_rthalfslot
-	isolate0 15,temp
-	branch calc_clke_pos,true
-	copy temp,alarm
-	arg 0x10000,temp
-	fetch 2,mem_param_rt_rthalfslot
-	isub temp,pdata
-	iadd alarm,temp
-	
-calc_clke_pos:
-	storet 6,mem_le_clk_offset
-	rtn
-
-calc_clke:
-	disable clknt
-	fetch 6,mem_le_clk_offset
-calc_clke2:
-	iadd clkn,alarm
-	increase 10,alarm
-	fetch 2,mem_param_rt_rthalfslot
-	isub alarm,pdata
-	isolate0 15,pdata
-	branch calc_clke_pos_adj,true
-	setarg 0x10000
-	fetchr regd,2,mem_param_rt_rthalfslot
-	isub regd,pdata
-	iadd alarm,alarm
-calc_clke_pos2:
-	copy alarm,clke
-	rtn
-calc_clke_pos_adj:		/* add 2 clock */
-	force 0,null
-	branch calc_clke_pos2
-	
-/******************************************/
-/********* RF related functions ***********/
-/******************************************/
-
-
-qsetxor:
-	rshift3 pdata,pdata
-	ifetchr rega,1,contw
-	ixor rega,pdata
-	isolate0 6,pdata
-	branch qset_p
-
-qset1_p:
-	isolate0 0,null
-qset_start:
-	arg 0x8ac2,contw
-qset_p:
-	ifetch 1,contw
-	qsetflag true,pdata
-	istore 1,contw
-	rtn
-	
-rx_dcoc_avg:
-	nop 60
-btdma:
-//	call btdma
-	setarg mem_dcoc_buf
-	store 2,0x8982
-	setarg mem_dcoc_buf_end
-	store 2,0x8984
-	jam 0x9,0x8981
-	jam 0x3,0x8981
-	jam 0x6,0x8980	
-	nop 60
-	arg 0,rega
-	arg 0,regb
-	arg 16,loopcnt
-	arg mem_dcoc_buf,contr
-rx_dcoc_loop:
-	ifetch 2,contr
-	iadd rega,rega
-	ifetch 2,contr
-	iadd regb,regb
-	loop rx_dcoc_loop
-	rtn
-
-rx_dcoc:
-	bpatch patch01_7,mem_patch01
-	rtn wake
-	call set_sync_on
-	arg 39,temp
-	call set_freq_rx	
-	call rf_rx_enable
-	jam 0x7f,0x8a25
-	jam 0x1a,0x8a30
-	jam 0x78,0x8a31
-	jam 0xb2,0x8a8f
-	jam 0,0x8ac2
-	jam 0,0x8ac3
-	arg 6,queue
-	call rx_dcoc_avg
-	isolate1 13,rega
-	call qset_start
-	isolate1 13,regb
-	call qset_p
-	arg 5,queue
-rx_dcoc_loop2:
-	call qset1_p
-	call qset_p
-	call rx_dcoc_avg
-	arg 0x8ac2,contw
-	rshift4 rega,pdata
-	call qsetxor
-	rshift4 regb,pdata
-	call qsetxor
-	increase -1,queue
-	branch rx_dcoc_loop2,positive
-	jam 0x52,0x8a8f
-	jam 2,0x8a30
-	jam 0,0x8981
-	
-shutdown_radio:
-	bpatch patch02_0,mem_patch02
-	call rf_debug_shutdown_radio_line	//L-H-L
-	disable is_tx
-	disable is_rx
-	setarg 0x0200
-	store 4,0x8a23
-	jam 0xfa,0x8a01
-	nop 12
-	jam 0,0x8a0f
-	jam 0x1a,0x8a12
-	jam 0x2b,0x8a14
-	force 8,radio_ctrl
-	force 0,radio_ctrl
-	jam 0,0x8900 
-	branch gain_control
-
-set_sync_on:
-	bpatch patch02_1,mem_patch02
-	jam 0x60,0x8a0f 
-	jam 0xaa,0x8a10 
-	jam 0x7a,0x8a12 
-	jam 0x00,0x8a25 
-	jam 0x00,0x8a26 
-	nop 60
-	jam 0x20,0x8a20 
-	jam 0xf5,0x8a23 
-	jam 0x12,0x8a24 
-	jam 0x10,0x8a24 
-	nop 60
-	jam 0x60,0x8a12 
-	jam 0xdd,0x8a23 
-	rtn
-
-set_freq_rx:
-	bpatch patch02_2,mem_patch02
-	jam 0x01,0x8900 
-	jam 0x9d,0x8a23 
-	jam 0x02,0x8a24 
-	nop 20 
-	jam 0x65,0x8a70
-	jam 0x9f,0x8a23
-	call set_lemode
-	storet 1,mem_last_freq
-	increase 1,temp
-//	branch aac_res_lookup
-	
-/* temp is frequency, 00=2400Mhz */
-aac_res_lookup:
-	bpatch patch02_3,mem_patch02
-	rshift4 temp,pdata
-	arg mem_aac_res_table,contr
-	iadd contr,contr
-	ifetch 1,contr
-	fetchr rega,1,0x8a71
-	and_into 0xf,rega
-	ior rega,pdata
-	store 1,0x8a71
-	call calc_freq
-	nop 144
-	fetch 1,mem_fcomp_div
-	beq XTAL_24M,aac_res_lookup_end
-	nop 36
-aac_res_lookup_end:
-	jam 0x80,0x8a20
-	rtn
-
-
-set_lemode_2m_16m:
-	setarg 0x8312
-	store 2,0x8907
-	branch set_lemode_2m
-
-set_lemode_1m_16m:
-	setarg 0x4189
-	store 2,0x8907
-	branch set_lemode_1m
-
-
-set_lemode:
-	bpatch patch02_4,mem_patch02
-	jam 0x11,0x8a82
-	jam 0x12,0x8a8d
-	jam 0x0a,0x8a8e
-	fetch 1,mem_fcomp_div
-	beq XTAL_16M,set_lemode_2m_16m
-	setarg 0x5762
-	store 2,0x8907
-set_lemode_2m:
-	jam 3,0x8901
-	jam 3,0x8930
-	rtnmark1 mark_ble_2M
-	jam 1,0x8901
-	jam 0x07,0x8a82
-	jam 0x44,0x8a8d
-	jam 0x0a,0x8a8e
-	fetch 1,mem_fcomp_div
-	beq XTAL_16M,set_lemode_1m_16m
-	setarg 0x2bb1
-	store 2,0x8907
-set_lemode_1m:
-	rtnmark0 mark_ble_lr
-	jam 0x24,0x8930
-	jam 5,0x8901
-	rtn
-
-rf_rx_enable:
-	bpatch patch02_5,mem_patch02
-	call rf_debug_rx_gpio_high
-	call rf_rx_agc_set
-	force 8,radio_ctrl
-	force 0,radio_ctrl
-
-	setarg 0x0aaada
-	store 3,0x8a0f
-	jam 0x40,0x8a25
-	jam 0x10,0x8a26
-	nop 60
-	jam 0xfb,0x8a01
-	jam 0xff,0x8a25
-	jam 0x30,0x8a26
-	jam 0xfe,0x8a16
-	nop 20
-	jam 0x00,0x8a10
-	jam 0x08,0x8a11
-	nop 120
-	jam 0xd,0x8900
-	rtn
-
-	
-rf_rx_agc_set:
-	fetch 1,mem_gain_fix
-	beq 0xff,rf_rx_enable_no_soft_agc 
-	arg mem_gain_table,contr
-	iadd contr,contr
-	ifetch 1,contr
-	store 1,core_rf_rx_gain_fix
-	jam 0x27,core_rf_rx_agc_ctrl
-	
-rf_rx_enable_no_soft_agc:
-	fetcht 1,mem_gain_second_agc_en	//0x00 or 0x08
-	fetch 1,core_rf_rx_agc_ctrl
-	ior temp,pdata
-	store 1,core_rf_rx_agc_ctrl
-	rtn
-	
-
-set_freq_tx_int:
-	jam 0x03,0x8900 
-	jam 0x02,0x8a24 
-	nop 20 
-	jam 0x65,0x8a70
-	jam 0xdf,0x8a23
-	call set_lemode
-	call ghp_lookup
-	storet 1,mem_last_freq
-	increase 2,temp
-	branch aac_res_lookup
-
-
-/* temp is frequency, 00=2400Mhz */
-calc_freq:
-	bpatch patch02_6,mem_patch02
-	setarg 2400
-	iadd temp,pdata
-	copy pdata, rega
-	fetcht 1,mem_fcomp_div
-	rshift temp,temp
-	idiv temp
-//	mul32 pdata,12,rega
-	call wait_div_end
-	quotient pdata
-	rshift8 pdata,queue
-	storer queue, 1,0x890a
-	store 1,0x8909
-	remainder pdata
-	lshift16 pdata,pdata
-	lshift8 pdata,pdata
-	idiv temp
-	call wait_div_end
-	quotient pdata
-	store 3,0x890b
-//	deposit rega
-//	idiv temp
-//	call wait_div_end
-//	quotient pdata
-	storer rega, 1,0x8a22
-	rshift8 rega,rega
-	storer rega, 1,0x8a21
-	jam 0xa0,0x8a20 
-	jam 0xe0,0x8a20 
-	jam 0xa0,0x8a20
-	rtn
-
-ghp_lookup:
-	add temp,2,pdata
-	rshift3 pdata,pdata
-	and_into -2,pdata
-	arg mem_ghpc_table,contr
-	bmark0 mark_ble_2M,ghp_1m
-	increase 12,contr
-ghp_1m:
-	iadd contr,contr
-	ifetchr rega,2,contr
-	ifetch 2,contr
-	isub rega,pdata
-	add temp,2,contr
-	and_into 0xf,contr
-	imul32 contr,pdata
-	rshift4 pdata,pdata
-	iadd rega,pdata
-	store 2,0x8905
-	rtn
-
-
-
-set_freq_tx:
-	bpatch patch02_7,mem_patch02
-	call set_freq_tx_int
-	nop 600 //50us
-
-txon:
-	bpatch patch03_0,mem_patch03
-	setarg 0x0aaa7e
-	store 3,0x8a0f
-	nop 60
-	jam 0x00,0x8a25 
-	jam 0x0d,0x8a26 
-	jam 0xf6,0x8a16 
-	nop 30
-	jam 0x1b,0x8a15 
-	call set_tx_power
-	nop 20
-	jam 0x0f,0x8a26 
-	nop 20
-	jam 0xa8,0x8a10 
-	jam 0x00,0x8a11 
-	rtn
-	
-set_tx_power:	
-	bpatch patch03_1,mem_patch03
-	fetch 1,mem_tx_power
-	beq TX_POWER_0DB,set_tx_power_0db
-	beq TX_POWER_3DB,set_tx_power_3db
-	beq TX_POWER_5DB,set_tx_power_5db
-	beq TX_POWER_7DB,set_tx_power_7db
-	beq TX_POWER_10DB,set_tx_power_10db
-	beq TX_POWER_F3DB,set_tx_power_f3db
-	beq TX_POWER_F5DB,set_tx_power_f5db
-	beq TX_POWER_F10DB,set_tx_power_f10db
-	beq TX_POWER_F20DB,set_tx_power_f20db
-set_tx_power_0db:
-	jam 0x17,0x8a14 
-	setarg 0x251a3f
-	store 3,0x8a60
-set_tx_power_8a63_28:	
-	jam 0x28,0x8a63 
-	rtn
-
-set_tx_power_3db:
-	jam 0x25,0x8a14 
-	setarg 0xa91c2d
-	store 3,0x8a60
-set_tx_power_8a63_2f:	
-	jam 0x2f,0x8a63 
-	rtn
-
-set_tx_power_5db:
-	jam 0x25,0x8a14 
-	setarg 0xa91c3f
-	store 3,0x8a60
-	branch set_tx_power_8a63_2f
-
-set_tx_power_7db:
-	jam 0x25,0x8a14 
-	setarg 0xa9383f
-	store 3,0x8a60
-	branch set_tx_power_8a63_2f
-
-set_tx_power_10db:
-	jam 0x25,0x8a14 
-	setarg 0xa93f3f
-	store 3,0x8a60
-	jam 0x1f,0x8a63 
-	rtn
-	
-
-set_tx_power_f3db:
-	jam 0x17,0x8a14 
-	setarg 0x251827
-	store 3,0x8a60
-	branch set_tx_power_8a63_28
-	
-set_tx_power_f5db:
-	jam 0x17,0x8a14 
-	setarg 0x25181c
-	store 3,0x8a60
-	branch set_tx_power_8a63_28
-
-set_tx_power_f10db:
-	jam 0x17,0x8a14 
-	setarg 0x25180b
-	store 3,0x8a60
-	branch set_tx_power_8a63_28
-
-set_tx_power_f20db:
-	jam 0x17,0x8a14 
-	setarg 0x251000
-	store 3,0x8a60
-	branch set_tx_power_8a63_28
-
-
-
-initialize_radio:
-	jam clksel_rc,core_clksel
-initialize_radio_wait:
-	fetch 2,mem_rf_init_ptr
-	bbit0 14,initialize_radio_wait
-	iforce contr
-	arg 0x8a00,temp		//read 8a00 data->null :no run
-initialize_radio_loop:
-	ifetch 1,contr
-	beq 0xff,initialize_radio_cont
-	ior temp,contw
-	ifetch 1,contr
-	istore 1,contw
-	branch initialize_radio_loop
-	
-initialize_radio_cont:
-	bpatch patch03_2,mem_patch03
-	until null,lpo_edge
-	jam 0x0d,0x8946
-	jam 0x10,0x896f
-	
-	jam 0xcd,0x8a13
-	jam 0x10,0x8a06
-	jam 0x4a,0x8a84
-	jam 0x40,0x8a85
-	jam 0xfe,0x8a16
-//	call set_otp_config
-	fetch 1,mem_wdt_always_work
-	call wdt_set_disable,blank
-
-	until null,lpo_edge
-	jam 0x5f,0x813b
-initialize_radio_cont_next:
-	fetch 1,mem_fcomp_div
-	beq XTAL_16M,initialize_radio_16m
-	fetch 1,mem_ring_ibias_trim
-	or_into 0x04,pdata
-	store 1,0x8a02
-	jam 0x01,0x890f
-	jam 0x24,0x8a80
-	jam 0x62,0x8a81
-	setarg 0xe61212
-	store 3,0x8a73	
-initialize_radio2:
-//	call gpio_set_before_lpm
-	bpatchx patch3e_3,mem_patch3e
-	jam 0x60,0x8a86
-	jam 0x3b,0x8a8b 
-
-	call dpll_on
-	jam 0,core_config
-	jam CLKSEL_DPLL,core_clksel
-	setarg 0x557474
-	store 3,0x8968
-	jam 0x6e,0x8960
-	call rx_dcoc
-	call rfpll_aac_ghpc
-	call set_xtal_cap
-	jam SYSTEM_CLK_12M,mem_system_clk
-	call sadc_calibration
-	call dpll_ring_ibias_calc
-	branch set_bistfix_save_patchram
-
-initialize_radio_16m:
-	fetch 1,mem_ring_ibias_trim
-	or_into 0x06,pdata
-	store 1,0x8a02
-	jam 0x00,0x890f
-	jam 0x23,0x8a80
-	jam 0xb0,0x8a81
-	setarg 0xe40909
-	store 3,0x8a73
-	jam 0x2a,0x8a76
-	jam 0x04,0x8902	
-	branch initialize_radio2
-
-set_xtal_cap:
-	rtn wake
-	until null,lpo_edge
-	fetch 1,mem_xtal_c_sel
-	store 1,core_xtal_cap
-	until null,lpo_edge
-	rtn
-	
-
-rfpll_aac_ghpc:
-	bpatch patch03_3,mem_patch03
-	rtn wake
-	call set_sync_on
-	jam 3,0x8900
-	jam 0x1,0x8a70
-	arg mem_ghpc_table,regb
-	arg mem_aac_res_table,regd
-	call rfpll_aac_ghpc_once
-	set1 mark_ble_2M,mark
-	call rfpll_aac_ghpc_once
-	jam 0x61,0x8a70
-	branch shutdown_radio
-
-rfpll_aac_ghpc_once:
-	call set_lemode
-	arg 6,loopcnt
-	arg 0,regc
-rfpll_cal_loop:
-	copy regc,temp
-	call aac_ghpc
-	increase 2,regb
-	increase 1,regd
-	increase 16,regc
-	loop rfpll_cal_loop
-	rtn
-
-dpll_on:
-	fetch 1,mem_fcomp_div
-	beq XTAL_24M,dpll_on_24m
-	fetch 1,mem_ring_ibias_trim
-	or_into 0x06,pdata
-	store 1,0x8a02
-	jam 0xe0,0x8a05
-dpll_on_24m:	
-	jam 0xd8,0x8a00
-	nop 60
-	jam 0xa0,0x8a01
-	jam 0xdf,0x8a00
-	jam 0xfa,0x8a01
-	nop 20
-	jam 0x9f,0x8a00
-	rtn
-
-aac_ghpc:
-	bpatch patch03_4,mem_patch03
-	jam 0x30,0x8a20
-	jam 0xdd,0x8a23 
-	call calc_freq
-wait_cal_done:
-	fetch 1,0x8a7c
-	bbit0 0,wait_cal_done
-	jam 0x30,0x8a7b
-	call read_cal_result
-	iforce rega
-	jam 0x40,0x8a7b
-	call read_cal_result
-	isub rega,pdata
-	mul32 pdata,125,temp
-	setarg 0xb00000
-	idiv temp
-	call wait_div_end
-	quotient pdata
-	bmark0 mark_ble_2M,aac_ghpc_1m
-	lshift pdata,pdata
-aac_ghpc_1m:
-	istore 2,regb
-	jam 0x20,0x8a7b
-	fetch 1,0x8a7e
-	lshift4 pdata,pdata
-	istore 1,regd
-	jam 0,0x8a7b
-	rtn
-
-read_cal_result:
-	fetch 2,0x8a7d
-	byteswap pdata,pdata
-	fetcht 1,0x8a7c
-	lshift16 temp,temp
-	ior temp,pdata
-	rtn
-
-//after dpll en and adc calibration
-dpll_ring_ibias_calc:
-	bpatch patch03_5,mem_patch03
-	rtn	
-/*	fetch 1,core_vtest_ctrl0
-	set1 0,pdata
-	store 1,core_vtest_ctrl0
-	jam 0xf0,core_vtest_ctrl1
-	fetch 1,core_bbpll_cfg3
-	or_into 0x16,pdata
-	store 1,core_bbpll_cfg3
-
-	fetch 1,mem_adc_dma_enable
-	store 1,mem_temp
-	fetch 1,mem_adc_channel
-	store 1,mem_temp+1
-	jam 0,mem_adc_dma_enable
-	fetch 1,mem_ring_ibias_calc_adc_channel
-	store 1,mem_adc_channel
-	fetcht 1,mem_ring_ibias_calc_adc_gpio
-	call gpio_set_high_impedance
-
-	arg 0,rega
-	arg 8,loopcnt
-dpll_ring_ibias_read_adc:
-	call enable_adc
-	fetch 2,mem_adc_current_value
-	iadd rega,rega
-	loop dpll_ring_ibias_read_adc
-	rshift3 rega,rega
-	store 2,mem_adc_current_value
-
-	fetch 1,mem_temp
-	store 1,mem_adc_dma_enable
-	fetch 1,mem_temp+1
-	store 1,mem_adc_channel
-
-	fetch 1,core_bbpll_cfg3
-	and_into 0xe0,pdata
-	store 1,core_bbpll_cfg3
-	jam 0x00,core_vtest_ctrl1
-	fetch 1,core_vtest_ctrl0
-	set0 0,pdata
-	store 1,core_vtest_ctrl0
-
-	call vdd_calculate_by_mode
-	fetcht 2,mem_ring_ibias_vtune_high
-	isub temp,null
-	branch ring_ibias_trim_incrs,positive
-	fetcht 2,mem_ring_ibias_vtune_low
-	isub temp,null	
-	rtn positive
-ring_ibias_trim_decrs:
-	fetch 1,mem_ring_ibias_trim
-	rtneq 0x00
-	increase -32,pdata
-	store 1,mem_ring_ibias_trim
-	rtn
-
-ring_ibias_trim_incrs:
-	fetch 1,mem_ring_ibias_trim
-	rtneq 0xe0
-	increase 32,pdata
-	store 1,mem_ring_ibias_trim
-	rtn
-
-*/
-
-save_rssi:
-	bpatch patch03_6,mem_patch03
-	 // bit6 is signed bit.
-	fetch 1,modem_nb_pow
-	isolate1 6,pdata
-	setflag true,7,pdata
-	store 1,mem_modem_rssi
-
-	fetch 1,modem_gain
-	and pdata,0x0f,temp
-	lshift temp,temp
-	rshift4 pdata,pdata
-	iadd temp,temp
-	mul32 temp,3,rega // (abb_gain + lna_gain*2)*3
-
-	fetch 1,mem_modem_rssi
-	call byte_sign_extern
-	sub pdata,0,pdata //-modem_nb_pow
-	iadd rega,pdata // (abb_gain + lna_gain*2)*3 + (-modem_nb_pow)
-	increase -9,pdata // (abb_gain + lna_gain*2)*3 + (-modem_nb_pow) - 9
-	and pdata,0x1ff,pdata
-	isolate1 8,pdata
-	nbranch save_rssi_store,true
-	setarg 0	 
-save_rssi_store:
-	store 1,mem_rssi_hex
-	branch rssi_hex2dec
- 
-byte_sign_extern:
-	isolate1 7,pdata
-	nrtn true
-	arg 0xff00,temp
-	ior temp,pdata
-	rtn
- 
-rssi_hex2dec:
-	fetch 1,mem_rssi_hex
-	call bcd
-	store 1,mem_rssi			 
-	rtn
-
-bcd:
-	and_into 0xff,pdata
-	div pdata,10
-	call get_div_result
-	lshift4 pdata,pdata
-	remainder temp
-	ior temp,pdata
-	rtn
-
-gain_control:
-	bpatch patch03_7,mem_patch03
-	fetch 1,mem_gain_fix
-	rtneq 0xff
-	nbranch  gain_increase,sync
-	fetch 1,mem_modem_rssi
-	sub pdata,0xf0,null
-	nbranch gain_descend,positive
-	sub pdata,0x7f,null
-	branch gain_descend,positive
-	
-	fetchr rega, 1,core_rf_rx_gain_fix
-	fetch 1,mem_gain_fix
-	rtneq 0	
-	arg mem_gain_table,contr
-	iadd contr,contr
-	ifetch 1,contr
-	isub rega,null
-	nrtn zero
-	increase -2,contr
-	ifetcht  1,contr
-	rshift4 temp,pdata
-	rshift4 rega,regb
-	isub regb,regb
-	and temp,0xf,pdata
-	and rega,0xf,rega
-	isub rega,rega
-	lshift rega,pdata
-	iadd regb,regb
-	mul32 regb,3,regb
-	fetcht 1,mem_modem_rssi
-	and temp,0x80,pdata
-	rtn blank
-add_negative:
-	setarg 0x100
-	isub temp,temp
-	copy regb,pdata
-	isub temp,pdata
-	rtn positive
-	and pdata,0xff,pdata
-	rtneq 0xff
-	rtneq 0xfe
-	
-gain_increase:	
-	fetch 1,mem_gain_fix
-	beq 1,set_rx_gain0
-	beq 2,set_rx_gain1
-//	beq 0,set_rx_gain0
-	branch set_rx_gain0
-	
-gain_descend:
-	fetch 1,mem_gain_fix
-	beq 0,set_rx_gain1
-	beq 1,set_rx_gain2
-//	beq 2,set_rx_gain2
-set_rx_gain2:
-	jam 2,mem_gain_fix
-	rtn
-
-set_rx_gain0:
-	jam 0,mem_gain_fix
-	rtn
-	
-set_rx_gain1:
-	jam 1,mem_gain_fix
-	rtn
-
-	
-
-
-
-	/* pdata = clks ahead of bt_clk */
-ahead_window:
-	copy pdata,temp
-	bpatch patch04_0,mem_patch04
-	copy temp,pdata
-	call clk2bt
-	lshift16 bt_clk,pdata
-	set1 44,pdata
-	call clk_diff
-	set0 44,pdata
-	call get_clk
-	call clk_diff
-	rtn user
-	call clk2rt
-	iforce stop_watch
-	until null,timeout
-	rtn
-
-
-get_clk:
-	copy clkn,temp
-	rtn master
-	copy clke,temp
-	rtn
-
-get_clkbt:
-	deposit clkn_bt
-	rtn master
-	deposit clke_bt
-	rtn
-
-
-assert:
-	bpatch patch04_1,mem_patch04
-	branch assert
-	
-
-sleep:	
-	rtn blank
-	/* sleep pdata clocks, only even clocks are accurate */
-	rshift pdata,pdata
-	increase -3,pdata
-sleep_loop:	
-	increase -1,pdata
-	nbranch sleep_loop,zero
-	force 0,pdata
-	rtn
-
-
-
-init_param:
-
-	setarg param_tx_setup
-	store 2,mem_param_tx_setup
-	setarg param_rf_setup
-	store 2,mem_param_rf_setup
-	setarg param_conn_access
-	store 2,mem_param_conn_access
-	setarg param_rx_setup
-	store 2,mem_param_rx_setup
-	setarg param_clke_cal
-	store 2,mem_param_clke_cal
-	setarg param_pll_setup
-	store 2,mem_param_pll_setup
-	setarg param_dpll_start_delay
-	store 2,mem_param_dpll_start_delay
-	setarg param_rt_rthalfslot
-	store 2,mem_param_rt_rthalfslot
-	setarg param_clke_cal_le_1m
-	store 2,mem_param_clke_cal_le_1m
-	setarg param_clke_cal_le_2m
-	store 2,mem_param_clke_cal_le_2m
-	setarg param_clke_cal_le_coded
-	store 2,mem_param_clke_cal_le_coded
-	
-	bpatch patch04_2,mem_patch04
-	rtn wake
-	setarg ATT_DEFAULT_MTU
-	store 2,mem_le_remote_mtu
-	jam PARAM_T_IFS_150US+PARAM_SYNC_TIME_DIFFERENCE,mem_le_tx_ifs_defference
-	setarg mem_ble_tx_buff0
-	store 2,mem_ble_l2cap_tx_buff0_ptr
-	setarg mem_ble_l2cap_tx_buff_size
-	store 2,mem_ble_l2cap_tx_buff_size_ptr	
-	rshift clkn_bt,pdata
-	store 4,mem_last_clkn
-	rtn
-
-
-
-
-/*****************************************LPM************************************************/
-
-lpmstate:
-	setarg 0xee21
-	store 2,core_clkoff			// disable unused peripherals
-	fetchr alarm,4,core_gpio_in
-	fetch 1,core_lpm_isogate
-	bbit0 gpio_latch,power_up
-	enable wake
-	bbit1 cold_wake,lpmwake		// wakeup from lpm	
-	disable wake
-	deposit auxcnt
-	nbranch lpmwake,blank		// sleep interrupted, wakeup
-	fetch 1,core_lpm_sysctl
-	bbit1 reload_code,lpmwake
-	arg param_hibernate_clks,temp
-	branch lpm_enter_sleep
-lpmwake:
-	call lpm_poweron_retmem
-	call lpm_load_context,wake
-	until null,lpo_edge
-	fetch 1,core_lpm_isogate
-	set0 gpio_latch,pdata			// enable gpio normal function after load gpio configuration
-	store 1,core_lpm_isogate		
-	until null,lpo_edge
-	nbranch boot_load,wake		// wakeup from hibernate
-	call set_bistfix_wake
-	storer alarm,4,mem_saved_gpio_in
-	jam OTP_KEY_LOCK,core_misc_ctrl	// disable further read/write of key
-	rtn
-
-power_up:
-	call lpm_poweron_retmem
-boot_load:
-	call loadcode	
-	storer alarm,4,mem_saved_gpio_in
-	rtn
-
-lpm_poweron_retmem:
-	until null,lpo_edge
-	fetch 1,core_lpm_ldosel
-	and_into 0x88,pdata			// clear ldo to default all zero 
-	store 1,core_lpm_ldosel
-	until null,lpo_edge
-	fetch 1,core_lpm_isogate
-	or_into 0xf,pdata				// turn on all retmem switch
-	store 1,core_lpm_isogate		
-	until null,lpo_edge
-	set1 isogate,pdata				// turn on isolation gate
-	store 1,core_lpm_isogate		
-	until null,lpo_edge
-	set1 retmem_cs,pdata			// assert CSN
-	store 1,core_lpm_isogate		
-	until null,lpo_edge
-	rtn
-
-
-xtal_fast_wake:
-	until null,lpo_edge
-	jam 0x76,core_xtal_ib
-	until null,lpo_edge
-	jam 0x37,core_xtal_cap
-	rtn
-
-lpm_write_lock:
-//	fetch 1,mem_ucode_flag
-//	and pdata,0xf,temp
-	fetch 1,mem_device_option
-	lshift4 pdata,pdata
-//	ior temp,pdata
-	store 1,core_ucode_flag
-	until null,lpo_edge
-	fetch 1,mem_peripheral_lock_flag
-	set1 rom_lock_bit,pdata
-	set1 option_lock,pdata
-	store 1,core_peripheral_lock
-	branch lpm_write_wait
-	
-lpm_write_ice_disable:
-	fetch 1,core_lpm_sysctl
-	set0 ice_mode,pdata
-	store 1,core_lpm_sysctl
-	rtn
-
-lpm_write_ice_enable:
-	fetch 1,core_lpm_sysctl
-	set1 ice_mode,pdata
-	store 1,core_lpm_sysctl
-	rtn
-
-lpm_preon_counter:
-	fetch 3,mem_lpm_xtalcnt
-	arg core_lpm_xtalcnt,contw
-lpm_write_3bytes:
-	arg 3,loopcnt
-	branch lpm_write_loop
-	
-lpm_write_mpu_s0:
-	arg core_mpu_s0_saddr,contw
-lpm_write_dword:
-	arg 4,loopcnt
-lpm_write_loop:
-	until null,lpo_edge
-	istore 1,contw
-	rshift8 pdata,pdata
-	loop lpm_write_loop
-	branch lpm_write_wait
-
-lpm_write_mpu_s1:
-	arg core_mpu_s1_saddr,contw
-	branch lpm_write_dword
-
-
-lpm_disable_exen_output:
-	fetch 1,core_lpm_ldosel
-	set0 3,pdata
-	store 1,core_lpm_ldosel
-	rtn
-
-lpm_disable_io_dozed:
-	fetch 1,mem_lpm_hv_sel
-	rtn blank
-	set0 LPM_DOZE_EN_BIT,pdata
-	branch lpm_write_sel_hv
-
-lpm_save_sel_hv:
-	store 1,mem_lpm_hv_sel
-lpm_write_sel_hv:
-	store 1,core_io_doze_en
-lpm_write_wait:	
-	until null,lpo_edge
-	until null,lpo_edge
-	rtn
-
-
-lpm_write_io_vsel:
-	store 1,core_io_vsel
-	branch lpm_write_wait
-
-
-lpm_load_context:
-	call lpm_disable_io_dozed
-	fetch 1,mem_saved_spidctrl
-	store 1,core_spid_ctrl
-	arg mem_saved_gpio,contr
-	arg core_gpio_conf,contw
-	call memcpy16
-	arg core_gpio_conf_hi,contw
-	call memcpy8
-	fetchr mark,8,mem_saved_mark
-	arg core_gpio_wakeup_cfg,contr
-	arg mem_gpio_wakeup_cfg,contw
-	arg 12,loopcnt
-	call memcpy
-	branch load_ucode
-
-lpm_save_context:
-	storer mark,8,mem_saved_mark
-	arg core_gpio_conf,contr
-	arg mem_saved_gpio,contw
-	call memcpy16
-	arg core_gpio_conf_hi,contr
-	call memcpy8
-	fetch 1,core_spid_ctrl
-	store 1,mem_saved_spidctrl
-	copy temp,regb
-	branch lpm_write_gpio_wakeup
-	
-lpm_write_gpio_wakeup:
-	arg 12,loopcnt
-	arg mem_gpio_wakeup_cfg,rega
-	arg core_gpio_wakeup_cfg,regc
-	until null,lpo_edge
-lpm_write_gpio_loop:
-	ifetch 1,rega
-	ifetcht 1,regc
-	isub temp,null
-	branch lpm_write_gpio_loop_next,zero
-	istore 1,regc
-	until null,lpo_edge
-lpm_write_gpio_loop_next:	
-	increase 1,rega
-	increase 1,regc
-	loop lpm_write_gpio_loop
-	copy regb,temp
-	rtn
-
-lpo_calibration:
-	bpatch patch04_3,mem_patch04
-	fetch 1,core_ccnt_bit
-	nbranch lpo_cal_inited,blank
-	fetch 3,mem_clks_per_lpo
-	nrtn blank
-	jam 0xc,core_ccnt_bit
-	jam ccnt_start,core_misc_ctrl
-lpo_cal_inited:
-	fetch 1,core_perf_status
-	rtnbit0 1
-	fetch 3,core_clk_counter
-	store 3,mem_clks_per_lpo
-	rtn
-
-
-	/* temp is lpo counter for doze */
-lpm_doze:
-	fetch 1,mem_lpm_sysctl
-	set1 reload_code,pdata
-	store 1,mem_lpm_sysctl
-
-	/* no retention memory at all */
-lpm_hibernate:
-	bpatch patch04_4,mem_patch04
-	arg param_hibernate_clks,temp
-	fetch 1,mem_lpm_hibernate_switch
-	store 1,mem_lpm_isogate_final	
-	fetch 1,mem_lpm_sysctl
-	store 1,core_lpm_sysctl
-	until null,lpo_edge
-	/* temp is lpo clocks to sleep */
-lpm_sleep:
-	bpatch patch04_5,mem_patch04
-	//call xtal_fast_wake
-	fetch 2,mem_cb_before_lpm_sleep
-	call callback_func
-lpm_sleep_skip_cb_function:
-	fetch 4,mem_sleep_counter_all	// sleep total time, 32k unit
-	iadd temp,pdata
-	store 4,mem_sleep_counter_all
-	call lpm_save_context
-	fetch 1,mem_lpm_hv_sel
-	set1 LPM_DOZE_EN_BIT, pdata
-	call lpm_write_sel_hv
-	ncall lpm_preon_counter,wake
-	until null,lpo_edge
-	storer clkn,6,mem_sleep_clkn
-	call set_bistfix_save_xram
-	fetch 3,mem_lpm_isogate
-	fetchr rega,1,mem_lpm_ldo_sel
-	arg 3,loopcnt
-lpm_sleep_loop:
-	until null,lpo_edge
-	store 1,core_lpm_isogate
-	rshift8 pdata,pdata
-	loop lpm_sleep_loop
-	until null,lpo_edge
-	storer rega,1,core_lpm_ldosel
-lpm_enter_sleep:
-	until null,lpo_edge
-	storet 4,core_lpm_reg
-	jam lpmreg_sel_counter,core_lpm_wr
-	until null,never
-
-/*
-lpm_cal_xtal_startup:
-	fetch 1,mem_lpm_xtalcnt
-	nrtn blank
-	jam clksel_rc,core_clksel
-	jam 0xf8,core_lpm_ctrl			// turn off xtal
-	setarg 200000
-	call sleep
-	call xtal_fast_wake
-	until null,lpo_edge
-	jam 0xff,core_lpm_ctrl				// turn on xtal
-	copy lpo_time,alarm
-	jam clksel_xtal,core_clksel
-	nop 10
-	until null,lpo_edge
-	deposit lpo_time
-	isub alarm,pdata
-	increase 0x30,pdata
-	arg 0xff,temp
-	call ceiling
-	store 1,mem_lpm_xtalcnt
-	nop 30000
-	nop 30000
-	nop 30000	
-	rtn
-*/
-
-lpm_recover_clk:
-	bpatch patch04_6,mem_patch04
-	setarg 0
-	copy auxcnt,null
-	branch lpm_recover_timeout,zero
-	fetch 1,core_lpm_xtalcnt
-	fetcht 1,core_lpm_buckcnt
-	isub temp,null
-	branch lpm_recover_xtal,positive
-	deposit temp
-lpm_recover_xtal:
-	isub auxcnt,pdata
-	increase 1,pdata
-lpm_recover_timeout:
-	increase 8,pdata
-	until null,lpo_edge
-	iadd lpo_time,pdata
-	fetcht 4,mem_sleep_counter
-	iadd temp,pdata
-	fetcht 3,mem_clks_per_lpo
-	imul32 temp,pdata
-	rshift8 pdata,pdata
-	rshift4 pdata,pdata
-	increase param_lpm_fix,pdata
-	fetcht 2,mem_param_rt_rthalfslot
-	idiv temp
-	call get_div_result
-	lshift16 pdata,pdata
-	remainder temp
-	ior temp,pdata
-	fetcht 6,mem_sleep_clkn
-	call clk_add
-	copy temp,clkn
-	fetch 6,mem_context + coffset_clk_offset
-	call calc_clke2
-	deposit clke
-	store 6,mem_pdatatemp
-	deposit auxcnt
-	istore 1,contw
-	fetch 1,core_gpio_in1
-	or_into 0xf0,pdata
-	istore 1,contw
-	rtn
-
-
-lpm_adjust_clk:
-	bpatch patch04_7,mem_patch04
-	bmark0 mark_context,lpm_clear_counter
-	fetcht 4,mem_sleep_counter_all
-	arg 0x600,pdata
-	isub temp,null
-	rtn positive				// interval too small
-	copy temp,rega
-	fetcht 6,mem_sync_clke
-	deposit rege
-	call clk_diff_rt
-	copy rega,temp
-	lshift8 pdata,pdata
-	lshift4 pdata,pdata
-	idiv temp
-	call get_div_result
-	arg param_lpm_adjmax,temp
-	call ceiling
-	store 1,mem_lpm_adjust
-	nbranch lpm_adjust_positive,user
-	sub pdata,0,pdata
-lpm_adjust_positive:
-	fetcht 3,mem_clks_per_lpo
-	iadd temp,pdata
-	store 3,mem_clks_per_lpo
-lpm_clear_counter:
-	setarg 0
-	store 4,mem_sleep_counter_all
-	rtn
-
-	
-lpm_dispatch:
-	bpatch patch05_0,mem_patch05
-	call lpo_calibration
-	fetch 3,mem_clks_per_lpo
-	rtn blank
-	fetch 1,mem_lpm_mode
-	rtn blank
-ifdef 	SECURE_CONNECTION
-	fetch 1,mem_secure_connections_enable
-	branch lpm_dispatch_next,blank
-	fetch 1,mem_sc_local_key_invalid 	// simple pairing is not ready
-	rtn blank
-lpm_dispatch_next:
-	fetch 1,mem_sc_calc
-	nrtn blank	
-endif
-	arg context_check_a_wack,regc
-	call context_search
-	rtn zero
-	call lpm_check_wake_lock
-	nrtn blank
-	call context_check_idle						
-	nbranch lpm_dispatch_unconn,zero
-	rtn wake
-	bpatch patch05_1,mem_patch05
-	fetcht 1,mem_lpm_current_mult
-	fetch 2,mem_context + coffset_tsniff
-	imul32 temp,pdata
-	rshift4 temp,temp
-	rshift2 temp,temp
-	isub temp,pdata
-	fetcht 4,mem_context + coffset_sniff_anchor
-	iadd temp,pdata
-	fetcht 1,mem_lpm_overhead
-	isub temp,pdata
-	lshift16 pdata,alarm
-	fetch 2,mem_context + coffset_rx_window
-	rshift pdata,pdata
-	call clk2bt
-	deposit alarm
-	call clk_diff
-	copy clke,temp
-	call clk_diff_rt
-	rtn user
-lpm_dispatch_sleep:
-	call clk2lpo
-lpm_dispatch_lpo:
-	bpatch patch05_2,mem_patch05
-	fetch 1,mem_lpm_xtalcnt
-	isub temp,null
-	branch lpm_clear_counter,positive
-	storet 4,mem_sleep_counter
-	call app_will_enter_lpm
-//	call l2cap_lpm_save_txbuf
-	fetcht 4,mem_sleep_counter
-	branch lpm_sleep
-	
-lpm_dispatch_unconn:
-	bpatch patch05_3,mem_patch05
-	fetch 1,mem_le_adv_enable
-	nbranch lpm_unconn_cont,blank
-	rtn
-	
-lpm_unconn_cont:
-	fetch 2,mem_lpm_interval
-	rtn blank
-lpm_sleep_btclk:
-	fetcht 1,mem_lpm_overhead
-	isub temp,pdata
-	arg 7500,temp				
-	imul32 temp,pdata
-	branch lpm_dispatch_sleep
-
-	
-lpm_mult_wait_timeout:
-	fetch 2,mem_cb_bt_set_mult
-	call callback_func
-	nbranch lpm_mult_short,blank
-	jam 0,mem_lpm_current_mult
-	bmark0 mark_lpm_mult_enable,lpm_mult_short
-	fetch 1,mem_lpm_mult_cnt
-	branch lpm_mult_long,blank
-	increase -1,pdata
-	store 1,mem_lpm_mult_cnt
-	rtn
-
-
-
-
-lpm_match:
-	jam 0,mem_sniff_unint_lost
-	fetch 3,mem_sniff_rcv
-	increase 1,pdata
-	store 3,mem_sniff_rcv
-	rtn
-
-
-lpm_lost:
-	bpatch patch05_4,mem_patch05
-	jam 0,mem_lpm_current_mult
-	fetch 3,mem_sniff_lost
-	increase 1,pdata
-	store 3,mem_sniff_lost
-	fetch 1,mem_sniff_unint_lost
-	increase 1,pdata
-	store 1,mem_sniff_unint_lost
-	rtn
-
-lpm_mult_short:
-	jam 0,mem_lpm_current_mult
-	fetch 1,mem_lpm_mult_timeout
-	store 1,mem_lpm_mult_cnt
-	rtn
-
-lpm_mult_long:
-	fetcht 1,mem_lpm_mult
-	storet 1,mem_lpm_current_mult
-	rtn
-
-
-
-lpm_get_wake_lock:
-	fetch 2,mem_lpm_wake_lock
-	qset1 pdata
-	store 2,mem_lpm_wake_lock
-	rtn
-
-lpm_put_wake_lock:
-	fetch 2,mem_lpm_wake_lock
-	qset0 pdata
-	store 2,mem_lpm_wake_lock
-	rtn
-
-
-
-lpm_check_wake_lock:
-	bpatch patch05_5,mem_patch05
-	call app_check_wake_lock
-	fetch 2,mem_lpm_wake_lock
-	copy pdata,rega
-	fetch 3,mem_tx_fifo3
-	nsetflag blank,wake_lock_ble_tx,rega
-	fetch UTIL_FIFO_LEN,mem_ipc_fifo_bt2c51
-	nsetflag blank,wake_lock_ipc_bt2c51,rega
-	fetch UTIL_FIFO_LEN,mem_ipc_fifo_c512bt
-	nsetflag blank,wake_lock_ipc_c512bt,rega
-	fetch 1,mem_hci_cmd
-	nsetflag blank,wake_lock_cmd,rega
-	fetch 1,mem_device_option
-	compare DVC_OP_MODULE,pdata,0xff
-	call lpm_uart_wake_lock,true
-	copy rega,pdata
-	store 2,mem_lpm_wake_lock
-	rtn
-
-lpm_uart_wake_lock:
-	fetch 2,core_uart_rxitems
-	nsetflag blank,wake_lock_uart_rx ,rega
-	fetch 2,core_uart_txitems
-	nsetflag blank,wake_lock_uart_tx ,rega
-	rtn
-
-	
-
-
Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/debug.prog
===================================================================
--- /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/debug.prog	(revision 5679)
+++ /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/debug.prog	(nonexistent)
@@ -1,66 +0,0 @@
-
-// Rf debug
-
-/*****************************************************************************************************************************************************************************************
-    txon     txoff       rxon		      sync             crc pass    shutdown radio          match
-     _________          ______________    _________________     ___        ___                     
-    |         |        |              |  |                 |   |   |      |   |                   
-    |	      |        |              |  |                 |   |   |      |   |                   
-____|tx data  |________|   rx window  |__| rx data         |___|   |______|   |_______       __________
-
-*****************************************************************************************************************************************************************************************/
-
-rf_debug_rx_gpio_low:
-	fetch 1,mem_rf_debug_rx_gpio
-rf_debug_gpio_low:
-	arg gpcfg_output_low,temp
-	branch gpio_config_function
-
-rf_debug_rx_on_line:
-rf_debug_rx_gpio_high:
-	fetch 1,mem_rf_debug_rx_gpio
-rf_debug_gpio_high:
-	arg gpcfg_output_high,temp
-	branch gpio_config_function
-
-rf_debug_rx_gpio_h_l_h:
-	call rf_debug_rx_gpio_high
-rf_debug_rx_gpio_l_h:
-	call rf_debug_rx_gpio_low
-	branch rf_debug_rx_gpio_high
-
-rf_debug_rx_gpio_l_h_l:
-rf_debug_shutdown_radio_line:
-	call rf_debug_rx_gpio_l_h
-rf_debug_rx_crc_line:
-	branch rf_debug_rx_gpio_low
-
-rf_debug_rx_sync_line:
-	branch rf_debug_rx_gpio_l_h
-
-rf_debug_rx_crc_fail_line:
-	call rf_debug_rx_gpio_l_h
-	branch rf_debug_rx_gpio_l_h_l
-
-rf_debug_rx_match_line:
-rf_debug_rx_crc_error_line:
-rf_debug_rx_sync_timeout_line:
-	branch rf_debug_rx_gpio_low
-
-
-rf_debug_tx_off_line:
-rf_debug_tx_gpio_low:
-	fetch 1,mem_rf_debug_tx_gpio
-	branch rf_debug_gpio_low
-
-rf_debug_tx_on_line:
-rf_debug_tx_gpio_high:
-	fetch 1,mem_rf_debug_tx_gpio
-	branch rf_debug_gpio_high
-
-rf_debug_tx_gpio_l_h_l:
-	call rf_debug_tx_gpio_low
-	call rf_debug_tx_gpio_high
-	branch rf_debug_tx_gpio_low
-
-	
Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/g24_protocol_stack/24g.prog
===================================================================
--- /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/g24_protocol_stack/24g.prog	(revision 5679)
+++ /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/g24_protocol_stack/24g.prog	(nonexistent)
@@ -1,569 +0,0 @@
-
-
-g24_dispatch:
-	bpatchx patch33_0,mem_patch33
-	bmark1 mark_24g_rxmode,g24_receive_dispatch
-	rtnmark0 mark_24g
-	branch g24_transmit_dispatch
-
-
-/****************************g24 base transceiver start********************************/
-
-g24_prep:
-	bpatchx patch33_1,mem_patch33
-	disable enable_crc
-	disable enable_white
-	setarg 0x555555
-	iforce crc24_init
-	fetch 1,mem_24g_ch
-	branch le_prep_next
-
-g24_receive_packet:
-	bpatchx patch33_2,mem_patch33
-	fetch 1,mem_24g_rx_phy
-	call le_enable_phy_by_pdata
-	fetch 4,mem_24g_addr
-	iforce access
-	call set_sync_on
-	fetcht 1,mem_24g_ch
-	call le_rf_rx_enable
-g24_receive_rxon:
-	call g24_prep
-	bmark0 mark_ble_lr,g24_receive_nolr
-	pulse dewhiten_code_calc
-	nop 30
-	call g24_prep
-g24_receive_nolr:
-	disable user3
-	enable decode_fec0
-	enable is_rx
-	disable is_tx
-	enable swfine
-	fetch 2,mem_24g_rx_window
-	iforce stop_watch
-	correlate null,timeout
-	nbranch g24_sync_timeout,sync
-	call rf_debug_rx_sync_line
-	bmark1 mark_ble_lr,g24_receive_skip_fec1
-	fetch 1,mem_24g_disable_fec1
-	nbranch g24_receive_skip_fec1,blank
-	disable decode_fec0	
-	enable decode_fec1	//lr do not use fec1
-g24_receive_skip_fec1:
-	enable enable_white
-	enable enable_crc
-	call g24_receive_byte
-	store 1,mem_24g_get_syncword_crc8
-	fetcht 1,mem_24g_syncword_crc8
-	isub temp,null
-	nbranch g24_hec_error,zero
-g24_receive_payload:
-	bpatchx patch33_3,mem_patch33
-	disable user7
-	isolate1 mark_ble_lr,mark
-	call g24_lr_receive_pdu_len,true
-	branch g24_lr_len_error,user7
-	call g24_receive_byte
-	store 1,mem_24g_rxbuf	//device id
-	bmark1 mark_24g_rxmode,g24_receive_skip
-	fetch 1,mem_24g_rxbuf
-	fetcht 1,mem_24g_data_type
-	icompare bits_data,temp
-	nbranch g24_type_error,true
-g24_receive_skip:
-	call g24_receive_byte
-	isolate1 mark_ble_lr,mark
-	call g24_lr_receive_payload_len,true
-	istore 1,contw
-	rshift3 pdata,pdata
-	sub pdata,0x1f,null
-	nbranch g24_len_over_error,positive	//max payload: 32bytes
-	copy pdata,loopcnt
-	branch g24rx_nopayload,zero
-g24rx_loop:
-	call g24_receive_byte
-	istore 1,contw
-	loop g24rx_loop
-g24rx_nopayload:
-	bmark1 mark_24g_rxmode,g24_receive_skip_rssi
-	copy contw,rega
-	call g24_receive_byte
-	store 1,mem_rssi_hex_received	//receive rssi hex
-	copy rega,contw
-g24_receive_skip_rssi:
-	parse demod,bucket,24
-	rshift32 pdata,pdata
-	rshift16 pdata,pdata
-	istore 3,contw
-	fetch 1,mem_24g_disable_fec1
-	nbranch g24_receive_skip_disable_fec1,blank
-	disable decode_fec1
-g24_receive_skip_next:
-	isolate1 mark_24g_rxmode,mark
-	call save_rssi_dec,true
-	branch g24_crc_error,crc_failed
-	call rf_debug_rx_crc_line	//L
-	bpatchx patch33_4,mem_patch33
-	enable user3
-	call le_match_set_txfreq
-	rtnmark1 mark_24g_rxmode
-	fetch 1,mem_rssi_hex_received
-	fetcht 1,mem_rssi_hex_received_max_value
-	isub temp,null
-	call copy_temp2pdata,positive
-	branch rssi_signal
-
-g24_receive_skip_disable_fec1:
-	disable decode_fec0
-	branch g24_receive_skip_next
-	
-
-g24_lr_receive_pdu_len:
-	call g24_receive_byte
-	sub pdata,1,null
-	branch enable_user7,positive
-	increase -2,pdata	//minus hec and pdu length
-	bmark1 mark_24g_rxmode,g24_lr_receive_pdu_norssi
-	branch enable_user7,blank
-	increase -1,pdata	//minus rssi_hex length
-g24_lr_receive_pdu_norssi:
-	store 1,mem_temp	//payload length
-	rtn
-
-g24_lr_receive_payload_len:
-	and_into 0x07,pdata	//pdata[7:3]:length
-	fetcht 1,mem_temp	//payload length
-	lshift3 temp,temp
-	ior temp,pdata
-	rtn
-	
-g24_receive_byte:
-	parse demod,bucket,8
-	rshift3 pwindow,pdata
-	rtn
-
-g24_sync_timeout:
-	jam ERR_SYNC_TO,mem_24g_off_type
-	isolate1 mark_24g_rxmode,mark
-	call rssi_noise,true
-g24_end_of_packet:
-	bpatchx patch33_5,mem_patch33
-	call le_disable
-	disable encode_fec1
-	disable decode_fec1
-	branch end_of_packet
-
-g24_hec_error:
-	jam ERR_HEC,mem_24g_off_type
-	branch g24_end_of_packet
-
-g24_lr_len_error:
-	jam ERR_LR_LEN,mem_24g_off_type
-	branch g24_end_of_packet
-
-g24_type_error:
-	jam ERR_TYPE,mem_24g_off_type
-	branch g24_end_of_packet
-
-g24_len_over_error:
-	jam ERR_LEN_OVER,mem_24g_off_type
-	branch g24_end_of_packet
-
-g24_crc_error:
-	jam ERR_CRC,mem_24g_off_type
-	branch g24_end_of_packet
-
-g24_set_freq_tx:
-	call set_sync_on
-	fetcht 1,mem_24g_ch
-	branch set_freq_tx
-
-g24_transmit:
-	bpatchx patch33_6,mem_patch33
-	fetch 1,mem_24g_tx_phy
-	call le_enable_phy_by_pdata
-	fetch 4,mem_24g_addr
-	iforce access
-	call g24_prep
-	call g24_set_freq_tx
-	set1 TXGFSK,radio_ctrl
-	enable encode_fec0
-	enable is_tx
-	disable is_rx
-	call rf_debug_tx_on_line
-	disable lr_s2en
-	bmark1 mark_ble_lr,g24_transmit_lr
-	bmark1 mark_ble_2M,g24_transmit_2M
-	rshift16 access,pdata
-	rshift8 pdata,pdata
-	rshift4 pdata,pdata
-	inject mod,40
-g24_transmit_packet:
-	bpatchx patch33_7,mem_patch33
-	bmark1 mark_ble_lr,g24_transmit_nolr
-	fetch 1,mem_24g_disable_fec1
-	nbranch g24_transmit_nolr,blank
-	disable encode_fec0	
-	enable encode_fec1	////lr use encode_fec3
-g24_transmit_nolr:
-	enable enable_white
-	enable enable_crc
-	fetch 1,mem_24g_txlen
-	iforce loopcnt
-	arg mem_24g_txpayload,contr
-g24tr_loop:
-	ifetch 1,contr
-	inject mod,8
-	loop g24tr_loop
-	enable enable_parity
-	inject mod,24	//crc
-	disable enable_parity
-	bmark0 mark_ble_lr,g24_transmit_skip
-	disable enable_white
-	setarg 0
-	inject mod,3
-g24_transmit_skip:	
-	until null,tx_clear
-	nop 100
-	disable lr_s2en
-	disable encode_fec0
-	fetch 1,mem_24g_disable_fec1
-	nbranch g24_transmit_skip_disable_fec1,blank
-	disable encode_fec1
-g24_transmit_skip_disable_fec1:
-	disable encode_fec3
-	call set_sync_on
-	branch rf_debug_tx_off_line
-
-g24_transmit_lr:
-	arg 10,loopcnt
-g24_transmit_lr_preamble_loop:
-	setarg 0x3c
-	inject mod,8
-	loop g24_transmit_lr_preamble_loop
-	disable encode_fec0
-	enable encode_fec3
-	rshift16 access,pdata
-	rshift16 pdata,pdata
-	rshift4 pdata,pdata
-	inject mod,32
-	bmark1 mark_ble_lr_s8,g24_transmit_lr_s8
-g24_transmit_lr_s2:
-	setarg 1
-	inject mod,5
-	enable lr_s2en
-	branch g24_transmit_packet
-
-g24_transmit_lr_s8:
-	setarg 0
-	inject mod,5
-	branch g24_transmit_packet
-
-g24_transmit_2M:
-	fetch 1,mem_system_clk
-	rshift pdata,loopcnt
-g24_transmit_2M_dealy:
-	nop 2
-	loop g24_transmit_2M_dealy
-//	nop 36	//2M 前端发送比1M快3us左右
-	rshift16 access,pdata
-	rshift8 pdata,pdata
-	rshift4 pdata,temp
-	copy temp,pdata
-	inject mod,8
-	copy temp,pdata
-	inject mod,40
-	branch g24_transmit_packet
-
-/****************************g24 base transceiver end********************************/
-
-
-
-/****************************g24 general func start********************************/
-
-g24_transmit_prep:
-	bpatchx patch34_0,mem_patch34
-	fetch 1,mem_24g_tx_phy
-	bbit1 BIT_LE_CODED_PHY,g24_lr_transmit_prep
-// total length
-	fetch 1,mem_24g_datalen
-	increase 3,pdata	//hec/type/control
-	store 1,mem_24g_txlen
-//hec
-	fetch 1,mem_24g_syncword_crc8
-	store 1,mem_24g_txpayload
-// data type
-	fetch 1,mem_24g_data_type
-	istore 1,contw
-//prepare 5bit payload length, 2bit PID, 1bit NO_ACK
-	fetch 1,mem_24g_datalen
-g24_transmit_prep_pdu:
-	lshift3 pdata,pdata
-	fetcht 1,mem_24g_pid
-	and temp,0x03,temp
-	lshift temp,temp
-	ior temp,pdata
-	fetcht 1,mem_24g_no_ack
-	iadd temp,pdata
-	istore 1,contw
-//prepare payload data
-	fetch 1,mem_24g_datalen
-	iforce loopcnt
-	arg mem_24g_txbuf,contr
-	call memcpy
-g24_transmit_prep_next:
-	bpatchx patch34_1,mem_patch34
-//rssi hex	
-	rtnmark0 mark_24g_rxmode
-	fetch 1,mem_rssi_hex
-	istore 1,contw
-	fetch 1,mem_24g_tx_phy
-	rtnbit1 BIT_LE_CODED_PHY
-	fetch 1,mem_24g_txlen
-	increase 1,pdata	//plus rssi_hex length
-	store 1,mem_24g_txlen
-	rtn
-	
-g24_lr_transmit_prep:
-// total length
-	fetch 1,mem_24g_datalen
-	increase 4,pdata	//hec/pdu/type/control
-	bmark0 mark_24g_rxmode,g24_lr_transmit_prep_skip
-	increase 1,pdata	//mem_rssi_hex
-g24_lr_transmit_prep_skip:
-	store 1,mem_24g_txlen
-//hec
-	fetch 1,mem_24g_syncword_crc8
-	store 1,mem_24g_txpayload
-// pdu length
-	fetch 1,mem_24g_txlen
-	increase -2,pdata	//minus hec and pdu length
-	istore 1,contw
-// data type
-	fetch 1,mem_24g_data_type
-	istore 1,contw
-	setarg 0
-	branch g24_transmit_prep_pdu
-
-g24_read_len_pid_crc:
-	bpatchx patch34_2,mem_patch34
-//read control
-	fetch 1,mem_24g_rxbuf+1
-	rshift3 pdata,pdata
-	store 1,mem_24g_rxdata_length
-//get crc
-	increase 1,pdata
-	arg mem_24g_rxbuf+1,contr
-	iadd contr,contr
-	ifetch 3,contr
-	store 3,mem_24g_sta_crc
-//read pid
-	fetch 1,mem_24g_rxbuf+1
-	rshift pdata,pdata
-	and pdata,0x03,pdata
-	store 1,mem_24g_sta_pid
-	rtn
-
-	
-g24_ch:
-	bpatchx patch34_3,mem_patch34
-	fetcht 1,mem_24g_current_ch_number
-	call g24_ch_map_size
-	storet 1,mem_24g_current_ch_number
-	rtn
-
-g24_ch_map_size:
-	bpatchx patch34_4,mem_patch34
-	call g24_ch_calc
-	increase 1,temp
-	and_into 3,temp //map size =4
-	rtn
-	
-g24_ch_calc:
-	bpatchx patch34_5,mem_patch34
-	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
-	rtn
-
-
-g24_update_addr_and_synccrc8:
-	store 4,mem_24g_addr
-//output: 1BYTE crc8
-	bpatchx patch34_6,mem_patch34
-g24_syncword_crc8:
-	arg 0,rega
-	arg 4,loopcnt
-	arg mem_24g_addr,contr
-g24_syncword_crc8_loop:
-	ifetch 1,contr
-	iadd rega,rega
-	loop 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
-
-
-g24_timer_check:
-	bpatchx patch34_7,mem_patch34
-	call disable_user
-	fetcht 4,mem_24g_tx_btclk
-	copy clkn_bt,pdata
-	isub temp,null
-	ncall g24_timer_timeout,positive
-	copy pdata,regb
-	fetch 4,mem_24g_tx_btclk
-	fetcht 1,mem_24g_interval
-	iadd temp,temp
-	copy regb,pdata
-	isub temp,null
-	nrtn positive
-	set0 28,pdata
-	store 4,mem_24g_tx_btclk
-	branch enable_user
-	
-g24_timer_timeout:
-	rtn zero
-	set1 28,pdata
-	rtn
-	
-g24_timer_init:
-	setarg 0
-	store 4,mem_24g_tx_btclk
-	rtn
-
-
-
-//mem_24g_ch_map1:00 13 2c 42
-//mem_24g_ch_map2:06 15 36 48
-//mem_24g_ch_map3:0f 1a 3a 4c
-//mem_24g_ch_map4:11 23 31 4d
-g24_chmap_param_init:
-	bpatchx patch35_0,mem_patch35
-	setsect 0,0x1300
-	setsect 1,0x1908b
-	setsect 2,0x36150
-	setsect 3,0x3d20
-	store 9,mem_24g_ch_map1
-	setsect 0,0x3a1a
-	setsect 1,0xc453
-	setsect 2,0xd312
-	setsect 3,0x1
-	istore 7,contw
-	fetch 1,mem_24g_ch_map_update
-	rtn blank
-	arg mem_24g_ch_update_map1,contr
-	arg mem_24g_ch_map1,contw
-	branch memcpy16
-
-
-
-//mem_24g_ch_update_map1:00 1e 00 4e
-//mem_24g_ch_update_map2:03 23 03 42
-//mem_24g_ch_update_map3:06 25 06 4c
-//mem_24g_ch_update_map4:09 27 09 3c
-g24_chamap_param_update:
-	bpatchx patch35_1,mem_patch35
-	setarg 0x4e001e
-	store 3,mem_24g_ch_update_map1+1
-	setarg 0x032303
-	istore 3,contw
-	setarg 0x250642
-	istore 3,contw
-	setarg 0x094c06
-	istore 3,contw
-	setarg 0x3c0927
-	istore 3,contw
-	jam 1,mem_24g_ch_map_update
-	rtn
-
-
-g24_rx_window_init:
-	bpatchx patch35_2,mem_patch35
-	arg 0x6978,temp
-	bmark1 mark_24g_rxmode,g24_rx_window_store
-	arg 0x12c0,temp
-	fetch 1,mem_24g_rx_phy
-	bbit0 2,g24_rx_window_store	//uncoded phy
-	arg 0x2ee0,temp
-g24_rx_window_store:	
-	storet 2,mem_24g_rx_window
-	rtn
-
-g24_enable_1M:
-	jam 0x01,mem_24g_rx_phy
-	jam 0x01,mem_24g_tx_phy
-	rtn
-
-g24_enable_2M:
-	jam 0x02,mem_24g_rx_phy
-	jam 0x02,mem_24g_tx_phy
-	rtn
-	
-//g24_enable_coded_s2:
-//	jam 0x04,mem_24g_rx_phy
-//	jam 0x04,mem_24g_tx_phy
-//	rtn
-
-//g24_enable_coded_s8:
-//	jam 0x84,mem_24g_rx_phy
-//	jam 0x84,mem_24g_tx_phy
-//	rtn
-
-
-/****************************g24 general func end********************************/
-
-
-
-/****************************g24 sim start********************************/
-/*
-g24_sim_rx:
-	set1 mark_24g_rxmode,mark
-	jam 1,mem_24g_rx_phy	//0x01:1M/0x02:2M/0x04:S2/0x84:S8
-	fetch 1,mem_24g_rx_phy
-	call le_enable_phy_by_pdata
-	jam 0,mem_24g_ch
-	setarg 0x123456
-	store 3,mem_24g_addr
-	istore 1,contw
-	call g24_syncword_crc8
-	setarg 0x3000
-	store 2,mem_24g_rx_window
-g24_sim_rx_loop:
-	call g24_receive_packet
-	call g24_read_len_pid_crc
-	call g24_end_of_packet
-	branch g24_sim_rx_loop
-
-g24_sim_tx:
-	jam 1,mem_24g_tx_phy
-	fetch 1,mem_24g_tx_phy
-	call le_enable_phy_by_pdata
-	jam 0,mem_24g_ch
-	setarg 0x123456
-	store 3,mem_24g_addr
-	istore 1,contw
-	call g24_syncword_crc8
-	jam 1,mem_24g_datalen
-	jam 1,mem_24g_txbuf
-	jam 0x88,mem_rssi_hex
-	call g24_transmit_prep
-g24_sim_tx_loop:
-	call g24_transmit
-	call g24_end_of_packet
-	branch g24_sim_tx_loop
-
-*/
-
-/****************************g24 sim end********************************/
-
-	
Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/g24_protocol_stack/24g_pair.prog
===================================================================
--- /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/g24_protocol_stack/24g_pair.prog	(revision 5679)
+++ /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/g24_protocol_stack/24g_pair.prog	(nonexistent)
@@ -1,419 +0,0 @@
-
-
-g24_pair_param_init:
-	bpatchx patch35_3,mem_patch35
-	jam 0x4e,mem_24g_pair_ch
-	setarg 0x101520
-	store 3,mem_24g_pair_addr
-	setarg 0x05
-	branch  istore_1_contw_rtn
-
-
-
-
-/****************************g24 pair transmitter start********************************/
-
-g24_pair_timeout_timer:
-	arg mem_24g_pair_timeout,regc
-	arg g24_stop_24g_mode,regb
-	branch timer_single_step_2B
-
-g24_pair_start:
-	set1 mark_24g,mark
-	fetch 1,mem_24g_conn_sm
-	set0 STATE_24G_RECONN,pdata
-	set1 STATE_24G_PAIR,pdata
-	store 1,mem_24g_conn_sm
-	setarg 0
-	store 2,mem_24g_reconn_timeout
-	fetch 2,mem_24g_pair_timeout_init
-	store 2,mem_24g_pair_timeout
-	jam 0,mem_24g_pair_no_ack
-	call g24_pair_sm_reinit
-g24_pair_init_param:
-	jam 0,mem_24g_pid
-	fetch 1,mem_24g_pair_ch
-	store 1,mem_24g_ch
-	fetch 1,mem_24g_pair_tx_power
-	store 1,mem_tx_power
-	fetch 4,mem_24g_pair_addr
-	branch g24_update_addr_and_synccrc8
-
-
-g24_pair_dispatch:
-	bpatchx patch35_4,mem_patch35
-	jam DEFAULT_24G_DEVICE,mem_24g_reconn_type
-	fetch 2,mem_24g_pair_count
-	increase 1,pdata
-	store 2,mem_24g_pair_count
-	fetch 1,mem_24g_pair_count
-	and pdata,0xff,pdata
-	nrtn blank
-	fetch 1,mem_24g_pair_sm
-	beq STATE_24G_PAIRING_SUCCESS,g24_pair_exit
-	beq STATE_24G_PAIRING_1,g24_pair_sm_1
-	beq STATE_24G_PAIRING_2,g24_pair_sm_2
-	beq STATE_24G_PAIRING_3,g24_pair_sm_3
-	beq STATE_24G_PAIRING_4,g24_pair_sm_4
-	rtn
-
-g24_pair_sm_1:
-	jam DATATYPE_ATTEMP,mem_24g_txbuf
-	branch g24_pair_sm_prep
-
-g24_pair_sm_2:
-	fetch 1,mem_24g_pair_switch
-	branch g24_pair_sm_2_skip,blank
-	fetch 4,mem_24g_device_addr
-	call g24_update_addr_and_synccrc8	//use transmitter addr
-g24_pair_sm_2_skip:
-	jam DATATYPE_BIND,mem_24g_txbuf	
-	branch g24_pair_sm_prep
-
-g24_pair_sm_3:
-	jam DATATYPE_CONFIG,mem_24g_txbuf	
-	fetch 1,mem_24g_pair_switch
-	branch g24_pair_sm_prep,blank
-	fetch 4,mem_24g_receiver_addr		//prep receiver addr
-	store 4,mem_24g_txbuf+2
-	branch g24_pair_sm_common
-
-g24_pair_sm_4:
-	jam DATATYPE_OK,mem_24g_txbuf
-g24_pair_sm_prep:
-	fetch 4,mem_24g_device_addr
-	store 4,mem_24g_txbuf+2
-g24_pair_sm_common:
-	fetch 1,mem_24g_data_type
-	and_into bits_data,pdata
-	store 1,mem_24g_txbuf+1
-	jam 0,mem_24g_txbuf+6
-	jam 7,mem_24g_datalen
-	call g24_transmit_prep
-	call g24_transmit_receive_ack
-	nrtn sync
-	nrtn user3
-	call g24_txbuf_clear
-	call g24_ackpayload_parse
-g24_pair_sm_common_next:
-	bpatchx patch35_5,mem_patch35
-	fetch 1,mem_24g_pair_sm
-	rtneq STATE_24G_PAIRING_SUCCESS
-	beq STATE_24G_PAIRING_1,g24_pair_sm_1_waiting_ack
-	beq STATE_24G_PAIRING_2,g24_pair_sm_2_waiting_ack
-	beq STATE_24G_PAIRING_3,g24_pair_sm_3_waiting_ack
-	beq STATE_24G_PAIRING_4,g24_pair_sm_4_waiting_ack
-	rtn
-
-g24_pair_sm_reinit:	
-	jam STATE_24G_PAIRING_2,mem_24g_pair_sm
-	fetch 1,mem_24g_pair_switch
-	rtn blank
-	jam STATE_24G_PAIRING_1,mem_24g_pair_sm
-	rtn
-
-g24_pair_sm_1_waiting_ack:
-	jam STATE_24G_PAIRING_2,mem_24g_pair_sm
-	branch g24_transmit_abandon
-	
-g24_pair_sm_2_waiting_ack:
-	fetch 1,mem_24g_pair_switch
-	branch g24_pair_sm_2_waiting_ack_skip,blank
-	fetch 4,mem_24g_rxpayload+2
-	store 4,mem_24g_receiver_addr
-g24_pair_sm_2_waiting_ack_skip:	
-	jam STATE_24G_PAIRING_3,mem_24g_pair_sm
-	branch g24_transmit_abandon
-
-g24_pair_sm_3_waiting_ack:
-	fetch 1,mem_24g_pair_switch
-	branch g24_pair_sm_3_waiting_ack_skip,blank
-	fetch 4,mem_24g_rxpayload+2
-	fetcht 4,mem_24g_device_addr
-	isub temp,null
-	nrtn zero
-g24_pair_sm_3_waiting_ack_skip:	
-	jam STATE_24G_PAIRING_4,mem_24g_pair_sm
-	branch g24_transmit_abandon	
-	
-g24_pair_sm_4_waiting_ack:
-	fetch 1,mem_24g_pair_switch
-	branch g24_pair_sm_4_waiting_ack_skip,blank
-	fetch 4,mem_24g_rxpayload+2
-	fetcht 4,mem_24g_receiver_addr
-	isub temp,null
-	nrtn zero
-g24_pair_sm_4_waiting_ack_skip:	
-	jam STATE_24G_PAIRING_SUCCESS,mem_24g_pair_sm
-	jam BT_EVT_24G_PAIRING_COMPLETE,mem_fifo_temp
-	call ui_ipc_send_event
-	setarg 0
-	store 2,mem_24g_pair_timeout
-	fetch 4,mem_24g_rxpayload+2
-	call g24_update_addr_and_synccrc8
-g24_pair_exit:
-	fetch 1,mem_24g_conn_sm
-	set0 STATE_24G_PAIR,pdata
-	store 1,mem_24g_conn_sm
-	branch g24_transmit_abandon
-
-
-
-
-/****************************g24 pair transmitter end********************************/
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-/****************************g24 pair receiver start********************************/
-
-
-g24_bind_mode_enable:
-	jam DONGLE_BIND,mem_24g_work_mode
-	jam CLEAR_INIT,mem_24g_mode_init
-	rtn
-
-g24_bind_init:
-	fetch 1,mem_24g_mode_init
-	rtnbit1 DONGLE_BIND
-	set1 DONGLE_BIND,pdata
-	store 1,mem_24g_mode_init
-	setarg 0
-	store 3,mem_24g_device1_bind_step
-	store 1,mem_24g_device1_bind_disable
-	store 1,mem_24g_device2_bind_disable
-	store 4,mem_24g_transmitter_addr
-	jam 1,mem_24g_ackpayload_enable
-	branch g24_pair_init_param
-
-
-g24_bind_ackpayload_prep:
-	jam 0x08,mem_24g_datalen
-	arg mem_24g_bind_payload,contr
-	arg mem_24g_txbuf,contw
-	branch memcpy8
-
-
-g24_bind_data_process:
-	bpatchx patch35_6,mem_patch35
-	call g24_rx_interrupt_clear
-	call g24_receive_packet
-	nbranch g24_rx_interrupt_clear,user3
-	call g24_bind_data_parse
-	call g24_transmit_ack
-	call g24_bind_device_status_check
-	call dongle_kb_bind_soft_reset
-	fetch 1,mem_24g_pair_switch
-	rtn blank
-	fetch 4,mem_24g_transmitter_addr
-	rtn blank
-	branch g24_update_addr_and_synccrc8
-
-g24_bind_data_error:
-	call g24_rx_interrupt_clear
-	branch g24_end_of_packet
-
-g24_bind_data_parse:
-	jam BIND_MODE_CONTINUE,mem_24g_bind_mode_continue	//about 400ms
-	arg mem_24g_rxbuf,contr
-	arg mem_24g_rxdata_temp,contw
-	call memcpy8
-	bpatchx patch35_7,mem_patch35
-	fetch 1,mem_24g_rxdata_temp+2
-	beq DATATYPE_BIND,g24_bind_first_step	//bind step 1
-	beq DATATYPE_CONFIG,g24_bind_second_step
-	beq DATATYPE_OK,g24_bind_third_step
-	beq DATATYPE_ATTEMP,g24_data_attemp
-	rtn
-
-
-g24_bind_first_step:
-	fetch 1,mem_24g_rxdata_temp+3
-	beq DATATYPE_DEVICE1,g24_bind_first_step_device1
-	beq DATATYPE_DEVICE2,g24_bind_first_step_device2
-	rtn
-
-g24_bind_first_step_device1:
-	fetch 1,mem_24g_device1_bind_disable
-	nrtn blank
-	jam 1,mem_24g_device1_bind_step
-g24_bind_dvc1_payload_cfg:
-	jam DATATYPE_DEVICE1,mem_24g_bind_payload
-g24_bind_payload_cfg:
-	jam 0x80,mem_24g_bind_payload+1
-	fetch 6,mem_24g_lap
-	store 6,mem_24g_bind_payload+2
-	rtn
-
-g24_bind_first_step_device2:
-	fetch 1,mem_24g_device2_bind_disable
-	nrtn blank
-	jam 1,mem_24g_device2_bind_step
-g24_bind_dvc2_payload_cfg:
-	jam DATATYPE_DEVICE2,mem_24g_bind_payload
-	branch g24_bind_payload_cfg
-
-
-g24_bind_second_step:
-	fetch 1,mem_24g_pair_switch
-	branch g24_bind_second_step_skip,blank
-	fetch 4,mem_24g_rxdata_temp+4
-	fetcht 4,mem_24g_lap
-	isub temp,null
-	nrtn zero
-g24_bind_second_step_skip:	
-	fetch 1,mem_24g_rxdata_temp+3
-	beq DATATYPE_DEVICE1,g24_bind_second_step_device1
-	beq DATATYPE_DEVICE2,g24_bind_second_step_device2
-	rtn
-
-g24_bind_second_step_device1:
-	fetch 1,mem_24g_device1_bind_disable
-	nrtn blank
-	fetch 1,mem_24g_device1_bind_step
-	beq 1,g24_bind_dvc1_step_set2
-	rtn
-g24_bind_dvc1_step_set2:
-	jam 2,mem_24g_device1_bind_step
-	fetch 1,mem_24g_pair_switch
-	branch g24_bind_dvc1_payload_cfg,blank
-g24_bind_dvc1_payload_cfg_transmitter_addr:
-	jam DATATYPE_DEVICE1,mem_24g_bind_payload
-g24_bind_payload_cfg_transmitter_addr:
-	jam 0x80,mem_24g_bind_payload+1
-	fetch 4,mem_24g_transmitter_addr
-	store 4,mem_24g_bind_payload+2
-	branch enable_user
-
-g24_bind_second_step_device2:
-	fetch 1,mem_24g_device2_bind_disable
-	nrtn blank
-	fetch 1,mem_24g_device2_bind_step
-	beq 1,g24_bind_dvc2_step_set2
-	rtn
-g24_bind_dvc2_step_set2:
-	jam 2,mem_24g_device2_bind_step
-	fetch 1,mem_24g_pair_switch
-	branch g24_bind_dvc2_payload_cfg,blank	
-	jam DATATYPE_DEVICE2,mem_24g_bind_payload
-	branch g24_bind_payload_cfg_transmitter_addr
-
-
-g24_bind_third_step:
-	fetch 1,mem_24g_pair_switch
-	branch g24_bind_third_step_skip,blank
-	fetch 4,mem_24g_rxdata_temp+4
-	fetcht 4,mem_24g_transmitter_addr
-	isub temp,null
-	nrtn zero
-g24_bind_third_step_skip:
-	fetch 1,mem_24g_rxdata_temp+3
-	beq DATATYPE_DEVICE1,g24_bind_third_step_device1
-	beq DATATYPE_DEVICE2,g24_bind_third_step_device2
-	rtn
-
-g24_bind_third_step_device1:
-	fetch 1,mem_24g_device1_bind_disable
-	nrtn blank
-	fetch 1,mem_24g_device1_bind_step
-	beq 2,g24_bind_dvc1_step_success
-	rtn
-g24_bind_dvc1_step_success:
-	jam 1,mem_24g_device1_bind_disable
-	//call g24_binding_dvc1_living	//works on auto pair only
-	call g24_bind_dvc1_payload_cfg
-	fetch 1,mem_24g_bind_device_status
-	or_into 0x01,pdata
-	store 1,mem_24g_bind_device_status
-g24_bind_exit:
-	setarg 0
-	store 2,mem_24g_device1_bind_step
-	rtn
-	
-g24_bind_third_step_device2:
-	fetch 1,mem_24g_device2_bind_disable
-	nrtn blank
-	fetch 1,mem_24g_device2_bind_step
-	bne 0,g24_bind_dvc2_step_success
-	rtn
-g24_bind_dvc2_step_success:
-	jam 1,mem_24g_device2_bind_disable
-	//call g24_binding_dvc2_living	//works on auto pair only
-	call g24_bind_dvc2_payload_cfg
-	fetch 1,mem_24g_bind_device_status
-	or_into 0x02,pdata
-	store 1,mem_24g_bind_device_status
-	call g24_bind_exit
-	branch dongle_g24_store_dvc2_bind_flag
-
-g24_binding_device_check:	//works on auto pair
-	fetch 1,mem_24g_rxbuf+3
-	beq DATATYPE_DEVICE1,g24_binding_dvc1_status	//bit0
-	beq DATATYPE_DEVICE2,g24_binding_dvc2_status	//bit1
-	rtn
-g24_binding_dvc1_status:
-	fetch 1,mem_24g_bind_device_living
-	rtnbit0 0
-disable_user3:
-	disable user3
-	rtn 
-g24_binding_dvc2_status:
-	fetch 1,mem_24g_bind_device_living
-	rtnbit0 1
-	branch disable_user3
-
-g24_binding_dvc1_living:
-	fetch 1,mem_24g_pair_mode
-	nrtn blank
-	fetch 1,mem_24g_bind_device_living
-	or_into 0x01,pdata
-	store 1,mem_24g_bind_device_living
-	rtn
-
-g24_binding_dvc2_living:
-	fetch 1,mem_24g_pair_mode
-	nrtn blank
-	fetch 1,mem_24g_bind_device_living
-	or_into 0x02,pdata
-	store 1,mem_24g_bind_device_living
-	rtn
-
-
-g24_bind_device_status_check:
-	fetch 1,mem_24g_bind_device_status
-	rtn blank
-g24_bind_device_status:
-	fetch 1,mem_24g_rxdata_temp+3
-	beq DATATYPE_DEVICE1,g24_binding_dvc1_living
-	beq DATATYPE_DEVICE2,g24_binding_dvc2_living
-	rtn
-
-
-
-/****************************g24 pair receiver end********************************/
-
-
-
-
-
-
-
-
-
-
-
-
-
Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/g24_protocol_stack/24g_receiver.prog
===================================================================
--- /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/g24_protocol_stack/24g_receiver.prog	(revision 5679)
+++ /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/g24_protocol_stack/24g_receiver.prog	(nonexistent)
@@ -1,568 +0,0 @@
-
-g24_receive_init:
-	set1 mark_24g_rxmode,mark
-	fetch 1,mem_tx_power
-	store 1,mem_tx_power_temp
-	branch rssi_receiver_buff_init
-
-g24_receive_dispatch:
-	fetch 2,mem_cb_24g_receive_process
-	branch callback_func
-
-g24_ackpayload_prep:
-	bpatchx patch36_0,mem_patch36
-	jam 0,mem_24g_datalen
-	fetch 1,mem_24g_ackpayload_enable
-	rtn blank
-	fetch 2,mem_cb_24g_ackpayload
-	branch callback_func
-
-
-g24_receive_packet_start:
-	call g24_receive_transmit_ack
-	nbranch g24_rx_interrupt_clear,user3
-g24_receive_packet_parse:
-	call g24_receive_packet_parse_pid_crc
-	nbranch g24_rx_interrupt_clear,user
-	fetch 1,mem_24g_rxdata_length
-	branch g24_rx_interrupt_clear,blank
-	increase 2,pdata
-	iforce loopcnt
-	arg mem_24g_rxbuf,contr
-	arg mem_24g_rxdata_temp,contw
-	call memcpy
-	jam 0,mem_24g_mode_switch
-	fetch 1,mem_24g_pair_mode
-	call g24_enable_nodata_timer,blank
-	bpatchx patch36_1,mem_patch36
-	fetch 1,mem_24g_rxdata_temp+2
-	beq DATATYPE_DEVICE1,g24_data_device1	//mouse
-	beq DATATYPE_DEVICE2,g24_data_device2	//keyboard
-	beq DATATYPE_ATTEMP,g24_data_receive_attemp	//reconn packet
-g24_rx_interrupt_clear:
-	bpatchx patch36_2,mem_patch36
-	arg mem_24g_rxbuf,contw
-	arg 66,loopcnt
-	branch clear_mem
-
-g24_data_receive_attemp:
-	call g24_bind_device_status		//works on auto pair only
-	branch g24_data_attemp
-
-g24_data_device1:
-	call g24_binding_dvc1_living	//works on auto pair only
-	call g24_ch_timer_reinit
-	fetch 1,mem_24g_abort_packet
-	fetcht 1,mem_24g_rxdata_temp
-	isolate1 bit_abort,temp
-	setflag true,0,pdata
-	store 1,mem_24g_abort_packet
-	beq 1,g24_data_attemp_device1_abort
-	fetch 1,mem_24g_hop_packet
-	fetcht 1,mem_24g_rxdata_temp
-	isolate1 bit_hop,temp
-	setflag true,0,pdata
-	store 1,mem_24g_hop_packet
-	fetch 2,mem_cb_24g_data_device1
-	branch callback_func
-
-g24_data_device2:
-	call g24_binding_dvc2_living	//works on auto pair only
-	fetcht 1,mem_24g_rxdata_temp
-	isolate1 bit_abort,temp
-	branch g24_data_attemp_device2_abort,true
-	fetch 2,mem_cb_24g_data_device2
-	branch callback_func
-
-g24_data_attemp_device1_abort:
-	fetch 1,mem_24g_device1_bind_disable
-	nrtn blank
-	jam 1,mem_24g_device1_bind_disable
-	fetch 4,mem_24g_rxdata_temp+10
-	branch g24_store_device1_addr
-g24_data_attemp_device2_abort:
-	fetch 4,mem_24g_rxdata_temp+10
-	branch g24_store_device2_addr	
-
-
-g24_receive_packet_parse_pid_crc:
-	call disable_user
-	fetch 1,mem_24g_sta_pid
-	fetcht 1,mem_24g_last_pid
-	isub temp,null
-	ncall enable_user,zero
-	fetch 1,mem_24g_sta_pid
-	store 1,mem_24g_last_pid
-	fetch 3,mem_24g_sta_crc
-	fetcht 3,mem_24g_last_crc
-	isub temp,null
-	ncall enable_user,zero
-	fetch 3,mem_24g_sta_crc
-	store 3,mem_24g_last_crc
-	rtn
-
-g24_receive_transmit_ack:
-	call g24_rx_interrupt_clear
-	call g24_receive_packet
-	nrtn user3
-g24_transmit_ack:
-//data type
-	fetch 1,mem_24g_rxbuf
-	store 1,mem_24g_data_type
-//read len pid crc
-	call g24_read_len_pid_crc
-//read ack
-	fetch 1,mem_24g_rxbuf+1
-	isolate1 bit_ack_24g,pdata
-	branch g24tx_no_ack,true
-g24tx_with_ack:
-	call g24_ackpayload_prep
-	call g24_transmit_prep
-	call g24_transmit
-g24tx_no_ack:
-	branch g24_end_of_packet
-
-
-g24_enable_nodata_timer:
-	jam 1,mem_24g_nodata_timer_enable
-g24_enable_nodata_timer_init:
-	setarg TIMER_NODATA_DELAY
-	arg G24_TIMER_NODATA,queue
-	branch timer_init
-
-
-
-/****************************g24 receiver mode switch start********************************/
-
-g24_mode_switch_init:
-	bpatchx patch36_3,mem_patch36
-	jam 1,mem_24g_mode_switch
-	jam 0,mem_24g_time_slice
-	jam 0xff,mem_24g_interval
-	branch g24_timer_init
-	
-g24_mode_switch_bind_work:
-	bpatchx patch36_4,mem_patch36
-	fetch 1,mem_24g_mode_switch
-	rtn blank
-	call g24_timer_check
-	nrtn user	//80ms
-	call g24_bind_mode_continue
-	fetch 1,mem_24g_time_slice
-	increase 1,pdata
-	and_into 1,pdata
-	store 1,mem_24g_time_slice
-	beq 0,g24_work_mode_switch
-	beq 1,g24_bind_mode_switch
-	rtn
-
-g24_bind_mode_continue:
-	fetch 1,mem_24g_bind_mode_continue
-	rtn blank
-	increase -1,pdata
-	store 1,mem_24g_bind_mode_continue
-	rtn
-
-g24_work_mode_switch:
-	fetch 1,mem_24g_bind_mode_continue
-	nrtn blank
-	branch g24_switch_work_mode
-
-g24_bind_mode_switch:
-	fetch 1,mem_24g_bind_mode_continue
-	nrtn blank
-	branch g24_bind_mode_enable
-
-
-g24_mode_B_S_switch_init:	//bind and search
-	fetch 1,mem_24g_B_S_mode_switch_disable
-	nrtn blank
-	fetch 1,mem_24g_mode_B_S_switch_exit
-	call g24_mode_B_S_switch_start,blank
-	fetch 1,mem_24g_mode_B_S_switch_init
-	rtnbit1 0
-	set1 0,pdata
-	store 1,mem_24g_mode_B_S_switch_init
-	jam 1,mem_24g_mode_B_S_switch
-	jam 0,mem_24g_B_S_time_slice
-	setarg 0
-	store 2,mem_24g_mode_B_S_switch_cnt
-	jam 0x60,mem_24g_interval	//30ms
-	branch g24_timer_init
-
-g24_mode_switch_bind_search:
-	bpatchx patch36_5,mem_patch36
-	fetch 1,mem_24g_work_mode
-	rtneq DONGLE_WORK
-	fetch 1,mem_24g_B_S_mode_switch_disable
-	nrtn blank
-	fetch 1,mem_24g_mode_B_S_switch_exit
-	nrtn blank
-	fetch 1,mem_24g_mode_B_S_switch
-	rtn blank
-	fetch 1,mem_24g_bind_device_living
-	compare 3,pdata,3
-	branch g24_mode_B_S_switch_exit,true
-	call g24_timer_check
-	nrtn user
-	fetch 2,mem_24g_mode_B_S_switch_cnt
-	increase 1,pdata
-	store 2,mem_24g_mode_B_S_switch_cnt
-	arg 0x7d0,temp	//1min
-	isub temp,null
-	branch g24_mode_B_S_switch_exit,positive
-	fetch 1,mem_24g_B_S_time_slice
-	increase 1,pdata
-	and_into 1,pdata
-	store 1,mem_24g_B_S_time_slice
-	beq 0,g24_search_mode_enable
-	beq 1,g24_bind_mode_enable
-	rtn
-
-g24_mode_switch_search:
-	fetch 1,mem_24g_bind_mode_continue
-	nbranch g24_bind_mode_enable,blank
-	branch g24_search_mode_enable
-
-g24_mode_B_S_switch_exit:
-	jam 1,mem_24g_mode_B_S_switch_exit
-	branch g24_search_mode_enable
-
-g24_mode_B_S_switch_stop:
-	jam 0,mem_24g_mode_B_S_switch
-	rtn
-g24_mode_B_S_switch_start:
-	jam 1,mem_24g_mode_B_S_switch
-	rtn
-
-
-
-/****************************g24 receiver mode switch end********************************/
-
-
-
-
-/****************************g24 receiver work mode start********************************/
-
-g24_work_init:
-	bpatchx patch36_6,mem_patch36
-	fetch 1,mem_24g_mode_init
-	rtnbit1 DONGLE_WORK
-	set1 DONGLE_WORK,pdata
-	store 1,mem_24g_mode_init
-	fetch 1,mem_tx_power_temp
-	store 1,mem_tx_power
-	jam 0,mem_24g_ackpayload_enable
-	jam 0,mem_usb_tx_enable
-	jam 1,mem_24g_abort_packet
-	jam 0,mem_24g_pid
-	fetch 4,mem_24g_lap
-	call g24_update_addr_and_synccrc8
-	call g24_ch
-	branch g24_rx_interrupt_clear
-
-
-g24_switch_work_mode:
-	jam 0,mem_24g_ackpayload_enable
-g24_work_mode_enable:
-	jam DONGLE_WORK,mem_24g_work_mode
-	jam CLEAR_INIT,mem_24g_mode_init	
-	rtn
-
-
-g24_work_mode_start:
-	fetch 1,mem_24g_work_mode
-	rtnne DONGLE_WORK
-	call g24_work_init
-	call g24_ch_process
-	branch g24_receive_packet_start
-
-
-
-/****************************g24 receiver work mode end********************************/
-
-
-
-
-
-
-/****************************g24 receiver bind mode start********************************/
-
-g24_bind_mode_auto:
-	bpatchx patch36_7,mem_patch36
-	fetch 1,mem_24g_work_mode
-	rtnne DONGLE_BIND
-	call g24_bind_init
-	call g24_bind_data_process
-	fetch 1,mem_24g_pair_mode
-	nrtn blank
-	fetch 1,mem_24g_bind_device_status
-	rtn blank
-	jam 0,mem_24g_mode_switch
-	call g24_switch_work_mode
-	call g24_enable_nodata_timer
-	branch g24_timer_init
-
-
-/****************************g24 receiver bind mode end********************************/
-
-
-
-
-
-
-/****************************g24 receiver search mode start********************************/
-
-g24_search_mode_init:
-	fetch 1,mem_24g_mode_init
-	rtnbit1 DONGLE_SEARCH
-	set1 DONGLE_SEARCH,pdata
-	store 1,mem_24g_mode_init
-	fetch 1,mem_tx_power_temp	//reinit tx power when "search-pair-switch"  is enable
-	store 1,mem_tx_power
-
-	jam 0,mem_24g_time_slice
-	jam 1,mem_24g_ackpayload_enable
-	setarg 0
-	store 3,mem_rssi_noise_self_index
-	store 7,mem_24g_self_config_ch_once
-	call g24_receiver_addr_check
-	nrtn zero
-	fetch 1,mem_24g_current_ch_number
-	store 1,mem_24g_self_ch_number
-	fetch 1,mem_24g_ch
-	store 1,mem_24g_self_last_ch
-	rtn
-
-
-g24_search_mode_auto:
-	bpatchx patch37_0,mem_patch37
-	fetch 1,mem_24g_work_mode
-	rtnne DONGLE_SEARCH
-	call g24_search_mode_init
-	call g24_auto_addr_ch_search
-	call g24_receive_transmit_ack
-	nbranch g24_rx_interrupt_clear,user3
-	//dongle addr,then parse rxdata
-	call g24_receiver_addr_check
-	call g24_receive_packet_parse,zero
-
-	fetch 1,mem_24g_abort_packet
-	call g24_mode_B_S_switch_stop,blank	//works on auto pair only
-	
-	//receive data,then go to paired
-	jam DONGLE_WORK,mem_24g_work_mode
-	fetch 1,mem_24g_mode_init
-	set1 DONGLE_WORK,pdata
-	store 1,mem_24g_mode_init
-
-	fetch 1,mem_24g_ackpayload_enable
-	sub pdata,2,null
-	ncall g24_ackpayload_disable,zero
-
-	call g24_rx_interrupt_clear
-	call g24_enable_nodata_timer
-	call g24_receiver_addr_check
-	branch g24_self_ch_num_reinit,zero
-	fetch 4,mem_24g_addr
-	fetcht 4,mem_24g_device2_addr
-	isub temp,null
-	branch g24_device2_ch_num_reinit,zero		
-	fetch 4,mem_24g_addr
-	fetcht 4,mem_24g_device1_addr
-	isub temp,null
-	branch g24_device1_ch_num_reinit,zero
-	rtn
-
-
-g24_self_ch_num_reinit:
-	fetch 1,mem_24g_self_ch_number
-g24_current_ch_num_reinit:
-	store 1,mem_24g_current_ch_number
-	rtn
-
-g24_device2_ch_num_reinit:
-	fetch 1,mem_24g_device2_ch_number
-	branch g24_current_ch_num_reinit
-
-g24_device1_ch_num_reinit:
-	fetch 1,mem_24g_device1_ch_number
-	branch g24_current_ch_num_reinit
-
-
-g24_auto_addr_ch_search:
-	bpatchx patch37_1,mem_patch37
-	fetch 1,mem_24g_time_slice
-	increase 1,pdata
-	and_into 3,pdata
-	store 1,mem_24g_time_slice
-	//pairing address and channel come first
-	beq 0,g24_auto_bind_config_device2
-	beq 1,g24_auto_bind_config_self
-	beq 2,g24_auto_bind_config_device1
-	beq 3,g24_auto_bind_config_self
-	rtn
-
-g24_auto_bind_config_device1:
-	call g24_bind_dvc1_payload_cfg
-	fetch 4,mem_24g_device1_addr
-	branch g24_auto_addr_ch_search,blank
-	call g24_update_addr_and_synccrc8
-	fetch 1,mem_24g_device1_config_ch_once
-	call g24_device1_config_ch_once,blank
-	fetch 1,mem_24g_device1_last_ch
-	store 1,mem_24g_ch
-	fetcht 1,mem_rssi_noise_device1_index
-	fetchr rega,2,mem_rssi_noise_device1_buffer_ptr
-	call rssi_store
-	storet 1,mem_rssi_noise_device1_index
-	call rssi_average
-	storet 1,mem_rssi_noise_device1_avg
-	sub temp,RSSI_THRESH_NOISE,null
-	nrtn positive
-	fetcht 1,mem_24g_device1_ch_number
-	call g24_ch_map_size
-	storet 1,mem_24g_device1_ch_number
-	store 1,mem_24g_device1_last_ch
-	rtn
-
-g24_device1_config_ch_once:
-	jam 1,mem_24g_device1_config_ch_once
-	arg 0,temp
-	call g24_ch_calc
-	store 1,mem_24g_device1_last_ch
-	rtn
-	
-g24_auto_bind_config_device2:
-	call g24_bind_dvc2_payload_cfg
-	fetch 4,mem_24g_device2_addr
-	branch g24_auto_addr_ch_search,blank
-	call g24_update_addr_and_synccrc8
-	fetch 1,mem_24g_device2_config_ch_once
-	call g24_device2_config_ch_once,blank
-	fetch 1,mem_24g_device2_last_ch
-	store 1,mem_24g_ch
-	fetcht 1,mem_rssi_noise_device2_index
-	fetchr rega,2,mem_rssi_noise_device2_buffer_ptr
-	call rssi_store
-	storet 1,mem_rssi_noise_device2_index
-	call rssi_average
-	storet 1,mem_rssi_noise_device2_avg
-	sub temp,RSSI_THRESH_NOISE,null
-	nrtn positive
-	fetcht 1,mem_24g_device2_ch_number
-	call g24_ch_map_size
-	storet 1,mem_24g_device2_ch_number
-	store 1,mem_24g_device2_last_ch
-	rtn
-
-g24_device2_config_ch_once:
-	jam 1,mem_24g_device2_config_ch_once
-	arg 0,temp
-	call g24_ch_calc
-	store 1,mem_24g_device2_last_ch
-	rtn	
-
-g24_auto_bind_config_self:
-	call g24_bind_dvc1_payload_cfg
-	fetch 4,mem_24g_lap
-	call g24_update_addr_and_synccrc8
-	fetch 1,mem_24g_self_config_ch_once
-	call g24_self_config_ch_once,blank
-	fetch 1,mem_24g_self_last_ch
-	store 1,mem_24g_ch
-	fetcht 1,mem_rssi_noise_self_index
-	fetchr rega,2,mem_rssi_noise_self_buffer_ptr
-	call rssi_store
-	storet 1,mem_rssi_noise_self_index
-	call rssi_average
-	storet 1,mem_rssi_noise_self_avg
-	sub temp,RSSI_THRESH_NOISE,null
-	nrtn positive
-	fetcht 1,mem_24g_self_ch_number
-	call g24_ch_map_size
-	storet 1,mem_24g_self_ch_number
-	store 1,mem_24g_self_last_ch
-	rtn
-
-g24_self_config_ch_once:
-	jam 1,mem_24g_self_config_ch_once
-	fetch 1,mem_24g_self_last_ch
-	store 1,mem_24g_ch
-	rtn
-
-
-g24_ackpayload_disable:
-	jam 0,mem_24g_ackpayload_enable
-	rtn
-
-
-g24_receiver_addr_check:
-	fetch 4,mem_24g_addr
-	fetcht 4,mem_24g_lap
-	isub temp,null
-	rtn
-
-/****************************g24 receiver search mode end********************************/
-
-
-
-
-
-
-/****************************g24 receiver nodata process start********************************/
-
-
-g24_nodata_process:
-	fetch 1,mem_24g_ackpayload_enable
-	rtneq 2
-	fetch 1,mem_24g_nodata_timer_enable
-	rtn blank
-	arg G24_TIMER_NODATA,queue
-	call timer_check
-	nrtn blank
-	jam 0,mem_24g_nodata_timer_enable
-	jam 0,mem_24g_bind_mode_continue
-	call g24_mode_B_S_switch_init	//works on auto pair only	
-	//no data for more than 100ms,then go to search
-g24_search_mode_enable:	
-	bpatchx patch37_2,mem_patch37
-	jam DONGLE_SEARCH,mem_24g_work_mode
-	jam CLEAR_INIT,mem_24g_mode_init
-	branch g24_rx_interrupt_clear
-
-
-/****************************g24 receiver nodata process end********************************/
-
-
-g24_ch_process:
-	bpatchx patch37_3,mem_patch37
-	fetch 1,mem_24g_abort_packet
-	beq 1,rssi_noise_monitor
-	fetch 1,mem_24g_hop_packet
-	beq 1,g24_ch_receive_hop_pac
-	fetcht 4,mem_24g_hop_btclk
-	copy clkn_bt,pdata
-	isub temp,null
-	ncall g24_timer_timeout,positive
-	copy pdata,regb
-	fetch 4,mem_24g_hop_btclk
-	fetcht 1,mem_24g_hop_interval
-	iadd temp,temp
-	copy regb,pdata
-	isub temp,null
-	nrtn positive
-	set0 28,pdata
-	store 4,mem_24g_hop_btclk
-	jam 1,mem_24g_abort_packet
-	branch g24_ch
-
-g24_ch_receive_hop_pac:
-	jam 0,mem_24g_hop_packet
-	branch g24_ch
-
-g24_ch_timer_reinit:
-	copy clkn_bt,pdata
-	store 4,mem_24g_hop_btclk
-	rtn
-
Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/g24_protocol_stack/24g_reconn.prog
===================================================================
--- /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/g24_protocol_stack/24g_reconn.prog	(revision 5679)
+++ /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/g24_protocol_stack/24g_reconn.prog	(nonexistent)
@@ -1,179 +0,0 @@
-
-/****************************g24 reconn transmitter start********************************/
-
-g24_reconn_timeout_timer:
-	arg mem_24g_reconn_timeout,regc
-	arg g24_stop_24g_mode,regb
-	branch timer_single_step_2B
-
-
-g24_reconn_start:
-	bpatchx patch37_4,mem_patch37
-	set1 mark_24g,mark
-	fetch 1,mem_24g_conn_sm
-	set0 STATE_24G_PAIR,pdata
-	set1 STATE_24G_RECONN,pdata
-	store 1,mem_24g_conn_sm
-	fetch 1,mem_24g_fast_conn_enable
-	branch g24_reconn_receiver_addr,blank
-	fetch 1,mem_24g_reconn_type
-	beq FAST_CONN_AND_RECEIVER,g24_reconn_fast_conn
-	beq FAST_CONN_AND_3_0_ADDR,g24_reconn_fast_conn
-	beq RECEIVER_AND_3_0_ADDR,g24_reconn_device_3_0_addr
-	beq PAIR_AND_3_0_ADDR,g24_reconn_device_3_0_addr
-g24_reconn_fast_conn:
-	fetch 1,mem_24g_pair_tx_power
-	store 1,mem_tx_power
-	fetcht 1,mem_24g_fast_conn_temp_ch
-	storet 1,mem_24g_current_ch_number
-	fetch 4,mem_24g_fast_conn_addr
-	call g24_ch_syncword_crc8_init
-	storet 1,mem_24g_fast_conn_temp_ch
-	rtn
-	 
-g24_reconn_receiver_addr:
-	jam TX_POWER_3DB,mem_tx_power
-	fetcht 1,mem_24g_receiver_temp_ch
-	storet 1,mem_24g_current_ch_number
-	fetch 4,mem_24g_receiver_addr
-	call g24_ch_syncword_crc8_init
-	storet 1,mem_24g_receiver_temp_ch
-	rtn
-
-g24_reconn_device_3_0_addr:
-	jam TX_POWER_3DB,mem_tx_power
-	fetcht 1,mem_24g_device_temp_ch
-	storet 1,mem_24g_current_ch_number
-	fetch 4,mem_24g_device_addr
-	call g24_ch_syncword_crc8_init
-	storet 1,mem_24g_device_temp_ch
-	rtn	
-
-g24_store_receiver_addr:
-	fetch 4,mem_24g_rxpayload+2
-	rtn blank
-	store 4,mem_24g_receiver_addr	
-g24_ch_syncword_crc8_init:	
-	call g24_update_addr_and_synccrc8
-	branch g24_ch
-
-
-g24_reconn_dispatch:
-	bpatchx patch37_5,mem_patch37
-	fetch 2,mem_24g_reconn_count
-	arg 0x01f8,temp
-	iand temp,pdata
-	branch g24_reconn_dispatch_next,blank
-	fetch 2,mem_24g_reconn_count
-	increase 1,pdata
-	store 2,mem_24g_reconn_count
-	rtn
-
-g24_reconn_dispatch_next:
-	call g24_reconn_data_prep
-	call g24_transmit_receive_ack
-	nbranch g24_reconn_device_fail,sync
-	nbranch g24_reconn_device_fail,user3
-	call g24_ackpayload_parse
-	fetch 1,mem_device_option
-	beq DVC_OP_MOUSE,mouse_g24_reconn_dispatch_set
-	fetch 4,mem_24g_pair_addr
-	fetcht 4,mem_24g_addr
-	isub temp,null
-	branch g24_pair_start,zero
-g24_reconn_dispatch_success:
-	fetch 4,mem_24g_device_addr
-	fetcht 4,mem_24g_addr
-	isub temp,null
-	call g24_store_receiver_addr,zero
-	fetch 1,mem_24g_conn_sm
-	set0 STATE_24G_RECONN,pdata
-	store 1,mem_24g_conn_sm
-	setarg 0
-	store 2,mem_24g_pair_timeout
-	store 2,mem_24g_reconn_count
-	store 2,mem_24g_reconn_timeout
-	jam BT_EVT_24G_ATTEMPT_SUCCESS,mem_fifo_temp
-	call ui_ipc_send_event
-g24_txbuf_clear:
-	bpatchx patch37_6,mem_patch37
-	arg 32,loopcnt
-	arg mem_24g_txbuf,contw
-	branch memset0
-
-g24_reconn_data_prep:
-	jam DATATYPE_ATTEMP,mem_24g_txbuf
-	fetch 1,mem_24g_data_type
-	store 1,mem_24g_txbuf+1
-	fetch 4,mem_24g_device_addr
-	store 4,mem_24g_txbuf+2
-	jam 6,mem_24g_datalen
-	branch g24_transmit_prep
-
-g24_reconn_device_fail:
-	bpatchx patch37_7,mem_patch37
-	fetch 1,mem_24g_fast_conn_enable
-	branch g24_ch,blank
-	fetch 2,mem_24g_reconn_count
-	increase 1,pdata
-	store 2,mem_24g_reconn_count
-	isolate1 9,pdata
-	fetch 1,mem_24g_reconn_type
-	beq FAST_CONN_AND_RECEIVER,g24_reconn_fast_conn_and_receiver
-	beq FAST_CONN_AND_3_0_ADDR,g24_reconn_fast_conn_and_3_0
-	beq RECEIVER_AND_3_0_ADDR,g24_reconn_receiver_and_3_0
-	beq PAIR_AND_3_0_ADDR,g24_reconn_pair_and_3_0
-	branch g24_reconn_receiver_addr
-
-
-g24_reconn_fast_conn_and_receiver:
-	branch g24_reconn_receiver_addr,true
-	branch g24_reconn_fast_conn
-
-g24_reconn_fast_conn_and_3_0:
-	branch g24_reconn_device_3_0_addr,true
-	branch g24_reconn_fast_conn
-	
-g24_reconn_receiver_and_3_0:
-	branch g24_reconn_device_3_0_addr,true
-	branch g24_reconn_receiver_addr
-
-g24_reconn_pair_and_3_0:
-	branch g24_reconn_device_3_0_addr,true
-	branch g24_pair_init_param
-
-/****************************g24 reconn transmitter end********************************/
-
-
-
-
-
-/****************************g24 reconn receiver start********************************/
-
-g24_data_attemp:
-	fetch 1,mem_24g_rxdata_temp+3
-	beq DATATYPE_DEVICE1,g24_data_attemp_device1
-	beq DATATYPE_DEVICE2,g24_data_attemp_device2
-	rtn
-g24_data_attemp_device1:
-	fetch 1,mem_24g_device1_bind_disable
-	nrtn blank
-	fetch 4,mem_24g_rxdata_temp+4
-	store 4,mem_24g_transmitter_addr
-g24_store_device1_addr:
-	store 4,mem_24g_device1_addr
-	rtn
-g24_data_attemp_device2:
-	fetch 1,mem_24g_device2_bind_disable
-	nrtn blank
-	fetch 4,mem_24g_rxdata_temp+4
-	store 4,mem_24g_transmitter_addr	
-g24_store_device2_addr:
-	store 4,mem_24g_device2_addr
-	rtn
-
-/****************************g24 reconn receiver end********************************/
-
-
-
-
Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/g24_protocol_stack/24g_rssi.prog
===================================================================
--- /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/g24_protocol_stack/24g_rssi.prog	(revision 5679)
+++ /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/g24_protocol_stack/24g_rssi.prog	(nonexistent)
@@ -1,112 +0,0 @@
-
-/****************************g24 rssi general start********************************/
-
-rssi_store:
-	bpatchx patch38_0,mem_patch38
-	copy rega,pdata
-	iadd temp,contw
-	fetch 1,mem_rssi
-	istore 1,contw
-	increase 1,temp
-	fetch 1,mem_rssi_buff_index	//buff len minus 1
-	iand temp,temp
-	rtn
-	
-rssi_average:
-	bpatchx patch38_1,mem_patch38
-	fetch 1,mem_rssi_buff_index
-	increase 1,pdata
-	store 2,mem_loopcnt
-	copy pdata,loopcnt
-	copy rega,contr
-	arg 0,pdata
-rssi_average_loop:
-	ifetcht 1,contr
-	iadd temp,pdata
-	loop rssi_average_loop
-	fetcht 2,mem_loopcnt
-	idiv temp
-	call wait_div_end
-	quotient temp
-	rtnmark1 mark_24g_rxmode
-	copy temp,pdata
-	rtnmark0 mark_24g
-	call bcd
-	copy pdata,temp
-	rtn
-
-save_rssi_dec:
-	branch save_rssi
-//	branch rssi_hex2dec
-
-/****************************g24 rssi general end********************************/
-
-
-
-
-
-/****************************g24 transmitter rssi start********************************/
-rssi_transmitter_buff_init:
-	fetch 2,mem_rssi_signal_buf_ptr
-	branch rssi_buff_clear
-
-rssi_signal:
-	copy pdata,rega
-	fetcht 1,mem_rssi_signal_index
-	fetch 2,mem_rssi_signal_buf_ptr
-	iadd temp,contw
-	copy rega,pdata
-	istore 1,contw
-	increase 1,temp
-	fetch 1,mem_rssi_buff_index	//buff len minus 1
-	iand temp,temp
-	storet 1,mem_rssi_signal_index
-	rtn
-
-/****************************g24 transmitter rssi end********************************/
-
-
-
-
-
-/****************************g24 receiver rssi start********************************/
-
-rssi_receiver_buff_init:
-	fetch 2,mem_rssi_noise_buffer_ptr
-	call rssi_buff_clear
-	fetch 2,mem_rssi_noise_self_buffer_ptr
-	call rssi_buff_clear
-	fetch 2,mem_rssi_noise_device1_buffer_ptr
-	call rssi_buff_clear
-	fetch 2,mem_rssi_noise_device2_buffer_ptr
-rssi_buff_clear:
-	rtn blank
-	copy pdata,contw
-	fetch 1,mem_rssi_buff_index
-	increase 1,pdata
-	copy pdata,loopcnt
-	branch clear_mem
-
-
-rssi_noise:
-	call save_rssi_dec
-	rtn blank
-	fetcht 1,mem_rssi_noise_index
-	fetchr rega,2,mem_rssi_noise_buffer_ptr
-	call rssi_store
-	storet 1,mem_rssi_noise_index
-	rtn
-
-
-rssi_noise_monitor:
-	fetchr rega,2,mem_rssi_noise_buffer_ptr
-	call rssi_average
-	storet 1,mem_rssi_noise_avg
-	sub temp,RSSI_THRESH_NOISE,null
-	nrtn positive
-	branch g24_ch
-
-
-/****************************g24 receiver rssi end********************************/
-
-	
Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/g24_protocol_stack/24g_transmitter.prog
===================================================================
--- /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/g24_protocol_stack/24g_transmitter.prog	(revision 5679)
+++ /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/g24_protocol_stack/24g_transmitter.prog	(nonexistent)
@@ -1,407 +0,0 @@
-
-
-g24_transmit_init:
-	fetch 4,mem_24g_lap		//need to roll this address
-	store 4,mem_24g_device_addr
-	branch rssi_transmitter_buff_init
-
-g24_interval_param_4ms:
-	setarg G24_4MS_INTERVAL_PARAM
-	store 3,mem_24g_short_sleep_set
-	setarg 0x100c0c
-	store 3,mem_24g_interval
-	setarg 0x00bb80
-	store 3,mem_24g_long_sleep_set
-	jam 5,mem_24g_fast_hop_count
-	rtn
-
-g24_interval_param_8ms:
-	setarg G24_8MS_INTERVAL_PARAM
-	store 3,mem_24g_short_sleep_set
-	setarg 0x1c1919
-	store 3,mem_24g_interval
-	setarg 0x017700
-	store 3,mem_24g_long_sleep_set
-	jam 11,mem_24g_fast_hop_count
-	rtn
-
-
-g24_transmit_dispatch:
-	fetch 1,mem_24g_conn_sm
-	bbit1 STATE_24G_PAIR,g24_pair_dispatch
-	bbit1 STATE_24G_RECONN,g24_reconn_dispatch
-	fetch 1,mem_24g_transmit_by_interrupt
-	beq G24_TX_TIMER_INT_ENABLE,g24_transmit_by_interrupt
-g24_transmit_no_interrupt:
-	bpatchx patch38_2,mem_patch38
-	call g24_txdata_prep
-	nbranch g24_nodata_transmit,user
-g24_transmit_start:
-	bpatchx patch38_3,mem_patch38
-	call g24_transmit_process
-	call power_ctrl_start
-	fetch 1,mem_device_option
-	beq DVC_OP_MOUSE,mouse_24g_transmit_start
-g24_transmit_start_next:	
-	fetch 8,mem_24g_long_sleep_set
-	store 8,mem_24g_enter_hibernate
-	fetch 2,mem_24g_long_sleep_param_update_timer_init
-	store 2,mem_24g_long_sleep_param_update_timer
-	fetch 2,mem_cb_24g_transmit_short_sleep
-	branch callback_func
-
-g24_short_sleep:
-	bpatchx patch38_4,mem_patch38
-	call g24_lpm_wait
-	nrtn user
-	call g24_setgpio_lpm_before
-	call clear_wake
-	fetch 3,mem_24g_short_sleep_set
-	branch g24_long_seep2
-
-g24_long_sleep:
-	bpatchx patch38_5,mem_patch38
-	call g24_lpm_wait
-	nrtn user
-	call g24_setgpio_lpm_before
-	fetch 8,mem_24g_enter_hibernate
-g24_long_seep2:
-	call clk2lpo
-	storet 4,mem_sleep_counter
-	branch lpm_sleep
-	
-/****************************g24 transmitter data prep start********************************/
-
-g24_txdata_prep:
-	call g24_package_data
-	nrtn user
-	branch g24_transmit_prep
-
-
-g24_package_data:
-	fetch 2,mem_cb_24g_transmit_data
-	call callback_func
-	branch g24_accumulate_data,user
-	fetch 7,mem_24g_txbuf+1	//mouse data
-	rtn blank
-	branch enable_user	// retransmit
-	
-g24_accumulate_data:
-	jam 0,mem_24g_abort_pac
-	add rega,1,pdata
-	store 1,mem_24g_datalen
-	call g24_transmit_rf_ctrl_clear
-	store 1,mem_24g_txbuf
-	copy regb,contr
-	copy rega,loopcnt
-	branch memcpy
-
-g24_transmit_rf_ctrl_clear:	
-	fetch 1,mem_24g_data_type
-	and_into bits_data,pdata
-	store 1,mem_24g_data_type
-	rtn
-
-/****************************g24 transmitter data prep end********************************/
-
-
-
-
-/****************************g24 transmitter data transmit start********************************/
-
-g24_transmit_process:
-	setarg 0
-	store 1,mem_24g_retry
-	store 2,mem_24g_retransmit
-g24_transmit_loop:
-	bpatchx patch38_6,mem_patch38
-	call g24_transmit_receive_ack
-	fetch 1,mem_24g_no_ack	//tx noack
-	beq no_ack_24g,g24_transmit_no_ack
-	nbranch g24_retransmit,sync
-	nbranch g24_retransmit,user3
-	call g24_ackpayload_parse
-	fetch 1,mem_device_option
-	sub pdata,DVC_OP_MOUSE,null
-	call mouse_24g_transmit_callback,zero
-g24_transmit_no_ack:
-	call power_ctrl_pac_succ_incrs
-g24_transmit_next_packet:
-	call g24_txbuf_clear
-	fetch 1,mem_24g_pid
-	increase 1,pdata
-	store 1,mem_24g_pid
-	call g24_hop_enable_packet
-g24_transmit_abandon:
-	bpatchx patch38_7,mem_patch38
-	setarg 0
-	store 1,mem_24g_ensure
-	store 2,mem_24g_txfail_cnt
-	rtn
-
-g24_transmit_receive_ack:
-	bpatchx patch39_0,mem_patch39
-	disable user3
-	call g24_transmit
-	fetch 1,mem_24g_no_ack
-	beq no_ack_24g,g24_end_of_packet
-	force 0,radio_ctrl
-	fetch 4,mem_24g_addr
-	iforce access
-	fetcht 1,mem_last_freq
-	call set_freq_rx
-	call rf_rx_enable
-	call g24_receive_rxon
-	call g24_end_of_packet,user3
-	rtn
-
-g24_retransmit:
-	bpatchx patch39_1,mem_patch39
-	fetch 1,mem_device_option
-	beq DVC_OP_MOUSE,mouse_g24_retransmit
-g24_retransmit0:	
-	fetch 1,mem_24g_abort_pac
-	nrtn blank
-	fetch 2,mem_24g_txfail_cnt
-	increase 1,pdata
-	store 2,mem_24g_txfail_cnt	
-	fetch 1,mem_24g_txfail_cnt+1
-	bbit1 4,g24_tx_attempt_fail
-	call g24_transmit_hop_process
-	fetch 2,mem_24g_retransmit
-	increase 1,pdata
-	store 2,mem_24g_retransmit	
-	branch g24_transmit_loop
-
-g24_ackpayload_parse:
-	bpatchx patch39_2,mem_patch39
-	call g24_read_len_pid_crc
-	fetch 1,mem_24g_rxdata_length	//ack payload length 
-	rtn blank
-	iforce loopcnt
-	arg mem_24g_rxbuf+2,contr
-	arg mem_24g_rxpayload,contw	//ack payload buffer 
-	branch memcpy
-
-
-g24_tx_attempt_fail:
-	bpatchx patch39_3,mem_patch39
-	setarg 0
-	store 2,mem_24g_txfail_cnt
-	jam 1,mem_24g_attempt_fail_flag
-g24_stop_24g_mode:	
-	jam BT_EVT_24G_ATTEMPT_FAIL,mem_fifo_temp
-	branch ui_ipc_send_event
-
-/****************************g24 transmitter data transmit end********************************/
-
-
-
-
-
-/****************************g24 transmitter hop start********************************/
-
-g24_transmit_hop_process:
-	bpatchx patch39_4,mem_patch39
-	fetch 1,mem_device_option
-	beq DVC_OP_MOUSE,mouse_g24_transmit_hop_process
-g24_transmit_hop_process_next:
-	fetcht 1,mem_24g_retry
-	fetch 1,mem_24g_fast_hop_count			// 125Hz=11  250Hz=5
-	isub temp,null
-	nbranch g24_tx_fast_hop,positive		// >= (6+6)or(3+3) hop fast    fail packet count >= 2
-	increase 1,temp
-	storet 1,mem_24g_retry
-	fetch 1,mem_24g_fast_hop_count
-	beq 5,g24_transmit_hop_process_4ms
-	fetch 1,mem_24g_retry
-	beq 6,g24_hop_ch_disable
-	beq 12,g24_hop_ch_disable
-	rtn	
-
-
-g24_transmit_hop_process_4ms:
-	fetch 1,mem_24g_retry
-	beq 3,g24_hop_ch_disable
-	beq 6,g24_hop_ch_disable
-	rtn	
-
-
-
-g24_hop_ch_enable:
-	//fetch 1,mem_24g_data_type
-	//set1 bit_hop,pdata
-	//store 1,mem_24g_data_type
-	//update txpayload
-g24_txpayload_type_update:	
-	bmark1 mark_ble_lr,g24_lr_type_update
-	store 1,mem_24g_txpayload+OFFSET_DATA_TYPE
-	rtn
-g24_lr_type_update:
-	store 1,mem_24g_txpayload+OFFSET_LR_DATA_TYPE
-	rtn
-
-g24_hop_enable_packet:
-	fetch 1,mem_24g_data_type
-	rtnbit0 bit_hop
-g24_hop_ch_disable:
-	fetch 1,mem_24g_data_type
-	set0 bit_hop,pdata
-	store 1,mem_24g_data_type
-	call g24_txpayload_type_update
-	call power_ctrl_pac_succ_decrs
-	branch g24_ch
-
-g24_tx_fast_hop:
-	fetch 4,mem_24g_addr
-	fetcht 4,mem_24g_fast_conn_addr
-	isub temp,null
-	branch g24_ch,zero		//fast conn->power no chage
-	call power_ctrl_txpower_incrs
-	call power_ctrl_pac_succ_decrs
-	branch g24_ch
-	
-/****************************g24 transmitter hop end********************************/
-
-
-
-
-
-
-
-
-
-
-
-
-
-/****************************g24 transmitter long lpm prep start********************************/
-
-g24_search_receiver:
-	fetch 2,mem_cb_24g_search_receiver
-	branch callback_func
-
-g24_nodata_transmit:
-	fetch 1,mem_24g_abort_pac
-	call g24_send_abort_packet,blank
-	fetch 1,mem_24g_transmit_by_interrupt
-	rtneq G24_TX_TIMER_INT_ENABLE
-	call g24_search_receiver
-	fetch 2,mem_cb_24g_transmit_long_sleep
-	branch callback_func
-
-g24_send_abort_packet:
-	bpatchx patch39_5,mem_patch39
-	jam 1,mem_24g_abort_pac
-	jam TYPE_MS,mem_24g_data_type
-	call g24_transmit_rf_ctrl_clear
-	store 1,mem_24g_txbuf
-	setarg 0
-	store 7,mem_24g_txbuf+1
-	fetch 4,mem_24g_device_addr
-	store 4,mem_24g_txbuf+8
-	jam 12,mem_24g_datalen
-	fetch 1,mem_24g_data_type
-	set1 bit_abort,pdata
-	store 1,mem_24g_data_type
-	call g24_transmit_prep
-	branch g24_transmit_start
-	
-
-
-g24_lpm_wait:
-	bpatchx patch39_6,mem_patch39
-	enable user
-	call lpo_calibration
-	fetch 3,mem_clks_per_lpo
-	branch disable_user,blank
-	fetch 1,mem_lpm_mode
-	branch disable_user,blank
-	fetch 1,mem_24g_transmit_by_interrupt
-	beq G24_TX_TIMER_INT_ENABLE,disable_user
-	rtn
-
-g24_setgpio_lpm_before:
-	fetch 2,mem_cb_24g_lpm_before
-	branch callback_func
-
-
-/****************************g24 transmitter long lpm prep end********************************/
-
-
-
-
-
-
-
-/****************************g24 transmit by interrupt start********************************/
-
-g24_transmit_by_interrupt:
-	call g24_timer_check
-	nrtn user
-	call g24_interval_calibrate
-	fetch 2,mem_24g_transmit_by_interrupt_exit_count
-	increase 1,pdata
-	store 2,mem_24g_transmit_by_interrupt_exit_count
-	fetcht 2,mem_24g_transmit_by_interrupt_exit_count_init
-	isub temp,null
-	call g24_transmit_by_interrupt_exit,zero
-	branch g24_transmit_no_interrupt
-
-	
-g24_transmit_by_interrupt_exit:
-	jam G24_TX_TIMER_INT_DISABLE,mem_24g_transmit_by_interrupt
-	setarg 0
-	store 2,mem_24g_transmit_by_interrupt_exit_count
-	setarg 100
-	store 2,mem_24g_transmit_by_interrupt_exit_count_init
-g24_interval_min:
-	jam 0,mem_24g_pac_index
-	fetch 1,mem_24g_interval_min
-g24_interval_store:
-	store 1,mem_24g_interval
-	rtn
-g24_interval_max:
-	fetch 1,mem_24g_interval_max
-	branch g24_interval_store
-	
-g24_interval_calibrate:
-	fetch 1,mem_24g_pac_index
-	increase 1,pdata
-	store 1,mem_24g_pac_index
-	beq 4,g24_interval_max
-	beq 5,g24_interval_min
-	rtn
-
-g24_transmit_by_interrupt_enable:
-	jam G24_TX_TIMER_INT_ENABLE,mem_24g_transmit_by_interrupt
-	setarg 0
-	store 2,mem_24g_transmit_by_interrupt_exit_count
-	rtn
-
-
-/****************************g24 transmit by interrupt end********************************/
-
-
-
-
-/****************************g24 transmitter fac check start********************************/
-
-g24_factory_check:
-	arg 2,loopcnt
-	arg mem_24g_addr,contr
-pdata_0xff_check:
-	call enable_user
-	setarg 0xffff
-pdata_0xff_check_loop:
-	ifetcht 2,contr
-	isub temp,null
-	ncall disable_user,zero
-	loop pdata_0xff_check_loop
-	rtn
-
-/****************************g24 transmitter fac check end********************************/
-
-
-
-	
Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/g24_protocol_stack/24g_txpower_ctrl.prog
===================================================================
--- /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/g24_protocol_stack/24g_txpower_ctrl.prog	(revision 5679)
+++ /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/g24_protocol_stack/24g_txpower_ctrl.prog	(nonexistent)
@@ -1,104 +0,0 @@
-
-/****************************g24 transmitter tx power start********************************/
-
-power_ctrl_start:
-	bpatchx patch39_7,mem_patch39
-	fetch 1,mem_power_ctrl_disable
-	nrtn blank
-	fetch 2,mem_ui_state_map
-	rtnbit1 UI_STATE_BLE_ADV
-	fetchr rega,2,mem_rssi_signal_buf_ptr
-	call rssi_average
-	storet 1,mem_rssi_avg_received
-	fetch 1,mem_rssi_dis_max_24g
-	bmark1 mark_24g,power_ctrl_start_next
-	fetch 1,mem_rssi_dis_max_ble
-power_ctrl_start_next:
-	isub temp,null
-	nbranch power_ctrl_txpower_incrs_force,positive
-	fetch 1,mem_power_ctrl_pac_succ_cnt
-	sub pdata,2,null
-	nbranch power_ctrl_txpower_decrs_check,positive
-	fetch 1,mem_power_ctrl_pac_succ_cnt
-	beq 0,power_ctrl_txpower_incrs
-	rtn
-
-power_ctrl_txpower_decrs_check:
-	fetch 1,mem_power_ctrl_pac_succ_cnt
-	fetcht 1,mem_power_ctrl_pac_succ_cnt_init
-	isub temp,null
-	nrtn zero
-	jam 0,mem_power_ctrl_pac_succ_cnt
-power_ctrl_txpower_decrs:
-	fetcht 1,mem_rssi_avg_received
-	fetch 1,mem_rssi_dis_min_24g
-	bmark1 mark_24g,power_ctrl_txpower_decrs_next
-	fetch 1,mem_rssi_dis_min_ble
-power_ctrl_txpower_decrs_next:	
-	isub temp,null
-	nrtn positive
-	fetch 1,mem_power_ctrl_level
-	beq 0,power_ctrl_decrs_level0
-	increase -1,pdata
-	store 1,mem_power_ctrl_level
-	beq 2,power_ctrl_decrs_level2	//3db     //3-->0-->-5
-	beq 1,power_ctrl_decrs_level1	//0db
-	branch power_ctrl_decrs_level0 //-5dBm
-
-power_ctrl_txpower_incrs_force:	//0-->3-->5
-	jam 0,mem_power_ctrl_pac_succ_cnt
-power_ctrl_txpower_incrs:
-	fetch 1,mem_power_ctrl_level
-	beq 3,power_ctrl_incrs_level3
-	increase 1,pdata
-	store 1,mem_power_ctrl_level
-	beq 1,power_ctrl_incrs_level1	//0db
-	beq 2,power_ctrl_incrs_level2	//3db
-power_ctrl_incrs_level3:	//5dBm
-	jam TX_POWER_5DB,mem_tx_power
-	rtn
-
-power_ctrl_decrs_level2:	
-power_ctrl_incrs_level2:	//+3dBm
-	jam TX_POWER_3DB,mem_tx_power
-	rtn
-
-power_ctrl_decrs_level1:
-power_ctrl_incrs_level1:	//0dBm
-	jam TX_POWER_0DB,mem_tx_power
-	rtn
-	
-power_ctrl_decrs_level0: //-5dBm
-	jam TX_POWER_f5DB,mem_tx_power
-	rtn
-
-//power_ctrl_pac_succ_cnt_init:
-//	jam 1,mem_power_ctrl_level
-//	jam 0,mem_power_ctrl_pac_succ_cnt
-//	rtn
-
-power_ctrl_pac_succ_incrs:
-	fetch 1,mem_power_ctrl_pac_succ_cnt
-	increase 1,pdata
-	store 1,mem_power_ctrl_pac_succ_cnt
-	rtn
-
-power_ctrl_pac_succ_decrs:
-	fetch 1,mem_power_ctrl_pac_succ_cnt
-	sub pdata,2,null
-	ncall power_ctrl_pac_succ_cnt_reinit,positive
-	fetch 1,mem_power_ctrl_pac_succ_cnt
-	rtneq 0
-	increase -1,pdata
-	store 1,mem_power_ctrl_pac_succ_cnt
-	rtn
-
-power_ctrl_pac_succ_cnt_reinit:
-	jam 3,mem_power_ctrl_pac_succ_cnt
-	rtn
-
-/****************************g24 transmitter tx power end********************************/
-
-
-
-
Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/hci_main.prog
===================================================================
--- /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/hci_main.prog	(revision 5679)
+++ /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/hci_main.prog	(nonexistent)
@@ -1,302 +0,0 @@
-/*********************************/
-/**********   HCI  *****************/
-/*********************************/
-
-hci_init:
-	clear_stack		//清空堆栈
-	call wdt_set_disable
-	call hci_init_clksel_xtal
-	call hci_init_uart_default_config
-	call hci_init_uart_config
-	call hci_init_pwm_default_config
-	call hci_init_pwm
-
-	jam 1,mem_hci_command_complete_num_hci_command_packet
-	jam HCI_H4_TYPE_EVENT,mem_hci_event_head_type
-
-hci_process_loop:
-	call hci_process_check_uart_rx
-	branch hci_process_loop
-	
-hci_init_clksel_xtal:
-	jam clksel_xtal,core_clksel
-	rtn
-
-hci_init_uart_default_config:
-	call hci_init_uart_default_config_tx
-	call hci_init_uart_default_config_rx
-	call hci_init_uart_default_config_rts
-	branch hci_init_uart_default_config_cts
-
-hci_init_uart_default_config_tx:
-	fetch 1,mem_hci_uart_tx_gpio
-	nrtn blank
-	jam HCI_UART_TX_GPIO_NUM,mem_hci_uart_tx_gpio
-	rtn	
-
-hci_init_uart_default_config_rx:
-	fetch 1,mem_hci_uart_rx_gpio
-	nrtn blank
-	jam HCI_UART_RX_GPIO_NUM,mem_hci_uart_rx_gpio
-	rtn	
-hci_init_uart_default_config_rts:
-	fetch 1,mem_hci_uart_rts_gpio
-	nrtn blank
-	jam HCI_UART_RTS_GPIO_NUM,mem_hci_uart_rts_gpio
-	rtn	
-hci_init_uart_default_config_cts:
-	fetch 1,mem_hci_uart_cts_gpio
-	nrtn blank
-	jam HCI_UART_CTS_GPIO_NUM,mem_hci_uart_cts_gpio
-	rtn	
-
-
-hci_init_uart_config:
-	setarg mem_h5rx_buf
-	store 2,mem_pdatatemp
-	setarg mem_h5rx_buf_end
-	istore 2,contw
-	setarg mem_h5tx_buf
-	istore 2,contw
-	setarg mem_h5tx_buf_end
-	istore 2,contw	
-	fetch 8,mem_pdatatemp
-	call uarta_init_dma_mem
-	call uart_clock_select_main_freq_crystal
-	arg 115200,temp
-	call uarta_calc_baud_rate_config
-	fetch 1,mem_hci_uart_tx_gpio
-	arg gpcfg_uart_txd,temp
-	call gpio_config_function_int
-	fetch 1,mem_hci_uart_rx_gpio
-	arg gpcfg_uart_rxd|gpcfg_pullup,temp
-	call gpio_config_function_int
-	fetch 1,mem_hci_uart_rts_gpio
-	arg gpcfg_uart_rts,temp
-	call gpio_config_function_int
-	fetch 1,mem_hci_uart_cts_gpio
-	arg gpcfg_uart_cts,temp
-	call gpio_config_function_int
-
-	arg FUN_UART_CONTROL_ENABLE|FUN_UART_CONTROL_SETTING_RATE_BAUD,temp
-	storet 1,core_uart_ctrl
-	branch clean_xmem
-
-hci_init_pwm_default_config:
-	fetch 1,mem_hci_pwm_12mhz_gpio
-	nrtn blank
-	jam HCI_PMW_12MHZ_GPIO_NUM,mem_hci_pwm_12mhz_gpio
-	rtn	
-
-hci_init_pwm:
-	fetch 1,mem_hci_pwm_12mhz_gpio
-	arg gpcfg_pwm_out0,temp
-	call gpio_config_function_int
-	arg 0x40,rega
-	call pwm_init
-	arg 0,rega
-	arg 0,regb
-	setarg 0
-	call pwm_duty_cycle_set
-	arg 0,queue
-	branch pwm_set_select
-
-
-hci_process_check_uart_rx:
-	fetch 2,core_uart_rxitems
-	add pdata,-4,rega
-	nrtn positive
-	call uarta_prepare_rx
-	ifetch 1,contru
-	beq HCI_H4_TYPE_CMD,hci_parse_packet_cmd
-//	beq HCI_H4_TYPE_ACL,hci_parse_packet_acl
-	call delay_10ms
-	branch uarta_clear_current_rx
-
-//hci_parse_packet_acl:
-//	rtn
-hci_parse_packet_cmd:
-	ifetch 2,contru	// Opcode
-	store 2,mem_hci_opcode
-	arg 0x3ff,temp
-	iand temp,temp	//low 10bit
-	storet 2,mem_hci_opcode_ocf
-	rshift2 pdata,pdata
-	rshift8 pdata,pdata	//high 6bit
-	store 1,mem_hci_opcode_ogf
-	ifetch 1,contru	// parameter total length
-	pincrease -1		//大于等于
-	isub rega,null
-	rtn positive
-	call hci_parse_complete_packet
-	branch hci_drop_current_packet
-
-hci_parse_complete_packet:
-	fetch 1,mem_hci_opcode_ogf
-//	beq HCI_OGF_LINK_CONTROL,hci_parse_packet_cmd_ogf_link_control
-//	beq HCI_OGF_LINK_POLICY,hci_parse_packet_cmd_ogf_link_policy
-//	beq HCI_OGF_CONTROLLER_AND_BASEBAND,hci_parse_packet_cmd_ogf_controller_and_baseband
-//	beq HCI_OGF_INFOMATIONAL_PARAM,hci_parse_packet_cmd_ogf_infomational_parameters
-//	beq HCI_OGF_STATUS_PARAM,hci_parse_packet_cmd_ogf_status_parameters
-//	beq HCI_OGF_TEST,hci_parse_packet_cmd_ogf_testing
-//	beq HCI_OGF_LE_CONTROLLER,hci_parse_packet_cmd_ogf_le_controller
-	beq HCI_OGF_VENDOR_SPECIFIC_DEBUG,hci_parse_packet_cmd_ogf_vendorspecific_debug
-	branch hci_send_event_command_complete_error_command_nuknown
-
-//hci_parse_packet_cmd_ogf_link_control:
-//hci_parse_packet_cmd_ogf_link_policy:
-//hci_parse_packet_cmd_ogf_controller_and_baseband:
-//hci_parse_packet_cmd_ogf_infomational_parameters:
-//hci_parse_packet_cmd_ogf_status_parameters:
-//hci_parse_packet_cmd_ogf_testing:
-//hci_parse_packet_cmd_ogf_le_controller:
-
-hci_parse_packet_cmd_ogf_vendorspecific_debug:
-	bpatch patch1a_2,mem_patch1a
-	fetch 1,mem_hci_opcode_ocf
-	beq HCI_VENDOR_CMD_RESET,hci_normal_reply
-	beq HCI_VENDOR_CMD_CHIPID,phci_grp_vendor_chipid
-	beq HCI_VENDOR_CMD_BAUD,phci_grp_vendor_baud
-	beq HCI_VENDOR_CMD_PATCH,phci_grp_vendor_patch
-	beq HCI_VENDOR_CMD_PATCH_DONE,phci_grp_vendor_done
-	beq HCI_VENDOR_CMD_ECHO,hci_normal_reply
-	beq HCI_VENDOR_CMD_MEM,phci_grp_vendor_mem
-	beq HCI_VENDOR_CMD_SET_FLOW_CONTROL,phci_grp_vendor_flow_control
-	branch hci_normal_reply
-
-	
-phci_grp_vendor_chipid:
-	jam COMMAND_SUCCEEDED,mem_hci_command_complete_return_parameter
-	fetch 2,core_chipid
-	store 2,mem_hci_command_complete_return_parameter_chip_id
-	arg 3,loopcnt
-	branch hci_send_event_command_complete
-	
-phci_grp_vendor_baud:
-	ifetch 2,contu
-	store 2,core_uart_baud
-	rtn
-
-
-phci_grp_vendor_patch_common:
-	ifetch 1,contu
-	copy pdata,temp //check sum via temp
-	store 1,core_ucode_low
-	ifetch 1,contu
-	iadd temp,temp
-	set1 7,pdata
-	store 1,core_ucode_ctrl
-	ifetch 1,contu
-	iadd temp,temp
-	copy pdata,loopcnt
-	rtn
-	
-phci_grp_vendor_patch:
-	call phci_grp_vendor_patch_common
-phci_grp_vendor_patch_loop:
-	ifetch 1,contu
-	store 1,core_ucode_data
-	iadd temp,temp
-	loop phci_grp_vendor_patch_loop
-phci_grp_vendor_patch_check_sum:	
-	and temp,0xff,temp
-	ifetch 1,contu
-	isub temp,null
-	nbranch phci_grp_vendor_patch_bad,zero
-	branch hci_normal_reply
-
-phci_grp_vendor_done:
-	arg 0x20,loopcnt    //patch switch length
-	arg mem_patch00,contw
-	arg 0,temp //checksum
-phci_grp_vendor_done_loop:
-	ifetch 1,contu
-	istore 1,contw
-	iadd temp,temp
-	loop phci_grp_vendor_done_loop
-	and temp,0xff,temp
-	ifetch 1,contu
-	isub temp,null
-	nbranch phci_grp_vendor_patch_bad,zero
-	jam 0,core_ucode_ctrl
-	call hci_normal_reply
-	call wait_uarttx
-	branch soft_reset
-
-phci_grp_vendor_patch_bad:
-	jam 0,core_ucode_ctrl
-	branch hci_send_event_command_complete_error_command_nuknown
-	
-
-phci_grp_vendor_mem:
-	ifetch 1,contu
-	copy pdata,loopcnt
-	ifetch 2,contu
-	copy pdata,contw
-	call uart_copy_rx_bytes
-	branch hci_normal_reply
-
-phci_grp_vendor_flow_control:
-	fetch 1,core_uart_ctrl
-	set1 BIT_UART_CONTROL_FLOW_CONTROL,pdata
-	store 1,core_uart_ctrl
-	branch hci_normal_reply
-
-	
-hci_normal_reply:
-	branch hci_send_event_command_complete_without_payload
-
-hci_send_event_command_complete_error_command_nuknown:
-	jam COMMAND_UNKNOWN,mem_hci_command_complete_return_parameter
-	branch hci_send_event_command_complete_without_payload+1
-hci_send_event_command_complete_error_command_disallowed:
-	jam COMMAND_DISALLOWED,mem_hci_command_complete_return_parameter
-	branch hci_send_event_command_complete_without_payload+1
-hci_send_event_command_complete_without_payload:
-	jam COMMAND_SUCCEEDED,mem_hci_command_complete_return_parameter
-	arg 1,loopcnt
-	branch hci_send_event_command_complete
-
-/***************
-function:send command complete event to host
-input:
-mem_mesh_command_complete_num_hci_command_packet:
-Num Hci Command Packet Commonly used 1
-mem_mesh_hci_opcode:command opcode ,OCF & OGF
-loopcnt:return parameters data length
-mem_mesh_command_complete_return_parameter
-:return parameters data point
-***************/
-hci_send_event_command_complete:
-	jam HCI_EVENT_COMMAND_COMPLETE,mem_hci_event_head_event_code
-	add loopcnt,3,pdata
-	store 1,mem_hci_event_para_total_length
-	call hci_prepare_send_event
-	fetch 3,mem_hci_command_complete_num_hci_command_packet
-	istore 3,contwu
-//	copy rega,contr
-	arg mem_hci_command_complete_return_parameter,contr
-	call uart_copy_tx_bytes
-	branch uarta_send_register_pop
-
-//mem_mesh_event_head_event_code:event code
-//mem_mesh_event_para_total_length:parameter total length
-hci_prepare_send_event:
-	call uarta_prepare_tx_register_push
-	fetch 3,mem_hci_event_head_type
-	istore 3,contwu
-	rtn
-
-hci_drop_current_packet:
-	call uarta_prepare_rx
-	increase 3,contru
-	ifetch 1,contru
-	iadd contru,contru
-	branch uarta_rxdone
-
-cmd_exit:
-	jam 0,mem_hci_cmd
-	rtn
-
-
-
Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/hid.prog
===================================================================
--- /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/hid.prog	(revision 5679)
+++ /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/hid.prog	(nonexistent)
@@ -1,395 +0,0 @@
-
-
-/////////////////////////////////////////////mouse & keyboard  public functions/////////////////////////
-hid_device_load_flash_info_check:
-	call spid_init_flash
-	call mouse_spid_flash_release_form_powerdown
-	call mouse_information_flash_parameters
-	call spid_read_flash
-	branch mouse_spid_flash_powerdown
-
-hid_device_store_flash_device_info:
-	call spid_init_flash
-	call mouse_spid_flash_release_form_powerdown
-	call mouse_flash_erase_sector
-
-	call mouse_information_flash_parameters
-	call mouse_spid_write_flash
-	branch mouse_spid_flash_powerdown	
-
-hid_device_before_store_reconn_info:
-	arg mem_device1_type,rega
-	fetch 1,mem_device_flag
-	increase -1,pdata
-	mul32 pdata,13,pdata
-	iadd rega,rega
-	fetch 1,mem_record_bt_mode
-	istore 1,rega
-	beq REC_4_MODE,hid_device_store_le_device
-	rtn
-
-hid_device_store_le_device:
-	fetch 6,mem_le_plap
-	istore 6,contw
-	fetch 6,mem_le_lap
-	istore 6,contw
-	rtn
-
-
-hid_device_load_device_info:
-	bpatch patch1a_3,mem_patch1a
-	call hid_device_select_reconn_device
-	fetch 4,mem_device_24g_addr
-	store 4,mem_24g_receiver_addr
-	store 4,mem_24g_addr
-	rtn
-
-hid_device_select_reconn_device:
-	bpatch patch1a_4,mem_patch1a
-	arg mem_device1_type,rega
-	fetch 1,mem_device_flag
-	rtneq MODE_24G_DEVICE
-	increase -1,pdata
-	mul32 pdata,13,pdata
-	iadd rega,rega
-	ifetch 1,rega
-	store 1,mem_xrecord_mode
-	rtnne REC_4_MODE
-hid_device_load_le_device:
-	ifetch 6,contr
-	store 6,mem_hci_plap
-	ifetch 6,contr
-	store 6,mem_le_lap
-	rtn
-
-hid_device_check_device_addr:
-	fetch 1,mem_record_bt_mode
-	rtnne REC_4_MODE
-hid_device_check_le_device_addr:
-	store 1,mem_device_addr_temp
-	fetch 6,mem_le_plap
-hid_device_check_bt_device_addr_common:
-	store 6,mem_device_addr_temp+1
-	fetch 7,mem_device_addr_temp
-	arg mem_device1_type,contr
-	arg 3,loopcnt
-hid_device_check_device_addr_end:
-	ifetcht 7,contr
-	isub temp,null
-	branch hid_device_clean_addr,zero
-	increase 7,contr
-	loop hid_device_check_device_addr_end
-	rtn
-
-hid_device_clean_addr:
-	increase -6,contr
-	copy contr,contw
-	fetcht 6,mem_device_addr_temp+1
-	increase 3,temp
-	istoret 6,contw
-	rtn	
-
-hid_device_ble_init_address:
-	fetch 6,mem_le_lap
-	store 6,mem_device1_locall_addr
-	add pdata,0x0100,pdata
-	store 6,mem_device2_locall_addr
-	add pdata,0x0100,pdata
-	store 6,mem_device3_locall_addr
-	rtn
-	
-hid_device_default_parm_init:
-	jam 0xff,mem_ui_button_gpio
-	jam 0,mem_ui_led_struct_num
-	
-	fetch 2,mem_device_24g_pair_timeout_init
-	store 2,mem_24g_pair_timeout_init
-
-	fetch 1,mem_device_24g_reconn_timeout_init
-	store 2,mem_24g_reconn_timeout_init
-
-	fetch 5,mem_rssi_dis_min_24g_init
-	store 5,mem_rssi_dis_min_24g
-
-	fetch 1,mem_device_24g_pair_tx_power
-	store 1,mem_24g_pair_tx_power
-
-	fetch 1,mem_24g_ch_map_update
-	ncall g24_chamap_param_update,blank
-	rtn
-
-hid_device_param_common_init:
-	jam 3,mem_lpm_mult_timeout
-	jam 8,mem_lpm_overhead
-	jam PB_BUTTON_STATE_UP,mem_select_device_button_statue
-	jam COMMBINATION_KEY_STATE_UP,mem_commbination_key_statue	
-	setarg 0x0200
-	store 2,mem_lpm_interval
-	jam 0x17,mem_le_local_mtu
-	jam 0x17,mem_le_remote_mtu
-
-	fetch 1,mem_device_flag
-	store 1,mem_device_flag_temp
-	fetch 3,mem_le_lap+3
-	store 3,mem_device_le_lap_temp
-
-	setarg mem_le_tx_buffer0_omemalloc
-	store 2,mem_ble_l2cap_tx_buff0_ptr
-	setarg MOUSE_BLE_L2CAP_TXBUFF_SIZE
-	store 2,mem_ble_l2cap_tx_buff_size_ptr
-	branch device_store_normal_tx_power
-
-hid_device_compare_addr_store:	
-	storet 3,mem_device_compare_addr
-	storet 3,mem_device_compare_addr+3
-	rtn
-
-hid_device_enable_lpm:
-	jam 1,mem_lpm_mode
-	rtn
-
-hid_device_disable_lpm:
-	jam 0,mem_lpm_mode
-	rtn
-
-/**************************************HID LE Package*****************************************/
-hid_device_le_send_empty_packet:
-	jam 0,mem_customer_data_trigger
-hid_device_le_send_package_data:
-	bpatch patch1a_5,mem_patch1a
-	fetch 1,mem_customer_data_trigger
-	call hid_device_clear_key_data,blank
-hid_device_le_fill_package_data:
-	fetch 1,mem_customer_key_press
-	beq HID_REPORTID_KEY_STANDARD,hid_device_le_fill_standard_key_data
-	beq HID_REPORTID_BIT_CONSUMER_KEY,hid_device_le_fill_bit_consumer_key_data
-	beq HID_REPORTID_CONSUMER_KEY,hid_device_le_fill_multimedia_key_data
-	beq HID_REPORTID_SYSTEM_CTRL,hid_device_le_fill_systemctrl_key_data
-	beq HID_REPORTID_N_KEY_ROLLOVER,keyboard_le_fill_n_key_rollover_key_data	//only keyboard
-hid_device_le_fill_standard_key_data:
-	fetch 1,mem_device_option
-	beq DVC_OP_KEYBOARD,keyboard_le_fill_standard_key_data	
-mouse_le_fill_standard_key_data:
-	jam 8,mem_le_data_len
-keyoard_le_fill_standard_key_data_send:	
-	fetcht 2,mem_le_keyboard_handle
-	branch hid_device_le_fill_data
-
-hid_device_le_fill_bit_consumer_key_data:
-	jam 4,mem_le_data_len
-	fetcht 2,mem_le_multimedia_handle
-	branch hid_device_le_fill_data
-
-hid_device_le_fill_multimedia_key_data:
-	jam 3,mem_le_data_len
-	fetcht 2,mem_le_multimedia_handle
-	branch hid_device_le_fill_data
-
-hid_device_le_fill_systemctrl_key_data:
-	jam 2,mem_le_data_len
-	fetcht 2,mem_le_systemctrl_handle
-	branch hid_device_le_fill_data
-
-hid_device_send_package_data_check:	
-	fetch 1,mem_customer_key
-	beq 1,hid_device_le_send_package_data	
-hid_device_le_send_mouse_data:
-	jam 7,mem_le_data_len
-	fetch 7,mem_mouse_key
-	store 7,mem_customer_key_press+1
-	fetcht 2,mem_le_notify_handle
-	branch hid_device_le_fill_data
-
-hid_device_le_fill_data:
-	bpatch patch1a_6,mem_patch1a
-	fetch 1,mem_le_data_len
-	copy pdata,rega
-	call le_att_malloc_tx_notify
-	fetcht 1,mem_le_data_len
-	copy temp,loopcnt
-	arg mem_customer_key_press+1,contr
-	branch memcpy
-		
-hid_device_clear_key_data:
-	arg 9,loopcnt
-	arg mem_customer_key_press+1,contw
-	branch clear_mem	
-
-hid_device_copy_key_data:
-	arg 10,loopcnt
-	arg mem_customer_key_press_init,contr
-	arg mem_customer_key_press,contw
-	branch memcpy	
-
-hid_device_24g_keyboard_package_data_set:
-	fetch 1,mem_customer_data_trigger
-	call hid_device_clear_key_data,blank
-	arg mem_customer_key_press,regb
-	rtn
-
-
-/**************************************HID USB Package*****************************************/
-
-hid_device_push_mouse_data_to_usb:
-	setarg MS_REPORT_ID
-	store 1,mem_usb_mouse_data
-	fetch 7,mem_mouse_key
-	istore 7,contw
-	branch dongle_usb_tx_ms_data
-
-hid_device_push_keyboard_data_to_usb:
-	fetch 1,mem_customer_data_trigger
-	call hid_device_clear_key_data,blank
-hid_device_push_keyboard_package_data_to_usb:
-	bpatch patch0d_3,mem_patch0d
-	fetch 1,mem_customer_key_press
-	beq HID_REPORTID_KEY_STANDARD,hid_device_push_standard_keyboard_data_to_usb
-	beq KB_SYSTEM_CONCTRL_REPORT_ID,hid_device_push_systemctrl_key_data_to_usb
-	beq KB_MULTIKEY_REPORT_ID,hid_device_push_multimedia_key_data_to_usb
-	beq HID_REPORTID_BIT_CONSUMER_KEY,hid_device_push_bit_consumer_key_data_to_usb
-	beq HID_REPORTID_N_KEY_ROLLOVER,keyboard_push_n_key_rollover_key_data_to_usb
-hid_device_push_standard_keyboard_data_to_usb:
-	call dongle_usb_tx_kb_data
-	arg mem_customer_key_press+1,contr
-	arg mem_usb_kb_data,contw
-	arg 9,loopcnt
-	branch memcpy
-
-hid_device_push_systemctrl_key_data_to_usb:
-	jam USB_EP2_SYSTEMKEY,mem_usb_ep2_data
-	setarg KB_SYSTEM_CONCTRL_REPORT_ID
-	store 1,mem_usb_kb_system
-	fetch 1,mem_customer_key_press+1
-	istore 1,contw
-	branch dongle_usb_tx_enable_ep2
-
-hid_device_push_multimedia_key_data_to_usb:
-	jam USB_EP2_MULTIKEY,mem_usb_ep2_data
-	setarg KB_MULTIKEY_REPORT_ID
-	store 1,mem_usb_kb_multikey
-	fetch 3,mem_customer_key_press+1
-	istore 3,contw
-	branch dongle_usb_tx_enable_ep2
-
-hid_device_push_bit_consumer_key_data_to_usb:
-	jam USB_EP2_BIT_CONSUMER,mem_usb_ep2_data
-	setarg KB_BIT_CONSUMER_REPORT_ID
-	branch hid_device_push_multimedia_key_data_to_usb+2
-
-/**************************************HID LE Service*****************************************/
-
-hid_device_le_parse_att_write_request:	
-	fetch 1,mem_device_fast_conn_flag
-	beq 0xff,le_send_att_write_response_check_auth	
-	fetch 1,mem_device_fast_conn_flag
-	branch le_send_att_write_response_check_auth,blank
-	fetch 1,mem_le_connect_status_flag
-	bbit1 LL_START_ENC_FLAG,le_send_att_write_response_check_auth
-	setarg 0x001a		
-	fetcht 2,mem_le_att_handle
-	isub temp,null
-	nbranch le_send_att_write_response_check_auth,zero
-	branch le_send_att_read_response_error_insufficient_auth
-
-	
-/**************************************g24 search receiver*****************************************/
-hid_device_24g_search_dongle_init:
-	setarg 0
-	store 3,mem_device_search_dongle_action
-	rtn
-
-mouse_24g_search_dongle:
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	rtnbit0 MOUSE_ENABLE_24G_SEARCH_DONGLE
-hid_device_24g_search_dongle:	
-	fetch 1,mem_mouse_long_mult_flag
-	rtn blank
-	fetch 1,mem_24g_abort_pac
-	rtn blank
-	fetch 1,mem_device_search_dongle_interval
-	increase 1,pdata
-	and_into 3,pdata
-	store 1,mem_device_search_dongle_interval
-	nrtn blank	//400ms
-	jam 0,mem_device_search_dongle_ch
-hid_device_24g_search_dongle_loop:
-	bpatch patch1a_7,mem_patch1a
-	fetch 1,mem_device_search_dongle_ch
-	increase 1,pdata
-	store 1,mem_device_search_dongle_ch
-	sub pdata,G24_CH_NUMBER,null
-	nbranch hid_device_24g_search_dongle_loop_end,positive
-	call g24_reconn_data_prep
-	call g24_transmit_receive_ack
-	nbranch hid_device_24g_search_dongle_loop_retry,sync
-	nbranch hid_device_24g_search_dongle_loop_retry,user3
-	call hid_device_g24_ackpayload_parse
-	call hid_device_24g_search_dongle_success
-hid_device_24g_search_dongle_loop_end:
-	call g24_txbuf_clear
-	fetch 1,mem_device_search_dongle_count
-	increase 1,pdata
-	store 1,mem_device_search_dongle_count
-	beq G24_CH_POLL_COUNT,hid_device_24g_search_dongle_check
-	rtn
-
-hid_device_24g_search_dongle_loop_retry:
-	call g24_ch
-	branch hid_device_24g_search_dongle_loop
-
-hid_device_24g_search_dongle_check:
-	bpatch patch1b_0,mem_patch1b
-	jam 0,mem_device_search_dongle_count
-	fetch 1,mem_device_search_dongle_action
-	rtnbit1 G24_DISCONN_STATE
-	set1 G24_DISCONN_STATE,pdata
-	store 1,mem_device_search_dongle_action
-	fetch 2,mem_device_24g_search_dongle_time_init		//3min
-	store 2,mem_device_no_data_timer
-	fetch 1,mem_device_option
-	beq DVC_OP_MOUSE,mouse_sensor_powerdown
-	rtn 
-	
-hid_device_24g_search_dongle_success:
-	fetch 1,mem_24g_abort_pac
-	branch hid_device_24g_search_dongle_init,blank
-	jam 0,mem_device_search_dongle_count
-	fetch 1,mem_device_search_dongle_action
-	rtnbit0 G24_DISCONN_STATE
-	set0 G24_DISCONN_STATE,pdata
-	store 1,mem_device_search_dongle_action
-	call mouse_no_data_timer_init
-	fetch 1,mem_device_option
-	beq DVC_OP_MOUSE,mouse_init_sensor_wakeup
-	rtn
-
-hid_device_g24_ackpayload_parse:
-	call g24_ackpayload_parse
-	fetch 1,mem_24g_rxbuf+1
-	compare 0x08,pdata,0xf8
-	nrtn true
-	fetch 1,mem_24g_rxbuf+2		// pc sleep mouse ackpayload: 01 08 ff
-	beq 0xff,mouse_24g_hibernate_set
-	store 1,mem_keyboard_led_status
-	rtn
-
-hid_device_before_lpm_set:
-	fetch 1,mem_device_flag
-	rtnne MODE_24G_DEVICE
-	fetch 1,mem_24g_disable_fec1
-	rtn blank
-hid_device_peripheral_clock_off:
-	jam 2,core_clksel			//use rc clock
-	jam 0xf8,core_lpm_ctrl
-	rtn
-
-hid_device_cb_fuction:
-	setarg mouse_spi_write_flash_cb
-	store 2,mem_cb_spi_flash_write_complate
-	setarg mouse_le_transmit
-	store 2,mem_cb_ble_transmit
-	setarg mouse_set_lpm_mult
-	store 2,mem_cb_bt_set_mult
-	rtn
-
-/**************************************g24 search receiver*****************************************/
Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/l2cap.prog
===================================================================
--- /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/l2cap.prog	(revision 5679)
+++ /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/l2cap.prog	(nonexistent)
@@ -1,373 +0,0 @@
-/************************************/
-/*initialize L2CAP related variables*/
-/************************************/
-l2cap_init:
-	branch l2cap_init_wake,wake
-	setarg mem_l2cap_xmem_end
-	arg mem_l2cap_xmem_start,contw
-	isub contw,loopcnt
-	call clear_mem
-l2cap_init_wake:	
-//	branch l2cap_lpm_load_txbuf
-	rtn
-	
-
-/*
-l2cap_check_map:
-//	call l2cap_malloc_is_fifo_full
-//	nrtn blank
-	bpatch patch1b_1,mem_patch1b
-	call l2cap_malloc_get_full_map
-	fetch 1,mem_used_map
-	beq 0,set_pdata_0
-	beq 1,set_pdata_0
-	beq 2,set_pdata_0
-	beq 3,set_pdata_0
-	beq 0x81,set_pdata_0
-	beq 0xc0,set_pdata_0
-	beq 0x80,set_pdata_0
-	beq 0x40,set_pdata_0
-	rtn
-*/
-
-check_l2cap_map:
-	arg 0,queue
-	arg 0,regb
-
-check_l2cap_map_loop:
-	sub queue,7,null
-	nrtn positive
-	qisolate1 rega
-	branch check_l2cap_map_used,true
-	branch check_l2cap_map_used2
-
-check_l2cap_map_used:
-	copy temp,pdata
-	branch check_l2cap_map_used2,blank
-	qset1 regb
-	increase -1,temp
-
-check_l2cap_map_used2:
-	increase 1,queue
-	branch check_l2cap_map_loop
-
-
-
-/*********************************************************/
-//char* malloc(short len)
-//input: rega -> len
-//rtn: regb -> pbuff;return from pdata
-//val: queue -> i
-//val: timeup -> buff_cnt
-/*********************************************************/
-
-
-ble_l2cap_malloc:
-	fetchr regd,2,mem_ble_l2cap_tx_buff0_ptr
-	fetchr rege,2,mem_ble_l2cap_tx_buff_size_ptr
-	call disable_user
-	branch host_l2cap_malloc
-
-/*
-	malloc l2cap buffer
-	input:
-	BT is enable user
-	BLE is disable user
-	rega is want malloc buffer size
-	regd is l2cap buffer start ptr
-	rege is l2cap buffer size
-	output:
-	pdata & contw is buffer ptr
-*/
-host_l2cap_malloc:
-	bpatch patch1b_2,mem_patch1b
-	call l2cap_malloc_is_fifo_full
-	nbranch assert,blank//assert when fifo full
-	call l2cap_malloc_get_full_map
-	arg 8,loopcnt
-host_l2cap_malloc_loop:
-	fetcht 1,mem_used_map
-	sub loopcnt,8,queue
-	qisolate1 temp
-	branch host_l2cap_malloc_next_buffer,true//if(1 == (used_map & (1 << i)))goto next;
-	call host_l2cap_malloc_check_buffer_enough
-	nbranch host_l2cap_malloc_next_buffer,positive//if(buff_cnt <= 0)goto next;
-	call host_l2cap_malloc_into_fifo
-	branch host_l2cap_malloc_succ//return (pbuff);
-host_l2cap_malloc_next_buffer:
-	copy rege,pdata
-	iadd regd,regd		//pbuff += BUFF_SIZE;//point to next buff
-	loop host_l2cap_malloc_loop
-	branch assert	//return NULL
-host_l2cap_malloc_succ:
-	copy regd,pdata
-	copy regd,contw
-	rtn//return pointer via pdata
-
-/*********************************************************/
-//char is_size_enough(char buff_index, short len)
-//input: rega -> len
-//input: loopcnt -> 8-buff_index
-//rtn: positive is diable mean no buffer
-//positive is enable mean get buffer
-/*********************************************************/
-host_l2cap_malloc_check_buffer_enough:
-	bpatch patch1b_3,mem_patch1b
-	sub loopcnt,8,queue
-	arg 0,temp
-	arg 0,timeup
-host_l2cap_malloc_check_buffer_enough_loop:
-	copy queue,pdata
-	beq 8,host_l2cap_malloc_check_buffer_enough_end
-	fetch 1,mem_used_map
-	qisolate1 pdata		//the buffer is used
-	branch host_l2cap_malloc_check_buffer_enough_end,true
-	qset1 timeup
-	copy rege,pdata
-	iadd temp,temp
-	increase 1,queue
-	copy rega,pdata
-	isub temp,null
-	branch host_l2cap_malloc_check_buffer_enough_end,zero//(max_size_fom_buff_index ==  len)
-	branch host_l2cap_malloc_check_buffer_enough_loop,positive//(max_size_fom_buff_index <  len)
-host_l2cap_malloc_check_buffer_enough_end:
-	copy temp,pdata
-	isub rega,null
-	nrtn zero
-	qset1 timeup
-	rtn
-
-/*********************************************************/
-//void buff_into_fifo(char buff_index, char buff_cnt, short len)
-//input: rega -> len
-//input: regc -> buff_index
-//input: timeup -> buff_cnt
-//val:temp ->   (fifo->map)
-/*********************************************************/
-host_l2cap_malloc_into_fifo:
-	bpatch patch1b_4,mem_patch1b
-	call l2cap_malloc_is_fifo_full
-	nbranch assert,blank //fifo full
-	call l2cap_malloc_is_fifo_empty
-	branch host_l2cap_malloc_into_fifo_no_push,blank//fifo empty, no need to push
-	fetch 9,mem_tx_fifo1
-	store 9,mem_tx_fifo0
-	setarg 0
-	istore 3,contw//mem_tx_fifo3
-host_l2cap_malloc_into_fifo_no_push:
-	storer timeup,1,mem_tx_fifo3_map
-	storer regd,2,mem_tx_fifo3_ptr
-	rtn
-
-
-/*********************************************************/
-//void* l2cap_malloc_fifo_out(void)
-//output:len -> temp
-//output:ptr ->pdata
-//only get ptr,not free
-/*********************************************************/
-l2cap_malloc_fifo_out:
-	bpatch patch1b_5,mem_patch1b
-	call l2cap_malloc_fifo_get_first_ptr
-	increase 1,contr
-	ifetch 2,contr //ptr ->pdata
-	rtn
-
-
-/*********************************************************/
-//void free_first_buff_in_fifo(void)
-//only free the first one
-/*********************************************************/
-l2cap_malloc_free:
-	bpatch patch1b_6,mem_patch1b
-	call l2cap_malloc_fifo_get_first_ptr
-	copy contr,contw
-	copy contr,temp
-	setarg 0
-	istore 3,contw
-	rtn
-
-
-/*********************************************************/
-//void l2cap_malloc_discard(void)
-//discard the latest malloc
-/*********************************************************/
-l2cap_malloc_discard:
-	bpatch patch1b_7,mem_patch1b
-	call l2cap_malloc_is_fifo_empty
-	branch assert,blank
-	fetch 3,mem_tx_fifo2
-	store 3,mem_tx_fifo3
-	fetch 3,mem_tx_fifo1
-	store 3,mem_tx_fifo2
-	fetch 3,mem_tx_fifo0
-	store 3,mem_tx_fifo1
-	rtn
-
-
-/*********************************************************/
-//bool fifo_is_full(void)
-//blank == 1: not full
-//blank == 0: full
-/*********************************************************/
-l2cap_malloc_is_fifo_full:
-	bpatch patch1c_0,mem_patch1c
-	fetch 3,mem_tx_fifo0
-	rtn
-
-
-/*********************************************************/
-//bool fifo_nearly_full(void)
-//blank == 1: nearly full
-//blank == 0: not nearly full
-/*********************************************************/
-l2cap_malloc_is_fifo_nearly_full:
-	bpatch patch1c_1,mem_patch1c
-	fetch 3,mem_tx_fifo1
-	rtn
-
-
-/*********************************************************/
-//bool fifo_is_empty(void)
-//blank == 1: empty
-//blank == 0: not empty
-/*********************************************************/
-l2cap_malloc_is_fifo_empty:
-	bpatch patch1c_2,mem_patch1c
-	fetch 3,mem_tx_fifo3
-	rtn
-
-
-/*********************************************************/
-//char* l2cap_malloc_fifo_get_first_ptr(void)
-//output:contr  -->ptr
-/*********************************************************/	
-l2cap_malloc_fifo_get_first_ptr:
-	call l2cap_malloc_is_fifo_empty
-	branch l2cap_malloc_fifo_get_first_ptr_empty,blank // fifo is empty
-	arg mem_tx_fifo0,contr
-l2cap_malloc_free_loop:
-	ifetch 3,contr
-	branch l2cap_malloc_free_loop,blank
-l2cap_malloc_fifo_get_first_ptr_empty:
-	increase -3,contr
-	rtn
-
-
-/*********************************************************/
-//char* l2cap_malloc_get_full_map(void)
-//output:mem_used_map  -->full_map
-//add all maps into one
-/*********************************************************/	
-l2cap_malloc_get_full_map:
-	bpatch patch1c_3,mem_patch1c
-	arg 4,loopcnt
-	arg mem_tx_fifo0_map,contr
-	arg 0,temp
-l2cap_malloc_get_full_map_loop:	
-	ifetch 3,contr
-	and pdata,0xff,pdata
-	ior temp,temp
-	loop l2cap_malloc_get_full_map_loop
-	storet 1,mem_used_map
-	rtn
-
-
-l2cap_lpm_get_wake_lock:
-	arg wake_lock_l2cap_tx,queue
-	branch lpm_get_wake_lock
-
-l2cap_lpm_put_wake_lock:
-	arg wake_lock_l2cap_tx,queue
-	branch lpm_put_wake_lock
-
-	
-/*
-
-
-l2cap_lpm_save_calc_len:
-	bpatch patch1c_4,mem_patch1c
-	arg 0,regb
-	arg mem_tx_fifo0_map,rega
-	increase -2,rega
-l2cap_lpm_save_calc_len_loop:
-	increase 2,rega
-	setarg mem_tx_fifo_end
-	isub rega,null
-	branch l2cap_lpm_save_calc_len_end,zero //end of 2lcap tx fifo
-	ifetch 1,rega
-	increase 1,rega
-	branch l2cap_lpm_save_calc_len_loop,blank
-	ifetcht 2,rega
-	ifetch 2,temp
-	iadd regb,regb
-	increase 4,regb //l2cap header len
-	branch l2cap_lpm_save_calc_len_loop
-l2cap_lpm_save_calc_len_end:
-	copy regb,pdata
-	rtn
-	
-l2cap_lpm_save_txbuf:
-	call l2cap_malloc_get_full_map
-	fetch 1,mem_used_map
-	rtn blank
-	call l2cap_lpm_save_calc_len
-	arg l2cap_lpm_txbuf_len,temp
-	isub temp,null
-	branch l2cap_lpm_get_wake_lock,positive //no enougth space to save l2cap tx data
-	call l2cap_lpm_put_wake_lock
-//	arg mem_l2cap_lpm_txbuf,contw
-	fetch 2,mem_l2cap_lpm_txbuf_ptr
-	copy contr,contw
-	arg mem_tx_fifo0,rega
-l2cap_lpm_save_txbuf_loop:
-	setarg mem_tx_fifo_end
-	isub rega,null
-	rtn zero //end of 2lcap tx fifo
-	ifetch 1,rega  //mem_tx_fifoX_map
-	increase 1,rega
-	nbranch l2cap_lpm_save_txbuf_nempty,blank
-	istore 2,contw // length = 0
-	increase 2,rega
-	branch l2cap_lpm_save_txbuf_loop
-l2cap_lpm_save_txbuf_nempty:
-	ifetch 2,rega //ptr
-	increase 2,rega
-	copy pdata,contr
-	ifetch 2,contr  //l2cap len
-	istore 2,contw
-	copy pdata,loopcnt
-	increase 2,loopcnt //add CID len
-	call memcpy
-	branch l2cap_lpm_save_txbuf_loop
-
-l2cap_lpm_load_txbuf:
-	call l2cap_malloc_get_full_map
-	fetch 1,mem_used_map
-	rtn blank
-	arg mem_tx_fifo0_ptr,rega
-	increase -3,rega //mem_tx_fifo0_ptr -3
-//	arg mem_l2cap_lpm_txbuf,contr
-	copy contr,contw
-	fetch 2,mem_l2cap_lpm_txbuf_ptr
-	copy contw,contr
-l2cap_lpm_load_txbuf_loop:
-	increase 3,rega //mem_tx_fifoX_ptr
-	setarg mem_tx_fifo_end+1
-	isub rega,null
-	rtn zero //end of 2lcap tx fifo
-	ifetch 2,contr
-	branch l2cap_lpm_load_txbuf_loop,blank
-	increase 4,pdata //l2cap header len
-	copy pdata,loopcnt
-	copy contr,regb
-	ifetch 2,rega //ptr
-	copy pdata,contw
-	copy regb,contr
-	increase -2,contr
-	call memcpy
-	branch l2cap_lpm_load_txbuf_loop
-	
-*/
-
-	
Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/patch.prog
===================================================================
--- /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/patch.prog	(revision 5679)
+++ /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/patch.prog	(nonexistent)
@@ -1,3235 +0,0 @@
-//define G24_RETRANSMIT_COMMBINATION_PAIR
-// define ADC
-// define KA8G2_NEW_SET
-//define UART_LOG
-ifdef UART_LOG
-define LOG_RAW
-define LOG_ENCODE
-endif
-define AUDIO_DEMO
-
-p_start:
-	branch p_patch_array
-
-// zcode start
-p_zcode:
-	nop 1
-	nop 1
-	nop 1
-	nop 1
-	nop 1
-	nop 1
-	nop 1
-	nop 1
-	nop 1
-	nop 1
-	nop 1
-	nop 1
-	nop 1
-	nop 1
-	nop 1
-	nop 1
-
-	nop 1
-	nop 1
-	nop 1
-	nop 1
-	nop 1
-	nop 1
-	nop 1
-	nop 1
-	nop 1
-	nop 1
-	nop 1
-	nop 1
-	nop 1
-	nop 1
-	nop 1
-	nop 1
-
-	nop 1
-	nop 1
-	nop 1
-	nop 1
-	nop 1
-	nop 1
-	nop 1
-	nop 1
-	nop 1
-	nop 1
-	nop 1
-	nop 1
-	nop 1
-	nop 1
-	nop 1
-	nop 1
-
-	nop 1
-	nop 1
-	nop 1
-	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
-	beq patch1d_3,p_spid_init
-	beq patch1d_4,p_spid_write_reg
-	beq patch1d_5,p_spid_read_regs
-ifdef KA8G2_NEW_SET
-	beq patch00_0,p_soft_reset
-endif
-	beq patch00_2,p_main_loop
-	beq patch02_0,p_shutdown_radio
-	beq patch03_1,p_set_tx_power
-	beq patch03_2,p_initialize_radio_cont
-	beq patch04_1,mouse_soft_reset
-	beq patch04_5,p_lpm_sleep
-	beq patch05_0,p_lpm_dispatch
-	beq patch0e_2,p_mouse_cb_fuction
-	beq patch0e_3,p_mouse_load_device_info_check
-	beq patch0e_4,p_mouse_default_init
-	beq patch0e_5,p_mouse_param_info_init
-	beq patch0f_1,p_mouse_start_work
-	beq patch0f_5,p_mouse_before_hibernate
-	beq patch0f_6,p_mouse_setgpio_hibernate
-ifdef ADC
-	beq patch10_1,p_mouse_adc_read
-	beq patch10_2,p_mouse_adc_bat_percent_lowpower_out
-endif
-	beq patch10_3,p_mouse_motion
-	beq patch10_7,p_mouse_setting_sensor_type
-	beq patch11_0,p_mouse_check_key_gpio
-	beq patch11_1,p_mouse_3io6key_check
-	beq patch11_3,p_mouse_init_sensor
-	beq patch11_7,p_mouse_priority_bb_event
-	beq patch12_1,p_mouse_le_parse_att
-	beq patch12_0,p_mouse_le
-	beq patch12_3,p_mouse_bb_event_timer
-	beq patch12_4,p_mouse_start_discovery
-//	beq patch12_7,p_mouse_store_device_info
-	beq patch13_0,p_mouse_store_dpi_info_check
-	beq patch14_5,p_mouse_24g_package_data
-	beq patch19_7,p_app_init
-ifdef AUDIO_DEMO
-	beq patch13_2,p_mouse_idle
-	beq patch1f_7,p_sadc_calibration
-endif
-	beq patch1d_2,p_otp_read_data
-	branch assert
-
-pf_patch_ext:
-	beq patch20_2,p_enable_adc
-	beq patch28_4,p_le_slave_more_data
-	beq patch2c_6,p_le_parse_ll
-	beq patch33_0,p_g24_dispatch
-	beq patch33_3,p_g24_receive_payload
-	beq patch34_2,p_g24_read_len_pid_crc
-	beq patch33_7,p_g24_transmit_packet
-	beq patch34_0,p_g24_transmit_prep
-	beq patch35_1,p_g24_chamap_param_update
-	beq patch35_3,p_g24_pair_param_init
-	beq patch35_4,p_g24_pair_dispatch
-	beq patch37_5,p_g24_reconn_dispatch
-	beq patch37_6,p_g24_txbuf_clear
-	beq patch37_7,p_g24_reconn_device_fail
-	beq patch38_2,p_g24_transmit_no_interrupt
-	beq patch38_6,p_g24_transmit_loop
-ifdef G24_RETRANSMIT_COMMBINATION_PAIR
-	beq patch39_1,p_g24_retransmit
-endif
-	beq patch39_4,p_g24_transmit_hop_process
-	beq patch39_5,p_g24_send_abort_packet
-	rtneq patch3f_7
-	branch assert
-
-ifdef KA8G2_NEW_SET
-p_soft_reset:
-	clear_stack
-	jam 0x73,core_spid_ctrl
-	branch soft_reset+2
-endif
-
-p_set_tx_power:
-	fetch 1,mem_tx_power
-	beq TX_POWER_F20DB,set_tx_power_f20db
-	branch set_tx_power_3db
-
-p_g24_chamap_param_update:
-p_mouse_store_device_info:
-	rtn
-
-p_lpm_dispatch:
-	call lpo_calibration
-	fetch 3,mem_clks_per_lpo
-	rtn blank
-	fetch 1,mem_mouse_multi_led_blink_enable
-	nrtn blank
-	fetch 1,mem_mouse_le_delay_enter_lpm_time
-	nrtn blank
-	branch lpm_dispatch+4
-
-p_main_loop:	
-ifdef SECURE_CONNECTION
-	call sp_calc_sequence_256
-	call sp_calc_sequence_256_check
-endif
-	call le_advertising_dispatch
-	call idle_dispatch
-	call app_process_idle
-	call g24_dispatch
-	call connection_dispatch
-	call lpm_dispatch
-	branch p_main_loop
-//=================================yc bug fixed patch===================================//
-p_otp_read_data:
-	call enable_otp_read
-	call otp_read_data1
-	branch otp_disable_chgpump
-
-p_mouse_3io6key_check:
-	copy regc,pdata
-	store 1,mem_mouse_key_status
-	lshift pdata,pdata
-	copy pdata,regb
-	copy temp,regc
-	call gpio_out_active
-	copy regc,temp
-	branch mouse_3io6key_check_next
-
-p_shutdown_radio:
-	jam 0,0x8900
-	branch shutdown_radio+1
-
-p_initialize_radio_cont:
-	until null,lpo_edge
-	jam 0x0d,0x8946
-	jam 0x10,0x896f
-	jam 0xcd,0x8a13
-//	jam 0x10,0x8a06
-	fetch 1,0x8a06
-	and pdata,0xfc,pdata
-	store 1,0x8a06
-	
-	until null,lpo_edge
-	jam 0x88,0x813c
-	until null,lpo_edge
-	branch initialize_radio_cont+6
-
-p_lpm_sleep:
-	fetch 2,mem_cb_before_lpm_sleep
-	call callback_func
-p_lpm_sleep_skip_cb_function:
-	fetch 4,mem_sleep_counter_all	// sleep total time, 32k unit
-	iadd temp,pdata
-	store 4,mem_sleep_counter_all
-	call lpm_save_context
-	fetch 1,mem_lpm_hv_sel
-	set1 LPM_DOZE_EN_BIT, pdata
-	call lpm_write_sel_hv
-	ncall lpm_preon_counter,wake
-	until null,lpo_edge
-	copy clkn,pdata
-	store 6,mem_sleep_clkn
-	branch lpm_sleep_skip_cb_function+10
-
-ifdef ADC
-p_mouse_adc_read:
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	rtnbit0 MOUSE_ENABLE_ADC
-	fetch 1,mem_ms_adc_mode
-	rtnne ADC_BATTERY
-	call mouse_adc_gpio_set
-p_mouse_adc_read_start:
-	call enable_adc
-	call vdd_calculate_by_mode
-	store 2,mem_device_vdd_now_vol
-p_mouse_adc_data_process:
-	fetch 2,mem_device_vdd_now_vol	// BAT= 1.5V,  a = a/10
-	div pdata,10
-	call get_div_result
-	store 2,mem_device_vdd_now_vol
-	branch mouse_adc_data_process
-
-p_mouse_adc_bat_percent_lowpower_out:
-	ifetch 8,rega
-	store 8,mem_pdatatemp	
-p_mouse_adc_bat_percent_lowpower_out_battery:
-	call adc_clear_no_power_flag
-	call p_adc_clear_low_power_flag
-	fetch 2,mem_pdatatemp+6
-	fetcht 2,mem_pdatatemp+2	        //shutdown voltage
-	isub temp,null
-	ncall adc_set_no_power_flag,positive
-	fetcht 2,mem_pdatatemp+4		//low voltage
-	isub temp,null
-	ncall p_adc_set_low_power_flag,positive
-	branch mouse_adc_bat_level_set
-
-p_adc_clear_low_power_flag:
-	fetcht 1,mem_adc_power_flag
-	set0 0,temp
-	branch adc_set_power_flag
-
-p_adc_set_low_power_flag:
-	fetcht 1,mem_adc_power_flag
-	set1 0,temp
-	branch adc_set_power_flag
-endif
-
-p_mouse_load_device_info_check:
-	jam ZCODE_10,mem_zcode_temp_param0
-	branch p_zcode_entrance
-
-
-//============================fuction fixed patch ================================//
-
-/* pdata 6:0 is reg address, 15:8 is data to write */
-p_spid_write_reg:
-	fetch 2,mem_spid_tbuf
-	store 2,mem_spid_tbuf_new
-	jam 2,core_spid_txlen
-	jam 0,core_spid_rxlen
-	jam spid_start,core_misc_ctrl
-	branch wait_spid_done
-
-p_spid_read_regs:	
-	fetch 2,mem_spid_tbuf
-	store 1,mem_spid_tbuf_new
-	jam 1,core_spid_txlen
-	storet 2,core_spid_rxlen
-	jam spid_start,core_misc_ctrl
-	call wait_spid_done
-	fetch 1,mem_spid_rbuf_new
-	rtn
-
-p_spid_init:
-p_spid_init_common:
-	fetch 1,mem_spi_init_clk
-	store 1,core_spid_ctrl	// A7530 should at least 34, or write fail
-	fetch 1,mem_spi_init_delay_time
-	store 1,core_spid_delay	// 4us delay
-	setarg mem_spid_tbuf_new
-	store 2,core_spid_txaddr
-	setarg mem_spid_rbuf_new
-	store 2,core_spid_rxaddr
-	branch twspi_disable
-
-p_mouse_lpm_wake_param_init:
-	setarg 0
-//	store 5,mem_spid_tbuf_new
-	store 1,mem_voice_queue_count
-	rtn
-
-p_app_init:
-p_mouse_init:
-	call p_mouse_lpm_wake_param_init,wake
-	branch mouse_init	
-
-p_mouse_before_hibernate:
-	call disable_authrom 
-	call mouse_setgpio_hibernate
-	branch mouse_before_hibernate_next
-
-p_mouse_bb_event_timer:
-	call p_mouse_le_send_conn_param_update_timer
-	call p_mouse_enter_lpm_timer
-	call mouse_low_voltage_led_timer
-	call mouse_adc_read
-	//led
-	call mouse_logo_led_on_timer
-	call mouse_led_multi_timer
-	call mouse_dpi_led_blink_delay_timer
-	//key
-	call mouse_dpi_key_check_long_press
-	call mouse_bt_discovery_check
-	call mouse_commbination_key_process
-	call mouse_commbination_dpi_check_timer
-	call mouse_commbination_key_select_device_timer
-
-	call p_mouse_key_info_store_delay_timer
-	call mouse_current_mult_update_timer
-	call mouse_wheel_trigger_timer
-	call mouse_store_information_delay_timer
-	call mouse_check_no_data_timeout_timer
-	
-	//24g
-	call p_mouse_m_key_long_press_timer
-	call p_mouse_24g_long_sleep_param_update_timer
-	branch mouse_bb_event_timer_next
-
-
-p_mouse_enter_lpm_timer:
-	fetch 1,mem_mouse_le_delay_enter_lpm_time
-	rtn blank
-	pincrease -1
-	store 1,mem_mouse_le_delay_enter_lpm_time
-	rtn
-p_mouse_m_key_long_press_timer:
-	fetch 1,mem_mouse_m_key_press_flag
-	rtn blank
-	arg mem_mouse_m_key_press_count,regc
-	arg p_g24_send_http_info_enable,regb
-	branch timer_single_step
-
-
-p_mouse_24g_long_sleep_param_update_timer:
-	arg mem_24g_long_sleep_param_update_timer,regc
-	arg p_mouse_24g_long_sleep_normal_param,regb
-	branch timer_single_step
-p_mouse_24g_long_sleep_normal_param:
-	jam 1,mem_device_tx_heart_data_flag
-	branch mouse_24g_long_sleep_normal_param
-	
-p_mouse_le_send_conn_param_update_timer:
-	arg mem_mouse_le_send_conn_param_update_timer,regc
-	arg mouse_updata_le_param,regb
-	branch timer_single_step
-	
-p_mouse_priority_bb_event:
-	copy regc,pdata
-	beq BT_EVT_24G_ATTEMPT_FAIL,p_mouse_24g_attempt_fail
-	beq BT_EVT_LE_PARSE_CONN_PAPA_UPDATE_RSP,p_mouse_le_conn_param_update_rsp_recieved
-	beq BT_EVT_LE_CONNECTED,p_mouse_le_bb_event_connected
-	beq BT_EVT_LE_DISCONNECTED,p_mouse_le_bb_disconnected
-	beq BT_EVT_LE_START_ENC,p_mouse_le_ll_start_encryt
-	branch mouse_priority_bb_event+2
-
-p_mouse_le_ll_start_encryt:
-	fetch 1,mem_device_le_reconnect_flag
-	beq 1,p_mouse_le_ll_reconn_start_encryt
-	jam 20,mem_le_start_encrypt_timer
-	branch mouse_le_ll_enable_start_enc_flag
-
-p_mouse_le_ll_reconn_start_encryt:
-	call mouse_updata_le_param
-	jam 5,mem_le_start_encrypt_timer
-	branch mouse_le_ll_enable_start_enc_flag
-
-p_mouse_le_conn_param_update_rsp_recieved:
-	fetch 1,mem_mouse_le_send_conn_param_update
-	nrtn blank
-	jam 1,mem_mouse_le_send_conn_param_update
-	jam 30,mem_mouse_le_send_conn_param_update_timer
-	rtn
-
-p_mouse_le_bb_event_connected:
-	call mouse_le_bb_event_connected
-	// fetch 1,mem_device_le_reconnect_flag
-	// rtn blank
-	jam 0x64,mem_mouse_le_delay_enter_lpm_time
-	rtn
-
-p_mouse_le_bb_disconnected:
-	setarg 0
-	store 1,mem_mouse_le_send_conn_param_update
-	store 1,mem_mouse_le_send_conn_param_update_timer
-	branch mouse_le_bb_disconnected
-
-p_mouse_24g_attempt_fail:
-	call mouse_soft_agc_disable
-	call device_fetch_normal_tx_power
-	fetch 1,mem_24g_attempt_fail_flag
-	nbranch mouse_24g_hibernate_set,blank
-	jam ZCODE_11,mem_zcode_temp_param0
-	branch p_zcode_entrance
-
-
-p_mouse_le:
-	fetch 1,mem_voice_enable
-	nrtn blank
-	call le_fifo_check_nearly_full
-	nrtn blank
-	fetch 1,mem_device_fast_conn_flag
-	beq 0xff,p_mouse_le_next
-	fetch 1,mem_le_connect_status_flag
-	and pdata,0x03,pdata
-	rtnne 0x03
-p_mouse_le_next:
-	fetch 1,mem_ms_le_lpm_flag
-	call p_mouse_le_lpm_set,blank
-	fetch 1,mem_mouse_clear_sensor_data_flag
-	call mouse_clear_sensor_data_by_reset,blank
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	bbit1 MOUSE_24G_PAIRING_FLAG,p_mouse_le_send_empty_packet
-	bbit1 MOUSE_SELECT_DEVICE_FLAG,p_mouse_le_send_empty_packet
-	bbit1 MOUSE_BT_DISCOVERY_BUTTON_DOWN_FLAG,p_mouse_le_send_empty_packet
-	bbit1 MOUSE_BT_DISCOVERY_BUTTON_LONG_DOWN_FLAG,p_mouse_le_send_empty_packet
-	call p_mouse_motion
-	call mouse_check_125Hz
-	nrtn user
-	call mouse_current_mult_update
-	call p_mouse_data_xy_release
-	branch mouse_le_package+5
-
-p_mouse_data_xy_release:
-	fetch 1,mem_sensor_motion_gpio
-	rtnne GPIO_DISABLE
-	fetch 1,mem_mouse_long_mult_flag
-	rtn blank
-	fetch 1,mem_ms_le_spi_reset_type
-	beq 1,p_mouse_le_p32xx_spi_reset
-	beq 2,p_mouse_le_p3212_spi_reset
-	beq 3,p_mouse_le_pka8g2_spi_reset
-	rtn
-
-p_mouse_le_p32xx_spi_reset:
-	setarg PAN_REG_PID_L
-	call twspi_read
-	bne P32XX_ID1,mouse_p3065_judge 
-p_mouse_le_sensor_poweron_set:
-	fetch 1,mem_mouse_long_mult_flag
-	increase -1,pdata
-	store 1,mem_mouse_long_mult_flag
-	setarg 0
-	store 4,mem_mouse_x
-	branch mouse_sensor_poweron
-
-p_mouse_le_p3212_spi_reset:
-	setarg PAN_REG_PID_L
-	call twspi_read
-	bne P32XX_ID1,mouse_twspi_reset
-	branch p_mouse_le_sensor_poweron_set
-
-p_mouse_le_pka8g2_spi_reset:
-	setarg PAN_REG_PID_L
-	call twspi_read
-	bne PKA8G2_ID1,mouse_twspi_reset
-	branch p_mouse_le_sensor_poweron_set
-
-p_mouse_le_send_empty_packet:
-	setarg 0
-	store 7,mem_mouse_key
-	branch hid_device_le_send_mouse_data
-
-p_mouse_le_lpm_set:
-	jam 1,mem_ms_le_lpm_flag
-	branch hid_device_enable_lpm
-
-p_g24_reconn_device_fail:
-	fetch 1,mem_24g_fast_conn_enable
-	branch g24_ch,blank
-	fetch 2,mem_24g_reconn_count
-	increase 1,pdata
-	store 2,mem_24g_reconn_count
-	isolate1 9,pdata
-	fetch 1,mem_24g_reconn_type
-	beq PAIR_AND_RECEIVER,p_g24_reconn_pair_and_receiver
-	branch g24_reconn_device_fail+7
-
-p_g24_reconn_pair_and_receiver:
-	branch g24_reconn_receiver_addr,true
-	branch g24_pair_init_param
-
-ifdef G24_RETRANSMIT_COMMBINATION_PAIR
-p_g24_retransmit:
-p_mouse_g24_retransmit:
-	fetch 1,mem_device_need_soft_reset
-	nrtn blank
-	call p_mouse_g24_retransmit_100ms_timer
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	rtnbit1 MOUSE_24G_PAIRING_FLAG
-	branch g24_retransmit0
-p_mouse_g24_retransmit_100ms_timer:
-	arg 12,queue
-	call timer_check
-	nrtn blank
-	call mouse_commbination_key_process
-	branch mouse_g24_retransmit_100ms_timer_next
-endif
-
-p_mouse_setgpio_hibernate:
-	call p_mouse_sensor_spi_reset
-	branch mouse_setgpio_hibernate+2
-
-p_mouse_sensor_spi_reset:
-	call mouse_read_sensor_id
-	beq P32XX_ID1,mouse_set_sdio_high
-	beq P3065_ID1,mouse_set_sdio_high
-	beq PKA8G2_ID1,mouse_set_sdio_high
-	call mouse_twspi_reset
-	nop 1200
-	branch p_mouse_sensor_spi_reset
-
-p_mouse_ka8g2_id2_judge:
-ifdef KA8G2_NEW_SET
-	call mouse_sensor_poweron
-	fetch 1,mem_sensor_id2
-	// beq KA5857_ID2,mouse_ka5857_init_param
-	beq PKA8G2_ID2,p_mouse_ka8g2_init_param
-	branch mouse_ka8g2_id2_judge+2
-p_mouse_ka8g2_init_param:
-	jam KA8G2,mem_config_sensor_type
-	arg mem_sensor_ka8g2_init_new,regc
-	branch mouse_sensor_wr_seq
-endif
-	branch mouse_ka8g2_id2_judge
-
-p_mouse_init_sensor:
-	call mouse_read_sensor_id
-	beq P32XX_ID1,p_mouse_init_p32xx_id2_judge
-	// beq P3065_ID1,mouse_init_p3065
-	beq PKA8G2_ID1,p_mouse_ka8g2_id2_judge
-	branch mouse_init_sensor+3
-p_mouse_init_p32xx_id2_judge:
-	fetch 1,mem_sensor_id2
-	beq P_MX8650,p_mouse_mx8650_init_param
-	branch mouse_init_p32xx_id2_judge+2
-p_mouse_mx8650_init_param:
-	jam MX8650,mem_config_sensor_type
-	call mouse_sensor_reset
-	call delay_10ms
-	arg mem_sensor_8650_init_new,regc
-	branch mouse_sensor_poweron_end
-
-p_mouse_check_key_gpio:
-	fetch 1,mem_24g_shutdown_flag
-	ncall mouse_check_key_gpio_once,blank
-	arg 0,rega
-	call mouse_check_lkey_gpio
-	call mouse_check_rkey_gpio
-	call mouse_check_mkey_gpio
-	// call mouse_check_bkkey_gpio
-	// call mouse_check_fwkey_gpio
-	// call mouse_check_firekey_gpio
-	// call mouse_check_customerkey_gpio
-	// copy rega,pdata
-	// rtn
-	branch mouse_check_key_gpio_next
-
-p_mouse_motion:
-	jam 0,mem_ms_rf_data_flag
-	call hid_device_copy_key_data
-	disable user
-	setarg 0
-	store 6,mem_mouse_x
-	call p_mouse_check_sensor_data
-	call mouse_set_sdio_high
-//	setarg 0x0089
-//	call twspi_write	
-//	call mouse_setting_sensor_type
-	call mouse_zwheel
-	call mouse_t_zwheel
-	call p_mouse_key
-	fetch 1,mem_customer_key
-	ncall enable_user,blank
-	fetch 1,mem_mouse_key
-	and_into 0x1f,pdata
-	store 1,mem_mouse_key
-	call p_mouse_check_idle_key_state
-	fetch 1,mem_mouse_fuction_key
-	ncall enable_user,blank
-
-	call p_mem_mouse_key_ior
-	nbranch mouse_drawing_optima_init,user
-	jam 0,mem_device_tx_heart_data_flag
-	jam 1,mem_ms_rf_data_flag
-	branch mouse_motion_rf_data
-
-p_mouse_key:
-	call mouse_check_firekey_gpio
-	fetch 1,mem_fire_key_flag
-	nbranch fire_key_press,blank
-	fetch 1,mem_fire_key_status
-	nbranch fire_key_process,blank
-	
-	call mouse_check_key_gpio
-	call p_mouse_m_key_press_check
-	branch mouse_key_next
-
-p_mouse_m_key_press_check:
-	copy rega,pdata
-	beq MOUSE_M_BUTTON,p_mouse_m_key_press
-p_mouse_m_key_release:
-	fetch 1,mem_mouse_m_key_press_flag
-	rtn blank
-	jam 0,mem_mouse_m_key_press_flag
-	rtn
-p_mouse_m_key_press:
-	fetch 1,mem_mouse_m_key_press_flag
-	nrtn blank
-	jam 1,mem_mouse_m_key_press_flag
-	jam 30,mem_mouse_m_key_press_count
-	rtn
-
-
-p_mouse_check_idle_key_state:
-	fetch 1,mem_mouse_fuction_key
-	fetcht 1,mem_mouse_fuction_key_last
-	store 1,mem_mouse_fuction_key_last
-	ixor temp,pdata
-	sub pdata,0,null
-	rtn zero
-	branch enable_user
-
-p_mem_mouse_key_ior:
-	fetch 1,mem_mouse_key
-	fetcht 1,mem_mouse_fuction_key
-	ior temp,pdata
-	store 1,mem_mouse_key
-	rtn
-
-p_mouse_check_sensor_data:
-	fetch 1,mem_spi_write_flash_sm
-	rtnne FLASH_SM_NO_BUYS
-	call mouse_sensor_spi_init
- 	fetch 1,mem_config_sensor_type
-// 	beq P3205,p_mouse_p32xx_sensor_motion
-	beq P3065,p_mouse_p32xx_sensor_motion
-// 	beq KA8,p_mouse_p32xx_sensor_motion
-// 	beq P3204,p_mouse_p32xx_sensor_motion
-	beq P3212,p_mouse_p3212_sensor_motion
-	beq P3065_xy,p_mouse_p32xx_sensor_motion
-//	beq P8009,mouse_p8009_sensor_motion	
-	beq KA8G2,p_mouse_pka8g2_sensor_motion
-// 	beq KA5857,p_mouse_pka8g2_sensor_motion
-	//branch p_mouse_p32xx_sensor_motion
-p_mouse_p32xx_sensor_motion:
-	jam 1,mem_ms_le_spi_reset_type
-	branch mouse_p32xx_sensor_motion
-
-p_mouse_p3212_sensor_motion:
-	jam 2,mem_ms_le_spi_reset_type
-	branch mouse_p3212_sensor_motion
-
-p_mouse_pka8g2_sensor_motion:
-	jam 3,mem_ms_le_spi_reset_type
-	branch mouse_pka8g2_sensor_motion
-
-p_mouse_param_info_init:
-	jam ZCODE_01,mem_zcode_temp_param0
-	branch p_zcode_entrance
-
-
-p_mouse_start_work:	
-	jam ZCODE_00,mem_zcode_temp_param0
-	branch p_zcode_entrance
-
-
-p_mouse_start_discovery:
-	call mouse_sensor_powerdown
-	call p_mouse_eeprom_load_le_att_list_info
-	call p_mouse_le_param_default
-	branch mouse_start_discovery+1
-
-p_mouse_setting_sensor_type:
-	call p_mouse_sensor_spi_reset
-	branch mouse_setting_sensor_type+1
-//=======================================ble protocol fuction patch =========================================//
-
-p_le_slave_more_data:
-	call p_le_audio_data_out_from_queue
-	branch le_slave_more_data+1
-
-p_le_parse_ll:
-	fetch 1,mem_le_packet_llid
-	rtneq LLID_RESERVED
-	beq LLID_LE_LL,p_le_parse_ll_next
-	branch le_parse_l2cap
-p_le_parse_ll_next:
-	fetch 1,mem_le_rxbuf_data_ll_opcode
-	beq LL_LENGTH_REQ,p_le_parse_length_req
-	branch le_parse_ll+1
-p_le_parse_length_req:
-	fetch 4,mem_le_rxbuf_data_ll_control_data+4
-	branch p_le_send_unknown_rsp,blank
-	branch le_parse_length_req
-
-p_mouse_le_parse_att:
-	copy rega,contr
-	ifetch 3,contr
-	store 3,mem_le_att_opcode
-	beq ATTOP_READ_BLOB_REQUEST,p_le_parse_att_read_blob_request
-	beq ATTOP_READ_REQUEST,p_mouse_le_parse_att_read_request
-	beq ATTOP_WRITE_REQUEST,p_mouse_le_parse_att_write_request
-	beq ATTOP_WRITE_COMMAND,p_le_parse_att_write_command
-	beq ATTOP_PREPARE_WRITE_REQUEST,p_le_parse_att_prepare_write_request
-	branch le_parse_att2	
-
-p_le_parse_att_prepare_write_request:
-	call le_fifo_check_nearly_full
-	ncall l2cap_malloc_free,blank
-	call le_parse_att_prepare_write_request
-
-	fetch 2,mem_le_payload_ptr
-	add pdata,7,contr
-	ifetch 2,contr
-	nrtn blank	//offset
-
-	call le_fifo_check_nearly_full
-	ncall l2cap_malloc_free,blank
-	fetch 2,mem_le_payload_ptr
-	copy pdata,rega
-	add rega, 9, rega
-	branch p_le_parse_att_write_command+1
-
-p_le_parse_att_read_blob_request:
-	ifetch 2,contr
-	store 2,mem_le_att_offset
-	iforce rega
-	fetcht 2,mem_le_att_handle
-p_le_send_att_read_blob_response:
-	call le_att_get_handle_ptr 
-	branch le_send_att_error_response_notfound,blank
-	ifetch 2,contr
-	isub rega,loopcnt
-	branch le_send_att_read_blob_response+4
-
-
-p_mouse_le_parse_att_read_request:
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	bbit0 MOUSE_ENABLE_LE_BATTERY_SERVICE_CANCEL,p_le_parse_att_read_request
-	call le_check_encrypt_state
-	fetcht 2,mem_le_att_handle
-	fetch 1,mem_le_configuration
-	bbit1 BIT_BLE_READ_AUTH,p_mouse_le_send_att_read_response_check_auth
-p_mouse_le_send_att_read_response:
-	fetch 2,mem_le_att_handle
-	beq 0x13,le_send_att_error_response_notfound
-	fetcht 2,mem_le_att_handle
-	branch p_le_send_att_read_response
-
-p_mouse_le_send_att_read_response_check_auth:
-	fetch 2,mem_le_pairing_handle
-	isub temp,null
-	nbranch p_mouse_le_send_att_read_response,zero
-	nbranch p_mouse_le_send_att_read_response,user
-	branch le_send_att_read_response_error_insufficient_auth
-
-p_le_parse_att_read_request:
-	call le_check_encrypt_state
-	fetcht 2,mem_le_att_handle
-	fetch 1,mem_le_configuration
-	bbit1 BIT_BLE_READ_AUTH,p_le_send_att_read_response_check_auth
-//input:temp is handle
-p_le_send_att_read_response:
-	call le_att_get_handle_ptr2
-	nbranch le_send_att_error_response_notfound,zero
-	call le_send_att_read_response_check_handle,user
-	rtn user
-	call le_att_get_handle_ptr_found
-	increase -2,contr
-	ifetch 2,contr
-	arg UUID_CHRCTR_DEVICE_NAME,temp
-	isub temp,null
-	branch le_send_device_name,zero
-	arg UUID_CHRCTR_REPORT_MAP,temp
-	isub temp,null
-	branch p_le_modify_report_map_header,zero
-	branch le_send_att_read_response_next
-	// copy contr,regc
-	// call le_get_search_max_mtu_data
-	// copy regc,contr
-	// ifetcht 1,contr
-	// increase 1,temp
-	// call not_greater_than
-	// branch le_send_att_read_response_less
-
-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
-	nbranch p_le_send_att_read_response,user
-	branch le_send_att_read_response_error_insufficient_auth
-
-p_le_modify_report_map_header:
-	copy contr,regc
-	call le_get_search_max_mtu_data
-	copy regc,contr
-	ifetcht 2,contr
-	increase 1,temp
-	call not_greater_than
-	branch le_send_att_read_response_less
-
-
-//======================================= ble receive app protocol data patch ==================================//
-p_mouse_le_parse_att_write_request:
-	call p_le_parse_att_write_command
-	call le_fifo_check_nearly_full
-	ncall l2cap_malloc_free,blank
-	// branch hid_device_le_parse_att_write_request
-p_hid_device_le_parse_att_write_request:
-	fetch 1,mem_device_fast_conn_flag
-	beq 0xff,le_send_att_write_response_check_auth	
-	fetch 1,mem_device_fast_conn_flag
-	branch le_send_att_write_response_check_auth,blank
-	fetch 1,mem_le_connect_status_flag
-	bbit1 LL_START_ENC_FLAG,le_send_att_write_response_check_auth
-	
-	fetch 1,mem_att_write_resposnse_error_insufficient_auth
-	nbranch le_send_att_read_response_error_insufficient_auth,blank
-	jam 1,mem_att_write_resposnse_error_insufficient_auth
-	branch le_send_att_write_response_check_auth
-
-
-p_le_parse_att_write_command:
-	call le_parse_att_write_command
-	fetcht 2,mem_le_att_handle
-	fetch 2,mem_le_protocol_rx_handle
-	isub temp,null
-	nrtn zero
-p_mouse_le_receive_driver_data:
-	copy rega,contr
-	ifetch 1,contr
-	rtnne START_FLAG
-	ifetch 1,contr
-	ifetch 1,contr
-	beq OPCODE_VOICE_START,p_ms_le_receive_voice_start_data
-	beq OPCODE_VOICE_END,p_ms_le_receive_voice_end_data
-	beq OPCODE_GET_DEVICE_INFO,p_ms_le_receive_get_device_info_data
-	beq OPCODE_GET_DPI,p_ms_le_receive_get_dpi_data
-	beq OPCODE_SET_DPI,p_ms_le_receive_set_dpi_data
-	beq OPCODE_GET_BATTERY,p_ms_le_receive_get_battery_data
-	beq OPCODE_GET_DEVICE_TYPE,p_ms_le_receive_get_device_type_data
-	beq OPCODE_SET_KEY_FUCTION,p_ms_le_receive_set_key_fuction_data
-	rtn
-
-//voice on
-p_ms_le_receive_voice_start_data:
-	call le_fifo_check_nearly_full
-	ncall l2cap_malloc_free,blank
-	call p_audio_enable
-	setarg 0x02
-	store 1,mem_le_tx_buffer0_omemalloc
-	setarg OPCODE_VOICE_START
-	istore 1,contw
-	setarg 0x10
-	istore 1,contw
-	branch p_ms_le_tx_protocol_header_interface
-
-//voice end
-p_ms_le_receive_voice_end_data:
-	call le_fifo_check_nearly_full
-	ncall l2cap_malloc_free,blank
-	call p_audio_disable
-	setarg 0x01
-	store 1,mem_le_tx_buffer0_omemalloc
-	setarg OPCODE_VOICE_END
-	istore 1,contw
-	branch p_ms_le_tx_protocol_header_interface
-
-//get device info	
-p_ms_le_receive_get_device_info_data:
-	call le_fifo_check_nearly_full
-	ncall l2cap_malloc_free,blank
-	setarg DEVICE_INFO_LEN
-	store 1,mem_le_tx_buffer0_omemalloc
-	setarg OPCODE_GET_DEVICE_INFO
-	istore 1,contw
-	arg AUTH_LEN,loopcnt
-	arg mem_ms_auth_appkey,contr
-	call memcpy
-	call p_g24_ms_info_set
-	branch p_ms_le_tx_protocol_header_interface
-
-//get dpi
-p_ms_le_receive_get_dpi_data:
-	jam APP_ASK,mem_mouse_dpi_type
-p_ms_le_tx_dpi_info:
-	call le_fifo_check_nearly_full
-	ncall l2cap_malloc_free,blank
-	setarg NOR_PRO_HEADER_LEN
-	store 1,mem_le_tx_buffer0_omemalloc
-	setarg OPCODE_GET_DPI
-	istore 1,contw
-	fetch 1,mem_mouse_dpi
-	istore 1,contw
-	fetch 1,mem_mouse_dpi_type
-	istore 1,contw
-	branch p_ms_le_tx_protocol_header_interface
-
-//set dpi
-p_ms_le_receive_set_dpi_data:
-	copy rega,contr
-	call p_mouse_receive_dpi_check
-	call le_fifo_check_nearly_full
-	ncall l2cap_malloc_free,blank
-	setarg SET_DPI_LEN
-	store 1,mem_le_tx_buffer0_omemalloc
-	setarg OPCODE_SET_DPI
-	istore 1,contw
-	fetch 1,mem_mouse_dpi_set_result
-	istore 1,contw
-	branch p_ms_le_tx_protocol_header_interface
-
-//get battery info
-p_ms_le_receive_get_battery_data:
-	call le_fifo_check_nearly_full
-	ncall l2cap_malloc_free,blank
-	branch mouse_le_battery_level_updata
-
-//get device type info
-p_ms_le_receive_get_device_type_data:
-	call le_fifo_check_nearly_full
-	ncall l2cap_malloc_free,blank
-	fetch 1,mem_mouse_device_type
-	increase 2,pdata
-	store 1,mem_le_tx_buffer0_omemalloc
-	setarg OPCODE_GET_DEVICE_TYPE
-	istore 1,contw
-	fetchr loopcnt,1,mem_mouse_device_type
-	arg mem_mouse_device_type+1,contr
-	call memcpy
-	branch p_ms_le_tx_protocol_header_interface
-	
-//set key function
-p_ms_le_receive_set_key_fuction_data:
-	copy rega,contr
-	call p_mouse_receive_key_fuction_check
-	call le_fifo_check_nearly_full
-	ncall l2cap_malloc_free,blank
-	setarg 0x07
-	store 1,mem_le_tx_buffer0_omemalloc
-	setarg OPCODE_SET_KEY_FUCTION
-	istore 1,contw
-	setarg 1	//success
-	istore 1,contw
-	branch p_ms_le_tx_protocol_header_interface
-
-p_ms_le_tx_key_state_interface:
-	storet 1,mem_ms_recv_ackpayload_temp
-	call le_fifo_check_nearly_full
-	ncall l2cap_malloc_free,blank
-	setarg KEY_STATE_PAYLOAD_LEN
-	store 1,mem_le_tx_buffer0_omemalloc
-	fetch 1,mem_ms_recv_ackpayload_temp
-	istore 1,contw
-	fetch 1,mem_ms_tx_pro_key_val
-	istore 1,contw
-	//branch p_ms_le_tx_protocol_header_interface
-p_ms_le_tx_protocol_header_interface:
-	arg 63,rega
-	fetcht 2,mem_le_protocol_tx_handle
-	call le_att_malloc_tx_notify
-	setarg START_FLAG
-	istore 1,contw
-	arg 62,loopcnt
-	arg mem_le_tx_buffer0_omemalloc,contr
-	call memcpy_fast
-	arg 62,loopcnt
-	arg mem_le_tx_buffer0_omemalloc,contw
-	branch memset0
-	
-
-p_ms_le_tx_audio_data:
-	arg 63,rega
-	fetcht 2,mem_le_audio_tx_handle
-	call le_att_malloc_tx_notify
-	setarg VOICE_QUEUE_UNIT
-	istore 1,contw
-	arg VOICE_QUEUE_UNIT,loopcnt
-	arg mem_queue_buf,contr
-	call memcpy
-	setarg 0
-	istore 2,contw
-	rtn
-
-p_voice_updata_connect_param_req:
-	fetch 1,mem_device_flag
-	rtneq MODE_24G_DEVICE
-	arg mem_ms_le_interval_min_voice,contr
-p_le_updata_connect_param:
-	arg mem_le_interval_min,contw
-	arg 8,loopcnt
-	call memcpy
-	branch le_l2cap_tx_update_req
-
-p_ms_updata_connect_param_req:
-	fetch 1,mem_device_flag
-	rtneq MODE_24G_DEVICE
-	call mouse_long_mult_init
-	arg mem_ms_le_interval_min_new,contr
-	branch p_le_updata_connect_param
-
-p_mouse_le_param_default:
-	fetch 8,mem_ms_le_interval_min_new
-	store 8,mem_le_interval_min
-	jam 0,mem_lpm_mode
-	jam 0,mem_ms_le_lpm_flag
-	jam 0,mem_att_write_resposnse_error_insufficient_auth
-	rtn
-
-//=======================================g24 protocol fuction patch =========================================//
-p_mouse_cb_fuction:
-	setarg mouse_24g_short_sleep
-	store 2,mem_cb_24g_transmit_short_sleep
-	setarg mouse_24g_long_sleep
-	store 2,mem_cb_24g_transmit_long_sleep
-	setarg lpm_puchk_set_check
-	store 2,mem_cb_before_lpm_sleep
-	branch mouse_cb_fuction+7
-
-p_mouse_default_init:
-	jam ZCODE_02,mem_zcode_temp_param0
-	branch p_zcode_entrance
-
-p_g24_pair_param_init:
-	jam 0x4a,mem_24g_pair_ch
-	fetch 4,mem_24g_pair_addr_new
-	store 4,mem_24g_pair_addr
-	rtn
-
-p_g24_pair_dispatch:
-	jam DEFAULT_24G_DEVICE,mem_24g_reconn_type
-	fetch 2,mem_24g_pair_count
-	increase 1,pdata
-	store 2,mem_24g_pair_count
-	fetch 1,mem_24g_pair_count
-	and pdata,0xff,pdata
-	nrtn blank
-	fetch 1,mem_24g_pair_sm
-	beq STATE_24G_PAIRING_SUCCESS,g24_pair_exit
-	beq STATE_24G_PAIRING_1,p_g24_pair_sm_1
-	beq STATE_24G_PAIRING_2,p_g24_pair_sm_2
-	beq STATE_24G_PAIRING_3,p_g24_pair_sm_3
-	beq STATE_24G_PAIRING_4,p_g24_pair_sm_4
-	rtn
-
-p_g24_pair_sm_1:
-	jam DATATYPE_ATTEMP,mem_24g_txbuf_new
-	branch p_g24_pair_sm_prep
-
-p_g24_pair_sm_2:
-	fetch 1,mem_24g_pair_switch
-	branch p_g24_pair_sm_2_skip,blank
-	fetch 4,mem_24g_device_addr
-	call g24_update_addr_and_synccrc8	//use transmitter addr
-p_g24_pair_sm_2_skip:
-	jam DATATYPE_BIND,mem_24g_txbuf_new	
-	branch p_g24_pair_sm_prep
-
-p_g24_pair_sm_3:
-	jam DATATYPE_CONFIG,mem_24g_txbuf_new	
-	fetch 1,mem_24g_pair_switch
-	branch p_g24_pair_sm_prep,blank
-	fetch 4,mem_24g_receiver_addr		//prep receiver addr
-	store 4,mem_24g_txbuf_new+2
-	branch p_g24_pair_sm_common
-
-p_g24_pair_sm_4:
-	jam DATATYPE_OK,mem_24g_txbuf_new
-p_g24_pair_sm_prep:
-	fetch 4,mem_24g_device_addr
-	store 4,mem_24g_txbuf_new+2
-p_g24_pair_sm_common:
-	fetch 1,mem_24g_data_type
-	and_into bits_data,pdata
-	store 1,mem_24g_txbuf_new+1
-	jam 0,mem_24g_txbuf_new+6
-	branch g24_pair_sm_common+4
-
-p_g24_reconn_dispatch:
-	fetch 2,mem_24g_reconn_count
-	arg 0x01f8,temp
-	iand temp,pdata
-	branch p_g24_reconn_dispatch_next,blank
-	branch g24_reconn_dispatch+5
-
-p_g24_reconn_dispatch_next:
-	call p_g24_reconn_data_prep
-	call g24_transmit_receive_ack
-	nbranch g24_reconn_device_fail,sync
-	nbranch g24_reconn_device_fail,user3
-	call g24_ackpayload_parse
-	branch mouse_g24_reconn_dispatch_set
-
-p_g24_reconn_data_prep:
-	jam DATATYPE_ATTEMP,mem_24g_txbuf_new
-	fetch 1,mem_24g_data_type
-	store 1,mem_24g_txbuf_new+1
-	fetch 4,mem_24g_device_addr
-	store 4,mem_24g_txbuf_new+2
-	jam 6,mem_24g_datalen
-	branch p_g24_transmit_prep
-
-p_g24_transmit_hop_process:
-	fetcht 1,mem_24g_retry
-	fetch 1,mem_24g_fast_hop_count			// 125Hz=11  250Hz=5
-	isub temp,null
-	nbranch g24_tx_fast_hop,positive		// >= (6+6)or(3+3) hop fast    fail packet count >= 2
-	increase 1,temp
-	storet 1,mem_24g_retry
-	fetch 1,mem_24g_fast_hop_count
-	beq 5,p_g24_transmit_hop_process_4ms
-	fetch 1,mem_24g_retry
-	beq 6,p_g24_hop_ch_disable
-	beq 12,p_g24_hop_ch_disable
-	rtn
-
-p_g24_transmit_hop_process_4ms:
-	fetch 1,mem_24g_retry
-	beq 3,p_g24_hop_ch_disable
-	beq 6,p_g24_hop_ch_disable
-	rtn
-p_g24_hop_ch_disable:
-	fetch 1,mem_24g_data_type
-	set0 bit_hop,pdata
-	store 1,mem_24g_data_type
-	call p_g24_txpayload_type_update
-	branch g24_hop_ch_disable+4
-
-p_g24_txpayload_type_update:	
-	lshift3 pdata,pdata
-	fetcht 1,mem_24g_pid
-	and temp,0x03,temp
-	lshift temp,temp
-	ior temp,pdata
-	fetcht 1,mem_24g_no_ack
-	iadd temp,pdata
-	store 1,mem_24g_txpayload_new+OFFSET_DATA_TYPE
-	rtn
-	
-p_mouse_store_dpi_info_check:
-p_mouse_store_eerpom_dpi:
-	arg 1,temp
-	arg mem_mouse_dpi,rega
-	arg 0x2a,regb
-	branch iicd_write_protect_eep_data
-
-p_mouse_24g_package_data:
-	rtnmark0 mark_24g
-	call p_mouse_motion
-	call p_mouse_g24_tx_info_check
-	nrtn user
-	fetch 1,mem_mouse_24g_long_sleep_flag
-	jam 0,mem_mouse_24g_long_sleep_flag
-	ncall mouse_24g_short_sleep_clear_wake,blank
-	
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	bbit0 MOUSE_ENABLE_KEYBOARD,p_mouse_24g_mouse_package_data
-	fetch 1,mem_customer_key
-	nbranch mouse_24g_keyboard_package_data,blank
-p_mouse_24g_mouse_package_data:
-	call mouse_data_xy_release
-	fetch 1,mem_24g_data_type
-	bbit1 1,mouse_24g_mouse_package_data_now	// last package is keyboard data
-	fetcht 1,mem_24g_txbuf_new+1
-	fetch 1,mem_mouse_key
-	ior temp,pdata
-	store 1,mem_mouse_key
-	fetcht 1,mem_24g_txbuf_new+6
-	fetch 1,mem_mouse_z
-	iadd temp,pdata
-	store 1,mem_mouse_z
-	fetcht 1,mem_24g_txbuf_new+7
-	fetch 1,mem_mouse_tz
-	iadd temp,pdata
-	store 1,mem_mouse_tz	
-	branch mouse_24g_mouse_package_data_now
-
-
-p_g24_transmit_loop:
-	call g24_transmit_receive_ack
-//	fetch 1,mem_24g_no_ack	//tx noack
-//	beq no_ack_24g,g24_transmit_no_ack
-	nbranch g24_retransmit,sync
-	nbranch g24_retransmit,user3
-	call g24_ackpayload_parse
-	call p_g24_parse_receive_work_data
-	call mouse_24g_transmit_callback
-	call p_g24_rxpayload_clear
-	branch g24_transmit_no_ack
-
-p_g24_rxpayload_clear:
-	arg 8,loopcnt
-	arg mem_24g_rxpayload,contw
-	branch memset0
-
-p_g24_dispatch:
-	bmark1 mark_24g_rxmode,g24_receive_dispatch
-	rtnmark0 mark_24g
-p_g24_transmit_dispatch:
-	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_ms_audio_enable_flag
-	ncall g24_transmit_by_interrupt_enable,blank
-	fetch 1,mem_24g_transmit_by_interrupt
-	beq G24_TX_TIMER_INT_ENABLE,p_g24_transmit_by_interrupt
-	branch p_g24_transmit_no_interrupt
-
-p_g24_transmit_by_interrupt:
-	call g24_timer_check
-	nrtn user
-	call g24_interval_calibrate
-	fetch 1,mem_voice_queue_count
-	ncall p_g24_send_audio_info_enable,blank
-	fetch 2,mem_24g_transmit_by_interrupt_exit_count
-	increase 1,pdata
-	store 2,mem_24g_transmit_by_interrupt_exit_count
-	fetcht 2,mem_24g_transmit_by_interrupt_exit_count_init
-	isub temp,null
-	call g24_transmit_by_interrupt_exit,zero
-	branch g24_transmit_no_interrupt
-
-//=========================================yc g24 rx payload patch=======================================//
-//==============================g24 receive ackpayload========================//
-p_g24_parse_receive_work_data:
-	call p_mouse_g24_tx_flag_clr_check
-	fetch 1,mem_24g_rxdata_length
-	rtn blank
-p_g24_receive_ack_data:
-	fetch 1,mem_24g_rxpayload
-	rtnne REPORT_ID_PRO_DATA
-	fetch 1,mem_24g_rxpayload+1
-	rtnne START_FLAG
-	fetch 1,mem_24g_rxdata_length
-	store 1,mem_ms_recv_ackpayload_temp
-	copy pdata,loopcnt
-	arg mem_24g_rxpayload+1,contr
-	arg mem_ms_recv_ackpayload_temp+1,contw
-	call memcpy
-p_g24_receive_ack_data_next:
-	fetch 1,mem_24g_rxpayload+3
-	beq OPCODE_VOICE_END,p_mouse_receive_dg_voice_end_data 	//涓嶈兘鏀惧叆zcode锛屼細鍑虹幇閲囬泦璇煶鏃惰繘鍏code瀵艰嚧榧犳爣鍗℃鎯呭喌
-	jam ZCODE_20,mem_zcode_temp_param0
-	branch p_zcode_entrance
-p_mouse_receive_dg_voice_end_data:
-	arg VOICE_END,queue
-	branch p_ms_tx_nor_pro_flag_enable
-
-p_mouse_g24_tx_dpi_data:
-	arg GET_DPI,queue
-	branch p_ms_tx_nor_pro_flag_enable
-	
-p_memcpy_9:
-	arg 9,loopcnt
-	branch memcpy
-p_memcpy_4:
-	arg 4,loopcnt
-	branch memcpy
-p_mouse_receive_key_fuction_check:
-	arg mem_rxpayload_temp+1,contw
-	call p_memcpy_9
-	fetch 1,mem_rxpayload_temp+4
-	beq B4_FUCTION,p_mouse_receive_b4key_data
-	beq B5_FUCTION,p_mouse_receive_b5key_data
-	beq DPI_FUCTION,p_mouse_receive_dpikey_data
-	rtn
-
-p_mouse_receive_b4key_data:
-	arg mem_mouse_b4_fuction_info,regc
-	branch p_mouse_key_info_compare_interface
-p_mouse_receive_b5key_data:
-	arg mem_mouse_b5_fuction_info,regc
-	branch p_mouse_key_info_compare_interface
-p_mouse_receive_dpikey_data:
-	arg mem_mouse_dpi_fuction_info,regc
-	branch p_mouse_key_info_compare_interface
-
-p_mouse_key_info_compare_interface:
-	copy regc,contr
-	arg mem_mouse_key_fuction_info_temp,contw
-	call p_memcpy_5
-	call p_g24_key_info_updata_check
-	arg mem_mouse_key_fuction_info_temp,contr
-	copy regc,contw
-p_memcpy_5:
-	arg 5,loopcnt
-	branch memcpy
-
-p_g24_key_info_updata_check:
-	fetch 1,mem_rxpayload_temp+5
-	beq APP_KEY,p_g24_key_info_updata_app_check
-	arg 5,loopcnt
-	arg mem_rxpayload_temp+5,rega
-	arg mem_mouse_key_fuction_info_temp,regb
-	call compare_loop
-	rtn zero
-	arg mem_rxpayload_temp+5,contr
-	arg mem_mouse_key_fuction_info_temp,contw
-	call p_memcpy_5
-	branch p_mouse_store_key_info_delay
-
-p_g24_key_info_updata_app_long_check:
-	storet 1,mem_mouse_key_fuction_info_temp+3
-	branch p_mouse_store_key_info_delay
-
-p_g24_key_info_updata_app_check:
-	store 1,mem_mouse_key_fuction_info_temp
-	fetch 1,mem_rxpayload_temp+6
-	fetcht 1,mem_rxpayload_temp+7
-	beq PRESS_LONG,p_g24_key_info_updata_app_long_check
-	storet 1,mem_mouse_key_fuction_info_temp+2
-	branch p_mouse_store_key_info_delay
-
-p_mouse_store_key_info_delay:	
-	fetch 1,mem_store_key_info_delay_timer_init
-	store 1,mem_store_key_info_delay_timer
-	rtn
-
-p_mouse_key_info_store_delay_timer:
-	arg mem_store_key_info_delay_timer,regc
-	arg p_mouse_store_key_info_check,regb
-	branch timer_single_step
-
-p_mouse_store_key_info_check:
-	arg 16,temp
-	arg mem_mouse_key_information_start,rega
-	arg MOUSE_VALUE_EEPROM_OFFECT,regb
-	branch iicd_write_protect_eep_data
-
-p_mouse_eeprom_load_le_att_list_info:
-	jam ZCODE_12,mem_zcode_temp_param0
-	branch p_zcode_entrance
-
-// p_mouse_load_key_info_check:
-// 	arg 15,temp
-// 	arg mem_mouse_key_information_start,rega
-// 	arg MOUSE_VALUE_EEPROM_OFFECT,regb
-// 	branch iicd_read_eep_data
-
-p_mouse_receive_dpi_check:
-	arg mem_rxpayload_temp+1,contw
-	call p_memcpy_4
-	jam 0,mem_mouse_dpi_set_result
-	fetch 1,mem_rxpayload_temp+4
-	sub pdata,10,null
-	nrtn positive
-	store 1,mem_mouse_dpi
-	store 1,mem_mouse_last_dpi
-	jam 1,mem_mouse_dpi_set_result
-	branch mouse_dpi_level_store
-	
-//==============================g24 data flag or type clr==========================//
-p_mouse_g24_tx_flag_clr_check:
-	fetch 1,mem_ms_tx_data_type
-	isolate1 HTTP_BIT,pdata
-	call p_g24_clr_tx_http_info_flag,true
-	isolate1 AUDIO_BIT,pdata
-	call p_g24_clr_tx_audio_info_flag,true
-	isolate1 SPEC_PRO_BIT,pdata
-	call p_g24_clr_tx_spec_info_flag_check,true
-	isolate1 NOR_PRO_BIT,pdata
-	call p_g24_clr_tx_nor_pro_flag_check,true
-	rtn
-p_g24_clr_tx_http_info_flag:
-	set0 HTTP_BIT,pdata
-	branch p_g24_store_ms_tx_flag
-
-
-p_g24_clr_tx_audio_info_flag:
-	set0 AUDIO_BIT,pdata
-	branch p_g24_store_ms_tx_flag
-
-p_g24_clr_tx_spec_info_flag_check:
-	call p_g24_clr_tx_spec_info_flag
-	arg 0,temp
-	storet 2,mem_ms_tx_pro_key_flag
-	rtn
-
-p_g24_clr_tx_spec_info_flag:
-	set0 SPEC_PRO_BIT,pdata
-	branch p_g24_store_ms_tx_flag
-
-p_g24_clr_tx_nor_pro_flag_check:
-	call p_g24_clr_tx_nor_info_flag
-	arg 0,temp
-	storet 2,mem_ms_tx_nor_pro_data_flag
-	rtn
-
-p_g24_clr_tx_nor_info_flag:
-	set0 NOR_PRO_BIT,pdata
-	branch p_g24_store_ms_tx_flag
-//=========================================yc g24 pack  patch ===========================================//
-//queue: bit index  contw:store addr
-p_ms_param_bit_set1:
-	qset1 pdata
-p_istore_2_contw_rtn:
-	istore 2,contw
-	rtn
-
-p_ms_param_bit_set0:
-	qset0 pdata
-	branch p_istore_2_contw_rtn
-
-p_ms_long_press_key_index_enable:
-	fetch 2, mem_ms_long_press_key_index
-	arg mem_ms_long_press_key_index,contw
-	branch p_ms_param_bit_set1	
-
-p_ms_long_press_key_index_disable:
-	fetch 2, mem_ms_long_press_key_index
-	arg mem_ms_long_press_key_index,contw
-	branch p_ms_param_bit_set0	
-
-p_ms_tx_pro_key_flag_enable:
-	fetch 2, mem_ms_tx_pro_key_flag
-	arg mem_ms_tx_pro_key_flag,contw
-	branch p_ms_param_bit_set1
-
-//p_ms_tx_pro_key_flag_disable:
-//	fetch 2, mem_ms_tx_pro_key_flag
-//	arg mem_ms_tx_pro_key_flag,contw
-//	branch p_ms_param_bit_set0
-
-p_ms_tx_nor_pro_flag_enable:
-	fetch 2, mem_ms_tx_nor_pro_data_flag
-	arg mem_ms_tx_nor_pro_data_flag,contw
-	branch p_ms_param_bit_set1
-
-//p_ms_tx_nor_pro_flag_disable:
-//	fetch 2, mem_ms_tx_nor_pro_data_flag
-//	arg mem_ms_tx_nor_pro_data_flag,contw
-//	branch p_ms_param_bit_set0
-	
-//================================g24 pack tx flag enable==========================//
-
-//===========data type enable=======//
-p_mouse_g24_tx_info_check:
-	call p_mouse_g24_tx_flag_check
-p_mouse_tx_device_info_check:
-	fetch 1,mem_ms_tx_data_type
-	rtn blank
-	branch enable_user
-
-p_mouse_g24_tx_flag_check:
-	fetch 2,mem_ms_tx_pro_key_flag
-	nbranch p_g24_send_spec_info_enable,blank
-	fetch 2,mem_ms_tx_nor_pro_data_flag
-	nbranch p_g24_send_nor_info_enable,blank
-	rtn
-
-p_g24_send_audio_info_enable:
-	fetch 1,mem_ms_tx_data_type
-	set1 AUDIO_BIT,pdata
-p_g24_store_ms_tx_flag:
-	store 1,mem_ms_tx_data_type
-	rtn
-	
-p_g24_send_spec_info_enable:
-	fetch 1,mem_ms_tx_data_type
-	set1 SPEC_PRO_BIT,pdata
-	branch p_g24_store_ms_tx_flag
-
-p_g24_send_nor_info_enable:
-	fetch 1,mem_ms_tx_data_type
-	set1 NOR_PRO_BIT,pdata
-	branch p_g24_store_ms_tx_flag
-
-p_g24_send_http_info_enable:
-	fetch 1,mem_ms_tx_data_type
-	set1 HTTP_BIT,pdata
-	branch p_g24_store_ms_tx_flag
-
-
-//================================heart pack patch==========================//
-p_g24_nodata_transmit:
-	fetch 1,mem_24g_abort_pac
-	call p_g24_send_abort_packet,blank
-	fetch 1,mem_device_tx_heart_data_flag
-	ncall p_g24_send_slow_heart_info,blank
-	branch g24_nodata_transmit+2
-	
-p_g24_send_abort_packet:
-	fetch 1,mem_device_tx_heart_data_flag
-	nrtn blank
-	jam TYPE_MS,mem_24g_data_type
-	fetch 1,mem_24g_shutdown_flag
-	setflip 0,pdata
-	store 1,mem_24g_abort_pac
-	call g24_transmit_rf_ctrl_clear
-	store 1,mem_24g_txbuf_new
-	setarg 0
-	store 7,mem_24g_txbuf_new+1
-	fetch 4,mem_24g_device_addr
-	store 4,mem_24g_txbuf_new+8
-	jam 12,mem_24g_datalen
-	fetch 1,mem_24g_data_type
-	set1 bit_abort,pdata
-	store 1,mem_24g_data_type
-	call p_g24_transmit_prep
-	branch g24_transmit_start
-
-p_g24_send_slow_heart_info:
-	jam 0,mem_24g_abort_pac
-	jam TYPE_MS,mem_24g_data_type
-	call g24_transmit_rf_ctrl_clear
-	jam 1,mem_24g_datalen
-	fetch 1,mem_24g_data_type
-	set1 HEART_BIT,pdata
-	store 1,mem_24g_txbuf_new
-	call p_g24_transmit_prep
-	branch g24_transmit_process
-
-p_g24_transmit_no_interrupt:
-	call p_g24_txdata_prep
-	nbranch p_g24_nodata_transmit,user
-	branch g24_transmit_start
-
-p_g24_txdata_prep:
-	call p_g24_package_data
-	nrtn user
-	branch p_g24_transmit_prep
-
-p_g24_package_data:
-	fetch 2,mem_cb_24g_transmit_data
-	call callback_func
-	branch p_g24_accumulate_data_set,user
-	fetch 7,mem_24g_txbuf_new+1	//mouse data
-	rtn blank
-	branch enable_user	// retransmit
-
-p_g24_accumulate_data:
-	jam 0,mem_24g_abort_pac
-	add rega,1,pdata
-	store 1,mem_24g_datalen
-	call g24_transmit_rf_ctrl_clear
-	store 1,mem_24g_txbuf_new
-	branch g24_accumulate_data+5
-	
-//================================g24 pack tx pre==========================//
-p_g24_accumulate_data_set:
-	jam 0,mem_24g_abort_pac
-	fetch 1,mem_ms_tx_data_type
-	beq 0,p_g24_accumulate_data
-	bbit1 SPEC_PRO_BIT,p_g24_send_spec_pro_info_check
-	bbit1 NOR_PRO_BIT,p_g24_send_nor_pro_info_check
-	bbit1 AUDIO_BIT,p_g24_send_audio_info_check
-	bbit1 HTTP_BIT,p_g24_send_http_info_check
-	rtn
-
-//===================spec pro: send key state=========================//
-p_g24_send_spec_pro_info_check:	
-	fetch 2,mem_ms_tx_pro_key_flag
-	bbit1 AUDIO_KEY_BIT,P_g24_tx_audio_key_info
-	// bbit1 ASK_KEY_BIT,p_g24_tx_ask_key_info
-	bbit1 TRANSMIT_KEY_BIT,P_g24_tx_transmit_key_info
-	// bbit1 AUDIO_CTRL_KEY_BIT,p_g24_tx_audio_ctrl_key_info
-	// bbit1 WRITE_KEY_BIT,p_g24_tx_write_key_info
-//	bbit1 SUMARY_KEY_BIT,p_g24_tx_sumary_key_info
-//	bbit1 PPT_KEY_BIT,p_g24_tx_ppt_key_info
-//	bbit1 DRAW_KEY_BIT,p_g24_tx_draw_key_info
-//	bbit1 PRTSCN_KEY_BIT,p_g24_tx_prtscn_key_info
-//	bbit1 AI_KEY_BIT,p_g24_tx_ai_key_info
-	bbit1 ONE_PULLUP_KEY_BIT,P_g24_tx_one_pullup_key_info
-	rtn
-
-P_g24_tx_audio_key_info:
-	fetch 1,mem_mouse_b4_fuction_info
-	beq APP_KEY,P_b4_app_key_function
-P_g24_tx_audio_key_info_next:
-	arg OPCODE_VOICE_KEY,temp
-P_g24_tx_key_info_check:
-	fetch 1,mem_ms_rf_data_flag
-	branch P_g24_only_send_key_info_interface,blank
-	// branch P_g24_send_key_info_interface
-P_g24_send_key_info_interface:
-	storet 1,mem_ms_24g_temp_buff+3
-	fetch 1,mem_24g_data_type
-	set1 SPEC_PRO_BIT,pdata
-	store 1,mem_ms_24g_temp_buff
-	jam START_FLAG,mem_ms_24g_temp_buff+1
-	jam KEY_STATE_PAYLOAD_LEN,mem_ms_24g_temp_buff+2
-	fetch 1,mem_ms_tx_pro_key_val
-	store 1,mem_ms_24g_temp_buff+4
-	arg KEY_STATE_INFO_LEN,temp
-	arg mem_ms_24g_temp_buff,rega
-	branch p_g24_send_rf_other_data
-
-P_g24_only_send_key_info_interface:
-	storet 1,mem_24g_txbuf_new+3
-	fetch 1,mem_24g_data_type
-	set1 SPEC_PRO_BIT,pdata
-	store 1,mem_24g_txbuf_new
-	jam START_FLAG,mem_24g_txbuf_new+1
-	jam KEY_STATE_PAYLOAD_LEN,mem_24g_txbuf_new+2
-	fetch 1,mem_ms_tx_pro_key_val
-	store 1,mem_24g_txbuf_new+4
-	jam KEY_STATE_INFO_LEN,mem_24g_datalen
-	rtn
-
-
-P_b4_app_key_function:
-	fetch 1,mem_ms_tx_pro_key_val
-	beq LONG_PRESS,P_b4_app_key_long_function
-	beq LONG_RELEASE,P_b4_app_key_long_function
-	fetcht 1,mem_mouse_b4_fuction_info+2
-	branch P_g24_tx_key_info_check
-
-P_b4_app_key_long_function:
-	fetcht 1,mem_mouse_b4_fuction_info+3
-	branch P_g24_tx_key_info_check
-
-
-P_g24_tx_transmit_key_info:
-	fetch 1,mem_mouse_b5_fuction_info
-	beq APP_KEY,P_b5_app_key_function
-	branch P_g24_tx_transmit_key_info_next
-P_b5_app_key_function:
-	fetch 1,mem_ms_tx_pro_key_val
-	beq LONG_PRESS,P_b5_app_key_long_function
-	beq LONG_RELEASE,P_b5_app_key_long_function
-	fetcht 1,mem_mouse_b5_fuction_info+2
-	branch P_g24_tx_key_info_check
-P_g24_tx_transmit_key_info_next:
-	arg OPCODE_TRANSMIT_KEY,temp
-	branch P_g24_tx_key_info_check
-
-P_b5_app_key_long_function:
-	fetcht 1,mem_mouse_b5_fuction_info+3
-	branch P_g24_tx_key_info_check
-
-
-P_g24_tx_one_pullup_key_info:
-	fetch 1,mem_mouse_dpi_fuction_info
-	beq APP_KEY,P_dpi_app_key_function
-	branch P_g24_tx_one_pullup_key_info_next
-P_dpi_app_key_function:
-	fetch 1,mem_ms_tx_pro_key_val
-	beq LONG_PRESS,P_dpi_app_key_long_function
-	beq LONG_RELEASE,P_dpi_app_key_long_function
-	fetcht 1,mem_mouse_dpi_fuction_info+2
-	branch P_g24_tx_key_info_check
-P_g24_tx_one_pullup_key_info_next:
-	arg OPCODE_ONE_PULLUP_KEY,temp
-	branch P_g24_tx_key_info_check
-
-P_dpi_app_key_long_function:
-	fetcht 1,mem_mouse_dpi_fuction_info+3
-	branch P_g24_tx_key_info_check
-
-
-
-// p_g24_tx_ask_key_info:
-// 	arg OPCODE_ASK_KEY,temp
-// 	branch p_g24_tx_key_info_check
-
-// p_b5_app_key_long_function:
-// 	fetcht 1,mem_mouse_b5_fuction_info+3
-// 	branch p_g24_tx_key_info_check
-
-// p_g24_tx_transmit_key_info:
-// 	fetch 1,mem_mouse_b5_fuction_info
-// 	beq APP_KEY,p_b5_app_key_function
-// 	branch p_g24_tx_transmit_key_info_next
-// p_b5_app_key_function:
-// 	fetch 1,mem_ms_tx_pro_key_val
-// 	beq LONG_PRESS,p_b5_app_key_long_function
-// 	fetcht 1,mem_mouse_b5_fuction_info+2
-// 	branch p_g24_tx_key_info_check
-// p_g24_tx_transmit_key_info_next:
-// 	arg OPCODE_TRANSMIT_KEY,temp
-// 	branch p_g24_tx_key_info_check
-
-
-// p_g24_tx_audio_ctrl_key_info:
-// 	arg OPCODE_VOICE_CTRL_KEY,temp
-// 	branch p_g24_tx_key_info_check
-
-// p_g24_tx_write_key_info:
-// 	arg OPCODE_WRITE_KEY,temp
-// 	branch p_g24_tx_key_info_check
-
-p_g24_audio_data_out_from_queue:
-	fetch 1,mem_voice_enable
-	rtn blank
-	fetch 1,mem_voice_queue_count
-	rtn blank
-	call p_voice_out_queue
-ifdef LOG_ENCODE
-	call p_print_audio_encode_data
-endif
-	rtn
-
-//===================nor pro:respond app info=========================//
-p_g24_send_nor_pro_info_check:
-	fetch 2,mem_ms_tx_nor_pro_data_flag
-//	bbit1 APPKEY,p_g24_tx_appkey_info
-//	bbit1 SECRET,p_g24_tx_secret_info
-//	bbit1 SN_CODE,p_g24_tx_sn_chip_id_info
-//	bbit1 CHIP_ID,p_g24_tx_sn_chip_id_info
-	bbit1 VOICE_START,p_g24_voice_on_set
-	bbit1 VOICE_END,p_g24_voice_off_set
-	bbit1 DEVICE_INFO, p_g24_tx_device_info
-	bbit1 GET_DPI,p_g24_get_dpi
-	bbit1 SET_DPI,p_g24_set_dpi
-	bbit1 GET_BATTERY,p_g24_get_battery
-	bbit1 GET_DEVICE_TYPE,p_g24_get_device_type
-	bbit1 SET_KEY_FUCTION,p_g24_set_key_fuction
-	rtn
-
-/*
-p_g24_tx_appkey_info:
-	arg APPKEY_LEN,temp
-	arg mem_ms_auth_appkey,regc
-p_g24_tx_nor_pro_info_check:
-	fetch 1,mem_ms_rf_data_flag
-	branch p_g24_only_send_nor_pro_app_info_interface,blank
-	branch p_g24_send_nor_pro_app_info_interface
-	
-p_g24_tx_secret_info:
-	arg SECRET_LEN,temp
-	arg mem_ms_auth_secret,regc
-	branch p_g24_tx_nor_pro_info_check
-p_g24_tx_sn_chip_id_info:
-	arg SN_CHIP_LEN,temp
-	arg msm_ms_auth_sn,regc
-	branch p_g24_tx_nor_pro_info_check
-*/
-
-p_g24_voice_on_set:
-	call p_audio_enable
-	arg 2,temp
-	jam VOICE_START_DATA,mem_ms_nor_pro_temp_buff
-	branch p_g24_send_nor_pro_respond_info_check
-	
-p_g24_voice_off_set:
-	call p_audio_disable
-	fetch 1,mem_ms_rf_data_flag
-	branch p_g24_only_send_nor_same_pro_respond_info,blank
-	branch p_g24_send_nor_pro_same_respond_info
-
-//device info
-p_g24_tx_device_info:
-	jam ZCODE_40,mem_zcode_temp_param0
-	branch p_zcode_entrance
-// //device info
-// z_g24_tx_device_info:
-// 	fetch 1,mem_ms_rf_data_flag
-// 	branch z_g24_only_send_device_info,blank
-// 	branch z_g24_send_device_info
-
-// z_g24_only_send_device_info:
-// 	fetch 1,mem_24g_data_type
-// 	set1 NOR_PRO_BIT,pdata
-// 	store 1,mem_24g_txbuf_new
-// 	jam START_FLAG,mem_24g_txbuf_new+1
-// 	jam DEVICE_INFO_LEN,mem_24g_txbuf_new+2
-// 	jam OPCODE_GET_DEVICE_INFO,mem_24g_txbuf_new+3
-// 	jam DEVICE_INFO_LEN+NOR_PRO_HEADER_LEN,mem_24g_datalen
-// 	arg AUTH_LEN,loopcnt
-// 	arg mem_ms_auth_appkey,contr
-// 	arg mem_24g_txbuf_new+4,contw
-// 	call memcpy
-// 	branch p_g24_ms_info_set
-
-// z_g24_send_device_info:
-// 	fetch 1,mem_24g_data_type
-// 	set1 NOR_PRO_BIT,pdata
-// 	store 1,mem_ms_24g_temp_buff
-// 	jam START_FLAG,mem_ms_24g_temp_buff+1
-// 	jam DEVICE_INFO_LEN,mem_ms_24g_temp_buff+2
-// 	jam OPCODE_GET_DEVICE_INFO,mem_ms_24g_temp_buff+3
-// 	arg AUTH_LEN,loopcnt
-// 	arg mem_ms_auth_appkey,contr
-// 	arg mem_ms_24g_temp_buff+4,contw
-// 	call memcpy
-// 	call p_g24_ms_info_set
-// 	arg DEVICE_INFO_LEN+4,temp
-// 	arg mem_ms_24g_temp_buff,rega
-// 	branch p_g24_send_rf_other_data
-
-//get dpi info
-p_g24_get_dpi:
-	jam ZCODE_41,mem_zcode_temp_param0
-	branch p_zcode_entrance
-//set dpi info
-p_g24_set_dpi:
-	jam ZCODE_50,mem_zcode_temp_param0
-	branch p_zcode_entrance
-//send battery info
-p_g24_get_battery:
-	jam ZCODE_51,mem_zcode_temp_param0
-	branch p_zcode_entrance
-
-
-p_g24_get_device_type:
-	jam ZCODE_60,mem_zcode_temp_param0
-	branch p_zcode_entrance
-
-p_g24_set_key_fuction:
-	jam ZCODE_61,mem_zcode_temp_param0
-	branch p_zcode_entrance
-
-
-/*
-//temp:payload len ; regc:payload addr
-p_g24_send_nor_pro_app_info_interface:
-	copy temp,pdata
-	increase 1,pdata
-	store 1,mem_ms_24g_temp_buff+2
-	fetch 1,mem_24g_data_type
-	set1 NOR_PRO_BIT,pdata
-	store 1,mem_ms_24g_temp_buff
-	fetch 1,mem_ms_recv_ackpayload_temp+1
-	store 1,mem_ms_24g_temp_buff+1
-	fetch 1,mem_ms_recv_ackpayload_temp+3
-	store 1,mem_ms_24g_temp_buff+3
-	copy temp,loopcnt
-	copy regc,contr
-	arg mem_ms_24g_temp_buff+4,contw
-	call memcpy
-	increase 4,temp
-	arg mem_ms_24g_temp_buff,rega
-	branch p_g24_send_rf_other_data
-
-//temp:payload len ; contr:payload addr
-p_g24_only_send_nor_pro_app_info_interface:
-	copy temp,pdata
-	increase 1,pdata
-	store 1,mem_24g_txbuf_new+2
-	fetch 1,mem_24g_data_type
-	set1 NOR_PRO_BIT,pdata
-	store 1,mem_24g_txbuf_new
-	fetch 1,mem_ms_recv_ackpayload_temp+1
-	store 1,mem_24g_txbuf_new+1
-	fetch 1,mem_ms_recv_ackpayload_temp+3
-	store 1,mem_24g_txbuf_new+3
-	copy temp,loopcnt
-	copy regc,contr
-	arg mem_24g_txbuf_new+4,contw
-	call memcpy
-	increase 4,temp
-	storet 1,mem_24g_datalen
-	rtn
-*/
-//voice on  info
-p_g24_send_nor_pro_respond_info_check:
-	fetch 1,mem_24g_data_type
-	set1 NOR_PRO_BIT,pdata
-	store 1,mem_ms_24g_temp_buff
-	jam START_FLAG,mem_ms_24g_temp_buff+1
-	storet 1,mem_ms_24g_temp_buff+2
-	fetch 1,mem_ms_recv_ackpayload_temp+3
-	store 1,mem_ms_24g_temp_buff+3
-	add temp,-1,loopcnt
-	arg mem_ms_nor_pro_temp_buff,contr
-	arg mem_ms_24g_temp_buff+4,contw
-	call memcpy
-	add temp,NOR_PRO_HEADER_LEN,loopcnt
-	copy loopcnt,rega
-	arg mem_24g_txbuf_new,contw
-	fetch 1,mem_ms_rf_data_flag
-	ncall p_g24_rf_data_fii_fifo,blank
-	arg mem_ms_24g_temp_buff,contr
-	call memcpy
-	copy rega,pdata
-	store 1,mem_24g_datalen
-	rtn
-
-p_g24_rf_data_fii_fifo:
-	copy contw,regc
-	add rega,8,rega
-	call g24_transmit_rf_ctrl_clear
-	copy regc,contw
-	istore 1,contw
-	fetch 7,mem_mouse_key
-	istore 7,contw
-	rtn
-
-//voice off  info
-p_g24_send_nor_pro_same_respond_info:
-	fetch 1,mem_24g_data_type
-	set1 NOR_PRO_BIT,pdata
-	store 1,mem_ms_24g_temp_buff
-	fetch 4,mem_ms_recv_ackpayload_temp+1
-	store 4,mem_ms_24g_temp_buff+1
-	arg NOR_PRO_RES_LEN,temp
-	arg mem_ms_24g_temp_buff,rega
-	branch p_g24_send_rf_other_data
-	
-p_g24_only_send_nor_same_pro_respond_info:
-	fetch 1,mem_24g_data_type
-	set1 NOR_PRO_BIT,pdata
-	store 1,mem_24g_txbuf_new
-	fetch 4,mem_ms_recv_ackpayload_temp+1
-	store 4,mem_24g_txbuf_new+1
-	jam NOR_PRO_RES_LEN,mem_24g_datalen
-	rtn
-
-
-p_g24_ms_info_set:
-	fetch 1,mem_config_sensor_type
-	istore 1,contw
-
-	fetch 1,mem_mouse_dpi
-	istore 1,contw
-	fetch 1,mem_le_battery_level_percentage
-	istore 1,contw
-	fetch 1,mem_ms_version
-	istore 1,contw
-
-	arg 3,loopcnt
-	arg mem_mouse_b4_fuction_info,contr
-p_g24_send_device_info_loop:
-	ifetch 1,contr
-	istore 1,contw
-	increase 1,contr
-	ifetch 3,contr
-	istore 3,contw
-	loop p_g24_send_device_info_loop
-	rtn
-	// branch istore_1_contw_rtn
-
-
-//====================http send========================//
-p_g24_send_http_info_check:
-	jam ZCODE_30,mem_zcode_temp_param0
-	branch p_zcode_entrance
-
-// 	fetch 1,mem_ms_rf_data_flag
-// 	branch p_g24_only_send_http_info,blank
-// p_g24_send_rf_http_info:
-// 	fetch 1,mem_24g_data_type
-// 	set1 HTTP_BIT,pdata
-// 	store 1,mem_ms_24g_temp_buff
-// 	jam 0xff,mem_ms_24g_temp_buff+1
-// 	arg 2,temp
-// 	arg mem_ms_24g_temp_buff,rega
-// 	branch p_g24_send_rf_other_data
-// 	rtn
-// p_g24_only_send_http_info:
-// 	jam 2,mem_24g_datalen
-// 	fetch 1,mem_24g_data_type
-// 	set1 HTTP_BIT,pdata
-// 	store 1,mem_24g_txbuf_new
-// 	jam 0xff,mem_24g_txbuf_new+1
-// 	rtn
-
-
-//=================audio info tx pre==============//
-p_g24_send_audio_info_check:
-	call p_g24_audio_data_out_from_queue
-	fetch 1,mem_ms_rf_data_flag
-	branch p_g24_only_send_audio_info,blank
-p_g24_send_audio_info:
-	fetch 1,mem_24g_data_type
-	set1 AUDIO_BIT,pdata
-	store 1,mem_ms_24g_temp_buff
-	arg VOICE_QUEUE_UNIT,loopcnt
-	arg mem_queue_buf,contr
-	arg mem_ms_24g_temp_buff+1,contw
-	call memcpy
-	arg 61,temp
-	arg mem_ms_24g_temp_buff,rega
-	branch p_g24_send_rf_other_data
-
-p_g24_only_send_audio_info:
-	jam 61,mem_24g_datalen
-	fetch 1,mem_24g_data_type
-	set1 AUDIO_BIT,pdata
-	store 1,mem_24g_txbuf_new
-	arg VOICE_QUEUE_UNIT,loopcnt
-	arg mem_queue_buf,contr
-	arg mem_24g_txbuf_new+1,contw
-	branch memcpy
-
-p_g24_send_rf_other_data:
-	add temp,8,pdata
-	store 1,mem_24g_datalen
-	call g24_transmit_rf_ctrl_clear
-	store 1,mem_24g_txbuf_new
-	fetch 7,mem_mouse_key
-	store 7,mem_24g_txbuf_new+1
-	copy temp,loopcnt
-	copy rega,contr
-	arg mem_24g_txbuf_new+8,contw
-	branch memcpy
-//=======================================yc protocol patch =========================================//
-
-//=====================yc tx==============//
-p_g24_transmit_packet:
-	fetch 1,mem_24g_disable_fec1
-	nbranch p_g24_transmit_nolr,blank
-	disable encode_fec0	
-	enable encode_fec1	////lr use encode_fec3
-p_g24_transmit_nolr:
-	enable enable_white
-	enable enable_crc
-	fetch 1,mem_24g_txlen
-	iforce loopcnt
-	arg mem_24g_txpayload_new,contr
-	branch g24tr_loop
-
-p_g24_transmit_prep:
-// total length
-	fetch 1,mem_24g_datalen
-	increase 3,pdata	//hec/type/control
-	store 1,mem_24g_txlen
-//hec
-	fetch 1,mem_24g_syncword_crc8
-	store 1,mem_24g_txpayload_new
-// prepare 5bit data type , 2bit PID, 1bit NO_ACK
-	fetch 1,mem_24g_data_type
-	lshift3 pdata,pdata
-	fetcht 1,mem_24g_pid
-	and temp,0x03,temp
-	lshift temp,temp
-	ior temp,pdata
-	fetcht 1,mem_24g_no_ack
-	iadd temp,pdata
-	istore 1,contw
-// data len
-	fetch 1,mem_24g_datalen
-	istore 1,contw
-//prepare payload data
-	fetch 1,mem_24g_datalen
-	iforce loopcnt
-	arg mem_24g_txbuf_new,contr
-	call memcpy
-	branch g24_transmit_prep_next
-
-p_g24_txbuf_clear:
-	arg 10,loopcnt
-	arg mem_24g_txbuf_new,contw
-	branch memset0
-
-p_g24_read_len_pid_crc:
-//read control
-	fetch 1,mem_24g_rxbuf+1
-	store 1,mem_24g_rxdata_length
-//get crc
-	increase 1,pdata
-	arg mem_24g_rxbuf+1,contr
-	iadd contr,contr
-	ifetch 3,contr
-	store 3,mem_24g_sta_crc
-//read pid
-	fetch 1,mem_24g_rxbuf
-	rshift pdata,temp
-	and temp,0x03,temp
-	storet 1,mem_24g_sta_pid
-	rshift3 pdata,pdata
-	store 1,mem_24g_rxbuf
-	rtn
-
-//=====================yc rx==============//
-p_g24_receive_payload:
-	call g24_receive_byte
-	store 1,mem_24g_rxbuf	//device id
-	bmark1 mark_24g_rxmode,p_g24_receive_skip
-	fetch 1,mem_24g_rxbuf
-	rshift3 pdata,pdata
-	fetcht 1,mem_24g_data_type
-	icompare bits_data,temp
-	nbranch g24_type_error,true
-p_g24_receive_skip:
-	call g24_receive_byte
-	istore 1,contw
-	sub pdata,0x1f,null
-	nbranch g24_len_over_error,positive	//max payload: 31byte
-	copy pdata,loopcnt
-	branch g24rx_nopayload,zero
-	branch g24rx_loop
-
-//=======================================audio demo patch =========================================//
-ifdef AUDIO_DEMO
-
-p_mouse_idle:
-	call mouse_idle+1
-	call p_mouse_dpi_level_check
-	call p_mouse_fuction_key
-	call p_voice_adpcm_enter_queue
-	call p_mouse_g24_hop_set
-	branch p_le_audio_data_out_from_queue
-
-p_mouse_fuction_key:
-	jam 0,mem_customer_key
-	// fetchr rega,1,mem_mouse_fuction_key
-	call p_mouse_audio_key_scan
-	call p_mouse_one_pullup_key_scan
-	call p_mouse_transmit_key_scan
-	// copy rega,pdata
-	// storer rega,1,mem_mouse_fuction_key
-	branch p_mouse_bb_event_10ms_timer
-
-
-p_mouse_dpi_level_check:
-	fetch 1,mem_mouse_dpi
-	fetcht 1,mem_mouse_last_dpi
-	isub temp,null
-	rtn zero
-	store 1,mem_mouse_last_dpi
-	jam AUTO_IN,mem_mouse_dpi_type
-	fetch 1,mem_device_flag
-	beq MODE_24G_DEVICE,p_mouse_g24_tx_dpi_data
-	branch p_ms_le_tx_dpi_info
-
-p_mouse_g24_hop_set:
-	fetch 1,mem_device_flag
-	rtnne MODE_24G_DEVICE
-	fetch 1,mem_voice_queue_count
-	branch p_mouse_default_hop_set,blank
-p_mouse_audio_hop_set:
-	jam 0x05,mem_24g_fast_hop_count
-	rtn
-
-p_mouse_default_hop_set:
-	jam 0x0f,mem_24g_fast_hop_count
-	rtn
-
-p_mouse_bb_event_10ms_timer:
-	arg app_ms_key_scan_timer,queue
-	call timer_check
-	nrtn blank
-	call p_mouse_audio_key_long_press_check
-	call p_mouse_one_pullup_key_long_press_check
-	call p_mouse_transmit_key_long_press_check
-	call p_app_audio_enable_set
-p_mouse_bb_event_10ms_timer_init:
-	arg app_ms_key_scan_timer,queue
-	setarg 16
-	branch timer_init
-
-
-p_app_audio_enable_set:
-	fetch 1,mem_ms_audio_enable_timer
-	rtn blank
-	increase -1,pdata
-	store 1,mem_ms_audio_enable_timer
-	nrtn blank
-p_audio_data_get_enable:
-	jam 1,mem_voice_enable
-	arg mem_voice_raw_start,contw
-	arg AUDIO_BUF_LEN,loopcnt
-	branch clear_mem
-
-//======================================key scan=================================//
-
-//=====================audio key==============//
-p_mouse_audio_key_scan:
-	fetch 1,mem_ms_audio_key_gpio
-	rtneq GPIO_DISABLE
-	jam MOUSE_AUDIO_KEY,mem_mouse_key_temp_patch
-	fetcht 1,mem_ms_audio_key_gpio
-	call p_mouse_audio_key_check
-	store 1,mem_ms_audio_key_press_status
-	call mouse_matrix_public_gpio_reset
-	fetch 1,mem_ms_audio_key_press_status
-	beq 0,p_audio_key_up
-	beq 7,p_audio_key_down
-	rtn
-
-p_mouse_audio_key_check:
-	call gpio_get_bit
-	fetcht 1,mem_matrix_public_gpio
-	branch p_mouse_check_audio_button_connect_gnd,true
-	fetcht 1,mem_matrix_public_gpio
-	call gpio_out_active
-	fetcht 1,mem_ms_audio_key_gpio
-	fetch 1,mem_ms_audio_key_press_status
-	branch mouse_check_key_connect_gnd_new
-
-p_mouse_check_audio_button_connect_gnd:
-	fetch 1,mem_ms_audio_key_press_status
-	branch mouse_check_key_connect_gnd_new
-
-p_audio_key_down:
-	fetch 1,mem_ms_audio_key_state
-	rtneq KEY_DOWN
-	jam KEY_DOWN,mem_ms_audio_key_state
-	fetch 5,mem_mouse_b4_fuction_info
-p_app_key_replace:
-	store 5,mem_mouse_key_fuction_info_temp
-	fetch 1,mem_mouse_key_fuction_info_temp
-	beq MS_KEY,p_mouse_key_value_replace
-	beq KB_KEY,p_keyboard_key_value_replace
-	rtn
-
-p_keyboard_key_value_replace:
-	fetch 3,mem_mouse_key_fuction_info_temp+2
-	store 3,mem_customer_key_press_init+1
-	branch mouse_customerkey_press
-
-p_mouse_key_value_replace:
-	fetchr rega,1,mem_mouse_fuction_key
-	fetch 1,mem_mouse_key_fuction_info_temp+2
-	beq DPI_VALUE,p_mouse_dpi_process_new
-	ior rega,rega
-	storer rega,1,mem_mouse_fuction_key
-	rtn
-p_mouse_dpi_process_new:
-	storer rega,1,mem_mouse_fuction_key
-	call mouse_dpi_process
-	fetchr rega,1,mem_mouse_fuction_key
-	rtn
-
-p_app_key_clear:
-	fetch 1,mem_mouse_key_fuction_info_temp+2
-	rtneq DPI_VALUE
-	invert pdata,pdata
-	iand rega,rega
-	storer rega,1,mem_mouse_fuction_key
-	rtn
-
-p_audio_key_up:
-	fetch 1,mem_ms_audio_key_state
-	rtneq KEY_UP
-	jam KEY_UP,mem_ms_audio_key_state
-	fetch 5,mem_mouse_b4_fuction_info
-	store 5,mem_mouse_key_fuction_info_temp
-	fetchr rega,1,mem_mouse_fuction_key
-	fetch 1,mem_mouse_key_fuction_info_temp
-	beq MS_KEY,p_app_key_clear
-	beq KB_KEY,mouse_customerkey_release
-	jam 0,mem_ms_audio_key_press_count
-	jam SIGNLE_PRESS,mem_ms_tx_pro_key_val
-	fetch 2,mem_ms_long_press_key_index
-	isolate1 AUDIO_KEY_BIT,pdata
-	call p_ms_audio_key_long_release,true
-	arg AUDIO_KEY_BIT,queue
-	call p_ms_long_press_key_index_disable
-	branch p_mouse_audio_key_state_enable
-
-p_ms_audio_key_long_release:
-	jam LONG_RELEASE,mem_ms_tx_pro_key_val
-	rtn
-
-p_mouse_audio_key_long_press_check:
-	fetch 1,mem_ms_audio_key_state
-	rtneq KEY_UP
-	fetch 1,mem_mouse_b4_fuction_info
-	// rtneq MS_KEY
-	// rtneq KB_KEY
-	rtnne APP_KEY
-	fetch 2,mem_ms_long_press_key_index
-	rtnbit1 AUDIO_KEY_BIT
-	fetch 1,mem_ms_audio_key_press_count
-	increase 1,pdata
-	store 1,mem_ms_audio_key_press_count
-	sub pdata,KEY_LONG_PRESS,null
-	rtn positive
-	jam LONG_PRESS,mem_ms_tx_pro_key_val
-	arg AUDIO_KEY_BIT,queue
-	call p_ms_long_press_key_index_enable
-p_mouse_audio_key_state_enable:
-	fetch 1,mem_mouse_pair_flag
-	rtn blank
-	fetch 1,mem_device_flag
-	beq MODE_24G_DEVICE,p_ms_tx_pro_key_flag_enable
-	// fetcht 1,mem_mouse_b4_fuction_info+3
-	// jam OPCODE_VOICE_KEY,mem_ms_recv_ackpayload_temp
-	// branch p_ms_le_tx_key_state_interface
-p_le_audio_app_key_set:
-	fetch 1,mem_ms_tx_pro_key_val
-	beq LONG_PRESS,p_le_audio_app_key_long_set
-	beq LONG_RELEASE,p_le_audio_app_key_long_set
-	beq SIGNLE_PRESS,p_le_audio_key_single_set
-	rtn
-p_le_audio_app_key_long_set:
-	fetcht 1,mem_mouse_b4_fuction_info+3
-	branch p_ms_le_tx_key_state_interface
-p_le_audio_key_single_set:
-	fetcht 1,mem_mouse_b4_fuction_info+2
-	branch p_ms_le_tx_key_state_interface
-
-
-
-//=====================one pullup key==============//
-p_mouse_one_pullup_key_scan:
-	fetch 1,mem_ms_one_pullup_key_gpio
-	rtneq GPIO_DISABLE
-	jam MOUSE_ONE_PULLUP_KEY,mem_mouse_key_temp_patch
-	fetcht 1,mem_ms_one_pullup_key_gpio
-	call p_mouse_one_pullup_key_check
-	store 1,mem_ms_one_pullup_key_press_status
-	call mouse_matrix_public_gpio_reset
-	fetch 1,mem_ms_one_pullup_key_press_status
-	beq 0,p_one_pullup_key_up
-	beq 7,p_one_pullup_key_down
-	rtn
-
-p_mouse_one_pullup_key_check:
-	call gpio_get_bit
-	fetcht 1,mem_matrix_public_gpio
-	branch p_mouse_check_one_pullup_button_connect_gnd,true
-	fetcht 1,mem_matrix_public_gpio
-	call gpio_out_active
-	fetcht 1,mem_ms_one_pullup_key_gpio
-	fetch 1,mem_ms_one_pullup_key_press_status
-	branch mouse_check_key_connect_gnd_new
-
-p_mouse_check_one_pullup_button_connect_gnd:
-	fetch 1,mem_ms_one_pullup_key_press_status
-	branch mouse_check_key_connect_gnd_new
-
-p_one_pullup_key_down:
-	fetch 1,mem_ms_one_pullup_key_state
-	rtneq KEY_DOWN
-	jam KEY_DOWN,mem_ms_one_pullup_key_state
-	fetch 5,mem_mouse_dpi_fuction_info
-	branch p_app_key_replace
-
-p_one_pullup_key_up:
-	fetch 1,mem_ms_one_pullup_key_state
-	rtneq KEY_UP
-	jam KEY_UP,mem_ms_one_pullup_key_state
-	fetch 5,mem_mouse_dpi_fuction_info
-	store 5,mem_mouse_key_fuction_info_temp
-	fetchr rega,1,mem_mouse_fuction_key
-	fetch 1,mem_mouse_key_fuction_info_temp
-	beq MS_KEY,p_app_key_clear
-	beq KB_KEY,mouse_customerkey_release
-	jam 0,mem_ms_one_pullup_key_press_count
-	jam SIGNLE_PRESS,mem_ms_tx_pro_key_val
-	fetch 2,mem_ms_long_press_key_index
-	isolate1 ONE_PULLUP_KEY_BIT,pdata
-	call p_ms_one_pullup_key_long_release,true
-	arg ONE_PULLUP_KEY_BIT,queue
-	call p_ms_long_press_key_index_disable
-	branch p_mouse_one_pullup_key_state_enable
-
-p_ms_one_pullup_key_long_release:
-	jam LONG_RELEASE,mem_ms_tx_pro_key_val
-	rtn
-
-p_mouse_one_pullup_key_long_press_check:
-	fetch 1,mem_ms_one_pullup_key_state
-	rtneq KEY_UP
-	fetch 1,mem_mouse_dpi_fuction_info
-	// rtneq MS_KEY
-	// rtneq KB_KEY
-	rtnne APP_KEY
-	fetch 2,mem_ms_long_press_key_index
-	rtnbit1 ONE_PULLUP_KEY_BIT
-	fetch 1,mem_ms_one_pullup_key_press_count
-	increase 1,pdata
-	store 1,mem_ms_one_pullup_key_press_count
-	sub pdata,KEY_LONG_PRESS,null
-	rtn positive
-	jam LONG_PRESS,mem_ms_tx_pro_key_val
-	arg ONE_PULLUP_KEY_BIT,queue
-	call p_ms_long_press_key_index_enable
-p_mouse_one_pullup_key_state_enable:
-	fetch 1,mem_mouse_pair_flag
-	rtn blank
-	fetch 1,mem_device_flag
-	beq MODE_24G_DEVICE,p_ms_tx_pro_key_flag_enable
-	// jam OPCODE_ONE_PULLUP_KEY,mem_ms_recv_ackpayload_temp
-	// fetcht 1,mem_mouse_dpi_fuction_info+3
-	// branch p_ms_le_tx_key_state_interface
-p_le_one_pullup_app_key_set:
-	fetch 1,mem_ms_tx_pro_key_val
-	beq LONG_PRESS,p_le_one_pullup_app_key_long_set
-	beq LONG_RELEASE,p_le_one_pullup_app_key_long_set
-	beq SIGNLE_PRESS,p_le_one_pullup_key_single_set
-	rtn
-p_le_one_pullup_app_key_long_set:
-	fetcht 1,mem_mouse_dpi_fuction_info+3
-	branch p_ms_le_tx_key_state_interface
-p_le_one_pullup_key_single_set:
-	fetcht 1,mem_mouse_dpi_fuction_info+2
-	branch p_ms_le_tx_key_state_interface
-
-
-
-//=====================transmit key==============//
-p_mouse_transmit_key_scan:
-	fetch 1,mem_ms_transmit_key_gpio
-	rtneq GPIO_DISABLE
-	jam MOUSE_TRANSMIT_KEY,mem_mouse_key_temp_patch
-	fetcht 1,mem_ms_transmit_key_gpio
-	call p_mouse_transmit_key_check
-	store 1,mem_ms_transmit_key_press_status
-	call mouse_matrix_public_gpio_reset
-	fetch 1,mem_ms_transmit_key_press_status
-	beq 0,p_transmit_key_up
-	beq 7,p_transmit_key_down
-	rtn
-
-p_mouse_transmit_key_check:
-	call gpio_get_bit
-	fetcht 1,mem_matrix_public_gpio
-	branch p_mouse_check_transmit_button_connect_gnd,true
-	fetcht 1,mem_matrix_public_gpio
-	call gpio_out_active
-	fetcht 1,mem_ms_transmit_key_gpio
-	fetch 1,mem_ms_transmit_key_press_status
-	branch mouse_check_key_connect_gnd_new
-
-p_mouse_check_transmit_button_connect_gnd:
-	fetch 1,mem_ms_transmit_key_press_status
-	branch mouse_check_key_connect_gnd_new
-	
-p_transmit_key_down:
-	fetch 1,mem_ms_transmit_key_state
-	rtneq KEY_DOWN
-	jam KEY_DOWN,mem_ms_transmit_key_state
-	fetch 5,mem_mouse_b5_fuction_info
-	branch p_app_key_replace
-
-p_transmit_key_up:
-	fetch 1,mem_ms_transmit_key_state
-	rtneq KEY_UP
-	jam KEY_UP,mem_ms_transmit_key_state
-	fetch 5,mem_mouse_b5_fuction_info
-	store 5,mem_mouse_key_fuction_info_temp
-	fetchr rega,1,mem_mouse_fuction_key	
-	fetch 1,mem_mouse_key_fuction_info_temp
-	beq MS_KEY,p_app_key_clear
-	beq KB_KEY,mouse_customerkey_release
-	jam 0,mem_ms_transmit_key_press_count
-	jam SIGNLE_PRESS,mem_ms_tx_pro_key_val
-	fetch 2,mem_ms_long_press_key_index
-	isolate1 TRANSMIT_KEY_BIT,pdata
-	call p_ms_transmit_key_long_release,true
-	arg TRANSMIT_KEY_BIT,queue
-	call p_ms_long_press_key_index_disable
-	branch p_mouse_transmit_key_state_enable
-
-p_ms_transmit_key_long_release:
-	jam LONG_RELEASE,mem_ms_tx_pro_key_val
-	rtn
-
-p_mouse_transmit_key_long_press_check:
-	fetch 1,mem_ms_transmit_key_state
-	rtneq KEY_UP
-	fetch 1,mem_mouse_b5_fuction_info
-	// rtneq MS_KEY
-	// rtneq KB_KEY
-	rtnne APP_KEY
-	fetch 2,mem_ms_long_press_key_index
-	rtnbit1 TRANSMIT_KEY_BIT
-	fetch 1,mem_ms_transmit_key_press_count
-	increase 1,pdata
-	store 1,mem_ms_transmit_key_press_count
-	sub pdata,KEY_LONG_PRESS,null
-	rtn positive
-	jam LONG_PRESS,mem_ms_tx_pro_key_val
-	arg TRANSMIT_KEY_BIT,queue
-	call p_ms_long_press_key_index_enable
-p_mouse_transmit_key_state_enable:
-	fetch 1,mem_mouse_pair_flag
-	rtn blank
-	fetch 1,mem_device_flag
-	beq MODE_24G_DEVICE,p_ms_tx_pro_key_flag_enable
-	// jam OPCODE_TRANSMIT_KEY,mem_ms_recv_ackpayload_temp
-	// fetcht 1,mem_mouse_b5_fuction_info+3
-	// branch p_ms_le_tx_key_state_interface
-p_le_transmit_app_key_set:
-	fetch 1,mem_ms_tx_pro_key_val
-	beq LONG_PRESS,p_le_transmit_app_key_long_set
-	beq LONG_RELEASE,p_le_transmit_app_key_long_set
-	beq SIGNLE_PRESS,p_le_transmit_key_single_set
-	rtn
-p_le_transmit_app_key_long_set:
-	fetcht 1,mem_mouse_b5_fuction_info+3
-	branch p_ms_le_tx_key_state_interface
-p_le_transmit_key_single_set:
-	fetcht 1,mem_mouse_b5_fuction_info+2
-	branch p_ms_le_tx_key_state_interface
-
-//=====================audio config==============//
-p_audio_disable:
-	fetch 1,mem_ms_audio_enable_flag
-	rtn blank
-	jam 0,mem_ms_audio_enable_flag
-	jam 1,mem_lpm_mode
-	jam 0,mem_voice_enable
-	jam 0,mem_adc_dma_enable
-	jam 0x0f,mem_24g_fast_hop_count
-	jam 0,mem_voice_queue_count
-	jam 0,core_sadc_ctrl
-	jam ADC_BATTERY,mem_ms_adc_mode
-	branch p_ms_updata_connect_param_req
-
-p_audio_enable:
-	fetch 1,mem_ms_audio_enable_flag
-	nrtn blank
-	jam 1,mem_ms_audio_enable_flag
-	jam 0,mem_lpm_mode
-	jam 2,mem_ms_audio_enable_timer
-p_audio_enable_config:
-	jam 0,0x8074
-	jam 0,0x8076
-	call p_voice_updata_connect_param_req
-	call p_voice_queue_init
-	// branch p_audio_init
-p_audio_init:
-	call sadc_calibration
-	jam 0x00,mem_adc_channel//gpio9
-	jam 1,mem_adc_clkdiv
-	jam 1,mem_adc_dma_enable
-	jam ADC_AUDIO,mem_ms_adc_mode
-	fetch 2,mem_adc_audio_saddr_ptr
-	store 2,mem_adc_dma_rptr	
-	branch p_enable_adc
-
-p_enable_adc:
-	fetch 1,mem_ms_adc_mode
-ifdef ADC
-	beq ADC_BATTERY,p_enable_adc_battery
-endif
-	beq ADC_AUDIO,p_enable_adc_audio
-	rtn
-
-p_enable_adc_battery:
-	jam 0x00,0x8ac6
-	jam 0x30,0x8ac7
-	jam 0x09,mem_adc_channel
-	jam 0x0a,mem_adc_clkdiv
-	branch enable_adc+1
-
-p_enable_adc_audio:
-	jam 0x1b,0x8ac6	//micbias enable
-	// jam 0x7b,0x8ac7	//micbias gain control
-	jam 0x1f,0x8ac7	//micbias gain control
-	call sadc_cal_write
-	fetch 1,core_gpadc_cfg1
-	set0 7,pdata
-	store 1,core_gpadc_cfg1
-	jam 0x70,core_gpadc_ctrl	//adc ouput voltage set
-	jam 0x43,core_gpadc_cfg0	
-	jam 0x0c,core_gpadc_cfg3	//vol from channel
-	jam 0xef,core_gpadc_cfg2	//disable write
-	call sadc_channel
-	fetch 1,mem_adc_clkdiv
-	store 1,core_sadc_clkdiv
-	nop 3000
-	call p_sadc_read
-	jam 0,core_sadc_clkdiv
-	branch p_sadc_audio_dma
-
-p_sadc_audio_dma:
-	fetch 1,mem_adc_dma_enable
-	rtn blank	
-	fetch 1,core_gpadc_cfg1
-	set1 7,pdata
-	store 1,core_gpadc_cfg1
-	fetch 1,mem_adc_clkdiv
-	store 1,core_sadc_clkdiv
-	fetch 2,mem_adc_audio_saddr_ptr
-	store 2,core_sadc_saddr
-	fetch 2,mem_adc_audio_eaddr_ptr
-	store 2,core_sadc_eaddr
-	jam 0x8b,core_sadc_ctrl
-	nop 3000
-	jam 0x83,core_sadc_ctrl
-	jam 2,core_sadc_clkdiv
-	rtn
-
-p_sadc_calibration:
-	rtn wake
-	jam 0x77,core_gpadc_ctrl
-	jam 0xc9,core_gpadc_cfg0
-	jam 0x00,core_gpadc_cfg3
-	fetch 1,mem_adc_clkdiv
-	store 1,core_sadc_clkdiv
-	call p_sadc_read
-	fetcht 2,core_sadc_data
-	branch sadc_calibration+11
-
-p_sadc_read:
-	jam 0x83,core_sadc_ctrl
-	fetch 1,mem_ms_adc_mode
-	ncall p_sadc_ctrl_set,blank
-	call sar_adc_read_wait
-	jam 0x80,core_sadc_ctrl
-	rtn
-
-p_sadc_ctrl_set:
-	jam 0x8b,core_sadc_ctrl
-	rtn
-
-//================audio data enter queue==============//
-p_voice_adpcm_enter_queue:
-	fetch 1,mem_voice_enable
-	rtn blank
-	call p_audio_get_len
-	sub pdata,AUDIO_BUF_UINT,null
-	rtn positive
-p_voice_enter_queue:
-	fetch 1,mem_voice_queue_count
-	arg VOICE_QUEUE_MAX_COUNT,temp
-	increase -1,temp
-	isub temp,null
-//	rtn positive
-	branch p_audio_update_adc_rptr,positive
-ifdef LOG_RAW
-	call p_print_audio_raw_data
-endif
-	call p_audio_adpcm_encode
-	call p_audio_update_adc_rptr
-
-	setarg mem_voice_adpcm_buf_start
-	call rec_queue_enter_config
-	arg mem_adpcm,contr
-	arg VOICE_QUEUE_UNIT,loopcnt
-	call rec_enter_queue
-	fetch 1,mem_voice_queue_count
-	increase 1,pdata
-	store 1,mem_voice_queue_count
-	rtn
-//	branch p_voice_adpcm_enter_queue
-
-/*********************************************************************************
- * Description  : get audio data len
- * Parameters  : none
- * Returns         : len= wptr-rptr>0 or wptr<rptr-->len=max_buff-(rptr-wptr)
-**********************************************************************************/
-p_audio_get_len:
-	fetch 2,core_adc_dma_wptr
-	copy pdata,rega
-	fetcht 2,mem_adc_dma_rptr
-	isub temp,pdata
-	nbranch p_audio_get_len_wptr_over,positive
-	rtn
-
-p_audio_get_len_wptr_over:
-	copy rega,temp
-	fetch 2,mem_adc_dma_rptr
-	isub temp,temp
-	setarg AUDIO_BUF_LEN
-	isub temp,pdata
-	rtn
-
-p_audio_update_adc_rptr:
-	fetch 2,mem_adc_dma_rptr
-	increase AUDIO_BUF_UINT,pdata
-	arg mem_voice_raw_end,temp
-	increase 1,temp
-	isub temp,null
-	branch p_audio_adc_dma_ptr_over,zero
-	store 2,mem_adc_dma_rptr
-	rtn
-
-p_audio_adc_dma_ptr_over:	
-	setarg mem_voice_raw_start
-	store 2,mem_adc_dma_rptr
-	rtn
-
-
-p_le_audio_data_out_from_queue:
-	fetch 1,mem_device_flag
-	rtneq MODE_24G_DEVICE
-	fetch 1,mem_voice_enable
-	rtn blank
-	fetch 1,mem_voice_queue_count
-	rtn blank
-	call le_fifo_check_nearly_full
-	nrtn blank
-	call p_voice_out_queue
-ifdef LOG_ENCODE
-	call p_print_audio_encode_data
-endif
-	branch p_ms_le_tx_audio_data
-//	branch p_le_audio_data_out_from_queue
-
-/*
- * @brief: get audio data buff addr
- * @param: none
- * @return: pdata: mem_queue_buf ptr
- */
-p_voice_out_queue:
-	setarg mem_voice_adpcm_buf_start
-	call rec_queue_out_config
-	arg VOICE_QUEUE_UNIT,loopcnt
-	arg mem_queue_buf,contw
-	call rec_out_queue
-	fetch 1,mem_voice_queue_count
-	increase -1,pdata
-	store 1,mem_voice_queue_count
-	setarg mem_queue_buf
-	rtn
-
-
-p_voice_queue_init:
-	setarg mem_voice_adpcm_buf_start
-	arg VOICE_QUEUE_SIZE,temp
-	call rec_queue_init_config
-	jam 0,mem_voice_queue_count
-	rtn
-
-
-
-
-
-
-
-//======================audio adpcm========================//
-p_audio_adpcm_encode:	
-	jam 120,mem_ad_in_numSamples1
-	fetch 2,mem_adc_dma_rptr
-	store 2,mem_ad_in_ptr1
-	setarg mem_adpcm
-	store 2,mem_ad_out_ptr1
-p_adpcm_encode:
-	fetch 4,mem_ad_state_valpred1
-	store 4,mem_ad_valpred1
-	
-	fetch 4,mem_ad_state_index1
-	store 4,mem_ad_index1
-	
-	fetch 1,mem_ad_index1		// step = stepsizeTable[index];  
-	lshift2 pdata,pdata
-	arg mem_ad_stepsizeTable1,temp
-	iadd temp,temp
-	ifetch 4,temp
-	store 4,mem_ad_step1
-	
-	jam 1,mem_ad_bufferstep1
-p_adpcm_encode_loop:
-	call p_adpcm_get_val_from_inp 	// val = *inp++;
-
-	fetch 4,mem_ad_val1			// diff = val - valpred;
-	fetcht 4,mem_ad_valpred1
-	isub temp,pdata
-	store 4,mem_ad_diff1
-	
-	call p_adpcm_encode_cal_delta	//sign = (diff < 0) ? 8 : 0;
-	call p_adpcm_set_diff_by_sign	//if ( sign ) diff = (-diff);
-
-	jam 0,mem_ad_delta1			//delta = 0;
-
-	fetch 4,mem_ad_step1 			//vpdiff = (step >> 3);
-	rshift3 pdata,pdata
-	store 4,mem_ad_vpdiff1
-
-	call p_check_diff_big_step1  		//if ( diff >= step ) {  delta = 4;
-
-	fetch 4,mem_ad_step1			//step >>= 1;
-	rshift pdata,pdata
-	store 4,mem_ad_step1
-
-	call p_check_diff_big_step2		//if ( diff >= step  ) {    delta |= 2;
-
-	fetch 4,mem_ad_step1			//step >>= 1;
-	rshift pdata,pdata
-	store 4,mem_ad_step1
-
-	call p_check_diff_big_step3		//if ( diff >= step ) {delta |= 1;
-
-	call p_check_sign_deal1			//	if ( sign )
-
-	call p_adpcm_check_valpred_more_32767 //if ( valpred > 32767 )
-
-	fetch 1,mem_ad_delta1			//delta |= sign;
-	fetcht 1,mem_ad_sign1
-	ior temp,pdata
-	store 1,mem_ad_delta1
-
-	fetch 1,mem_ad_delta1			//index += indexTable[delta];
-	arg mem_ad_indexTable1,temp
-	iadd temp,temp
-	ifetch 1,temp
-	call rec_char_2_int32
-	fetcht 4,mem_ad_index1
-	iadd temp,pdata
-	store 4,mem_ad_index1
-
-	call p_adpcm_check_index_less_0		//if ( index < 0 ) index = 0;
-	call p_adpcm_check_index_big_88		//if ( index > 88 ) index = 88;
-
-	fetch 4,mem_ad_index1			// step = stepsizeTable[index];  
-	lshift2 pdata,pdata
-	arg mem_ad_stepsizeTable1,temp
-	iadd temp,temp
-	ifetch 4,temp
-	store 4,mem_ad_step1
-
-	call p_adpcm_check_bufferstep		//if(bufferstep){
-
-	fetch 1,mem_ad_bufferstep1		//bufferstep = !bufferstep;
-	arg 0x01,temp
-	ixor temp,pdata
-	store 1,mem_ad_bufferstep1
-
-	fetch 1,mem_ad_in_numSamples1
-	increase -1,pdata
-	store 1,mem_ad_in_numSamples1
-	nbranch p_adpcm_encode_loop, blank
-
-
-	fetch 1,mem_ad_bufferstep1
-	call p_adpcm_set_bufferstep_to_outp,blank
-
-	fetch 4,mem_ad_valpred1
-	store 4,mem_ad_state_valpred1
-
-	fetch 4,mem_ad_index1
-	store 4,mem_ad_state_index1
-	rtn
-
-//pdata :diff
-p_adpcm_encode_cal_delta:
-	fetch 4,mem_ad_diff1
-	bbit1 31,p_adpcm_encode_cal_smaller_zero
-	setarg 0
-	store 1,mem_ad_sign1
-	rtn
-
-p_adpcm_encode_cal_smaller_zero:
-	setarg 8
-	store 1,mem_ad_sign1
-	rtn
-
-p_adpcm_set_diff_by_sign:
-	fetch 1,mem_ad_sign1
-	nbranch p_adpcm_diff_negation,blank
-	rtn
-
-p_adpcm_diff_negation:
-	fetch 4,mem_ad_diff1
-	sub pdata,0,pdata
-	store 4,mem_ad_diff1
-	rtn
-
-p_check_diff_big_step1:
-	fetch 4,mem_ad_diff1
-	fetcht 4,mem_ad_step1
-	isub temp,pdata
-	rtnbit1 31
-	jam 4,mem_ad_delta1
-p_check_diff_big_common:
-	fetch 4,mem_ad_diff1
-	fetcht 4,mem_ad_step1
-	isub temp,pdata
-	store 4,mem_ad_diff1
-p_check_diff_big_common_next:
-	fetch 4,mem_ad_vpdiff1
-	fetcht 4,mem_ad_step1
-	iadd temp,pdata
-	store 4,mem_ad_vpdiff1
-	rtn
-
-p_check_diff_big_step2:
-	fetch 4,mem_ad_diff1
-	fetcht 4,mem_ad_step1
-	isub temp,pdata
-	rtnbit1 31
-	fetch 1,mem_ad_delta1
-	or pdata,2,pdata
-	store 1,mem_ad_delta1
-	branch p_check_diff_big_common
-
-
-p_check_diff_big_step3:
-	fetch 4,mem_ad_diff1
-	fetcht 4,mem_ad_step1
-	isub temp,pdata
-	rtnbit1 31
-	fetch 1,mem_ad_delta1
-	or pdata,1,pdata
-	store 1,mem_ad_delta1
-	branch p_check_diff_big_common_next
-
-
-p_check_sign_deal1:
-	fetch 1,mem_ad_sign1
-	branch p_valpred_add_vpdiff,blank
-p_valpred_sub_vpdiff:
-	fetch 4,mem_ad_valpred1
-	fetcht 4,mem_ad_vpdiff1
-	isub temp,pdata
-p_valpred1_store:
-	store 4,mem_ad_valpred1
-	rtn
-
-p_valpred_add_vpdiff:
-	fetch 4,mem_ad_valpred1
-	fetcht 4,mem_ad_vpdiff1
-	iadd temp,pdata
-	branch p_valpred1_store
-
-p_adpcm_check_valpred_more_32767:
-	fetch 4,mem_ad_valpred1
-	arg 32767,temp
-	isub temp,pdata
-	bbit0 31,p_adpcm_valpred_more_32767
-p_adpcm_check_valpred_less_f32767:	
-	fetch 4,mem_ad_valpred1
-	arg -32767,temp
-	isub temp,pdata
-	bbit1 31,p_adpcm_valpred_less_f32767
-	rtn
-
-p_adpcm_valpred_more_32767:
-	setarg 32767
-	branch p_valpred1_store
-p_adpcm_valpred_less_f32767:
-	setarg -32767
-	branch p_valpred1_store
-
-p_adpcm_check_index_less_0:
-	fetch 4,mem_ad_index1
-	arg 0,temp
-	isub temp,pdata
-	bbit1 31,p_adpcm_set_0_index
-	rtn
-
-p_adpcm_check_index_big_88:
-	fetch 4,mem_ad_index1
-	arg 88,temp
-	isub temp,pdata
-	bbit0 31,p_adpcm_set_88_index
-	rtn
-
-p_adpcm_set_0_index:
-	setarg 0
-p_adpcm_store_index1:
-	store 4,mem_ad_index1
-	rtn
-
-p_adpcm_set_88_index:
-	setarg 88
-	branch p_adpcm_store_index1
-
-p_adpcm_check_bufferstep:
-	fetch 1,mem_ad_bufferstep1
-	branch p_adpcm_bufferstep_eque_0,blank
-p_adpcm_bufferstep_neque_0:
-	fetch 1,mem_ad_delta1
-	and pdata,0x0f,pdata
-	store 4,mem_ad_outputbuffer1	
-	rtn
-
-//*outp++=((delta<<4)&0xf0)|outputbuffer
-p_adpcm_bufferstep_eque_0:
-	fetch 1,mem_ad_delta1
-	lshift4,pdata,pdata
-	and pdata,0xf0,pdata
-	fetcht 4,mem_ad_outputbuffer1
-	ior temp,pdata
-	fetcht 2,mem_ad_out_ptr1
-	istore 1,temp	
-	increase 1,temp
-	storet 2,mem_ad_out_ptr1
-	rtn
-
-p_adpcm_set_bufferstep_to_outp:
-	fetch 4,mem_ad_outputbuffer1
-	fetcht 2,mem_ad_out_ptr1
-	istore 1,temp
-	increase 1,temp
-	storet 2,mem_ad_out_ptr1
-	rtn
-
-//val = *inp++;
-//val: int ,4 byte
-//inp:shourt int ,2byte
-p_adpcm_get_val_from_inp:	
-	fetcht 2,mem_ad_in_ptr1
-	ifetch 2,temp
-	increase 2,temp
-	storet 2,mem_ad_in_ptr1
-	call rec_int16_2_int32
-	store 4,mem_ad_val1
-	rtn
-
-
-endif
-
-
-//=======================================log patch================================================//
-ifdef UART_LOG
-p_app_uarta_init:
-	fetch 1,core_uart_ctrl
-	set0 BIT_UART_CONTROL_ENABLE,pdata
-	store 1,core_uart_ctrl
-	fetch 8,mem_app_uart_rx_buff_sptr
-	call uarta_init_dma_mem
-	fetch uart_baud_len,mem_app_uart_baud_rate
-	call uarta_init_baud_rate
-	call uart_clock_select_main_freq_crystal
-	fetch 1,mem_app_uart_tx_gpio
-	arg gpcfg_uart_txd,temp
-	call gpio_config_function_int
-	fetch 1,mem_app_uart_rx_gpio
-	arg gpcfg_uart_rxd|gpcfg_pullup,temp
-	call gpio_config_function_int
-	arg FUN_UART_CONTROL_ENABLE|FUN_UART_CONTROL_SETTING_RATE_BAUD,temp
-	storet 1,core_uart_ctrl
-	rtn
-
-//input: 1 byte hex @pdata  
-//output: 4 byte  '0','x', ASCII,ASCII, @pdata
-hex2ascii:
-	rshift4 pdata,rega  //high 4bit in rega
-	and_into 0x0f,pdata
-	call hex2ascii_half_byte
-	copy pdata,regb
-	copy rega,pdata
-	call hex2ascii_half_byte
-	lshift8 regb,regb
-	iadd regb,pdata
-//	lshift16 pdata,pdata
-//	arg 0x7830,regb   //0x
-//	iadd regb,pdata
-	rtn
-	
-//input: 1 byte hex @pdata  
-//output: 4 byte  '0','x', ASCII,ASCII, @pdata
-hex2ascii_half_byte:
-	arg 0xa,temp
-	isub temp,temp
-	nbranch hex2ascii_half_byte_numberic,positive
-	setarg 0x41  // A
-	iadd temp,pdata
-	rtn
-hex2ascii_half_byte_numberic:
-	arg 0x30,temp
-	iadd temp,pdata
-	rtn
-
-//input: loopcnt--length,regc--data ptr	
-log_bytes:
-	copy loopcnt,pdata
-	branch log_len0,blank
-log_bytes_loop:
-	ifetch 1,regc
-	increase 1,regc
-	call log_byte
-	call log_space
-	loop log_bytes_loop
-uart_wait:
-	fetch 1,core_uart_status
-	bbit1 uart_status_tx_busy,uart_wait
-//	nop 12000
-	rtn
-
-//input 1byte @pdata
-log_byte:
-	call uarta_prepare_tx
-	//call hex2ascii
-//	istore 4,contu	//0x
-	//istore 2,contwu
-	istore 1,contwu
-	branch uarta_send
-
-log_len0:
-	call uarta_prepare_tx
-	setarg 0x656c
-	istore 2,contwu
-	setarg 0x306e
-	istore 2,contwu
-	call uarta_send
-	branch log_end
-
-log_space:
-	call uarta_prepare_tx
-	setarg 0x20
-	istore 1,contwu
-	branch uarta_send
-
-log_end:
-	call uarta_prepare_tx
-	setarg 0x0a0d
-	istore 2,contwu
-	branch uarta_send
-
-ifdef LOG_RAW
-p_print_audio_raw_data:
-	call p_app_uarta_init
-	fetchr regc,2,mem_adc_dma_rptr
-	arg AUDIO_BUF_UINT,loopcnt
-endif
-p_audio_log_bytes_loop:
-	ifetch 1,regc
-	increase 1,regc
-	call log_byte
-	loop p_audio_log_bytes_loop
-p_audio_uart_wait:
-	fetch 1,core_uart_status
-	bbit1 uart_status_tx_busy,p_audio_uart_wait
-//	nop 12000
-	rtn
-
-ifdef LOG_ENCODE
-p_print_audio_encode_data:
-	call p_app_uarta_init
-	arg mem_queue_buf,regc
-	arg VOICE_QUEUE_UNIT,loopcnt
-	branch p_audio_log_bytes_loop
-endif
-endif
-//=======================================test patch================================================//
-/*
-p_mouse_motion:
-	disable user
-	setarg 0
-	store 6,mem_mouse_x
-	fetch 1,mem_24g_matrix_cnt
-	increase 1,pdata
-	store 1,mem_24g_matrix_cnt
-	sub pdata,50,null
-	branch p_ms_x_right,positive
-
-	sub pdata,100,null
-	branch p_ms_y_up,positive
-
-	sub pdata,150,null
-	branch p_ms_x_left,positive
-	sub pdata,200,null
-	branch p_ms_y_down,positive
-	rtn
-
-p_ms_x_right:
-	setarg 5
-	store 2,mem_mouse_x
-p_data:
-	enable user
-	branch mouse_no_data_timer_init
-
-p_ms_y_up:
-	setarg 5
-	store 2,mem_mouse_y
-	branch p_data
-
-p_ms_x_left:
-	setarg -5
-	store 2,mem_mouse_x
-	branch p_data
-p_ms_y_down:
-	fetch 1,mem_24g_matrix_cnt
-	beq 200,p_mem_usb_data_square_cnt_set0
-	setarg -5
-	store 2,mem_mouse_y
-	branch p_data
-p_mem_usb_data_square_cnt_set0:
-	jam 0,mem_24g_matrix_cnt
-	branch p_ms_y_down+2
-*/
-
-
-
-//=============================ZCODE PATCH ===================================//
-// input : mem_zcode_temp_param0 ---- zocde number(0~1f)
-p_zcode_entrance:
-	fetcht 1,mem_zcode_temp_param0 // zcode number @ high 4bit
-	rshift4 temp,temp
-	fetch 1,mem_zcode_current_number
-	isub temp,null
-	branch p_zcode_run,zero // if this zcode is already loaded, do not load again
-	storet 1,mem_zcode_current_number
-	increase 1,temp
-	setarg ZCODE_BUFF_SIZE
-	imul32 temp,temp
-	fetch 2,mem_xip_flash_offset
-	isub temp,pdata
-
-	fetcht 2,mem_eeprom_start_addr
-	iadd temp,pdata
-	store 2,mem_eeprom_address
-p_zcode_read_loop:
-	fetch 2,mem_eeprom_address
-	byteswap pdata,pdata
-	store 2,mem_addr_mi
-
-	arg ZCODE_BUFF_SIZE,temp
-	arg mem_zcode_buff,rega
-	call iicd_read_eep
-
-	fetch 4,mem_zcode_buff
-	fetcht 4,mem_zcode_head	//p_start
-	isub temp,null
-	nbranch p_zcode_read_loop,zero	//sometimes we will lost p_start,read flash again
-
-	setarg mem_zcode_buff
-	store 2,mem_patch_ptr
-	jam ZCODE_CODE_SIZE,mem_patch_len
-	call load_ucode
-	setarg 0
-	store 4,mem_patch_ptr
-p_zcode_run:
-	fetch 1,mem_zcode_temp_param0
-	branch p_zcode
\ No newline at end of file
Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/peripherals.prog
===================================================================
--- /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/peripherals.prog	(revision 5679)
+++ /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/peripherals.prog	(nonexistent)
@@ -1,3251 +0,0 @@
-
-
-
-/* ===================== two wire SPI gpio ======================= */
-
-//pdata:gpio number
-twspi_reset:
-	bpatch patch1c_5,mem_patch1c
-	sub temp,UI_BUTTON_GPIO_DISABLE,null
-	rtn zero
-	copy temp,pdata
-	and_into 0xff,pdata
-	sub pdata,GPIO_NUMBER+-1,null
-	nbranch twspi_reset_ext,positive
-	arg core_gpio_conf,contw
-twspi_reset_next:
-	iadd contw,contw
-	copy contw,rega
-	arg gpcfg_output_low,temp
-	istoret 1,contw
-	call twspi_disable
-	nop 30
-	copy rega,contw
-	arg gpcfg_output_high,temp
-	istoret 1,contw
-	branch twspi_enable
-	
-twspi_reset_ext:
-	arg core_gpio_conf_hi,contw
-	increase -16,pdata
-	branch twspi_reset_next
-
-
-twspi_disable:
-	fetch 1,core_spid_delay
-	and_into 0x7f,pdata
-	store 1,core_spid_delay
-	rtn
-
-twspi_enable:
-	fetch 1,core_spid_delay
-	or_into 0x80,pdata
-	store 1,core_spid_delay
-	rtn
-
-twspi_write:
-	branch spid_write_reg
-
-twspi_read:
-	branch spid_read_reg
-
-
-/* ===================== code loading ======================= */
-aes_disable:
-	fetch 1,core_bist_ctrl
-	set0 AES_EN,pdata
-	store 1,core_bist_ctrl
-	rtn
-
-read_function_aes:
-	nbranch read_function,user
-	fetch 1,core_bist_ctrl
-	set1 AES_EN,pdata
-	store 1,core_bist_ctrl
-read_function:
-	copy temp,null //length
-	branch read_fuction_zero,zero
-	copy regc,pc  //branch pc
-	
-read_fuction_zero:
-	isolate0 0,null  // always true
-	branch set_ucode_status
-	
-/* return temp = block length */
-get_block_header:
-	force 4,temp
-get_block_header0:
-	arg mem_ucode_buf,rega
-	call aes_disable	// disable aes for header
-	call read_function
-	arg 0x55aa,rega
-	fetch 2,mem_ucode_buf
-	ifetcht 2,contr
-	isub rega,null
-	rtn
-
-
-read_first_block:
-	call load_aes_reinit,user
-	arg 2,temp
-	arg mem_ucode_ptr,rega
-	call read_function
-	fetch 2,mem_ucode_ptr
-read_first_block_cont:
-	store 2,mem_addr_mi
-	call get_iv,user
-	rtn
-	
-get_iv:
-	arg 16,temp
-	arg mem_ucode_keybuf,rega
-	call aes_disable	// disable aes for iv
-	call read_function
-set_iv:
-	arg mem_ucode_keybuf,contr
-	arg 16,loopcnt
-	call aes_load_data
-	call aes_init
-	call aes_clear_data
-	branch do_aes_cbc			// generate first IV 
-
-load_aes_reinit:
-	jam 0x0, core_ucode_ctrl
-	call aes_disable
-	branch aes_clear_data
-
-load_storage:
-	setarg 0
-	store 2,mem_queue	//data checksum
-	disable match
-	call get_block_header
-	nrtn zero
-	enable match
-	setarg 0x8000
-	store 3,core_ucode_hi
-	arg core_ucode_data,rega
-	call read_function_aes
-	jam 0x0, core_ucode_ctrl
-	fetch 1,mem_ucode_status
-	rtnbit0 0           //rtn if load code fail
-load_storage_loop:
-	arg 6,temp
-	call get_block_header0
-	nbranch load_data_checksum_compare,zero
-	ifetchr rega,2,contr
-	call read_function
-	call load_data_checksum_calc
-	branch load_storage_loop
-
-
-load_data_checksum_calc:
-	fetch 2,mem_queue
-	arg 6,loopcnt
-	arg mem_ucode_buf,contr
-	call cal_sum
-	fetchr loopcnt,2,mem_ucode_len
-	copy rega,contr
-	call cal_sum
-	store 2,mem_queue
-	rtn
-
-load_data_checksum_compare:
-	fetch 1,mem_otp_load_check_sum
-	beq 0x5a,load_data_checksum_ok //skip check sum 
-	arg 0xaa55,rega
-	fetch 2,mem_ucode_buf
-	isub rega,null
-	nbranch load_data_checksum_compare_fail, zero
-	arg 0x55aa,rega
-	fetch 2,mem_ucode_len
-	isub rega,null
-	nbranch load_data_checksum_compare_fail, zero
-	fetch 2,mem_sched_addr
-	fetcht 2,mem_queue	//calc  sum
-	isub temp,null
-	nbranch load_data_checksum_compare_fail, zero
-load_data_checksum_ok:
-	set1 15,rega
-	branch read_fuction_zero
-
-load_data_checksum_compare_fail:
-	jam 0,mem_ucode_status
-	rtn
-
-/*
-	// only load memory data from eeprom 
-reload_eeprom:
-	call clean_xmem
-	setarg 0x1000
-	store 2,mem_addr_mi
-	arg iicd_read_eep,regc
-	arg 2,loopcnt
-reload_eeprom_loop:
-	call get_block_header
-	nrtn zero
-	fetch 2,mem_addr_mi
-	byteswap pdata,pdata
-	iadd temp,pdata
-	byteswap pdata,pdata
-	store 2,mem_addr_mi
-	loop reload_eeprom_loop
-	branch load_storage_loop
-*/
-
-loadcode_lock_load_ucode:
-//	and pdata,0xf,temp
-//	storet 1,mem_ucode_flag
-	and pdata,0xff,pdata
-	rshift4 pdata,pdata
-	store 1,mem_device_option
-	branch loadcode_load_key
-
-loadcode_lock:
-	fetch 2,core_ucode_flag 
-	nbranch loadcode_lock_load_ucode, blank 	
-	call loadcode_load_key
-	fetch 2,mem_device_option
-	rtn blank
-	call loadcode_set_lock
-	branch lpm_write_lock
-	
-loadcode_set_lock:
-	fetch 1,mem_device_option
-	rtn blank
-	and pdata,0xf,temp
-	storet 1,mem_device_option
-	rshift4 pdata,pdata
-	ixor temp,pdata
-	bne 0xf,app_lpm_mpu_lock_24g_ble
-	branch app_lpm_lock_check
-
-load_otp_hv_vsel:
-	fetch 1,mem_otp_hv_sel
-	ncall lpm_save_sel_hv, blank
-	fetch 1,mem_otp_ldo_vsel
-	rtn  blank
-	branch lpm_write_io_vsel
-
-
-load_otp_set_init:
-	bpatch patch1c_6,mem_patch1c
-	nrtn wake
-	fetch 2,mem_otp_charge_pump_x
-	rtn blank
-	store 2,mem_otp_charge_pump
-	branch set_otp_config2
-
-set_otp_config:
-	call load_otp_hv_vsel
-	fetch 4 ,mem_otp_core_ldo
-	rtn blank
-	until null,lpo_edge
-	fetch 1,0x8136
-	and pdata,0xf0,pdata
-	fetcht 1,mem_otp_core_ldo
-	ior temp,pdata
-	store 1,0x8136 
-	until null,lpo_edge
-
-	fetch 1,0x8138
-	and pdata,0x7,pdata
-	fetcht 1,mem_otp_verf_bg
-	lshift3 temp,temp
-	ior temp,pdata
-	store 1,0x8138 
-	until null,lpo_edge	
-set_otp_config2:
-	fetch 1,0x8acb
-	and pdata,0xf0,pdata
-	fetcht 1,mem_otp_charge_pump
-	storet 1,mem_otp_charge_pump_x
-	ior temp,pdata
-	store 1,0x8acb
-
-	fetch 1,mem_otp_dpll_ibais
-	store 1,mem_otp_dpll_ibais_x
-	isolate1 3,pdata
-	fetch 1,0x8a06
-	setflag true,7,pdata
-	store 1,0x8a06
-	
-	fetch 1,mem_otp_dpll_ibais
-	and pdata,7,temp
-	lshift4 temp,temp
-	lshift temp,temp
-	storet 1,mem_ring_ibias_trim
-	fetch 1,0x8a02
-	and pdata,0x1f,pdata
-	ior temp,pdata
-	store 1,0x8a02
-	rtn	
-	
-
-loadcode_load_key:
-	disable user
-	fetch 1,mem_ucode_flag
-	rtnbit0 OTP_UFLAG_AES	
-	call loadcode_check_otp_lock
-	arg OTP_OFFSET_UCODE_KEY_L,pdata
-	iadd regb,regb
-	force 16,loopcnt
-	arg mem_ucode_keybuf,rega
-	call otp_read_data
-	jam OTP_KEY_LOCK,core_misc_ctrl
-	arg mem_ucode_keybuf,contr
-	call load_key
-//	call aes_clear_data
-	arg mem_ucode_keybuf,contw
-	call memset0_16
-	branch enable_user
-	
-
-loadcode:
-	jam 0x25,core_clkoff			// disable debug uart
-	call enable_otp_read
-	arg OTP_OFFSET_PATCH_PTR,regb
-	force 11,loopcnt
-	arg mem_ucode_ptr,rega
-	call otp_read_data1
-	fetchr regf,5,mem_ucode_ptr
-	fetchr rege,6,mem_bistfix_val
-	fetch 1,mem_ucode_flag
-	bbit0 OTP_UFLAG_BIST,loadcode_nobist
-	jam 0x7,core_bist_ctrl
-loadcode_bistwait:
-	fetch 1,core_bist_done
-	bne 7,loadcode_bistwait
-	fetch 1,core_bist_fail
-	lshift4 pdata,pdata
-	store 1,core_bist_ctrl
-	branch loadcode_otp
-	
-loadcode_nobist:
-	call set_bistfix
-	call clean_xmem
-	call clean_smem
-loadcode_otp:
-	storer regf,5,mem_ucode_ptr
-	storer rege,6,mem_bistfix_val
-	call loadcode_check_otp_lock
-	arg OTP_OFFSET_ADC_PARAM_L,pdata
-	iadd regb,regb
-	arg 32,loopcnt
-	arg mem_otp_temp,rega
-	call otp_read_data
-
-	call set_otp_config	
-	call loadcode_lock
-
-	fetch 1,mem_ucode_flag
-	bbit0 OTP_UFLAG_AES,loadcode_unenc
-	fetcht 1,mem_peripheral_lock_flag
-	arg 0,pdata
-	set1 OTP_NOT_LIMIT,pdata
-	set1 OTP_LIMIT,pdata
-	iand temp,rega
-	sub rega,0,null
-	branch loadcode_error,zero
-	isub rega,null
-	branch loadcode_error,zero
-loadcode_unenc:
-	jam 0,mem_loadcode_times
-	arg otp_load_code,regc	
-loadcode_otp_loop:
-	call loadcode_timeout
-	nbranch loadcode_error,positive	
-	fetch 2,mem_ucode_ptr
-	branch loadcode_otp_end,blank
-	call read_first_block_cont
-	call load_storage
-	nbranch loadcode_otp_end,match
-	fetch 1,mem_ucode_status
-	compare 3,pdata,3
-	nbranch loadcode_otp_loop,true	// otp crc error, try again
-	call run_otp_code
-loadcode_otp_end:
-	call disable_otp
-	jam 0,mem_loadcode_times
-loadcode_iic_loop:
-	call loadcode_timeout
-	nbranch loadcode_error,positive	
-	fetch 1,mem_ucode_flag
-	bbit1 OTP_UFLAG_SKIP_EEP,loadcode_spi
-	call iicd_load_gpio_init
-	call clear_eeprom_size_2k
-	call loadcode_iic_by_eeprom
-	nbranch loadcode_iic_eeprom_2k,match
-	fetch 1,mem_ucode_status
-	compare 3,pdata,3
-	nbranch loadcode_iic_loop,true		// eeprom crc error, try again
-	branch loadcode_spi
-
-run_otp_code:
-	setarg 0x1ff //patch3f_7
-	arg 0,pc
-	rtn
-
-loadcode_check_otp_lock:
-	arg OTP_OFFSET_H,regb
-	fetch 1,core_peripheral_lock
-	bbit1 OTP_LIMIT,loadcode_otp_lock
-	fetch 1,mem_peripheral_lock_flag
-	rtnbit0 OTP_LIMIT
-loadcode_otp_lock:	
-	arg 0,regb
-	rtn
-	
-			
-loadcode_iic_eeprom_2k:
-	call set_eeprom_size_2k
-	fetch 1,mem_ucode_flag
-	bbit1 OTP_UFLAG_SKIP_EEP,loadcode_spi
-	call loadcode_iic_by_eeprom
-	nbranch loadcode_spi,match
-	fetch 1,mem_ucode_status
-	compare 3,pdata,3
-	nbranch loadcode_iic_loop,true		// eeprom crc error, try again
-	branch loadcode_hci
-	
-loadcode_spi:
-	jam 0,mem_loadcode_times
-loadcode_spi_loop:
-	call loadcode_timeout
-	nbranch loadcode_error,positive	
-	fetch 1,mem_ucode_flag
-	bbit1 OTP_UFLAG_SKIP_FLASH, loadcode_hci
-	call spid_init_flash
-	nop 200						// some flash will fail if no delay here
-	call spid_flash_release_form_powerdown
-	nop 100	
-	arg spid_load_flash,regc
-	call read_first_block
-	call load_storage
-	nbranch loadcode_hci,match
-	fetch 1,mem_ucode_status
-	compare 3,pdata,3
-	nbranch loadcode_spi_loop,true	// flash crc error, try again
-
-loadcode_hci:
-	call clear_key_buf
-	fetch 1,mem_ucode_flag
-	rtnbit0 OTP_UFLAG_HCI
-	branch hci_init
-	
-clear_key_buf:
-	arg mem_ucode_keybuf,contw
-	call memset0_16
-	force regidx_key,regext_index
-	call aes_clear
-	jam 0x21,core_clkoff		// enable debug uart
-	rtn
-
-iicd_load_gpio_init:
-	fetch 1,mem_eeprom_sda_gpio
-	fetcht 1,mem_eeprom_scl_gpio
-	isub temp,null
-	nbranch iicd_read_init_pin,zero
-iicd_load_default_gpio:
-	jam 4,mem_eeprom_wp_gpio
-	jam 8,mem_eeprom_scl_gpio  
-	jam 7,mem_eeprom_sda_gpio 
-	branch iicd_read_init_pin
-
-
-
-loadcode_iic_by_eeprom:
-	setarg 0x0
-	store 2,mem_addr_mi
-	arg iicd_read_eep,regc
-	call iic_init_600khz
-	call read_first_block
-	branch load_storage
-
-
-
-//output: positive 1:continue load ;0:load timeout
-loadcode_timeout:
-	call loadcode_error_delay
-	fetch 1,mem_loadcode_times
-	increase 1,pdata
-	sub pdata,3,null
-	store 1,mem_loadcode_times	 
-	rtn
-	
-loadcode_error_delay:
-	fetch 1,mem_loadcode_times
-	rtn blank
-	fetch 1,mem_otp_load_delay
-	rtn blank
-	copy pdata,loopcnt
-	branch delay_ms_wait
-	
-	
-loadcode_error:
-	call clear_key_buf
-	call aes_disable
-//	call ice_break_disable_wdt
-	call ice_break
-	rtn
-
-set_bistfix_wake:
-	call set_bistfix
-	call set_bistfix_wake_xram
-
-set_bistfix_wake_patchram:
-	fetch 1,core_bist_ctrl
-	rtnbit0 BIST_CTRL_FIX_PATCH_RAM
-//	jam 0x80, core_ucode_ctrl
-	call set_bistfix_set_patchram_addr
-	arg 4,loopcnt
-	arg mem_bistfix_val_patchram,contr
-	branch load_ucode_loop
-
-
-set_bistfix_wake_xram:
-	fetch 1,core_bist_ctrl
-	rtnbit0 BIST_CTRL_FIX_XRAM
-	fetcht 2,mem_bistfix_addr_x
-	rshift3 temp,temp
-	arg 0x4000,pdata //add offset
-	iadd temp,contw
-	fetch 1,mem_bistfix_val_xram	
-	branch istore_1_contw_rtn
-
-
-set_bistfix_save_xram:
-	bpatchx patch3e_2,mem_patch3e
-	fetch 1,core_bist_ctrl
-	rtnbit0 BIST_CTRL_FIX_XRAM
-	fetchr rega, 2,mem_bistfix_addr_x
-	rshift3 rega,rega
-	arg 0x4000,pdata //add offset
-	iadd rega,contr
-	ifetch 1,contr
-	store 1,mem_bistfix_val_xram
-	rtn
-	
-set_bistfix_save_patchram:
-	rtn wake
-	fetch 1,core_bist_ctrl
-	rtnbit0  BIST_CTRL_FIX_PATCH_RAM 
-	call set_bistfix_set_patchram_addr
-	nop 10
-	arg 4,loopcnt
-	arg mem_bistfix_val_patchram,contw
-	branch save_ucode_loop
-	
-set_bistfix_set_patchram_addr:
-	jam 0,core_ucode_hi	
-	fetch 2,mem_bistfix_addr_patch
-	rshift4 pdata,pdata
-	rshift pdata,pdata
-	rshift4 pdata,temp
-	rshift2 temp,temp
-	set1 7,temp
-	storet 1,core_ucode_ctrl
-	lshift2 pdata,pdata
-	store 1,core_ucode_low
-	rtn
-	
-	
-set_bistfix:
-	fetch 1,mem_ucode_flag
-	and_into 0xe0,pdata
-	rtn blank
-	rshift pdata,pdata
-	store 1,core_bist_ctrl
-	setarg 1
-	arg mem_bistfix_val,contr
-set_bistfix_loop:
-	ifetcht 2,contr
-	storet 2,core_lpm_reg
-	store 1,core_set_bistfix
-	lshift pdata,pdata
-	bbit0 3,set_bistfix_loop
-	rtn
-	
-/* true flag is set into status,rega pointers to buf, */
-set_ucode_status:
-	fetch 1,mem_ucode_status
-	lshift pdata,pdata
-	setflag true,0,pdata
-	isolate0 15,rega  // load code if rega.15 = 1
-	rtn true
-	store 1,mem_ucode_status
-	rtn
-
-	/* queue is bit position of hw done status */
-decrypt_code:
-	fetch 1,core_bist_ctrl
-	rtnbit0 AES_EN
-	branch decrypt_code_skip	/* skip to key generation at first for speed */
-decrypt_code_loop:
-	fetch 1,core_dma_status
-	qisolate1 pdata
-	rtn true
-decrypt_code_skip:
-	fetch 1,core_misc_status
-	bbit0 1,decrypt_code_loop
-	call do_aes_cbc
-	branch decrypt_code_loop
-
-	/* loopcnt is ucode instruction count, pdata is buffer ptr */
-//save_ucode:
-//	copy loopcnt,temp
-//	storet 2,mem_patch_len
-//	jam 0x80, core_ucode_ctrl
-//	jam 0,core_ucode_hi
-//	jam 0,core_ucode_low
-//	store 2,mem_patch_ptr
-//	iforce contw
-//	lshift2 loopcnt,loopcnt
-save_ucode_loop:
-	fetch 1,core_ucode_data
-	istore 1,contw
-	loop save_ucode_loop
-	jam 0x0, core_ucode_ctrl
-	rtn
-
-
-load_ucode:
-	fetch 2,mem_patch_ptr
-	rtn blank
-	jam 0x80, core_ucode_ctrl
-	jam 0,core_ucode_hi
-	jam 0,core_ucode_low
-	fetcht 2,mem_patch_len
-	lshift2 temp,loopcnt
-	iforce contr
-load_ucode_loop:
-	ifetch 1,contr
-	store 1,core_ucode_data
-	loop load_ucode_loop
-	jam 0x0, core_ucode_ctrl
-	rtn
-
-	
-
-/* ===================== OTP ======================= */
-
-/* temp is length, rega pointers to buf  */
-otp_load_code:
-	copy temp,loopcnt
-	fetch 2,mem_addr_mi
-	iadd temp,temp
-	storet 2,mem_addr_mi
-	iforce regb
-	copy rega,nap
-	jam INIT_KEY,core_misc_ctrl
-	call otp_read_data
-	copy nap,rega
-	isolate0 15,rega
-	rtn true
-	call enable_true,blank		// pdata == 0, crc ok, set true to 1
-	branch set_ucode_status
-	
-ifdef CFX	
-
-
-/* regb=otp address, rega points to data, loopcnt is count */
-otp_read_data:
-	bpatch patch1c_7,mem_patch1c
-otp_read_data1:
-	storer regb,2,core_otp_addr
-	setarg -1
-	jam 0x5c,core_otp_ctrl2		// blen&wlen
-otp_read_loop:
-	jam 0x7c,core_otp_ctrl2		// sclk
-	jam 0x5c,core_otp_ctrl2		// blen&wlen
-	fetcht 1,core_otp_rdata
-	istoret 1,rega
-	bcrc temp
-	isolate1 15,rega
-	branch otp_read_noinc,true
-	increase 1,rega
-otp_read_noinc:
-	increase 1,regb
-	storer regb,2,core_otp_addr
-	loop otp_read_loop
-	jam 0x44,core_otp_ctrl2		// turn off blen&wlen
-	rtn
-
-
-/* regb = otp address, rega pointers data, loopcnt is count */
-otp_write:
-	bpatch patch1d_0,mem_patch1d
-	storer regb, 2,core_otp_addr
-	ifetcht 1,rega
-	arg 0,queue
-otp_write_loop:
-	qisolate1 temp
-	call otp_write_bit,true
-	increase 1,queue
-	compare 8,queue,0xff
-	nbranch otp_write_loop,true
-	increase 1,rega
-	fetch 2,core_otp_addr
-	pincrease 1
-	loop otp_write
-	rtn
-
-	
-otp_write_bit:
-	lshift4 queue,pdata
-	store 1,core_otp_pab
-	nop 30
-	jam 0xc0,core_otp_ctrl2		// ween
-	nop 200
-	jam 0xd0,core_otp_ctrl2		// blen
-	nop 3
-	jam 0xd8,core_otp_ctrl2		// wlen
-	nop 600
-	jam 0xd0,core_otp_ctrl2		// turn off wlen
-	nop 3
-	jam 0xc0,core_otp_ctrl2		// turn off blen
-	nop 30
-	rtn
-
-disable_otp:
-	jam 0x40,core_otp_ctrl2		// turn off reen
-	nop 200
-	jam 0x0,core_otp_ctrl2
-	jam 0,0x8a0f
-	rtn
-
-enable_otp:
-	jam 5,0x8a0f
-	jam 0x24,0x8a14				// vdd18
-	nop 200
-	jam 0x40,core_otp_ctrl2		// ce
-	nop 400
-	rtn
-
-enable_otp_read:
-	call enable_otp
-	jam 0x44,core_otp_ctrl2		// reen
-	nop 300
-	rtn	
-
-else
-
-otp_enable_chgpump25:
-	jam 0x1,core_chgpump_ctrl
-	nop 300
-	jam 0x5,core_chgpump_ctrl
-	nop 100
-	jam 0x25,core_chgpump_ctrl
-	nop 1000
-	jam 0x27,core_chgpump_ctrl
-	nop 300
-	rtn
-
-otp_enable_chgpump65:
-	call otp_enable_chgpump25
-	jam 0x3f,core_chgpump_ctrl
-	rtn
-
-disable_otp:
-	jam 0x83,core_otp_ctrl	/* initial otp state */
-otp_disable_chgpump:
-	jam 0,core_chgpump_ctrl
-	rtn
-	
-enable_otp_read:
-	call otp_enable_chgpump25
-
-otp_reset:
-	jam 0x82,core_otp_ctrl	/* ceb */
-	nop 12
-	jam 0x80,core_otp_ctrl	/* rstn */
-	jam 0x82,core_otp_ctrl	/* release rstn */
-	nop 150					/* waiting for vdd25 stable */
-	rtn
-
-	
-otp_set_addr:
-	lshift3 regb,regb
-	storer regb,2,core_otp_addr
-	jam 0,core_otp_din
-	rtn	
-
-/* regb = otp address, rega pointers data, loopcnt is count */
-otp_write:
-	bpatch patch1d_1,mem_patch1d
-	call otp_enable_chgpump65
-	call otp_set_addr
-	call otp_reset
-otp_program:
-	ifetcht 1,rega
-	increase 1,rega
-	force 0,queue
-otp_program_bit:
-	qisolate0 temp
-	branch otp_skip_0,true
-	fetch 1,core_otp_din
-	set1 6,pdata				/* din */
-	set1 7,pdata				/* dle */
-	store 1,core_otp_din
-	jam 0x02,core_otp_ctrl	/* web */
-	jam 0x82,core_otp_ctrl
-	set0 7,pdata				/* dle */
-	store 1,core_otp_din
-	jam 0x8a,core_otp_ctrl	/* pgmen */
-	nop 11
-	jam 0xca,core_otp_ctrl	/* vppen */
-	nop 33
-	jam 0x4a,core_otp_ctrl	/* web 2nd */
-	nop 44
-	jam 0xca,core_otp_ctrl	/* release web */
-	nop 22
-	jam 0x8a,core_otp_ctrl	/* release vppen */
-	nop 33
-	jam 0x82,core_otp_ctrl	/* release pgmen */
-	nop 1
-	jam 0x92,core_otp_ctrl	/* pgmvfy */
-	nop 10
-	jam 0xb2,core_otp_ctrl	/* readen */
-	fetch 1,core_otp_rdata
-	jam 0x92,core_otp_ctrl	/* release readen */
-	nop 1
-	jam 0x82,core_otp_ctrl	/* release pgmvfy */
-	nop 1
-	qisolate0 pdata
-	branch otp_program_bit,true	/* program error */
-otp_skip_0:
-	fetch 2,core_otp_addr
-	increase 1,pdata
-	store 2,core_otp_addr
-	increase 1,queue
-	compare 8,queue,0xf
-	nbranch otp_program_bit,true
-	loop otp_program
-	branch otp_disable_chgpump
-
-
-
-	
-	/* regb=otp address, rega points to data, loopcnt is count */
-otp_read_data:
-	bpatch patch1d_2,mem_patch1d
-otp_read_data1:
-	call otp_set_addr
-	jam 0xa2,core_otp_ctrl	/* readen */
-	increase 8,regb
-	arg 0,queue
-	setarg -1
-otp_read_data_loop:
-	fetcht 1,core_otp_rdata
-	istoret 1,rega
-	bcrc temp
-	jam SHIFT_KEY,core_misc_ctrl
-	storer regb,2,core_otp_addr
-	isolate1 15,rega
-	branch otp_read_noinc,true
-	increase 1,rega
-	branch otp_read_unenc
-	
-otp_read_noinc:
-	nbranch otp_read_unenc,user
-	increase 1,queue
-	compare 0,queue,0xf
-	nbranch otp_read_unenc,true
-	call do_aes_cbc
-	jam INIT_KEY,core_misc_ctrl
-otp_read_unenc:
-	increase 8,regb
-	loop otp_read_data_loop
-	jam 0x82,core_otp_ctrl	/* release readen */
-	rtn
-
-
-
-
-
-endif
-
-
-/* ===================== LOCK ======================= */
-
-
-app_lpm_lock_check:
-	fetch 1,mem_device_option
-	beq DVC_OP_MODULE,app_lpm_module_lock
-	beq DVC_OP_DONGLE,app_lpm_dongle_lock
-//	beq DVC_OP_TEST,app_lpm_peripheral_lock_test
-	beq DVC_OP_MOUSE,app_lpm_mouse_lock
-	beq DVC_OP_SHUTTER,app_lpm_shutter_lock
-	beq DVC_OP_SHUTTER_DY,app_lpm_shutter_lock
-	beq DVC_OP_HCI_BOOT,app_lpm_hciboot_lock
-	beq DVC_OP_REMOTE_CAR,app_lpm_car_lock_application_and_ble
-	beq DVC_OP_CAR,app_lpm_car_lock
-	beq DVC_OP_KEYBOARD,app_lpm_kb_lock
-	beq DVC_OP_2G4,app_lpm_mpu_lock_ble 
-	beq DVC_OP_BLE,app_lpm_mpu_lock_24g
-	beq DVC_OP_MOUSE_2G4,app_lpm_mouse_lock_24g
-	branch app_lpm_mpu_lock_24g_ble
-
-
-app_lpm_kb_lock:
-	arg module_init,pdata  //module
-	arg shutter_dy_shutter_1s_timer,temp //shutter dy
-	branch app_mpu_s0_lock
-	
-app_lpm_module_lock:
-app_lpm_hciboot_lock:
-	arg car_init,pdata  //module
-	arg keyboard_bt_discovery_button_down_disable,temp //kb
-	call app_mpu_s0_lock
-	branch app_lpm_mpu_lock_24g	
-	
-app_lpm_dongle_lock:
-	arg keyboard_softreset_process,pdata //kb
-	arg shutter_dy_shutter_1s_timer,temp  //shutter dy
-	call app_mpu_s0_lock
-	arg car_init,pdata  //car
-	arg remote_car_wakeup_config_loop,temp //remote car 
-	branch app_mpu_s1_lock
-	
-	
-app_lpm_mouse_lock:
-	arg car_init,pdata //
-	arg module_set_state,temp  //module
-	call app_mpu_s0_lock
-	arg rec_cb_function,pdata  //rec
-	arg shutter_dy_shutter_1s_timer,temp //shutter dy
-	branch app_mpu_s1_lock
-
-app_lpm_mouse_lock_24g:
-	arg car_init,pdata //
-	arg module_set_state,temp  //module
-	call app_mpu_s0_lock
-	branch app_lpm_mpu_lock_ble
-	
-app_lpm_shutter_lock:
-	arg car_init,pdata  //
-	arg rec_enter_queue,temp // rec
-	call app_mpu_s0_lock
-	branch app_lpm_mpu_lock_24g
-	
-app_lpm_car_lock:
-	arg dongle_init,pdata  //dongle
-	arg shutter_dy_shutter_1s_timer,temp //shutter dy
-	branch app_mpu_s0_lock
-	 
-
-app_lpm_car_lock_application_and_ble:
-	arg dongle_init,pdata  //dongle
-	arg shutter_dy_shutter_1s_timer,temp //shutter dy
-	call app_mpu_s0_lock
-	arg le_send_adv_ind,pdata  //ble
-	arg le_send_ll_one_lenth,temp //ble
-	branch app_mpu_s1_lock
-
-
-app_mpu_s0_lock:
-	lshift16 temp,temp
-	ior temp,pdata
-	branch lpm_write_mpu_s0
-	
-/*	
-app_lpm_mpu_lock_app:	
-	arg car_init,pdata  //
-	arg ui_soft_switch_power_off,temp //shutter
-	branch app_mpu_s0_lock
-*/
-
-app_lpm_mpu_lock_ble:	
-	arg le_parse_att,pdata
-	arg le_send_ll_one_lenth,temp
-app_mpu_s1_lock:
-	lshift16 temp,temp
-	ior temp,pdata
-	branch lpm_write_mpu_s1
-	
-app_lpm_mpu_lock_24g:	
-	arg g24_prep,pdata
-	arg g24_factory_check,temp
-	branch app_mpu_s1_lock
-	
-app_lpm_mpu_lock_24g_ble:
-	call app_lpm_mpu_lock_24g
-	arg le_parse_att,pdata
-	arg le_send_ll_one_lenth,temp
-	branch app_mpu_s0_lock
-
-
-
-/* ===================== SPI dma ======================= */
-
-spid_init:
-	bpatch patch1d_3,mem_patch1d
-spid_init_common:
-	fetch 1,mem_spi_init_clk
-	store 1,core_spid_ctrl	// A7530 should at least 34, or write fail
-	fetch 1,mem_spi_init_delay_time
-	store 1,core_spid_delay	// 4us delay
-	setarg mem_spid_tbuf
-	store 2,core_spid_txaddr
-	setarg mem_spid_rbuf
-	store 2,core_spid_rxaddr
-	branch twspi_disable
-	
-
-
-/* pdata 6:0 is reg address, 15:8 is data to write */
-spid_write_reg:
-	set1 7,pdata
-	store 2,mem_spid_tbuf
-	bpatch patch1d_4,mem_patch1d
-	jam 2,core_spid_txlen
-	jam 0,core_spid_rxlen
-	jam spid_start,core_misc_ctrl
-	branch wait_spid_done
-
-/* pdata 6:0 is reg address, temp is bytes to read */
-spid_read_reg:
-	force 1,temp
-spid_read_regs:	
-	store 1,mem_spid_tbuf
-	bpatch patch1d_5,mem_patch1d
-	jam 1,core_spid_txlen
-	storet 2,core_spid_rxlen
-	jam spid_start,core_misc_ctrl
-	call wait_spid_done
-	fetch 1,mem_spid_rbuf
-	rtn
-
-
-wait_spid_done:
-//	fetch 2,mem_afh_error_total
-//	increase 1,pdata
-//	store 2,mem_afh_error_total
-	nop 5
-	fetch 1,core_dma_status
-	bbit0 spid_done,wait_spid_done
-	rtn
-
-	
-
-
-
-
-/**
- ******************************************************************************
- ** \brief  write flash
- **
- ** \param [in]  rega: 2byte write ptr    
- **			pdata:3byte flash address  
- ** 			temp:2byte write data length
- **
- ** \retval user  0: flash buys 1:write flash setting complate
- **
- ******************************************************************************/
-
-flash_write:
-	disable user
-	copy pdata,regb
-	fetch 1,mem_spi_write_flash_sm
-	rtnne FLASH_SM_NO_BUYS
-	enable user
-	copy regb,pdata
-	branch spid_flash_write_start
-
-
-flash_write_spi_sm_timer:
-	fetch 1,mem_spi_write_flash_sm 	
-	beq FLASH_SM_START,spid_flash_write_start
-	beq FLASH_SM_ERASE_SECTOR,spid_flash_erase_sector
-	beq FLASH_SM_WAIT_ERASE_SECTOR,spid_flash_wait_erase_sector
-	beq FLASH_SM_WRITE_DATA,spid_flash_write_data
-	beq FLASH_SM_WAIT_WRITE_DATA,spid_flash_wait_write_data
-	rtn
-
-spid_flash_write_start:
-	store 3,mem_spi_write_addr
-	copy rega,pdata
-	store 2,mem_spi_write_ptr
-	storet 2,mem_spi_write_len
-	jam FLASH_SM_ERASE_SECTOR,mem_spi_write_flash_sm
-	branch spid_init_flash
-	
-spid_flash_erase_sector:
-	call spid_init_flash
-	jam FLASH_SM_WAIT_ERASE_SECTOR,mem_spi_write_flash_sm
-	call spid_unlock_flash
-	arg mem_spid_tbuf,rega
-	jam 4,core_spid_txlen
-	fetch 3,mem_spi_write_addr
-	arg FLASH_COMMAND_SECTOR_ERASE,temp
-	branch spid_write_flash_common
-	
-spid_flash_wait_erase_sector:
-	call spid_init_flash
-	call wait_spid_flash_done
-	jam FLASH_SM_WRITE_DATA,mem_spi_write_flash_sm
-	rtn
-
-
-spid_flash_write_data:
-	bpatch patch1d_6,mem_patch1d
-	call spid_init_flash
-	jam FLASH_SM_WAIT_WRITE_DATA,mem_spi_write_flash_sm
-	call spid_unlock_flash
-	call spid_flash_data_preserve
-	call spid_write_flash
-	branch spid_flash_data_recover
-spid_flash_wait_write_data:
-	call spid_init_flash
-	call spid_unlock_flash
-	setarg FLASH_READ_SATUS
-	call spid_read_reg
-	rtnbit1 FLASH_STATUS_WIP
-	jam FLASH_SM_NO_BUYS,mem_spi_write_flash_sm
-	fetch 2,mem_cb_spi_flash_write_complate
-	branch callback_func
-spid_flash_data_recover:
-	fetch 4,mem_temp
-	fetcht 2,mem_spi_write_ptr
-spid_flash_data_recover_comm:
-	increase -4,temp
-	istore 4,temp
-	rtn
-	
-spid_flash_data_preserve:
-	fetcht 2,mem_spi_write_ptr
-	copy temp,rega
-	increase -4,temp
-	ifetch 4,temp
-	store 4,mem_temp
-	fetcht 2,mem_spi_write_len
-	fetch 3,mem_spi_write_addr
-	rtn
-
-spid_init_flash:
-	bpatch patch1d_7,mem_patch1d
-	call spi_gpio_init
-	call twspi_disable
-	setarg 0
-	store 4,mem_spid_tbuf
-	rtn
-
-spid_unlock_flash:
-	jam FLASH_COMMAND_WRITE_ENABLE,mem_spid_tbuf
-spid_sendcmd_common:	
-	setarg 0
-	store 2,core_spid_rxlen
-	setarg 1
-	store 2,core_spid_txlen
-	setarg mem_spid_tbuf
-	store 2,core_spid_txaddr
-	jam spid_start,core_misc_ctrl
-	branch wait_spid_done
-	
-spid_flash_release_form_powerdown:
-	jam FLASH_COMMAND_RELEASE_FROM_POWERDOWN,mem_spid_tbuf
-	branch spid_sendcmd_common
-	
-spid_flash_powerdown:
-	jam FLASH_COMMAND_POWERDOWN,mem_spid_tbuf
-	branch spid_sendcmd_common
-
-spid_write_flash_data:
-	store 3,mem_pdatatemp
-	storet 2,mem_temp
-	storer rega,2,mem_rega
-	bpatch patch1e_0,mem_patch1e
-	call spid_unlock_flash
-	fetch 3,mem_pdatatemp
-	fetcht 2,mem_temp
-	fetchr rega,2,mem_rega
-	branch spid_write_flash
-	
-/* pdata is flash address, rega pointers to txdata(4 ahead bytes should be left), temp is length */
-spid_write_flash:
-	increase 4,temp
-	storet 2,core_spid_txlen
-	arg FLASH_COMMAND_WRITE_DATA,temp
-	increase -4,rega
-
-spid_write_flash_common:
-	istoret 1,rega
-	rshift16 pdata,temp
-	istoret 1,contw
-	rshift8 pdata,temp
-	istoret 1,contw
-	istore 1,contw
-	deposit rega
-	store 2,core_spid_txaddr
-	setarg 0
-	store 2,core_spid_rxlen
-	jam spid_start,core_misc_ctrl
-	call wait_spid_done
-	branch wait_spid_flash_done
-
-
-/* temp is length, rega pointers to buf   */
-spid_read_flash:
-	storet 2,core_spid_rxlen
-	rshift16 pdata,temp
-	storet 1,mem_addr_hi
-	rshift8 pdata,temp
-	storet 1,mem_addr_mi
-	store 1,mem_addr_lo
-	setarg 4
-	store 2,core_spid_txlen
-	jam FLASH_COMMAND_READ_DATA,mem_spid_tbuf
-	setarg mem_spid_tbuf
-	store 2,core_spid_txaddr
-	deposit rega
-	store 2,core_spid_rxaddr
-	fetch 1,core_spid_ctrl
-	isolate0 15,rega
-	setflag true,6,pdata
-	store 1,core_spid_ctrl
-	jam spid_start,core_misc_ctrl
-spid_read_flash_wait:
-	fetch 1,core_dma_status
-	bbit1 7,spid_read_flash_wait			// waiting for spid write
-	arg spid_done,queue
-	branch wait_spid_done
-
-wait_spid_flash_done:
-	setarg 2000
-	call sleep
-	call spid_unlock_flash
-	setarg mem_spid_rbuf
-	store 2,core_spid_rxaddr
-	setarg FLASH_READ_SATUS
-	call spid_read_reg
-	bbit1 FLASH_STATUS_WIP,wait_spid_flash_done
-	rtn
-
-
-
-
-/* temp is length, rega pointers to buf  */
-spid_load_flash:
-	storet 2,core_spid_rxlen
-	setarg 4
-	store 2,core_spid_txlen
-	jam 3,mem_spid_tbuf
-	setarg mem_spid_tbuf
-	store 2,core_spid_txaddr
-	deposit rega
-	store 2,core_spid_rxaddr
-	fetch 1,core_spid_ctrl
-	isolate0 15,rega
-	setflag true,6,pdata
-	store 1,core_spid_ctrl
-	jam spid_start,core_misc_ctrl
-spi_load_flash_wait:
-	fetch 1,core_dma_status
-	bbit1 7,spi_load_flash_wait			// waiting for spid write
-	arg spid_done,queue
-	call decrypt_code
-	call wait_spid_done
-	isolate1 spid_crcok,pdata
-	call set_ucode_status
-	fetch 1,mem_addr_hi
-	lshift16 pdata,regb
-	fetch 2,mem_addr_mi
-	byteswap pdata,pdata
-	ior regb,pdata
-	iadd temp,pdata
-	store 1,mem_addr_lo
-	rshift8 pdata,pdata
-	byteswap pdata,pdata
-	store 2,mem_addr_hi
-	rtn
-	
-spi_gpio_init:
-	fetch 1,mem_spi_cs_gpio
-	fetcht 1,mem_spi_so_gpio
-	isub temp,null
-	nbranch spi_pin_set,zero
-	call spi_gpio_default_init
-	
-spi_pin_set:
-	fetch 1,mem_spi_cs_gpio
-	arg gpcfg_spid_ncs,temp
-	call gpio_config_function_int
-	fetch 1,mem_spi_sclk_gpio
-	arg gpcfg_spid_sck,temp
-	call gpio_config_function_int
-	fetch 1,mem_spi_si_gpio
-	arg gpcfg_spid_mosi,temp
-	call gpio_config_function_int
-	fetch 1,mem_spi_so_gpio
-	arg gpcfg_spid_miso,temp
-	branch gpio_config_function_int
-
-spi_gpio_default_init:
-	jam 1,mem_spi_cs_gpio
-	jam 3,mem_spi_si_gpio
-	jam 0,mem_spi_so_gpio
-	jam 2,mem_spi_sclk_gpio
-	jam 11,mem_spi_wp_gpio
-	jam 10,mem_spi_hold_gpio
-	rtn
-
-
-/*****************************************************************************
-*soft reset chip
-*****************************************************************************/
-soft_reset_chip:
-	jam 1,core_reset
-	rtn
-
-
-
-/* ===================== I2C dma ======================= */
-
-/* scl high time: scl_high + 2 clks, scl low time:scl_low + 6 clks
-data setup time: data_setup + 2 clks, data hold time: scl_low-setup-hold+4 clks */
-iic_init_600khz:
-	jam 5,core_iicd_scl_low
- 	jam 7,core_iicd_scl_high
-	jam 7,core_iicd_start_setup
-	jam 7,core_iicd_start_hold
-	jam 7,core_iicd_stop_setup
-	jam 5,core_iicd_data_setup
-	jam 0,core_iicd_data_hold
-	rtn
-	
-iic_init_360khz:	//360khz
-	jam 12,core_iicd_scl_low
-	jam 13,core_iicd_scl_high
-	jam 13,core_iicd_start_setup
-	jam 13,core_iicd_start_hold
-	jam 13,core_iicd_stop_setup
-	jam 12,core_iicd_data_setup
-	jam 0,core_iicd_data_hold	
-  	rtn
-
-iicd_init_pin:
-	call iicd_eeprom_write_enable
-iicd_init_pin_scl_sda:
-	fetch 1,mem_eeprom_scl_gpio
-	arg gpcfg_iic_scl|gpcfg_pullup,temp
-	call gpio_config_function_int
-	fetch 1,mem_eeprom_sda_gpio
-	arg gpcfg_iic_sda|gpcfg_pullup,temp
-	branch gpio_config_function_int
-
-iicd_read_init_pin:
-	call iicd_eeprom_write_disable
-	branch iicd_init_pin_scl_sda
-
-wait_iicd_done:
-	fetch 1,core_dma_status
-	bbit0 iicd_done,wait_iicd_done
-	rtn
-
-/*	// pdata is iic addr, rega points to buf, temp is length 
-iicd_read_data:
-	store 1,mem_iicd_addr
-	setarg mem_iicd_addr
-	store 2,core_iicd_txaddr
-	setarg 1
-	store 2,core_iicd_txlen
-	storet 2,core_iicd_rxlen
-	storer rega,2,core_iicd_rxaddr
-	jam 1,core_iicd_ctrl
-	jam iicd_start,core_misc_ctrl
-	branch wait_iicd_done
-
-	// rega points to buf, temp is length 
-iic_write_data:
-	setarg 0
-	store 2,core_iicd_rxlen
-	store 2,core_iicd_rxaddr
-	storet 2,core_iicd_txlen
-	storer rega,2,core_iicd_txaddr
-	jam 1,core_iicd_ctrl
-	jam iicd_start,core_misc_ctrl
-	branch wait_iicd_done
-*/
-set_eeprom_size_2k:
-	set1 mark_eeprom_size,mark
-	jam 0x08,mem_eeprom_block_size
-	rtn
-
-clear_eeprom_size_2k:
-	set0 mark_eeprom_size,mark
-	jam 0x20,mem_eeprom_block_size
-	rtn
-
-
-iicd_read_eep_data_size_2k:
- 	fetch 1,mem_eeprom_base
-	iadd regb,pdata
-	store 1,mem_addr_mi
-	branch iicd_read_eep_size_2k
-
-iicd_read_eep_size_2k_lcadcode:
-	fetch 2,mem_addr_mi
-	byteswap pdata,pdata
-	store 1,mem_addr_mi
-	
-//length:temp 
-//mem ptr:rega
-//eeprom addr:pdata
-iicd_read_eep_size_2k:
- 	setarg 3
-	store 2,core_iicd_txlen
-	jam 0xa0,mem_iicd_tbuf
-	jam 0xa1,mem_iicd_tbuf+2
-	branch iicd_read_eep_common
-
-
-//length:temp 
-//mem ptr:rega
-//eeprom addr:regb
-iicd_write_protect_eep_data:
-	storet 2,mem_temp
-	call iicd_eeprom_write_enable
-	fetcht 2,mem_temp
-	call iicd_write_eep_data
-	branch iicd_eeprom_write_disable
-	
-iicd_eeprom_write_enable:
-	fetch 1,mem_eeprom_wp_gpio
-	rtneq GPIO_DISABLE
-	bbit0 6,iicd_wp_gpio_output_low
-	setarg 150000
-	call sleep
-iicd_wp_gpio_output_low:
-	fetcht 1,mem_eeprom_wp_gpio
-	branch gpio_out_active
-	
-iicd_eeprom_write_disable:
-	fetcht 1,mem_eeprom_wp_gpio
-	branch gpio_out_inactive
-	
-//length:temp 
-//mem ptr:rega
-//eeprom addr offset:regb
-iicd_read_eep_data:
-	bpatch patch1e_1,mem_patch1e
-	bmark1 mark_eeprom_size,iicd_read_eep_data_size_2k
-	fetch 2,mem_eeprom_base
-iicd_read_eep_data_next:
-	iadd regb,pdata
-	byteswap pdata,pdata
-	store 2,mem_addr_mi
-
-/* rega pointers to buf, temp is length  */
-iicd_read_eep:
-	bpatch patch1e_2,mem_patch1e
-	bmark1 mark_eeprom_size,iicd_read_eep_size_2k_lcadcode
-	setarg 4
-	store 2,core_iicd_txlen
-	jam 0xa0,mem_iicd_tbuf
-	jam 0xa1,mem_iicd_tbuf+3
-iicd_read_eep_common:	
-	setarg mem_iicd_tbuf
-	store 2,core_iicd_txaddr
-	storet 2,core_iicd_rxlen
-	storer rega,2,core_iicd_rxaddr
-	setarg 2
-	isolate0 15,rega
-	setflag true,0,pdata
-	store 1,core_iicd_ctrl
-	jam iicd_start,core_misc_ctrl
-	arg iicd_done,queue
-	call decrypt_code
-	call wait_iicd_done
-	isolate1 iicd_crcok,pdata
-	call set_ucode_status
-	bmark1 mark_eeprom_size,iicd_read_eep_load_code_size_2k
-iicd_inc_addr:
-	fetch 2,mem_addr_mi
-	byteswap pdata,pdata
-	branch iicd_set_addr
-
-iicd_read_eep_load_code_size_2k:
-	fetch 1,mem_addr_mi
-iicd_set_addr:
-	iadd temp,pdata
-	byteswap pdata,pdata
-	store 2,mem_addr_mi
-	rtn
-	
-
-//length:temp 
-//mem ptr:rega
-//eeprom addr offset:regb
-iicd_write_eep_data:
-	fetch 2,mem_eeprom_base
-	iadd regb,pdata
-
-//cuur ptr:pdata length:temp buf:rega
-	store 2,mem_pdatatemp //curr ptr
-	bpatch patch1e_3,mem_patch1e
-	storet 2,mem_temp	//len
-	storer rega,2,mem_contr
-iicd_write_eep_loop:
-	call iicd_eep_transparency
-
-	fetcht 2,mem_regb
-	fetchr rega,2,mem_contr
-	fetch 2,mem_pdatatemp
-	
-	call iicd_write_eep
-	
-	fetch 2,mem_regb
-	fetcht 2,mem_contr
-	iadd temp,temp
-	storet 2,mem_contr
-	fetcht 2,mem_pdatatemp
-	iadd temp,temp
-	storet 2,mem_pdatatemp
-	fetch 2,mem_temp
-	nbranch iicd_write_eep_loop,blank
-	rtn
-	
-//in:
-//1.size 2.len 3.src 4.des
-//mem_regc page's area
-//mem_pdatatemp curr ptr
-//mem_temp all len      
-//mem_regb curr len
-iicd_eep_transparency:
-	bpatch patch1e_4,mem_patch1e
-	fetch 1,mem_eeprom_block_size
-	increase -1,pdata
-	fetcht 2,mem_pdatatemp
-	ior temp,pdata
-	increase 1,pdata
-	store 3,mem_regc
-
-	fetch 2,mem_temp
-	iadd temp,pdata
-
-	fetcht 3,mem_regc
-	isub temp,pdata
-	nbranch iicd_eep_deal_short_packet,positive
-	store 2,mem_temp
-	fetch 3,mem_regc
-	fetcht 2,mem_pdatatemp
-	isub temp,pdata
-	store 2,mem_regb
-	rtn
-	
-iicd_eep_deal_short_packet:
-	fetch 2,mem_temp
-	store 2,mem_regb
-	setarg 0
-	store 2,mem_temp
-	rtn
-
-iicd_write_eep_size_2k:
-	copy regb,pdata
-	increase 2,temp
-	storet 2,core_iicd_txlen
-	increase -2,rega
-	ifetcht 3,rega
-	copy temp,regb
-	arg 0xa0,temp
-	istoret 1,rega
-	istore 1,contw
-	branch iicd_write_eep_common
-
-	/* pdata is eeprom address, rega pointers to txdata(3 ahead bytes should be left), temp is length */
-iicd_write_eep:
-	copy pdata,regb
-	bpatch patch1e_5,mem_patch1e
-	bmark1 mark_eeprom_size,iicd_write_eep_size_2k
-	copy regb,pdata
-	increase 3,temp
-	storet 2,core_iicd_txlen
-	increase -3,rega
-	ifetcht 3,rega
-	copy temp,regb
-	arg 0xa0,temp
-	istoret 1,rega
-	byteswap pdata,pdata
-	istore 2,contw
-iicd_write_eep_common:	
-	storer rega,2,core_iicd_txaddr
-	setarg 0
-	store 2,core_iicd_rxlen
-	jam 1,core_iicd_ctrl
-	jam iicd_start,core_misc_ctrl
-	call wait_iicd_done
-	istorer regb,3,rega
-iic_check_eeprom_standby:
-	bpatch patch1e_6,mem_patch1e
-	jam 0,mem_iicd_tbuf+3
-iic_check_eeprom_standby_wait:
-	setarg 1
-	store 2,core_iicd_txlen
-	jam 0xa0,mem_iicd_tbuf
-	setarg mem_iicd_tbuf
-	store 2,core_iicd_txaddr
-	setarg 0
-	store 2,core_iicd_rxlen
-	store 2,core_iicd_rxaddr
-	setarg 3
-	store 1,core_iicd_ctrl
-	jam iicd_start,core_misc_ctrl
-	call wait_iicd_done
-	fetch 1,core_dma_status
-	rtnbit0 iicd_ack
-	nop 1500
-	fetch 1,mem_iicd_tbuf+3
-	increase 1,pdata
-	store 1,mem_iicd_tbuf+3
-	sub pdata,40,null
-	nrtn positive//polling timeout 6ms
-	branch iic_check_eeprom_standby_wait
-
-
-/* ===================== uart dma ======================= */
-uarta_init_dma_mem:
-	call enable_user
-	branch uart_init_dma_mem
-
-/*
-function name:uart_init_dma_mem
-input:
-	pdata is dma memory config
-	bit[0-15]:rx start memory address
-	bit[16-31]:rx ending memory address
-	bit[32-47]:tx start memory address
-	bit[48-63]:tx ending memory address
-	user is choice uart road
-	enable is mean check uart A
-	disable user is mean check uart B
-*/
-uart_init_dma_mem:
-	rshift16 pdata,temp
-	call uarta_init_rx,user
-	rshift32 pdata,pdata
-	rshift16 pdata,temp
-	call uarta_init_tx,user
-	fetch 2,core_clkoff
-	set0 CLOCK_OFF_UART,pdata
-	store 2,core_clkoff
-	rtn
-
-
-/*
-function name:uarta_init_baud_rate
-input:
-	pdata is uart A baud rate
-*/
-uarta_init_baud_rate:
-	store uart_baud_len,core_uart_baud
-	rtn
-
-
-/*
-function name:uarta_calc_baud_rate_config
-input:
-	temp is uart A baud rate,Decimal data
-	E.g:115200 input arg 115200,temp
-*/
-uarta_calc_baud_rate_config:
-	call uart_calc_baud_rate_config
-	branch uarta_init_baud_rate
-
-
-/*
-function name:uart_calc_baud_rate_config
-input:
-	temp is uart baud rate,Decimal data
-	E.g:115200 input arg 115200,temp
-output:
-	pdata is CPU config uart baud rate
-*/
-uart_calc_baud_rate_config:
-	call uart_calc_baud_rate_config_choice_uart_clock
-	idiv temp
-	call wait_div_end
-	quotient pdata
-	rtn
-
-uart_calc_baud_rate_config_choice_uart_clock:
-	fetch 1,core_uart_clksel
-	bbit0 UART_CLOCK_SELECT_BIT,uart_calc_baud_rate_config_choice_uart_clock_crystal
-	setarg uart_clock_freq_48M
-	rtn
-uart_calc_baud_rate_config_choice_uart_clock_crystal:
-	setarg uart_clock_freq_24M
-	rtn
-
-uart_clock_select_main_freq_crystal:
-	fetch 1,core_uart_clksel
-	and pdata,UART_CLOCK_SELECT_CRYSTAL,pdata
-	store 1,core_uart_clksel
-	rtn
-
-uart_clock_select_main_freq_dpll:
-	fetch 1,core_uart_clksel
-	or pdata,UART_CLOCK_SELECT_DPLL,pdata
-	store 1,core_uart_clksel
-	rtn
-
-
-	// pdata: tx buffer start, temp: tx buffer end
-uarta_init_tx:
-	store 2,core_uart_tsaddr
-	store 2,core_uart_twptr
-	storet 2,core_uart_teaddr
-	rtn
-
-	// pdata: rx buffer start, temp: rx buffer end
-uarta_init_rx:
-	store 2,core_uart_rsaddr
-	store 2,core_uart_rrptr
-	storet 2,core_uart_readdr
-	rtn
-
-uarta_prepare_tx:
-	fetchr contus,2,core_uart_tsaddr
-	fetchr contue,2,core_uart_teaddr
-	fetchr contu,2,core_uart_twptr
-	rtn
-
-uarta_prepare_rx:
-	fetchr contus,2,core_uart_rsaddr
-	fetchr contue,2,core_uart_readdr
-	fetchr contu,2,core_uart_rrptr
-	rtn
-
-uarta_send:
-	storer contu,2,core_uart_twptr
-	rtn
-
-uarta_rxdone:
-	storer contu,2,core_uart_rrptr
-	rtn
-
-uarta_clear_current_rx:
-	call uarta_prepare_rx
-	fetch 2,core_uart_rxitems
-	iadd contu,contu
-	branch uarta_rxdone
-
-uarta_prepare_tx_register_push:
-	call uart_register_push
-	branch uarta_prepare_tx
-
-uarta_send_register_pop:
-	call uarta_send
-	branch uart_register_pop
-
-
-uart_register_push:
-	storer contu,2,mem_contu
-	storer contus,2,mem_contue
-	storer contue,2,mem_contus
-	rtn
-
-uart_register_pop:
-	fetchr contu,2,mem_contu
-	fetchr contus,2,mem_contue
-	fetchr contue,2,mem_contus
-	rtn
-
-wait_uarttx:
-	fetch 2,core_uart_txitems
-	nbranch wait_uarttx,blank
-	rtn
-
-uart_copy_tx_bytes_fast:
-	deposit loopcnt
-	rtn blank
-uart_copy_tx_bytes_fast_loop:
-	increase -8,loopcnt
-	call uart_tx_8_bytes,positive
-	rtn zero
-	branch uart_copy_tx_bytes_fast_loop,positive
-	increase 8,loopcnt
-uart_copy_tx_bytes_fast_loop_four:
-	increase -4,loopcnt
-	call uart_tx_4_bytes,positive
-	rtn zero
-	branch uart_copy_tx_bytes_fast_loop_four,positive
-	increase 4,loopcnt
-	branch uart_copy_tx_bytes
-
-uart_tx_8_bytes:
-	ifetch 8,contr
-	istore 8,contu
-	rtn
-
-uart_tx_4_bytes:
-	ifetch 4,contr
-	istore 4,contu
-	rtn
-
-uart_copy_tx_bytes:
-	deposit loopcnt
-	rtn blank
-uart_copy_tx_bytes_loop:
-	ifetch 1,contr
-	istore 1,contu
-	loop uart_copy_tx_bytes_loop
-	rtn
-
-uart_copy_rx_bytes_fast:
-	deposit loopcnt
-	rtn blank
-uart_copy_rx_bytes_fast_loop:
-	increase -8,loopcnt
-	call uart_rx_8_bytes,positive
-	rtn zero
-	branch uart_copy_rx_bytes_fast_loop,positive
-	increase 8,loopcnt
-uart_copy_rx_bytes_fast_loop_four:
-	increase -4,loopcnt
-	call uart_rx_4_bytes,positive
-	rtn zero
-	branch uart_copy_rx_bytes_fast_loop_four,positive
-	increase 4,loopcnt
-	branch uart_copy_rx_bytes
-
-
-uart_rx_8_bytes:
-	ifetch 8,contu
-	istore 8,contw
-	rtn
-
-uart_rx_4_bytes:
-	ifetch 4,contu
-	istore 4,contw
-	rtn
-
-
-uart_copy_rx_bytes:
-	deposit loopcnt
-	rtn blank
-uart_copy_rx_bytes_loop:
-	ifetch 1,contu
-	istore 1,contw
-	loop uart_copy_rx_bytes_loop
-	rtn
-
-
-/* ===================== eeprom data ======================= */
-
-app_store_nvram_event:
-	jam BT_EVT_STORE_NVRAM,mem_fifo_temp
-	branch ui_ipc_send_event
-
-check_51cmd_update_device_record:
-	bpatch patch1e_7,mem_patch1e
-	fetch 1,mem_nv_data_number
-	rtn blank		// not nv data
-	call check_nvram
-	call init_device_list,zero
-	call disable_user2
-	call nvram_find_addr_from_bd_list
-write_device_record:
-	fetch 1,mem_nv_data_number
-	icopy regc
-	fetcht 2,mem_nv_data_ptr
-	storet 2,mem_list_item_ptr
-write_device_loop_find:
-	copy regc,pdata
-	branch app_store_nvram_event,blank  //EEPROM
-	increase -1,regc
-	copy temp,rega
-	ifetch 1,rega
-	fetcht 1,mem_select_list_item
-	isub temp,null
-	call set_index_finded_device,zero
-	branch write_device_loop_find0,positive
-	ifetch 1,rega
-	increase 1,pdata
-	istore 1,rega
-write_device_loop_find0:
-	fetcht 2,mem_list_item_ptr
-	increase NV_DATA_LEN,temp
-	storet 2,mem_list_item_ptr
-	branch write_device_loop_find
-
-set_index_finded_device:
-	setarg 0
-	istore 1,rega
-	fetch 1,mem_temp_reconn_record
-	istore 1,contw	
-	bne REC_3_MODE,set_index_finded_device_ble_mode
-//	arg mem_link_key,regb
-set_index_find_device_MASTER_ADDR:
-	ifetch 6,contr
-	istore 8,contw
-	setarg 0
-	istore 8,contw
-	copy regb,contr
-store_rec_data_common:
-	call memcpy16
-	force 1,null
-	rtn
-
-set_index_finded_device_ble_mode:
-	beq REC_4_MODE_RANDOM_RESOLVABLE_PRIVATE_ADDRESS,set_index_finded_device_IRK
-	beq REC_4_MODE_RANDOM_NON_RESOLVABLE_PRIVATE_ADDRESS,set_index_finded_device_EDIV
-	arg mem_le_ltk,regb
-	branch set_index_find_device_MASTER_ADDR
-
-set_index_finded_device_IRK:
-	arg mem_le_irk,contr
-	call memcpy16
-store_ble_rec_data_common:
-	arg mem_le_ltk,contr
-	branch store_rec_data_common
-
-set_index_finded_device_EDIV:
-	arg mem_le_rand,contr
-	call memcpy16
-	branch store_ble_rec_data_common
-
-
-//enable user2 reconnect
-//disable user2 pairing
-nvram_find_addr_from_bd_list:
-	bpatch patch1f_0,mem_patch1f
-	call disable_user
-	fetch 1,mem_nv_data_number
-	rtn blank		// not nv data
-	fetch 2,mem_ui_state_map
-	rtnbit0 UI_STATE_BLE_CONNECTED
-find_addr_from_bd_list_ble_mode:
-	fetch 1,mem_le_conn_peer_addr_type
-	beq MASTER_PUBLIC_ADDR,find_addr_from_bd_list_public_device_addr
-	fetch 1,mem_le_plap+5
-	compare 0xc0,pdata,0xc0
-	branch find_addr_from_bd_list_static_addr,true
-	compare 0x40,pdata,0xc0
-	branch find_addr_from_bd_list_random_addr,true
-	branch find_addr_from_bd_list_random_non_resolvable_private_address_sc_or_legacy
-
-find_addr_from_bd_list_static_addr:
-	branch find_addr_from_bd_list_static_addr_reconnect,user2
-	fetch 1,mem_le_preq_init_key_distribution
-	bbit0 LE_INITATOR_IRK_BIT,find_addr_from_bd_list_public_device_addr
-	branch find_addr_from_bd_list_static_addr_sc_or_legacy
-
-find_addr_from_bd_list_static_addr_reconnect:
-	call find_addr_from_bd_list_public_device_addr
-	rtn user
-	branch find_addr_from_bd_list_static_addr_sc_or_legacy
-
-
-find_addr_from_bd_list_static_addr_sc_or_legacy:
-find_addr_from_bd_list_random_non_resolvable_private_address_sc_or_legacy:
-	fetch 1,mem_le_pairing_mode
-	bbit1 LE_PAIRING_MODE_SECURE_CONNECT_BIT,find_addr_from_bd_list_random_non_resolvable_private_address_sc
-	branch find_addr_from_bd_list_random_non_resolvable_private_address
-
-find_addr_from_bd_list_static_addr_sc:
-find_addr_from_bd_list_random_non_resolvable_private_address_sc:
-	fetch 6,mem_le_plap
-	store 8,mem_le_rand
-	branch find_addr_from_bd_list_random_non_resolvable_private_address
-
-
-find_addr_from_bd_list_public_device_addr:
-	jam REC_4_MODE_STATIC_ADDRESS,mem_temp_reconn_record
-	fetch 6,mem_le_plap
-	branch find_addr_from_bd_list_common
-	
-find_addr_from_bd_list_random_non_resolvable_private_address:	
-	jam REC_4_MODE_RANDOM_NON_RESOLVABLE_PRIVATE_ADDRESS,mem_temp_reconn_record
-	branch find_addr_from_bd_list_common
-
-//input :pdata EDIV and rands
-find_addr_from_bd_list_random_addr:
-	jam REC_4_MODE_RANDOM_RESOLVABLE_PRIVATE_ADDRESS,mem_temp_reconn_record
-	branch find_addr_from_bd_list_common
-	
-find_addr_from_bd_list_common:
-	bpatch patch1f_1,mem_patch1f
-//	store 6,mem_temp_lap
-	fetch 2,mem_nv_data_ptr
-	ifetcht 1,pdata
-	pincrease 1
-	store 2,mem_list_item_ptr
-	storet 1,mem_select_list_item
-	fetch 1,mem_nv_data_number
-	icopy regc
-nvram_find_addr_from_list:
-	fetch 2,mem_list_item_ptr
-	copy pdata,rega
-	call nvram_find_addr_from_list_compare
-	rtn user
-	fetcht 2,mem_list_item_ptr
-	increase NV_DATA_LEN,temp
-	storet 2,mem_list_item_ptr
-	increase -1,temp
-	ifetch 1,temp
-	store 1,mem_select_list_item
-	increase -1,regc
-	nbranch nvram_find_addr_from_list,zero
-	fetch 1,mem_nv_data_number
-	pincrease DECREASED_ONE
-	store 1,mem_select_list_item
-	rtn
-nvram_find_addr_from_list_compare:
-	fetch 1,mem_temp_reconn_record
-	bne REC_3_MODE,find_addr_from_list_compare_ble_mode
-find_master_addr_from_list_compare:
-	arg mem_temp_reconn_record,regb
-	arg 7,loopcnt
-	call string_compare
-	branch enable_user,zero
-	rtn
-
-find_addr_from_list_compare_ble_mode:
-	beq REC_4_MODE_RANDOM_RESOLVABLE_PRIVATE_ADDRESS,find_irk_form_list_compare
-	beq REC_4_MODE_RANDOM_NON_RESOLVABLE_PRIVATE_ADDRESS,find_ediv_form_list_compare
-	branch find_master_addr_from_list_compare
-
-find_irk_form_list_compare:
-	ifetcht 1,rega
-	isub temp,null
-	nrtn zero
-	arg mem_le_prand,contw
-	arg 16,loopcnt
-	call clear_mem
-	fetch 3,mem_le_plap+3
-	store 3,mem_le_prand
-	call genernate_master_MacAddress
-	fetch 2,mem_le_aes_128+13
-	byteswap pdata,pdata
-	lshift8 pdata,temp
-	ifetch 1,contr
-	iadd temp,pdata
-	fetcht 3,mem_le_plap
-	isub temp,null
-	branch enable_user,zero
-	rtn
-
-
-genernate_master_MacAddress:
-	arg mem_le_prand ,contr
-	call load_data128
-//	arg mem_le_irk,contr
-	ifetch 1,rega
-	call load_regext
-	force 0x38,aes_ctrl
-	force 0x0,aes_ctrl
-	call wait_aes
-	arg mem_le_aes_128,contw
-	branch store_aes_result
-
-find_ediv_form_list_compare:
-	ifetcht 1,rega
-	isub temp,null
-	nrtn zero
-	copy contr,rega
-	add contr,8,regc
-	arg mem_le_rand,regb
-	arg 8,loopcnt
-	call string_compare
-	branch enable_user,zero
-	copy regc,rega
-	arg mem_le_irk,regb
-	arg 8,loopcnt
-	call string_compare
-	branch enable_user,zero
-	rtn
-
-check_nvram:
-	fetch 2,mem_nv_data_ptr
-	ifetcht 1,pdata
-	pincrease NV_DATA_LEN
-	ifetch 1,pdata
-	isub temp,null
-	rtn
-
-init_device_list:
-	fetch 1,mem_nv_data_number
-	icopy loopcnt
-	fetcht 2,mem_nv_data_ptr
-	setarg 0
-init_device_list_loop:
-	istore 1,temp
-	increase NV_DATA_LEN,temp
-	pincrease 1
-	loop init_device_list_loop
-	rtn
-
-load_device_list_mode_4:
-//	fetch 9,mem_le_ediv
-//	branch clear_ltk_exists,blank
-	call enable_user2
-	call nvram_find_addr_from_bd_list
-	nbranch clear_ltk_exists,user
-	fetch 2,mem_list_item_ptr
-	add pdata,1,contr
-	arg mem_le_irk,contw
-	call  memcpy16
-	arg mem_le_ltk,contw
-	call  memcpy16
-	jam 1,mem_ltk_exists
-	rtn
-
-clear_ltk_exists:
-	jam 0,mem_ltk_exists
-	rtn
-
-
-eeprom_store_le_reconn_info:
-	jam REC_4_MODE,mem_record_bt_mode
-	branch eeprom_store_reconn_info
-
-eeprom_store_reconn_info:
-	fetch 1,mem_device_option
-	beq DVC_OP_MODULE,check_51cmd_update_device_record
-	beq DVC_OP_MOUSE,mouse_store_remote_bdaddr
-	beq DVC_OP_KEYBOARD,keyboard_store_remote_bdaddr
-	rtn
-	
-
-
-/* =============== GPIO CONTROL ================= */
-//temp [4:0]=GPIO number, return ptr in contw, contr is mask
-get_gpio_wakeup_index:
-	and temp,0x1f,pdata
-	rshift pdata,pdata
-	arg mem_gpio_wakeup_cfg,contw
-	iadd contw,contw
-	arg 0xf0,alarm
-	isolate0 0,temp
-	rtn true
-	arg 0xf,alarm
-	rtn
-
-//temp [4:0]=GPIO number, 0-31, 
-gpio_set_wake_by_current_state:
-	bpatch patch1f_2,mem_patch1f
-	sub temp,GPIO_DISABLE,null
-	rtn zero
-	set1 GPIO_ACTIVE_BIT,temp
-	call gpio_get_bit
-	nbranch gpio_set_qdec_mode,true
-	nsetflag true,GPIO_ACTIVE_BIT,temp
-	
-//temp [4:0]=GPIO number, 0-31, [7]=0, low active
-gpio_set_wake:
-	bpatch patch1f_3,mem_patch1f
-	sub temp,UI_BUTTON_GPIO_DISABLE,null
-	rtn zero
-	arg 4,debug
-	isolate1 GPIO_ACTIVE_BIT,temp
-	branch gpio_set_wake_high,true
-	arg 2,debug
-gpio_set_wake_high:
-	call get_gpio_wakeup_index
-	isolate0 0,temp
-	branch gpio_set_wake_low4bit,true
-	lshift4 debug,debug
-gpio_set_wake_low4bit:
-	ifetch 1,contw
-	iand alarm,pdata
-	ior debug,pdata
-	istore 1,contw
-	rtn
-
-gpio_set_qdec_mode:
-	jam 1,mem_qdec_set_flag
-	call gpio_set_high_impedance
-	arg 6,debug
-	branch gpio_set_wake_high
-
-//temp [4:0]=GPIO number, 0-31, [7]=0, low active
-gpio_set_low_pullup:
-	bpatch patch1f_4,mem_patch1f
-	sub temp,UI_BUTTON_GPIO_DISABLE,null
-	rtn zero
-	arg 1,debug
-	call get_gpio_wakeup_index
-	isolate0 0,temp
-	branch gpio_set_low_pullup_low4bit,true
-	lshift4 debug,debug
-gpio_set_low_pullup_low4bit:
-	ifetch 1,contw
-	iand alarm,pdata
-	ior debug,pdata
-	istore 1,contw	
-	rtn	
-
-
-	
-//temp [4:0]=GPIO number, 0-31, [7]=0, low active
-gpio_clr_wake:
-	bpatch patch1f_5,mem_patch1f
-	sub temp,UI_BUTTON_GPIO_DISABLE,null
-	rtn zero
-	call get_gpio_wakeup_index
-	ifetch 1,contw
-	iand alarm,pdata
-	istore 1,contw
-	rtn	
-
-gpio_config_input_nowake:
-	call gpio_clr_wake
-	branch gpio_config_input_without_wake
-
-//temp [4:0]=GPIO number, 0-31, [7]=0, low active
-gpio_config_input:
-	sub temp,UI_BUTTON_GPIO_DISABLE,null
-	rtn zero
-	ncall gpio_set_wake,wake
-gpio_config_input_without_wake:
-	call gpio_addr
-	setarg 0
-	isolate1 GPIO_ACTIVE_BIT,temp
-	nsetflag true,6,pdata
-	setflag true,7,pdata
-	branch gpio_write
-
-//temp is gpio number, return true if gpio active
-gpio_get_bit:
-	bpatch patch1f_6,mem_patch1f
-	arg core_gpio_in,contw
-	and temp,0x07,queue
-	rshift3 temp,pdata
-	and_into 3,pdata
-	iadd contw,contw
-	ifetch 1,contw
-	isolate1 GPIO_ACTIVE_BIT,temp
-	branch gpio_get_bit_reverse,true
-	qisolate0 pdata
-	rtn
-gpio_get_bit_reverse:
-	qisolate1 pdata
-	rtn
-
-//temp [5:0]=GPIO number, 0-39, [7]=0, low active. set gpio to inactive state
-gpio_out_inactive:
-	sub temp,UI_BUTTON_GPIO_DISABLE,null
-	rtn zero
-	isolate1 GPIO_ACTIVE_BIT,null
-	branch gpio_out_flag
-
-gpio_config_output:
-gpio_out_active:
-	sub temp,UI_BUTTON_GPIO_DISABLE,null
-	rtn zero
-	isolate0 GPIO_ACTIVE_BIT,null
-
-//temp is gpio number,  [7]=1,set out equa true flag if gpio active
-gpio_out_flag:
-	setarg 0
-	nsetflag true,GPIO_ACTIVE_BIT,pdata
-	ixor temp,temp
-
-//temp is gpio number,0-31, [7]=out bit value
-gpio_out:
-	call gpio_addr
-	setarg gpcfg_output_high
-	isolate1 GPIO_ACTIVE_BIT,temp
-	setflag true,0,pdata
-	branch gpio_write
-
-//check output status
-gpio_check_active:
-	sub temp,UI_BUTTON_GPIO_DISABLE,null
-	branch  disable_true,zero
-	call gpio_addr
-	ifetch 1,contw
-	bbit1 0,gpio_check_active_high
-	isolate0 GPIO_ACTIVE_BIT,temp
-	rtn
-gpio_check_active_high:
-	isolate1 GPIO_ACTIVE_BIT,temp
-	rtn
-
-gpio_set_analog:
-	sub temp,UI_BUTTON_GPIO_DISABLE,null
-	rtn zero
-	call gpio_addr
-	setarg gpcfg_no_ie
-gpio_write:
-	istore 1,contw
-	rtn
-
-gpio_set_high_impedance:
-	sub temp,UI_BUTTON_GPIO_DISABLE,null
-	rtn zero
-	call gpio_addr
-	setarg gpcfg_high_impedance
-	branch gpio_write
-
-gpio_addr:
-	and temp,0x3f,pdata
-	sub pdata,GPIO_NUMBER+-1,null
-	nbranch gpio_addr_ext,positive
-	arg core_gpio_conf,contw
-gpio_addr_next:
-	iadd contw,contw
-	rtn
-gpio_addr_ext:
-	arg core_gpio_conf_hi,contw
-	increase -16,pdata
-	branch gpio_addr_next
-
-
-gpio_config_param:
-	and pdata,0xff,temp
-	rshift8 pdata,pdata
-	branch gpio_config_function_int
-
-//pdata: gpio number bit7=1, temp: function type
-gpio_config_function:
-	rtnbit0 GPIO_ACTIVE_BIT
-gpio_config_function_int:
-	rtneq GPIO_DISABLE 
-	and_into 0x3f,pdata
-	sub pdata,GPIO_NUMBER+-1,null
-	nbranch gpio_config_function_int_ext,positive
-	arg core_gpio_conf,contw
-gpio_config_function_int_next:
-	iadd contw,contw
-	istoret 1,contw
-	rtn
-gpio_config_function_int_ext:
-	arg core_gpio_conf_hi,contw
-	increase -16,pdata
-	branch gpio_config_function_int_next
-
-
-//temp:gpio num
-gpio_get_config:
-	and_into 0x3f,temp	
-	sub temp,GPIO_NUMBER+-1,null
-	nbranch gpio_get_config_ext,positive	
-	setarg core_gpio_conf
-gpio_get_config_next:
-	iadd temp,contr
-	ifetch 1,contr
-	rtn
-gpio_get_config_ext:
-	setarg core_gpio_conf_hi
-	increase -16,temp
-	branch gpio_get_config_next
-
-
-//The default as shutter and remote
-gpio_set_before_lpm:
-	arg GPIO_NUMBER,loopcnt
-	arg core_gpio_conf,contr
-setgpio_loop:
-	copy contr,contw
-	ifetch 1,contr
-	beq gpcfg_spid_miso,setgpio_pullup
-	beq gpcfg_spid_ncs,setgpio_pullup
-	beq gpcfg_spid_sck,setgpio_pullup
-	beq gpcfg_spid_mosi,setgpio_pullup
-	beq gpcfg_spid_sdio,setgpio_pullup
-	beq gpcfg_iic_scl,setgpio_pullup
-	beq gpcfg_iic_sda,setgpio_pullup
-	beq gpcfg_input,setgpio_pullup
-setgpio_loop_end:
-	loop setgpio_loop
-	arg core_gpio_conf_hi+GPIO_NUMBER_EXT,pdata
-	isub contr,null
-	rtn zero
-gpio_set_before_lpm_ext:
-	arg GPIO_NUMBER_EXT,loopcnt
-	arg core_gpio_conf_hi,contr
-	branch setgpio_loop
-	
-	
-setgpio_pullup:
-	setarg gpcfg_pullup
-	istore 1,contw
-	branch setgpio_loop_end
-setgpio_pulldown:
-	setarg gpcfg_pulldown
-	istore 1,contw	
-	branch setgpio_loop_end
-
-/***********************************qdec**************************************/
-
-lpm_puchk_set_check:
-	fetch 1,mem_qdec_set_flag
-	branch lpm_config_puchk_disable,blank
-	branch lpm_config_puchk_enable
-
-lpm_config_puchk_disable:
-	setarg 0x10			//bit0-1:key_delay	bit2-3:pu_delay		bit4-6:interval	bit7:enable 
-lpm_config_puchk_set:
-	store 1,core_puwakeup
-	branch lpm_write_wait
-
-lpm_config_puchk_enable:
-	setarg 0x80			//bit0-1:key_delay	bit2-3:pu_delay		bit4-6:interval	bit7:enable 
-	branch lpm_config_puchk_set
-
-/*************************************ADC*************************************/
-
-sadc_calibration:
-	bpatch patch1f_7,mem_patch1f
-	rtn wake
-	jam 0x77,core_gpadc_ctrl
-	jam 0xc9,core_gpadc_cfg0
-	jam 0x01,core_gpadc_cfg3
-	fetch 1,mem_adc_clkdiv
-	store 1,core_sadc_clkdiv
-	jam 0x03,core_sadc_ctrl
-	call sar_adc_read_wait
-	fetcht 2,core_sadc_data
-//	storet 2,mem_adc_current_value
-	jam 0x00,core_sadc_ctrl
-	jam 0xc1,core_gpadc_cfg0	
-sadc_cal_read:
-	arg 8,loopcnt
-	arg mem_adc_cal_c0,rega
-	jam 0x05,core_gpadc_cfg2
-sadc_cal_read_loop:
-	fetch 1,core_gpadc_status
-	istore 1,rega
-	increase 1,rega
-	fetch 1,core_gpadc_cfg2
-	increase 0x20,pdata
-	store 1,core_gpadc_cfg2
-	loop sadc_cal_read_loop
-	jam 0x00,core_gpadc_ctrl	
-	rtn
-
-sadc_cal_write:
-	fetch 1,core_sadc_ctrl
-	set1 1,pdata
-	store 1,core_sadc_ctrl
-	arg 8,loopcnt
-	arg mem_adc_cal_c0,rega
-	jam 0x15,core_gpadc_cfg2
-sadc_cal_write_loop:
-	ifetch 1,rega
-	store 1,core_gpadc_cfg1
-	increase 1,rega
-	fetch 1,core_gpadc_cfg2
-	increase 0x20,pdata
-	store 1,core_gpadc_cfg2
-	loop sadc_cal_write_loop
-	fetch 1,core_sadc_ctrl
-	set0 1,pdata
-	store 1,core_sadc_ctrl
-	rtn
-
-
-//mem_adc_config_flag 1:HVIN 2: GPIO
-adc_init_data:
-	bpatchx patch20_0,mem_patch20
-	fetch 8,mem_otp_adc
-	rtn blank
-	store 8,mem_reference_inter1p8v_2v_adc_io_data
-	call enable_otp_read
-	call loadcode_check_otp_lock
-	arg OTP_OFFSET_ADC_PARAM_L_C0,pdata
-	iadd regb,regb
-	arg 10,loopcnt
-	arg mem_otp_temp,rega
-	call otp_read_data
-	call disable_otp
-	fetch 8, mem_otp_temp
-	rtn blank
-	store 8,mem_adc_reference3v_gpio1v_ft_data
-	ifetch 2,contr
-	istore 2,contw	
-	rtn
-	
-
-vdd_calculate_by_mode:
-	bpatchx patch20_1,mem_patch20
-	fetch 1,mem_adc_reference_mode
-	beq SADC_REFERENCE_INTER3V,vdd_reference_inter3V_calculate
-	beq SADC_REFERENCE_INTER1P8V_DIV2,vdd_reference_inter1p8V_calculate
-	branch vdd_reference_inter3V_calculate
-
-vdd_reference_inter3V_calculate:
-	fetch 1,mem_adc_config_flag
-	beq ADC_CONFIG_HVIN,vdd_reference_inter3V_calculate_by_mode_vdcdc
-	beq ADC_CONFIG_GPIO,vdd_reference_inter3V_calculate_by_mode_gpio
-	rtn
-	
-vdd_reference_inter3V_calculate_by_mode_vdcdc:
-	setarg 1000
-	store 2,mem_reference_voltage
-	fetcht 2,mem_adc_reference3v_vdcdc3p6v_ft_data
-	fetch 2,mem_adc_reference3v_vdcdc4p6v_ft_data
-	arg 3600,regc
-	call vdd_calculate
-	branch mul1V_div1V_to_cal
-	
-vdd_reference_inter3V_calculate_by_mode_gpio:
-	setarg 1000
-	store 2,mem_reference_voltage
-	fetcht 2,mem_adc_reference3v_gpio1v_ft_data
-	fetch 2,mem_adc_reference3v_gpio2v_ft_data
-	arg 1000,regc
-	call vdd_calculate
-mul1V_div1V_to_cal:
-	fetcht 2,mem_adc_reference3v_inter1v_ft_data
-	imul32 temp,pdata
-	fetcht 2,mem_adc_reference3v_inter1v_now_data
-	idiv temp
-	branch get_div_result
-
-enable_adc_init_config:
-	call sadc_cal_write
-	fetch 1,core_gpadc_cfg1
-	set0 7,pdata
-	store 1,core_gpadc_cfg1
-	jam 0x77,core_gpadc_ctrl
-	jam 0xc1,core_gpadc_cfg0
-	jam 0x61,core_vtest_ctrl0
-	jam 0x00,core_gpadc_cfg3
-	rtn	
-
-	
-enable_adc:
-	bpatchx patch20_2,mem_patch20
-	fetch 1,mem_adc_reference_mode
-	beq SADC_REFERENCE_INTER3V,enable_adc_reference_source_inter3V
-	beq SADC_REFERENCE_INTER1P8V_DIV2,enable_adc_reference_source_inter1p8V
-	branch enable_adc_reference_source_inter3V
-	
-enable_adc_reference_source_inter3V:
-	call enable_adc_init_config
-	call sadc_channel
-	fetch 1,mem_adc_clkdiv
-	store 1,core_sadc_clkdiv
-	call sadc_read
-	jam 0x60,core_vtest_ctrl0
-	jam 0x00,core_sadc_clkdiv	
-//	rtn
-	
-read_adc_inter1V:
-	call enable_adc_init_config
-	fetch 1,mem_adc_clkdiv
-	store 1,core_sadc_clkdiv
-	jam 0x50,core_gpadc_cfg3
-	jam 0xc0,core_vtest_ctrl1//select vref1v
-
-	arg 0xb,regext_index
-	fetchr regext, 2,mem_adc_current_value
-	
-	jam 0x03,core_sadc_ctrl	
-	call sar_adc_read_wait
-	fetcht 2,core_sadc_data
-	storet 2,mem_adc_reference3v_inter1v_now_data 
-//	call sadc_read_wait+4
-	jam 0x06,core_sadc_ctrl
-	call sadc_read_wait2
-	
-	arg 0xb,regext_index
-	storer regext,2,mem_adc_current_value
-
-	jam 0x60,core_vtest_ctrl0
-	jam 0x00,core_sadc_clkdiv
-	jam 0x00,core_sadc_ctrl
-	rtn
-	
-
-vdd_reference_inter1p8V_calculate:
-	fetch 1,mem_adc_config_flag
-	beq ADC_CONFIG_HVIN,vdd_reference_inter1p8V_calculate_by_mode_vdcdc
-	beq ADC_CONFIG_GPIO,vdd_reference_inter1p8V_div2_calculate_by_mode_gpio
-	rtn
-	
-vdd_reference_inter1p8V_calculate_by_mode_vdcdc:
-	setarg 2000
-	store 2,mem_reference_voltage
-	fetcht 2,mem_reference_inter1p8v_2p6v_adc_vdcdc_data
-	fetch 2,mem_reference_inter1p8v_4p6v_adc_vdcdc_data
-	arg 2600,regc
-	branch vdd_calculate
-
-vdd_reference_inter1p8V_div2_calculate_by_mode_gpio:
-	setarg 1000
-	store 2,mem_reference_voltage
-	fetcht 2,mem_reference_inter1p8v_2v_adc_io_data
-	fetch 2,mem_reference_inter1p8v_1v_adc_io_data
-	arg 2000,regc
-//	branch vdd_calculate00
-	
-vdd_calculate00:
-	isub temp,rega
-	fetch 2,mem_adc_current_value
-	isub temp,pdata
-	nbranch vdd_calculate11,positive
-	call vdd_calculate_common
-	isub regb,pdata
-	nbranch set_pdata_0,positive
-	branch vdd_calculate2
-	
-vdd_calculate11:
-	copy temp,pdata
-	fetcht 2,mem_adc_current_value
-	isub temp,pdata
-	call vdd_calculate_common
-	iadd regb,pdata
-	branch vdd_calculate2
-
-
-enable_adc_reference_source_inter1p8V:	
-	fetch 1,mem_adc_config_flag
-	beq ADC_CONFIG_HVIN,enable_adc_reference_source_inter1p8V_vdcdc
-enable_adc_reference_source_inter1p8V_div2_gpio:	
-	call sadc_cal_write
-	fetch 1,core_gpadc_cfg1
-	set0 7,pdata
-	store 1,core_gpadc_cfg1
-	jam 0x77,core_gpadc_ctrl
-	jam 0x41,core_gpadc_cfg0
-	jam 0x14,0x8ac6			//div2
-	branch enable_adc_reference_source_inter1p8V_common
-	
-enable_adc_reference_source_inter1p8V_vdcdc:
-	call sadc_cal_write
-	fetch 1,core_gpadc_cfg1
-	set0 7,pdata
-	store 1,core_gpadc_cfg1
-	jam 0x77,core_gpadc_ctrl
-	jam 0x41,core_gpadc_cfg0
-	jam 0x10,0x8ac6			//not div2
-enable_adc_reference_source_inter1p8V_common:
-	jam 0x00,core_gpadc_cfg3
-	call sadc_channel
-	fetch 1,mem_adc_clkdiv
-	store 1,core_sadc_clkdiv
-	call  sadc_read
-	
-	jam 0x00,core_sadc_clkdiv
-	jam 0x00,0x8ac6
-	rtn
-
-sadc_channel:
-	fetch 1,mem_adc_channel
-	lshift4 pdata,pdata
-	fetcht 1,core_gpadc_cfg3
-	and_into 0x0f,temp
-	ior temp,temp
-	storet 1,core_gpadc_cfg3
-	rtn
-
-sar_adc_read_wait:
-	fetch 1,core_perf_status
-	bbit0 SARADC_DONE,sar_adc_read_wait
-	rtn
-
-	
-sadc_read:
-	bpatchx patch20_3,mem_patch20
-	jam 0x03,core_sadc_ctrl
-	call sar_adc_read_wait
-	fetcht 2,core_sadc_data
-	storet 2,mem_adc_current_value
-	jam 0x06,core_sadc_ctrl
-sadc_read_wait2:
-	fetch 1,core_perf_status
-	bbit1 SARADC_DONE,sadc_read_wait2
-	jam 0x00,core_sadc_ctrl
-	rtn
-	
-sadc_dma:
-	fetch 1,mem_adc_dma_enable
-	rtn blank	
-	fetch 1,core_gpadc_cfg1
-	set1 7,pdata
-	store 1,core_gpadc_cfg1
-	fetch 1,mem_adc_clkdiv
-	store 1,core_sadc_clkdiv
-	fetch 2,mem_adc_saddr_ptr
-	store 2,core_sadc_saddr
-	fetch 2,mem_adc_eaddr_ptr
-	store 2,core_sadc_eaddr
-	jam 0x0b,core_sadc_ctrl
-	nop 1000
-	jam 0x03,core_sadc_ctrl
-	rtn
-
-
-vdd_calculate:
-	isub temp,rega
-	fetch 2,mem_adc_current_value
-	isub temp,pdata
-	nbranch vdd_calculate1,positive
-	call vdd_calculate_common
-	iadd regb,pdata
-vdd_calculate2:
-	idiv rega
-	branch get_div_result
-
-vdd_calculate1:
-	copy temp,pdata
-	fetcht 2,mem_adc_current_value
-	isub temp,pdata
-	call vdd_calculate_common
-	isub regb,pdata
-	nbranch set_pdata_0,positive
-	branch vdd_calculate2
-
-
-vdd_calculate_common:
-	fetcht 2,mem_reference_voltage
-	imul32 temp,regb
-	copy regc,pdata
-	imul32 rega,pdata
-	rtn
-	
-
-
-/*	typedef struct
-*	{
-*		uint16 full_vol
-*		uint16 empty_vol
-*		uint16 low_vol
-*		uint16 now_vol
-*	}bat_calculate;
-*/
-//out:	pdata->bat percent
-adc_bat_percent_lowpower_out:
-	ifetch 8,rega
-	store 8,mem_pdatatemp
-	fetch 2,mem_pdatatemp
-	fetcht 2,mem_pdatatemp+2
-	isub temp,rega
-	fetch 2,mem_pdatatemp+6
-	isub temp,regb
-	fetcht 2,mem_pdatatemp+4
-	isub temp,null
-	ncall adc_set_low_power_flag,positive
-	mul32 regb,100,pdata
-	idiv rega
-	call wait_div_end
-	quotient pdata
-	call adc_set_no_power_flag,blank
-	rtn
-
-adc_set_low_power_flag:
-	fetch 1,mem_adc_power_flag
-	set1 0,pdata
-	branch adc_set_power_flag
-
-adc_clear_low_power_flag:
-	fetch 1,mem_adc_power_flag
-	set0 0,pdata
-	branch adc_set_power_flag
-	
-adc_set_no_power_flag:
-	fetcht 1,mem_adc_power_flag
-	set1 1,temp
-	branch adc_set_power_flag
-
-adc_clear_no_power_flag:
-	fetcht 1,mem_adc_power_flag
-	set0 1,temp
-adc_set_power_flag:
-	storet 1,mem_adc_power_flag
-	rtn	
-
-
-
-/****************************************key scan***************************************/
-keyscan_key_init:
-	fetch 2,mem_key_num_ptr
-	ifetch 1,pdata
-keyscan_key_init_next:
-	rtn blank
-	copy pdata,loopcnt
-//	copy contr,rega
-	fetch 2,mem_keyscan_ptr
-	increase 3,pdata	//mem_key_conf0_pin
-	copy pdata,rega
-keyscan_key_init_lp1:
-	ifetcht 1, rega
-	call gpio_config_input
-	increase KEY_CONF_STRUCT_LEN,rega
-	loop keyscan_key_init_lp1
-keyscan_key_init_end:
-	rtn
-	
-keyscan_scan_key:
-	fetch 2,mem_keyscan_ptr
-	increase 3,pdata	//mem_key_conf0_pin
-	copy pdata,rega
-//	arg mem_key_conf0_pin,rega
-	force 0,regb
-	setarg 0
-	store 2,mem_key_value_temp
-keyscan_scan_key_lp1:
-	ifetcht 1, rega
-	call gpio_get_bit
-	bpatchx patch20_4,mem_patch20
-	fetch 2,mem_key_value_temp
-	copy regb,queue
-	qsetflag true,pdata
-	store 2, mem_key_value_temp
-	increase KEY_CONF_STRUCT_LEN,rega
-	increase 1,regb
-	fetch 2,mem_key_num_ptr
-	ifetch 1,pdata
-keyscan_scan_key_lp1_next:
-	ixor regb,null
-	nbranch keyscan_scan_key_lp1,zero
-	fetch 2,mem_key_value_temp
-	fetcht 2,mem_key_value_retention
-	ixor temp,null
-	rtn zero
-	branch enable_user
-
-keyscan_process_lpm_before:
-	fetch 2,mem_key_num_ptr
-	ifetch 1,pdata
-keyscan_process_lpm_before_next:
-	rtn blank
-	copy pdata,loopcnt
-	fetch 2,mem_keyscan_ptr 
-	increase 3,pdata	//mem_key_conf0_pin
-	copy pdata,rega
-keyscan_process_lpm_before_lp1:
-	ifetcht 1, rega
-	call gpio_set_wake_by_current_state
-	increase KEY_CONF_STRUCT_LEN,rega
-	loop keyscan_process_lpm_before_lp1
-keyscan_process_lpm_before_end:
-	rtn
-
-keyscan_key_process:
-	arg key_scan_timer,queue
-	call timer_check
-	nrtn blank
-	setarg 0x20
-	arg key_scan_timer,queue
-	call timer_init
-	disable user
-	call keyscan_process_lpm_before
-	bpatchx patch20_5,mem_patch20
-	fetch 2,mem_key_num_ptr
-	ifetch 1,pdata
-keyscan_key_process_next:
-	rtn blank
-	call keyscan_scan_key
-	nbranch lpm_button_clean_wake_lock,user
-	call lpm_button_get_wake_lock
-	disable user
-	fetch 2,mem_key_value_temp
-	store 2,mem_key_value_temp4
-	jam 0,mem_key_value_temp6
-	force 0,queue
-keyscan_key_lp1:
-	fetch 2, mem_key_value_retention
-	rshift pdata,temp
-	storet 2,mem_key_value_retention
-	and pdata,0x01,pdata
-	fetcht 2, mem_key_value_temp4
-	and temp,0x01,rega
-	rshift temp,temp
-	storet 2,mem_key_value_temp4
-	ixor rega,null
-	ncall keyscan_send_key_data,zero
-	fetch 2,mem_key_num_ptr
-	ifetch 1,pdata
-keyscan_key_lp1_next:
-	fetcht 1, mem_key_value_temp6
-	increase 1,temp
-	storet 1, mem_key_value_temp6
-	copy temp,queue
-	ixor queue,null
-	nbranch keyscan_key_lp1,zero
-	fetch 2,mem_key_value_temp
-	store 2,mem_key_value_retention
-	rtn
-keyscan_send_key_data:
-	bpatchx patch20_6,mem_patch20
-	fetch 2,mem_keyscan_ptr
-	increase 1,pdata
-	ifetch 2,pdata
-	branch callback_func
-
-
-/*************************************pwm*************************************/
-
-//rega:clk select(0:system clk; 1:system clk undivied; 2:lpo)
-/*rega:clk select
-			0x00:select system clock 12M;
-			0x40:select undivied system clock 24M/48M;
-			0x80:select lpo clock:33K
-*/
-pwm_init:
-	fetch 1,core_clksel
-	ior rega,pdata
-	store 1,core_clksel
-	fetch 2,core_clkoff
-	set0 CLOCK_OFF_PWM,pdata
-	store 2,core_clkoff
-delay_nop100:
-	nop 100
-	rtn
-
-/*	typedef struct
-*	{
-*		uint8 gpio_num
-*		uint8 pwm_channel
-*		uint24 frequency
-*		uint8 duty_cycle   //0-100
-*	}PWM_Style;
-	addr: mem_pdatatemp
-*/
-pwm_clk_set:
-	fetch 1,core_clksel
-	bbit1 6,pwm_24m_clk_set
-	bbit1 7,pwm_33k_clk_set
-pwm_12m_clk_set:
-	setarg PWM_12MHZ
-	rtn
-pwm_24m_clk_set:
-	setarg PWM_24MHZ
-	rtn
-pwm_33k_clk_set:
-	setarg PWM_33KHZ
-	rtn
-
-
-/*
-input:
-mem_pdatatemp:
-byte[0]: pwm gpio selected
-byte[1]: pwm channel selected
-byte[2-4]: pwm frequency, little-endian
-byte[5]: duty cycle, percentage
-*/
-pwm_out_set:
-	fetcht 3,mem_pdatatemp+2
-	call pwm_clk_set
-	idiv temp
-	call wait_div_end
-	quotient temp
-	fetch 1,mem_pdatatemp+5
-	imul32 temp,pdata
-	div pdata,100
-	call wait_div_end
-	quotient rega
-	copy temp,pdata
-	isub rega,regb
-
-	fetch 1,mem_pdatatemp+1
-	call pwm_duty_cycle_set
-	fetch 1,mem_pdatatemp
-	fetcht 1,mem_pdatatemp+1
-	and_into 0x0f,temp
-	lshift8 temp,temp
-	ior temp,pdata
-	branch pwm_enable
-
-/*
-input:
-rega:pcnt ;
-regb:ncnt;
-pdata:pwm channel select.
-*/
-pwm_duty_cycle_set:
-	iforce queue
-	call pwm_duty_cycle_set_without_autoload
-	branch pwm_autoload_set
-
-/*
-input:
-queue: pwm channel
-*/
-pwm_autoload_set:	
-	fetch 1, core_pwm_autoload
-	qset1 pdata
-	store 1, core_pwm_autoload
-	fetcht 1, core_clksel
-	isolate1 7, temp
-	call delay_1clk_of_33k, true
-	qset0 pdata
-	store 1, core_pwm_autoload
-	rtn	
-
-
-delay_1clk_of_33k:
-	nop 480
-	rtn
-
-/*
-input:
-rega:pcnt ;
-regb:ncnt;
-pdata:pwm channel select.
-*/	
-pwm_duty_cycle_set_without_autoload:
-	and_into 0x0f,pdata
-	arg core_pwm_pcnt0,contw
-	mul32 pdata,4,pdata
-	iadd contw,contw
-	copy rega,pdata
-	istore 2,contw
-	copy regb,pdata
-	istore 2,contw
-	rtn
-
-
-
-
-/*
-rega: even pwm channel select & gpio select 
-regb: odd pwm channel select & gpio select 
-
-note:
-byte of even pwm channel:
-bit[7]: force to set even sync bit to 1;
-bit[6]: for even bit, reserved
-
-byte of odd pwm channel:
-bit[7]: 1: set odd sync bit to 1; 0: set odd sync bit to 0; 
-bit[6]: 1: set odd pwm init to 1; 0: set odd pwm init to 0;
-
-setarg 0x0008, rega
-0x00:pwm0 selected
-0x08:gpio select
-
-arg 0x4109, regb
-0x41:pwm1 selected and set pwm1 init bit to 1
-0x09:gpio select
-pwm_enable_in_syncmode:
-	rshift8 regb, queue
-	call pwm_init_bit_set
-	rshift8 regb, queue
-	call pwm_syncmode_set
-	rshift8 rega, queue
-	enable true
-	call pwm_syncmode_set_process
-
-	deposit rega
-	call pwm_gpio_select
-	deposit regb
-	branch pwm_enable
-
-pwm_disable_in_syncmode:
-	deposit rega
-	call pwm_disable
-	deposit regb
-	call pwm_disable
-
-	rshift8 rega, queue
-	disable true
-	call pwm_syncmode_set_process
-	rshift8 regb, queue
-	disable true
-	call pwm_init_bit_set_process
-	rshift8 regb, queue
-	disable true
-	branch pwm_syncmode_set_process
-*/
-
-
-/*
-input:
-queue: pwm channel
-
-note:
-for even bit, 
-0: PWM0/1 work independent
-1: PWM0 output is synchronized to PWM1
-for odd bit,
-Only used when pwm0_syn_to_pwm1 =1, PWM0/1 out inverse
-pwm_syncmode_set:
-	isolate1 7, queue
-pwm_syncmode_set_process:	
-	and queue, 0x0f,queue
-	fetch 1,core_pwm_sync
-   	qsetflag true,pdata
-   	store 1,core_pwm_sync
-   	rtn
-*/
-
-/*
-input:
-queue: pwm channel
-
-note:
-for even bit, reserved
-for odd bit,only used when pwm0_syn_to_pwm1 =1, 
-0: PWM0 out high first
-1: PWM1 out high first
-*/
-pwm_init_bit_set:
-	isolate1 6, queue
-pwm_init_bit_set_process:	
-	and queue, 0x0f,queue
-	fetch 1, core_pwm_init
-	qsetflag true, pdata
-	store 1, core_pwm_init
-	rtn
-/*
-input:
-pdata: pwm channel select & gpio select 
-
-note:
-setarg 0x0108
-0x01:pwm channel select
-0x08:gpio select
-*/
-pwm_gpio_select:
-	call pwm_select_channel
-pwm_gpio_select_process:
-	lshift8 pdata,pdata
-	add queue,gpcfg_pwm_out0,temp
-	ior temp,pdata
-	branch gpio_config_param 
-
-/*
-input:
-pdata: pwm channel select & gpio select 
-
-note:
-setarg 0x0108
-0x01:pwm channel select
-0x08:gpio select
-*/
-pwm_enable:
-	enable user
-	call pwm_gpio_select
-	branch pwm_set_select
-	
-pwm_disable:
-	disable user
-	call pwm_select_channel
-	branch pwm_set_select
-
-pwm_set_select:
-	and queue, 0x0f,queue
-	fetch 1,core_pwm_en
-   	qsetflag user,pdata
-   	store 1,core_pwm_en
-	rtn
-pwm_select_channel:
-	rshift8 pdata,queue
-	and queue, 0x0f,queue
-	rtn
-
-
-/*************WATCH DOG API*************************/
-/*
-	function name:wdt_init_config 
-   input:kick dog time (pdata*7.8125ms) (7.8125ms~16s) (16s = 0x800)
-*/
-wdt_init_config:
-	copy pdata,temp
-	bpatchx patch20_7,mem_patch20
-	call wdt_set_enable	//enable
-	setarg 2048
-	isub temp,pdata
-	copy pdata,temp
-	rshift4 temp,temp
-	storet 1,core_write_wdt
-	nop 1400
-	copy pdata,temp
-	and_into 0x0f,temp
-	storet 1,core_write_wdt2
-	rtn
- 
-
-wdt_set_enable:
-	enable user2
-	branch wdt_init_set
-
-	
-wdt_set_disable:
-	bpatchx patch21_0,mem_patch21
-	disable user2
-wdt_init_set:
-	fetch 1,core_config
-   	setflag user2,3,pdata
-	store 1,core_config
-	rtn
-
-
-ifdef NEC
-
-/*************NEC API*************************/
-/*
-	function name:nec_init_config 
-	input:
-		pdata is nec buffer address
-		bit[0-15]:rx start memory address
-		bit[16-31]:rx ending memory address
-		temp is nec control config
-		E.M 0x31 is 12M system clock is 2us temp
-*/
-nec_init_config:
-	store 4,core_nec_start_addr
-	store 2,core_nec_rptr
-	storet 1,core_nec_ctrl
-	rtn
-
-
-endif //NEC
-
-/*
-select_system_clk_24M:
-	jam SYSTEM_CLK_24M,mem_system_clk
-	jam clksel_dpll_24M,core_clksel
-	setarg 7499
-	store 2,core_halfslot
-calc_new_param:
-	arg 11,loopcnt
-	arg mem_param_tx_setup,rega
-calc_new_param_loop:
-	ifetch 2,rega
-	lshift pdata,pdata
-	istore 2,rega
-	increase 2,rega
-	loop calc_new_param_loop
-	rtn
-
-calc_new_le_time:
-	lshift stop_watch,stop_watch
-	rtn
-*/
-select_system_clk_12M_xtal:
-	jam clksel_xtal,core_clksel
-select_system_clk_12M_common:
-	jam SYSTEM_CLK_12M,mem_system_clk
-	setarg 3749
-	store 2,core_halfslot
-	rtn
-
-select_system_clk_12M_dpll:
-	jam clksel_dpll,core_clksel
-	branch select_system_clk_12M_common
-
-/*****************************50HZ*****************************/
-/*
-(input):
-pdata:ac data buf start address
-temp:ac data buf length
-mem_ac_detect_gpio:choice gpio[0-12]
-mem_ac_detect_control:[7:2]ac detect clk divide number,[15:8]ac detect window (ms)
-
-(output):
-true=1,  50hz single disappear true=0,50hz detected
-
-*/
-/*
-ac_50hz_check:
-	store 2,core_ac_saddr
-	storet 1,core_ac_buf_len
-	fetch 1,mem_ac_detect_gpio
-	arg gpcfg_ac_input,temp
-	call gpio_config_function_int
-	fetch 2,mem_ac_detect_control  
-	set1 0,pdata                 //ac detect enable[0]
-	store 2,core_ac_ctrl
-ac_50hz_check_wait:		
-	fetch 1,core_perf_status
-	isolate1 6,pdata
-	rtn 
-*/
-
-
Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/security.prog
===================================================================
--- /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/security.prog	(revision 5679)
+++ /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/security.prog	(nonexistent)
@@ -1,1203 +0,0 @@
-
-
-ifdef SECURE_CONNECTION
-	
-function_g2:
-	bpatchx patch21_1,mem_patch21
-	jam 80,mem_AES_CMAC_data_length
-	arg mem_dat,contw
-	arg mem_le_srand,contr
-	call memcpy16
-	arg mem_sc_pubkey_local_x_256,contr
-	call memcpy32
-	arg mem_le_pubkey_remote_x_256,contr
-	call memcpy32
-	call inverse_memdat	
-	arg mem_le_mrand,contr
-	call store_inverse_k	
-	call function_AES_CMAC	
-
-	arg mem_AES_CMAC_temp,contw
-	call load_inverse_result
-	setarg 1000000
-	copy pdata,rega
-	fetch 4,mem_AES_CMAC_temp
-	idiv rega
-	call wait_div_end
-	remainder pdata
-	store 4,mem_gkey
-//call ice_break
-	rtn
-
-function_f6_eb:
-	jam 65,mem_AES_CMAC_data_length
-	arg mem_dat,contw
-	call store_addr_common_a
-	call store_addr_common_b
-	fetch 3,mem_le_pres+1
-	istore 3,contw
-//	arg mem_le_r,contr
-//	call memcpy16	
-	call get_r
-	
-	arg mem_le_mrand,contr
-	call memcpy16
-	arg mem_le_srand,contr
-	call memcpy16
-	call inverse_memdat
-	arg mem_le_mackey ,contr
-	arg mem_AES_CMAC_k,contw
-	call memcpy16
-//	call p_store_inverse_k	
-	branch function_AES_CMAC
-//	arg mem_AES_CMAC_temp,contw
-//	branch p_load_inverse_result
-
-get_r:
-	fetch 4,mem_le_tk
-	istore 4,contw
-	call memset0_4
-	branch memset0_8
-
-function_f6_ea:
-	bpatchx patch21_2,mem_patch21
-	jam 65,mem_AES_CMAC_data_length
-	arg mem_dat,contw
-	call store_addr_common_b
-	call store_addr_common_a
-	fetch 3,mem_le_preq+1
-	istore 3,contw
-//	arg mem_le_r,contr
-//	call memcpy16	
-	call get_r
-	arg mem_le_srand,contr
-	call memcpy16
-	arg mem_le_mrand,contr
-	call memcpy16
-	call inverse_memdat
-	arg mem_le_mackey ,contr
-	arg mem_AES_CMAC_k,contw
-	call memcpy16
-//	call p_store_inverse_k	
-	call function_AES_CMAC
-	arg mem_AES_CMAC_temp,contw
-	branch load_inverse_result
-
-function_f5:
-	jam 32,mem_AES_CMAC_data_length
-	arg mem_le_dhkey_256 ,contr
-	arg mem_dat,contw
-	call memcpy32
-	call inverse_memdat
-	arg mem_le_slat,contr
-	call store_inverse_k	
-	call function_AES_CMAC
-	arg mem_AES_CMAC_k,contw
-	call store_aes_result
-	arg 1,temp
-	call function_f5_common
-	arg mem_le_ltk,contw
-	call load_inverse_result
-	arg 0,temp
-	call function_f5_common
-	arg mem_le_mackey,contw
-//	branch p_load_inverse_result
-	branch store_aes_result
-
-
-function_f5_common:
-	bpatchx patch21_3,mem_patch21
-	jam 53,mem_AES_CMAC_data_length
-	setarg 0x100
-	store 2,mem_dat
-	call store_addr_common_b
-	call store_addr_common_a
-	arg mem_le_srand,contr
-	call memcpy16
-	arg mem_le_mrand,contr
-	call memcpy16
-//	fetch 4,mem_le_keyid 0x62746c65
-	setarg 0x6c65
-	istore 2,contw
-	setarg 0x6274
-	istore 2,contw
-	istoret 1,contw   //counter
-	call inverse_memdat	
-	branch function_AES_CMAC
-
-store_addr_common_b:
-	fetch 6,mem_le_lap
-	istore 6,contw
-	fetch 1,mem_le_conn_own_addr_type
-	istore 1,contw
-	rtn
-
-store_addr_common_a:
-	fetch 6,mem_le_plap
-	istore 6,contw
-//	setarg 0x2dcfc1
-//	istore 3,contw
-//	setarg 0xa71370
-//	istore 3,contw
-	fetch 1,mem_le_conn_peer_addr_type
-	istore 1,contw
-	rtn
-
-function_f4_ca:
-	jam 65,mem_AES_CMAC_data_length
-	fetch 1,mem_passkey_1bit
-	store 1,mem_dat
-	arg mem_sc_pubkey_local_x_256,contr
-	call memcpy32
-	arg mem_le_pubkey_remote_x_256,contr
-	call memcpy32
-	call inverse_memdat
-	arg mem_le_mrand,contr
-	call store_inverse_k	
-	branch function_AES_CMAC
-	
-
-function_f4_cb:
-	jam 65,mem_AES_CMAC_data_length
-	fetch 1,mem_passkey_1bit
-	store 1,mem_dat
-	arg mem_le_pubkey_remote_x_256,contr
-	call memcpy32
-	arg mem_sc_pubkey_local_x_256,contr
-	call memcpy32
-	call inverse_memdat
-	arg mem_le_srand,contr
-	call store_inverse_k	
-	branch function_AES_CMAC
-
-function_AES_CMAC:
-	bpatchx patch21_4,mem_patch21
-	call function_AES_CMAC_Generate_Subkey
-//call ice_break
-//	jam 65,mem_AES_CMAC_data_length
-//call ice_break
-	fetch 1,mem_AES_CMAC_data_length
-	copy pdata,temp
-function_ceil16:
-	increase 15,pdata
-	rshift4 pdata,pdata
-	copy pdata,regb
-	branch function_AES_CMAC_set_flag_0_balnk,blank
-	and temp,0x0f,pdata
-	nbranch function_AES_CMAC_set_flag_0,blank
-//	flag =1;
-	arg mem_AES_CMAC_k1,regc
-	arg mem_dat,pdata
-	increase -16,pdata
-//	iadd temp,pdata
-//	isub rega,rega
-	iadd temp,rega	
-	arg mem_AES_CMAC_M_last,contw
-	arg 4,loopcnt	
-	call xor_loop
-//call ice_break
-//	arg mem_f4_k1,contr
-//	call load_key
-	branch function_AES_CMAC_aes
-
-function_AES_CMAC_set_flag_0_balnk:
-	arg 1,regb
-	arg 0,rega
-//	arg mem_f4_test_data,pdata
-	branch function_AES_CMAC_set_flag_0_common
-//call ice_break
-
-function_AES_CMAC_set_flag_0:
-//	flag = 0;
-	and temp,0x0f,rega
-function_AES_CMAC_set_flag_0_common:
-	arg mem_dat,pdata
-	iadd temp,pdata
-	isub rega,contr
-//call ice_break
-	arg mem_AES_CMAC_temp,contw
-	call function_AES_CMAC_padding
-//call ice_break
-	arg mem_AES_CMAC_k2,regc
-	arg mem_AES_CMAC_temp,rega
-	arg mem_AES_CMAC_M_last,contw
-	arg 4,loopcnt	
-	call xor_loop	
-//call ice_break
-
-//	arg mem_f4_k2,contr
-//	call load_key
-
-//	branch p_function_f4_aes
-function_AES_CMAC_aes:
-//	arg mem_f4_k,contr
-//	call load_key
-//	arg mem_AES_CMAC_xor,contr
-//	call load_data128
-	call aes_clear_data
-	call aes_init	
-//	arg mem_f4_k,contr
-//	call load_key
-	arg mem_dat,contr
-function_AES_CMAC_aes_loop:
-//generate_mic_loop:
-	increase -1,regb
-	deposit regb
-	branch function_AES_CMAC_aes_loop_end,blank
-	call load_data128
-	call do_aes_cbc
-	branch function_AES_CMAC_aes_loop
-//generate_mic_end:
-function_AES_CMAC_aes_loop_end:	
-	arg mem_AES_CMAC_temp,contw
-	call store_aes_result
-	arg mem_AES_CMAC_M_last,contr
-	call load_data128
-	call aes_init	
-	arg mem_AES_CMAC_temp,contr
-	call load_data128	
-	branch do_aes_cbc
-
-
-
-load_inverse_result:
-//	arg mem_AES_CMAC_temp,contw
-	copy contw,rega
-	call store_aes_result
-//	arg mem_AES_CMAC_temp,rega
-	arg 16,loopcnt
-	branch inverse_data
-	
-store_inverse_k:
-	arg mem_AES_CMAC_k,contw
-	call memcpy16
-inverse_k:	
-	arg 16,loopcnt
-	arg mem_AES_CMAC_k,rega	
-	branch inverse_data
-	
-inverse_memdat:
-	fetch 1,mem_AES_CMAC_data_length
-	copy pdata,loopcnt
-	arg mem_dat,rega
-	branch inverse_data
-
-bn_lshift_0_inverse:
-	ifetch 1,rega
-	lshift pdata,pdata
-	isolate1 0,regc
-	setflag true,0,pdata	
-	isolate1 8,pdata
-	setflag true,0,regc	
-	istore 1,rega
-         increase -1,rega
-	loop bn_lshift_0_inverse
-	rtn	
-
-function_AES_CMAC_k1_inverse:
-	arg mem_AES_CMAC_k1,rega
-function_AES_CMAC_inverse_common:
-	increase 15,rega
-	force 16,loopcnt
-	force 0,regc
-	branch  bn_lshift_0_inverse	
-
-function_AES_CMAC_k2_inverse:
-	arg mem_AES_CMAC_k2,rega
-	branch function_AES_CMAC_inverse_common
-	
-
-function_AES_CMAC_Generate_Subkey:
-	arg mem_AES_CMAC_k,contr
-	call load_key
-//	arg mem_AES_CMAC_xor,contr
-//	call aes_load_xor
-	force regidx_xor,regext_index
-	call aes_clear
-	call aes_clear_data
-	call do_aes_ocb
-	
-//	force 0x38,aes_ctrl
-//	force 0x0,aes_ctrl
-//	call wait_aes
-	arg mem_AES_CMAC_k1,contw
-	call store_aes_result
-function_AES_CMAC_k1:
-	bpatchx patch21_5,mem_patch21
-	fetch 1,mem_AES_CMAC_k1
-	isolate1 7,pdata
-	nbranch function_AES_CMAC_k1_0,true	
-	call function_AES_CMAC_k1_inverse
-	
-//p_function_f4_k1_xor:
-	arg mem_AES_CMAC_k1,regc
-//	arg mem_AES_CMAC_rb,rega
-	arg mem_AES_CMAC_k1,contw
-//	arg 3,loopcnt
-//	call xor_loop
-	call function_AES_CMAC_xor_rb
-	branch function_AES_CMAC_k2
-function_AES_CMAC_k1_0:	
-	call function_AES_CMAC_k1_inverse
-function_AES_CMAC_k2:
-//call ice_break
-	arg mem_AES_CMAC_k1,contr
-	arg mem_AES_CMAC_k2,contw
-	call memcpy16
-	fetch 1,mem_AES_CMAC_k2
-	isolate1 7,pdata
-	nbranch function_AES_CMAC_k2_inverse,true		
-	call function_AES_CMAC_k2_inverse
-//p_function_f4_k2_xor:
-	arg mem_AES_CMAC_k2,regc
-//	arg mem_AES_CMAC_rb,rega
-	arg mem_AES_CMAC_k2,contw
-//	arg 3,loopcnt
-//	branch xor_loop	
-
-
-//rb:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 87 
-function_AES_CMAC_xor_rb:
-	arg 3,loopcnt
-function_AES_CMAC_xor_rb_loop:	
-	arg 0,temp
-	call function_AES_CMAC_xor_loop_common	
-	increase 4,regc
-	loop  function_AES_CMAC_xor_rb_loop
-	arg 0x8700,temp
-	lshift16 temp,temp
-function_AES_CMAC_xor_loop_common:	
-	ifetch   4,regc
-	ixor  temp,pdata
-	istore   4,contw	
-	rtn
-		
-
-
-
-//input rega :length <16	contr,contw
-function_AES_CMAC_padding:
-	bpatchx patch21_6,mem_patch21
-	arg 16,loopcnt
-	arg 0,pdata
-function_AES_CMAC_padding_loop:
-	isub rega,null
-	branch function_AES_CMAC_padding_beq_length,zero
-	branch function_AES_CMAC_padding_big_length,positive
-	ifetcht 1,contr
-	istoret 1,contw
-function_AES_CMAC_padding_loop2:	
-	increase 1,pdata
-	loop function_AES_CMAC_padding_loop
-	rtn
-function_AES_CMAC_padding_beq_length:	
-	arg 0x80,temp
-function_AES_CMAC_padding_common:
-	istoret 1,contw
-	branch  function_AES_CMAC_padding_loop2
-
-function_AES_CMAC_padding_big_length:
-	arg 0,temp
-	branch function_AES_CMAC_padding_common
-
-	
-
-	
-concatenate_temp24:
-	lshift8 temp,temp
-concatenate_temp16:
-	lshift16 temp,temp
-	ior temp,temp
-	rtn
-
-endif
-
-/* ==================== LE security ================= */
-
-generate_stk:
-	bpatchx patch21_7,mem_patch21
-	call function_s1
-	arg mem_le_ltk,contw
-	branch store_aes_result
-
-	/* contr = rand pointer */
-authenticate_rconfirm:
-	arg mem_le_srand,contw
-	branch authenticate_mconfirm,master
-	arg mem_le_mrand,contw
-authenticate_mconfirm:
-	copy contr,rega
-	call memcpy16
-	call function_c1
-	arg mem_le_rconfirm,contr
-	branch compare_res
-
-generate_confirm:
-	arg mem_le_mrand,rega
-	branch generate_mrand,master
-	arg mem_le_srand,rega
-generate_mrand:
-	copy rega,contw
-	call generate_random
-	branch function_c1
-
-generate_sk:
-	arg mem_le_skdm,contr
-	call load_data128
-	arg mem_le_ltk,contr
-	call load_regext
-	force 0x38,aes_ctrl
-	force 0x0,aes_ctrl
-	call wait_aes
-	arg mem_le_sk,contw
-	branch store_aes_result
-
-
-//input temp:counter; rega:len	
-ccm_b0:
-	force regidx_xor,regext_index				
-	force 0x49,pdata
-	branch iv_common
-	
-	/* temp=packet counter, rega = length or block counter*/
-first_block_counter:
-	force 0x49,pdata
-	branch first_block
-first_block_data:
-	force 1,pdata
-first_block:
-	force regidx_data,regext_index			
-iv_common:
-	lshift8 temp,regext
-	ior regext,regext
-	increase 1,regext_index
-	rshift8 temp,regext
-	rshift16 regext,regext
-	fetch 2,mem_ccm_iv
-	lshift16 pdata,pdata
-	ior regext,regext				/* octet3&octet4 of counter and low 16 bit of IV */
-	increase 1,regext_index
-	ifetchr regext, 4,contr					/* IV2-IV5 */
-	increase 1,regext_index
-	ifetch 2,contr					/* IV6-IV7 */
-	byteswap rega,regext
-	lshift16 regext,regext
-	ior regext,regext
-	increase 1,regext_index
-	rtn
-
-
-	/* temp=packet counter, regc pointers to data */	
-generate_mic:
-	add regc,1,contr
-	ifetch 1,contr
-	iforce rega
-	call first_block_counter		//B0
-	call do_aes_ocb
-
-	force regidx_data,regext_index			/* B1 */
-	ifetch 1,regc
-	and_into 0x3,pdata
-	lshift16 pdata,regext
-	set1 8,regext
-	call clear_hidata	//B1
-	call do_aes_cbc
-
-	copy rega,loopcnt
-	add regc,2,contr
-	call padding_data	//数据填充
-generate_mic_loop:
-	call aes_load_data
-	call do_aes_cbc
-	deposit loopcnt
-	branch generate_mic_end,blank
-	branch generate_mic_loop
-generate_mic_end:
-	force regidx_result,regext_index
-	deposit regext
-	store 4,mem_le_mic
-	rtn
-
-aes_crypt_data:
-	increase 1,rega
-	call first_block_data
-	copy regc,contr
-	call aes_load_xor
-	call do_aes_ctr
-	call store_enc_data
-	increase 16,regc
-	increase -16,regb
-	branch aes_crypt_data,positive
-	rtn
-
-
-/*
-le_encrypt:
-	arg mem_le_txheader,regc
-	fetcht 5,mem_ccm_pcnt_tx
-	call generate_mic
-	force regidx_xor,regext_index
-	iforce regext
-	force 0,rega					 
-	call first_block_data
-	call do_aes_ctr
-	arg mem_le_txpayload,regc
-	fetch 1,mem_le_txlen
-	add pdata,-1,regb
-	iadd regc,contw
-	force regidx_result,regext_index
-	deposit regext
-	istore 4,contw	
-	call aes_crypt_data
-	fetch 1,mem_le_txlen
-	increase 4,pdata
-	store 1,mem_le_txlen
-	fetcht 5,mem_ccm_pcnt_tx
-	increase 1,temp
-	set0 LE_CCM_DIRECTIONBIT,temp
-	storet 5,mem_ccm_pcnt_tx
-	rtn
-
-le_decrypt:
-	fetch 1,mem_le_rxbuf+1
-	arg mem_le_rxbuf+2,regc
-	add pdata,-1,regb
-	increase -4,pdata				
-	store 1,mem_le_rxbuf+1
-	iadd regc,contr
-	ifetch 4,contr
-	force regidx_xor,regext_index
-	iforce regext
-	force 0,rega					
-	fetcht 5,mem_ccm_pcnt_rx
-	call first_block_data	//generate nonce
-	call do_aes_ctr
-	force regidx_result,regext_index
-	deposit regext
-	store 4,mem_le_peer_mic
-	call aes_crypt_data
-	arg mem_le_rxbuf,regc
-	call generate_mic
-	fetcht 4,mem_le_peer_mic
-	isub temp,pdata				
-	nrtn blank
-	fetch 4,mem_ccm_last_mic			
-	isub temp,pdata
-	rtn blank
-	storet 4,mem_ccm_last_mic
-	fetch 5,mem_ccm_pcnt_rx
-	increase 1,pdata
-	set1 LE_CCM_DIRECTIONBIT,pdata
-	store 5,mem_ccm_pcnt_rx
-	force 0,pdata
-	rtn
-
-
- 	
-le_decrypt_new:
- 	call ccm_init_common
-	jam 0,core_ccm_aad0 
-	jam 1,core_ccm_aad1
-	fetch 1,mem_le_rxbuf_data_header
-	and_into 0x3,pdata
-	store 1,core_ccm_aad2
-	
-	setarg mem_le_rxbuf_data_payload
-	store 2,core_ccm_input_playload_addr
-	store 2,core_ccm_output_playload_addr
-
-	fetchr rega, 1,mem_le_rxbuf_data_length
-	increase -4,rega
-	nbranch disable_blank,positive
-	storer rega, 1,mem_le_rxbuf_data_length
-	setarg mem_le_rxbuf_data_payload
-	iadd rega,contr
-	force regidx_data,regext_index
-	ifetchr regext, 4,contr
-	storer  regext,4,mem_le_peer_mic
-	fetcht 5,mem_ccm_pcnt_rx				
-	call ccm_b0
-	jam 6,core_ccm_ctrl
-	jam 7,core_ccm_ctrl
-	fetch 1,mem_le_rxbuf_data_length
-	store 2,core_ccm_inptr
-	call wait_ccm_done
-	fetch 1,core_misc_status
-	bbit0 7, disable_blank
-	fetcht 4,mem_le_peer_mic
-	fetch 4,mem_ccm_last_mic			
-	isub temp,pdata
-	rtn blank
-	storet 4,mem_ccm_last_mic
-	fetch 5,mem_ccm_pcnt_rx
-	increase 1,pdata
-	set1 LE_CCM_DIRECTIONBIT,pdata
-	store 5,mem_ccm_pcnt_rx
-	force 0,pdata
-	rtn
-
-
-le_encrypt_new:
-	call le_encrypt_new_start
-	setarg mem_le_txpayload
-	iadd rega,rega
-	call wait_ccm_done
-	arg regidx_result,regext_index
-	istorer regext, 4 ,rega
-	rtn
-*/
-
-
-le_encrypt_new_start:
-	call ccm_init_common
-	bpatchx patch22_0,mem_patch22
-	jam 0,core_ccm_aad0 
-	jam 1,core_ccm_aad1
-	fetch 1,mem_le_txheader
-	and_into 0x3,pdata
-	store 1,core_ccm_aad2
-	fetch 2,mem_contr
-	store 2,core_ccm_input_playload_addr
-	setarg mem_le_txpayload
-	store 2,core_ccm_output_playload_addr
-	
-	fetchr rega,1,mem_le_txlen
-	fetcht 5,mem_ccm_pcnt_tx				
-	call ccm_b0
-	jam 2,core_ccm_ctrl
-	jam 3,core_ccm_ctrl
-	
-	fetch 1,mem_le_txlen
-	store 2,core_ccm_inptr
-	increase 4,pdata
-	store 1,mem_le_txlen
-	fetch 5,mem_ccm_pcnt_tx
-	increase 1,pdata
- 	set0 LE_CCM_DIRECTIONBIT,pdata
-	store 5,mem_ccm_pcnt_tx
-	rtn
-
-
-ccm_wait_enc:
-	fetch 2,core_ccm_outptr
-	isub temp,null
-	rtn zero 
-	nrtn blank
-//	call assert
-	branch ccm_wait_enc
-
-ccm_check_enc_done:
-	fetch 1,core_misc_status
-	bbit0 6,assert
-ccm_enc_done:
-	setarg mem_le_txpayload
-	iadd temp,contw	
-	arg regidx_result,regext_index
-	istorer regext, 4 ,contw	
-	branch ccm_ctrl_clr
-	
-ccm_init_common:
-	bpatchx patch22_1,mem_patch22
-	force regidx_result,regext_index
-	call aes_clear
-	call aes_clear_data
- 	setarg 0
-	store 2,core_ccm_inptr
-	rtn
-	
-wait_ccm_done:
-	fetch 1,core_misc_status
-	bbit0 6,wait_ccm_done
-ccm_ctrl_clr:
-	jam 0,core_ccm_ctrl
-	rtn
-
-
-wait_aes:
-	nbranch wait_aes,aes_ready
-	rtn
-
-do_aes_ocb:
-	force 0x30,aes_ctrl
-	force 0x0,aes_ctrl
-	branch wait_aes
-
-do_aes_cbc:
-	force 0x32,aes_ctrl
-	force 0x2,aes_ctrl
-	branch wait_aes
-
-do_aes_ctr:
-	force 0x34,aes_ctrl
-	force 0x4,aes_ctrl
-	branch wait_aes
-
-	
-aes_init:
-	force 1,aes_ctrl
-	force 0,aes_ctrl
-	rtn
-
-
-wait_keyinit_done:
-	fetch 1,core_aes_decode_key_init
-	bbit0 2,wait_keyinit_done
-	rtn
-
-
-/*
-input:pdata,dec key buffer addr
-output:initial dec key
-瀵嗛挜涓嶆敼锛屽彧鍋氫竴娆
-*/
-dec_key_initial:
-	store 2,core_keybuf_saddr
-	force 0xc0,aes_ctrl
-	force 0x80,aes_ctrl	//dec key initial
-	branch wait_keyinit_done
-
-/*
-input:regb,user enc payload buffer ptr
-	regc,user dec payload buffer ptr
-output:user dec payload buffer ptr
-*/
-do_aes_ecb_dec:
-	force regidx_data,regext_index
-	copy regb,contr
-   	force 4,loopcnt
-	call aes_ecb_dec_loop
-
-	force 0x180,aes_ctrl	//dec load data
-	force 0x80,aes_ctrl
-	call wait_aes
-ecb_dec_generate: 
-	force regidx_result,regext_index
-	copy regc,contw
-   	force 4,loopcnt
-ecb_dec_generate_loop:
-    copy regext,pdata
-	istore 4,contw
-	increase 1,regext_index
-	loop ecb_dec_generate_loop
-	rtn
-
-aes_ecb_dec_loop:
-	ifetch 2,contr
-	ifetcht 2,contr
-	lshift16 temp,temp
-	ior temp,regext
-	increase 1,regext_index
-	loop aes_ecb_dec_loop
-	rtn
-
-
-/*
-input:rega,xor data buffer ptr
-	regb,user enc payload buffer ptr	
-	regc,user dec payload buffer ptr
-output:user dec payload buffer ptr
-*/
-do_aes_cbc_dec:
-	force regidx_xor,regext_index
-	copy rega,contr
-	force 4,loopcnt
-	call aes_ecb_dec_loop
-
-	force regidx_data,regext_index
-	copy regb,contr
-	force 4,loopcnt
-	call aes_ecb_dec_loop
-	force 0x182,aes_ctrl
-	force 0x82,aes_ctrl
-	call wait_aes
-	branch ecb_dec_generate
-
-	
-function_s1:
-	force regidx_data,regext_index
-	fetch 4,mem_le_mrand
-	iforce regext
-	increase 1,regext_index
-	ifetch 4,contr
-	iforce regext
-	increase 1,regext_index
-	fetch 4,mem_le_srand
-	iforce regext
-	increase 1,regext_index
-	ifetch 4,contr
-	iforce regext
-	increase 1,regext_index
-	call aes_clear
-	increase -4,regext_index
-	fetch 4,mem_le_tk
-	copy pdata,regext
-	increase 4,regext_index
-	force 0x38,aes_ctrl
-	force 0x8,aes_ctrl
-	branch wait_aes
-
-	/* rega pointers to random number */
-function_c1:
-	bpatchx patch22_2,mem_patch22
-	fetch 6,mem_le_lap
-	fetcht 6,mem_le_plap
-	branch function_c1_master,master
-	fetch 6,mem_le_plap
-	fetcht 6,mem_le_lap
-function_c1_master:
-	force regidx_xor,regext_index
-	copy temp,regext
-	increase 1,regext_index
-	rshift32 temp,regext
-	lshift16 pdata,pdata
-	ior regext,regext
-	increase 1,regext_index
-	rshift32 pdata,regext
-	increase 1,regext_index
-	force 0,regext					/* p2 = ia || ra */
-	force 0,pdata
-	fetch 1,mem_le_conn_peer_addr_type
-	fetcht 1,mem_le_adv_own_addr_type
-	nbranch function_c1_irat,master
-	//conn as master
-	fetch 1,mem_le_conn_own_addr_type
-	fetcht 1,mem_le_conn_peer_addr_type
-function_c1_irat:
-	store 1,mem_le_iat
-	storet 1,mem_le_rat
-	force regidx_data,regext_index
-	arg mem_le_iat,regb
-	force 4,loopcnt
-function_c1_loop1:
-	ifetch 4,rega		
-	ifetcht 4,regb
-	ixor temp,regext
-	increase 1,regext_index
-	increase 4,rega
-	increase 4,regb
-	loop function_c1_loop1		/* p1 ^ r */
-	call aes_clear				/* k = 0 */
-	increase -4,regext_index
-	fetch 4,mem_le_tk
-	copy pdata,regext
-	increase 4,regext_index
-	force 0x38,aes_ctrl
-	force 0xc,aes_ctrl
-	call wait_aes
-
-	call aes_clear_data
-	force 0x3a,aes_ctrl
-	force 0x8,aes_ctrl
-	branch wait_aes
-
-padding_data:
-	compare 0,loopcnt,3
-	rtn true
-	deposit contr
-	iadd loopcnt,contw
-	force 0,pdata
-padding_loop:
-	istore 1,contw
-	increase 1,loopcnt
-	compare 0,loopcnt,3
-	rtn true
-	branch padding_loop
-
-aes_load_data:
-	force regidx_data,regext_index
-load_data_loop:
-	deposit loopcnt
-	branch load_data_padding,blank
-	ifetch 4,contr
-	increase -4,loopcnt
-load_data_padding:
-	iforce regext
-	increase 1,regext_index
-	compare regidx_key,regext_index,0xf
-	rtn true
-	branch load_data_loop
-
-aes_load_xor:
-	force regidx_xor,regext_index
-	branch load_regext
-load_key:
-	force regidx_key,regext_index
-	branch load_regext
-load_data128:
-	force regidx_data,regext_index
-load_regext:
-	force 4,loopcnt
-load_regext_loop:
-	ifetch 4,contr
-	iforce regext
-	increase 1,regext_index
-	loop load_regext_loop
-	rtn
-
-load_sk:
-	arg mem_le_sk,contr
-	branch load_key
-
-clear_hidata:
-	force 4,loopcnt
-	branch clear_data_rest
-
-regext_clear:
-	force 0,regext_index
-	force 16,loopcnt
-	branch clear_loop
-
-aes_clear_data:
-	force regidx_data,regext_index
-aes_clear:
-	force 4,loopcnt
-clear_loop:
-	force 0,regext
-clear_data_rest:
-	increase 1,regext_index
-	loop clear_loop
-	rtn
-
-store_aes_result:
-	force regidx_result,regext_index
-	force 4,loopcnt
-send_aes_result_loop:
-	deposit regext
-	istore 4,contw
-	increase 1,regext_index
-	loop send_aes_result_loop
-	rtn
-
-store_enc_data:
-	force regidx_result,regext_index
-	copy regc,contw
-	add regb,1,loopcnt
-	sub loopcnt,15,null
-	branch store_enc_loop,positive
-	force 16,loopcnt
-store_enc_loop:
-	deposit regext
-	sub loopcnt,3,null
-	branch store_enc_byte,positive
-	istore 4,contw
-	increase -4,loopcnt
-	rtn zero
-	increase 1,regext_index
-	branch store_enc_loop
-store_enc_byte:
-	istore 1,contw
-	rshift8 pdata,pdata
-	loop store_enc_byte
-	rtn
-	
-	/* contr pointers to value to be compared */
-compare_res:
-	force regidx_result,regext_index
-	force 4,loopcnt
-compare_res_loop:
-	ifetch 4,contr
-	isub regext,null
-	nrtn zero
-	increase 1,regext_index
-	loop compare_res_loop
-	branch enable_zero
-
-enable_authrom:
-	fetch 1,core_clkoff
-	set0 CLOCK_OFF_AUTH_ROM,pdata
-	store 1,core_clkoff
-	rtn
-
-disable_authrom:
-	fetch 1,core_clkoff
-	set1 CLOCK_OFF_AUTH_ROM,pdata
-	store 1,core_clkoff
-	rtn
-
-//24 mem_p :ff ff ff ff ff ff ff ff fe ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-//24 mem_a: fc ff ff ff ff ff ff ff fe ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-//24 mem_b: b1 b9 46 c1 ec de b8 fe 49 30 24 72 ab e9 a7 0f e7 80 9c e5 19 05 21 64
-//24 mem_gx :12 10 ff 82 fd 0a ff f4 00 88 a1 43 eb 20 bf 7c f6 90 30 b0 0e a8 8d 18
-//24 mem_gy :11 48 79 1e a1 77 f9 73 d5 cd 24 6b ed 11 10 63 78 da c8 ff 95 2b 19 07
-//32 memh0   :19 cd e0 5b ab d9 83 1f 8c 68 05 9b 7f 52 0e 51 3a f5 4f a5 72 f3 6e 3c 85 ae 67 bb 67 e6 09 6a //use for sha
-init_memp:
-	arg mem_p,contw
-	setsect 0,0x3ffff
-	setsect 1,0x3ffff
-	setsect 2,0x3ffff
-	setsect 3,0x3fbff
-	istore 9,contw
-	setsect 0,0x3ffff
-	setsect 1,0x3ffff
-	setsect 2,0x3ffff
-	setsect 3,0x3ffff
-	istore 9,contw
-	setsect 0,0x3ffff
-	setsect 1,0x3ffff
-	setsect 2,0x3cfff
-	setsect 3,0x3ffff
-	istore 9,contw
-	setsect 0,0x3ffff
-	setsect 1,0x3ffff
-	setsect 2,0x3ffef
-	setsect 3,0x3ffff
-	istore 9,contw
-	setsect 0,0x3ffff
-	setsect 1,0x3ffff
-	setsect 2,0x3ffff
-	setsect 3,0x3ffff
-	istore 9,contw
-	setsect 0,0x3ffff
-	setsect 1,0x26c7f
-	setsect 2,0x146b
-	setsect 3,0x37bb3
-	istore 9,contw
-	setsect 0,0x1feb8
-	setsect 1,0x10c12
-	setsect 2,0x2b722
-	setsect 3,0x29fa6
-	istore 9,contw
-	setsect 0,0xe70f
-	setsect 1,0x16720
-	setsect 2,0x519e
-	setsect 3,0x19084
-	istore 9,contw
-	setsect 0,0x31012
-	setsect 1,0x360bf
-	setsect 2,0x3f0af
-	setsect 3,0x3d3
-	istore 9,contw
-	setsect 0,0x3a188
-	setsect 1,0x3ad0
-	setsect 2,0x3cbf2
-	setsect 3,0x243d9
-	istore 9,contw
-	setsect 0,0x2b030
-	setsect 1,0x36a03
-	setsect 2,0x11188
-	setsect 3,0x1e520
-	istore 9,contw
-	setsect 0,0x3a11e
-	setsect 1,0xfe5d
-	setsect 2,0xdd57
-	setsect 3,0x1ac93
-	istore 9,contw
-	setsect 0,0x11ed
-	setsect 1,0x218c4
-	setsect 2,0x8da7
-	setsect 3,0x257ff
-	istore 9,contw
-	setsect 0,0x3192b
-	setsect 1,0x34641
-	setsect 2,0x1be0c
-	setsect 3,0x366ad
-	istore 9,contw
-	setsect 0,0x1f83
-	setsect 1,0x15a23
-	setsect 2,0x3f9b0
-	setsect 3,0x3949
-	istore 9,contw
-	setsect 0,0x13a51
-	setsect 1,0x153fd
-	setsect 2,0x3372a
-	setsect 3,0xf1bb
-	istore 9,contw
-	setsect 0,0x3ae85
-	setsect 1,0x1eed9
-	setsect 2,0x9e66
-	setsect 3,0x1a8
-	istore 8,contw
-	rtn
-
-ifdef SECURE_CONNECTION
-
-// mem_p_256:ff ff ff ff ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 ff ff ff ff
-// mem_a_256: fc ff ff ff ff ff ff ff fe ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff b1 b9 46 c1 ec de b8 fe
-// mem_gx_256: 96 c2 98 d8 45 39 a1 f4 a0 33 eb 2d 81 7d 03 77 f2 40 a4 63 e5 e6 bc f8 47 42 2c e1 f2 d1 17 6b
-// mem_gy_256: f5 51 bf 37 68 40 b6 cb ce 5e 31 6b 57 33 ce 2b 16 9e 0f 7c 4a eb e7 8e 9b 7f 1a fe e2 42 e3 4f
-// mem_le_slat :be 83 60 5a db 0b 37 60 38 a5 f5 aa 91 83 88 6c
-init_memp_256:
- 	arg mem_p_256,contw
-        setsect 0,0x3ffff
-        setsect 1,0x3ffff
-        setsect 2,0x3ffff
-        setsect 3,0x3ffff
-        istore 9,contw
-        setsect 0,0x3ffff
-        setsect 1,0x3f
-        setsect 2,0x0
-        setsect 3,0x0
-        istore 9,contw
-        setsect 0,0x0
-        setsect 1,0x0
-        setsect 2,0x1000
-        setsect 3,0x0
-        istore 9,contw
-        setsect 0,0x3ff00
-        setsect 1,0x3ffff
-        setsect 2,0x3ffcf
-        setsect 3,0x3ffff
-        istore 9,contw
-        setsect 0,0x3ffff
-        setsect 1,0x3ffff
-        setsect 2,0x3ffff
-        setsect 3,0x3ff
-        istore 9,contw
-        setsect 0,0x0
-        setsect 1,0x0
-        setsect 2,0x0
-        setsect 3,0x0
-        istore 9,contw
-        setsect 0,0x10000
-        setsect 1,0x0
-        setsect 2,0x3f000
-        setsect 3,0x3ffff
-        istore 9,contw
-        setsect 0,0x296ff
-        setsect 1,0x22630
-        setsect 2,0x3945d
-        setsect 3,0x3d284
-        istore 9,contw
-        setsect 0,0x333a0
-        setsect 1,0x4b7a
-        setsect 2,0x37d8
-        setsect 3,0x3c9dc
-        istore 9,contw
-        setsect 0,0x3a440
-        setsect 1,0x1b958
-        setsect 2,0x38bce
-        setsect 3,0x1091f
-        istore 9,contw
-        setsect 0,0x2e12c
-        setsect 1,0x1f47c
-        setsect 2,0x356b1
-        setsect 3,0x2fd47
-        istore 9,contw
-        setsect 0,0x6837
-        setsect 1,0x2ed90
-        setsect 2,0x1ecec
-        setsect 3,0x1acc5
-        istore 9,contw
-        setsect 0,0x23357
-        setsect 1,0x18af3
-        setsect 2,0xf9e1
-        setsect 3,0x129f0
-        istore 9,contw
-        setsect 0,0x2e7eb
-        setsect 1,0x3e6e3
-        setsect 2,0x3e1a7
-        setsect 3,0x10b8b
-        istore 9,contw
-        setsect 0,0x24fe3
-        setsect 1,0x20ef
-        setsect 2,0x1b5a6
-        setsect 3,0xdc2f
-        istore 9,contw
-        setsect 0,0x13860
-        setsect 1,0x2bd69
-        setsect 2,0x391a
-        setsect 3,0x1b222
-        istore 9,contw
-        rtn
-endif
-
Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/sim.prog
===================================================================
--- /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/sim.prog	(revision 5679)
+++ /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/sim.prog	(nonexistent)
@@ -1,785 +0,0 @@
-simstart:
-	force 8,radio_ctrl
-	force 0,radio_ctrl
-    //dpll enable
-	jam 0xcf,core_bbpll_ctrl0
-	jam 0xe9,core_bbpll_ctrl1
-	jam 5,core_clksel
-	jam 0,core_clkoff
-	jam 0,core_clkoff+1
-	jam SYSTEM_CLK_12M,mem_system_clk
-
-//	call sim_nec
-//	branch sim_c1
-//	jam 8,0x8011 //efuse lock
-//	call sim_wdt
-//	call sim_nec
-//	call sim_dac
-//    call sim_ccm
-//	call sim_otp
-//    branch sim_assert
-//	branch sim_lr
-//	call sim_snooze
-//	call sim_adpcm
-//	branch sim_lpm_clk
-//	call sim_pwm
-//	call sim_saradc
-//	branch sim_usb
-	branch sim_lpm_sleep
-//	branch sim_iic
-//	call sim_cal
-//	call sim_uart
-//	call sim_spi
-//	branch sim_le
-	branch sim_assert
-	fetch 1,mem_sim_slave
-	beq 1,assert
-
-sim_assert:
-	branch sim_assert
-
-
-
-sim_adpcm:
-	arg mem_le_test_sync,contr
-	arg 0,contw
-	arg 192,loopcnt
-sim_adpcm_loop:
-	ifetch 4,contr
-	call adpcm_byte
-	istore 1,contw
-	loop sim_adpcm_loop
-	copy contr,rega
-	arg 0,regb
-	arg 192,loopcnt
-	call string_compare
-	nbranch assert,zero
-	arg mem_le_test_sync+768,contr
-	arg 0,contw
-	arg 192,loopcnt
-	pulse init_adpcm
-sim_adpcm_loop2:
-	ifetch 1,contr
-	pcm pdata,temp
-	istoret 2,contw
-	rshift4 pdata,pdata
-	pcm pdata,temp
-	istoret 2,contw
-	loop sim_adpcm_loop2	
-	copy contr,rega
-	arg 0,regb
-	arg 768,loopcnt
-	call string_compare
-	nbranch assert,zero
-	rtn
-	
-// pdata is 4 byte pcm data, return in pdata
-adpcm_byte:
-	adpcm pdata,temp
-	rshift16 pdata,pdata
-	adpcm pdata,pdata
-	lshift4 pdata,pdata
-	ior temp,pdata
-	rtn
-
-	
-
-sim_nec:
-	jam gpcfg_nec_input,core_gpio_conf+6
-	setarg 0x100000
-	arg 0x31,temp
-	call nec_init_config
-	nop 10000
-	jam 0x0,core_nec_ctrl
-	rtn
-
-sim_saradc:
-	jam 0,core_gpadc_cfg1
-	jam 0x77,core_gpadc_ctrl
-	call sim_sadc_cal
-	jam 0xc1,core_gpadc_cfg0
-	jam 1,core_sadc_clkdiv
-	call sim_sadc
-	jam 11,core_sadc_clkdiv
-	call sim_sadc
-	jam 119,core_sadc_clkdiv
-	call sim_sadc
-	jam 11,core_sadc_clkdiv
-	call sim_sadc
-	jam 0,core_sadc_clkdiv
-	call sim_sadc_dma
-	rtn
-
-
-sim_sadc_dma:
-	jam 0x80,core_gpadc_cfg1
-	jam 10,core_sadc_clkdiv
-	jam 0xff,core_sadc_eaddr
-	jam 0xb,core_sadc_ctrl
-	nop 1000
-	jam 0x3,core_sadc_ctrl
-	rtn
-
-sim_sadc_cal:
-	jam 0xc9,core_gpadc_cfg0
-	jam 7,core_sadc_clkdiv
-sim_sadc:
-	jam 0x23,core_sadc_ctrl
-sim_sadc_wait:
-	fetch 1,core_perf_status
-	bbit0 5,sim_sadc_wait
-	fetcht 2,core_sadc_data
-	jam 6,core_sadc_ctrl
-sim_sadc_wait2:
-	fetch 1,core_perf_status
-	bbit1 5,sim_sadc_wait2
-	jam 0,core_sadc_ctrl
-	rtn
-
-
-sim_pwm:
-	jam 0xce,core_clkoff+1
-	jam 0x1,core_pwm_pcnt0
-	jam 0x1,core_pwm_ncnt0
-	jam 0x10,core_gpio_conf+6
-	jam 0x1,core_pwm_autoload
-	jam 0x1,core_pwm_en //pwm0/1 enable
-	rtn
-
-sim_usb:
-	call usb_init
-sim_usb_loop:
-	call usb_isr
-	branch sim_usb_loop
-
-sim_lpm_clk:
-	jam 1,mem_context
-	branch sim_lpm_cont,wake
-	jam 0x2,core_ccnt_bit
-	jam ccnt_start,core_misc_ctrl
-sim_lpm_wait:
-	call lpo_calibration
-	fetch 3,mem_clks_per_lpo
-	branch sim_lpm_wait,blank
-	lshift4 pdata,pdata
-	store 3,mem_clks_per_lpo
-sim_lpm_cont:
-	setarg param_rt_rthalfslot
-	store 2,mem_param_rt_rthalfslot
-	call lpm_recover_clk,wake
-	setarg 10000
-	call sleep,wake
-sim_lpm_sleep:
-	branch sim_lpm_hibernate,wake
-	arg 120,temp
-	storet 4,mem_sleep_counter
-	branch lpm_sleep
-
-sim_lpm_hibernate:
-	until null,lpo_edge
-	jam 0x77,core_gpio_wakeup_cfg+3
-	until null,lpo_edge
-	jam 0x77,core_gpio_wakeup_cfg+4
-	until null,lpo_edge
-	jam 2,core_gpio_wakeup_cfg+5
-	until null,lpo_edge
-	jam 0xaa,core_puwakeup
-	until null,lpo_edge
-	arg 60,temp
-	branch lpm_hibernate+2
-
-
-sim_le:
-	jam lemode_2m,mem_le_mode
-	fetch 1,mem_sim_slave
-	beq 1,sim_le_slave
-	jam 1,mem_le_scan_enable
-sim_le_loop:
-	call le_advertising_dispatch
-	branch sim_le_loop
-
-sim_le_slave:
-	jam 1,mem_le_adv_enable
-	nop 1000
-	branch sim_le_loop
-
-
-sim_otp:
-	fetch 1,mem_sim_slave
-	beq 1,assert
-	setarg 0x1234567
-	store 4,mem_tmp_buffer
-	arg 0x1230,regb
-	arg mem_tmp_buffer,rega
-	arg 4,loopcnt
-	call otp_write
-	arg 0x1230,regb
-	arg mem_tmp_buffer+4,rega
-	arg 4,loopcnt
-	call otp_read_data
-	fetch 4,mem_tmp_buffer
-	ifetcht 4,contr
-	isub temp,null
-	nbranch assert,zero
-	jam 0x73,0x8002
-	until null,lpo_edge
-	until null,lpo_edge
-	jam 0x80,0x8144
-	until null,lpo_edge
-	fetch 1,0x8144
-	arg 0x1230,regb
-	arg mem_tmp_buffer+4,rega
-	arg 4,loopcnt
-	call otp_read_data
-	fetch 4,mem_tmp_buffer
-	ifetcht 4,contr
-	isub temp,null
-	nbranch assert,zero
-	rtn
-	
-
-sim_snooze:
-	setarg 0x40
-	arg 13,loopcnt
-	arg core_gpio_conf,contw
-	lstore contw
-	jam 0x3,0x8150
-	setarg 123
-	iadd lpo_time,alarm
-	snooze
-	rtn
-
-ifdef TEST
-
-sim_ccm:
-    //call sim_aes_key_config_case1
-    //call sim_aes_dec_dma_case1
-    //call sim_aes_enc_dma_case1
-    call sim_aes_key_config_case4
-    call sim_aes_dec_dma_case4
-    call sim_aes_enc_dma_case4
-    rtn
-
-sim_aes_key_config_case1:
-    //key
-    force 4,regext_index
-    arg 0x6789,pdata
-    lshift16 pdata,pdata
-    arg 0x6789,temp
-    ior temp,regext
-    force 5,regext_index
-    arg 0x6789,pdata
-    lshift16 pdata,pdata
-    arg 0x6789,temp
-    ior temp,regext
-    force 6,regext_index
-    arg 0x2345,pdata
-    lshift16 pdata,pdata
-    arg 0x2345,temp
-    ior temp,regext
-    force 7,regext_index
-    arg 0x2345,pdata
-    lshift16 pdata,pdata
-    arg 0x2345,temp
-    ior temp,regext
-    //nonce
-    force 8,regext_index
-    arg 0xbc61,pdata
-    lshift16 pdata,pdata
-    arg 0x4e49,temp
-    ior temp,regext
-    force 9,regext_index
-    arg 0xccdd,pdata
-    lshift16 pdata,pdata
-    arg 0x0000,temp
-    ior temp,regext
-    force 0xa,regext_index
-    arg 0x8899,pdata
-    lshift16 pdata,pdata
-    arg 0xaabb,temp
-    ior temp,regext
-    force 0xb,regext_index
-    arg 0x0000,pdata
-    lshift16 pdata,pdata
-    arg 0x6677,temp
-    ior temp,regext
-    //aad
-    jam 0x00,0x80d5
-    jam 0x19,0x80d6
-    jam 0x02,0x80d7
-    rtn
-
-sim_aes_dec_dma_case1:
-    //mic golden
-    force 0,regext_index
-    arg 0xc5dd,pdata
-    lshift16 pdata,pdata
-    arg 0xa210,temp
-    ior temp,regext
-    
-    //payload
-
-    //dma config
-    jam 0x00,0x80d1
-    jam 0x10,0x80d2
-    jam 0x00,0x80d3
-    jam 0x10,0x80d4
-    jam 0x6,0x800a 
-    jam 0x7,0x800a 
-    nop 1000
-    rtn
-
-sim_aes_enc_dma_case1:
-    //payload
-
-    //dma config
-    jam 0x00,0x80d1
-    jam 0x10,0x80d2
-    jam 0x00,0x80d3
-    jam 0x11,0x80d4
-    jam 0x2,0x800a 
-    jam 0x3,0x800a 
-    nop 1000
-    rtn
-
-sim_aes_key_config_case4:
-    //key
-    force 4,regext_index
-    arg 0x1bd1,pdata
-    lshift16 pdata,pdata
-    arg 0x2ace,temp
-    ior temp,regext
-    force 5,regext_index
-    arg 0xbd56,pdata
-    lshift16 pdata,pdata
-    arg 0x14a1,temp
-    ior temp,regext
-    force 6,regext_index
-    arg 0x1f8b,pdata
-    lshift16 pdata,pdata
-    arg 0x9dbd,temp
-    ior temp,regext
-    force 7,regext_index
-    arg 0xfc22,pdata
-    lshift16 pdata,pdata
-    arg 0x8384,temp
-    ior temp,regext
-    //nonce
-    force 8,regext_index
-    arg 0xb3be,pdata
-    lshift16 pdata,pdata
-    arg 0x9549,temp
-    ior temp,regext
-    force 9,regext_index
-    arg 0x2769,pdata
-    lshift16 pdata,pdata
-    arg 0x00bd,temp
-    ior temp,regext
-    force 0xa,regext_index
-    arg 0xb727,pdata
-    lshift16 pdata,pdata
-    arg 0x5bf9,temp
-    ior temp,regext
-    force 0xb,regext_index
-    arg 0x1100,pdata
-    lshift16 pdata,pdata
-    arg 0x82b8,temp
-    ior temp,regext
-    //aad
-    jam 0x00,0x806c
-    jam 0x19,0x806d
-    jam 0x02,0x806e
-    rtn
-
-sim_aes_dec_dma_case4:
-    //mic golden
-    force 0,regext_index
-    arg 0x7c32,pdata
-    lshift16 pdata,pdata
-    arg 0x2cc6,temp
-    ior temp,regext
-    
-    //payload
-    arg 0x1001,contw
-    arg 0xb839, pdata
-    istore 2,contw
-    arg 0xc85f, pdata
-    istore 2,contw
-    arg 0x3756, pdata
-    istore 2,contw
-    arg 0x9249, pdata
-    istore 2,contw
-    arg 0xf07f, pdata
-    istore 2,contw
-    arg 0xd647, pdata
-    istore 2,contw
-    arg 0x2b40, pdata
-    istore 2,contw
-    arg 0x7ccc, pdata
-    istore 2,contw
-    arg 0xfff9, pdata
-    istore 2,contw
-    arg 0xffff, pdata
-    istore 2,contw
-    jam 0x11,0x80c1
-
-    //dma config
-    jam 0x01,0x8068
-    jam 0x10,0x8069
-    jam 0x02,0x806a
-    jam 0x40,0x806b
-    jam 0x6,0x800a 
-    jam 0x7,0x800a 
-    call wait_ccm_done
-    fetch 1,0x4012
-    bne 0x05,assert
-    rtn
-
-sim_aes_enc_dma_case4:
-    //payload
-    arg 0x4002,contw
-    arg 0x1286, pdata
-    istore 2,contw
-    arg 0xa56d, pdata
-    istore 2,contw
-    arg 0xb3db, pdata
-    istore 2,contw
-    arg 0x6491, pdata
-    istore 2,contw
-    arg 0xa19b, pdata
-    istore 2,contw
-    arg 0xc4ca, pdata
-    istore 2,contw
-    arg 0x9160, pdata
-    istore 2,contw
-    arg 0x3372, pdata
-    istore 2,contw
-    arg 0xff05, pdata
-    istore 2,contw
-    arg 0xffff, pdata
-    istore 2,contw
-    jam 0x11,0x80da //ccm_inptr
-
-    //dma config
-    jam 0x02,0x80d1
-    jam 0x40,0x80d2
-    jam 0x01,0x80d3
-    jam 0x11,0x80d4
-    jam 0x2,0x800a 
-    jam 0x3,0x800a 
-    call wait_ccm_done
-    fetch 1,0x1111
-    bne 0xf9,assert
-    rtn
-
-
-
-
-
-
-
-
-
-sim_dac:
-	jam gpcfg_dac_p,core_gpio_conf+4
-	jam gpcfg_dac_n,core_gpio_conf+5
-	jam 0,core_clkoff
-	setarg 0x012972
-	store 3,core_dac_coef
-	call sim_sine
-	setarg 0x200
-	store 2,core_dac_saddr
-	jam 0x4f,core_dac_len
-	jam 0xe0,core_dac_vol
-	jam 0x5,core_dac_ctrl
-	branch sim_assert
-
-sim_sine:
-	setarg 00
-	store 2,0x200
-	setarg 5690
-	istore 2,contw
-	setarg 11209
-	istore 2,contw
-	setarg 16386
-	istore 2,contw
-	setarg 21065
-	istore 2,contw
-	setarg 25104
-	istore 2,contw
-	setarg 28380
-	istore 2,contw
-	setarg 30794
-	istore 2,contw
-	setarg 32271
-	istore 2,contw
-	setarg 32767
-	istore 2,contw
-	add contw,-2,contr
-	arg 10,loopcnt
-sine_loop1:
-	ifetch 2,contr
-	istore 2,contw
-	increase -4,contr
-	loop sine_loop1
-	arg 0x200,contr
-	arg 20,loopcnt
-sine_loop2:
-	ifetcht 2,contr
-	sub temp,0,temp
-	istoret 2,contw
-	loop sine_loop2
-	rtn
-
-	
-
-sim_lpm:
-	setarg 0
-	arg 8,loopcnt
-sim_lpm_loop:
-	until null,lpo_edge
-	store 1,core_lpm_ldosel
-	pincrease 0x10
-	loop sim_lpm_loop
-	call app_lpm_peripheral_lock_shutter
-	call app_lpm_mpu_lock_ble
-
-
-sim_lr:
-	jam 3,mem_le_ch_mapped
-	setarg 0xfedcba
-	store 3,mem_le_crcinit
-	call le_enable
-	setarg 0x1234567
-	iforce access
-	set1 mark_ble_lr,mark
-//	set1 mark_ble_lr_s8,mark
-	setarg 0x2e0403
-	store 3,mem_le_txheader
-	setarg 0x123456
-	istore 3,contw
-	call le_transmit
-	branch assert
-
-
-
-sim_c1:
-	setarg 0xb4b5b6
-	store 3,mem_le_lap
-	setarg 0xb1b2b3
-	istore 3,contw
-	setarg 0xa4a5a6
-	store 3,mem_le_plap
-	setarg 0xa1a2a3
-	istore 3,contw
-	setarg 0x101
-	store 4,mem_le_preq
-	setarg 0x70710
-	istore 3,contw
-	setarg 0x302
-	store 4,mem_le_pres
-	setarg 0x50008
-	istore 3,contw
-	jam 0,mem_le_conn_peer_addr_type
-	jam 1,mem_le_adv_own_addr_type
-	arg regidx_key,regext_index
-	arg 4,loopcnt
-sim_clear_key_loop:
-	arg 0,regext
-	increase 1,regext_index
-	loop sim_clear_key_loop
-
-	setarg 0x702EE0
-	store 3,mem_le_rconfirm
-	setarg 0x274EC6
-	istore 3,contw
-	setarg 0x0E6388
-	istore 3,contw
-	setarg 0x56AD6F
-	istore 3,contw
-	setarg 0x83D521
-	istore 3,contw
-	setarg 0x57	
-	istore 1,contw
-	arg mem_le_rconfirm,rega
-	call aes_init
-	call function_c1
-	branch loop
-
-loop:
-	branch loop
-
-sim_wdt:
-    jam 8,0x8043
-    jam 0x7e,0x8004
-    nop 1000
-    jam 0xf,0x800b
-    rtn
-
-
-
-
-sim_uart:
-	jam 0x67,mem_h5tx_buf
-	setarg mem_h5tx_buf
-	add pdata,0x80,temp
-	call uarta_init_tx
-	increase 0x80,pdata
-	increase 0x80,temp
-	jam gpcfg_uart_txd,core_gpio_conf + 16
-	jam 0x81,core_uart_ctrl
-	setarg 0x30
-	store 2,core_uart_baud
-	fetch 1,mem_sim_slave
-	beq 1,sim_uart_slave
-	call uarta_prepare_tx
-	call sim_uart_wait+3
-	setarg 0x1357d9a
-	istore 4,contu
-	arg 0xaa69,rega
-	istorer rega,2,contu
-	setarg 0xfedcb3
-	istore 3,contu
-	storer contu,2,core_uart_twptr
-sim_uart_wait:
-	fetch 1,core_uart_status
-	bbit1 uart_status_tx_busy,sim_uart_wait
-	nop 200
-	rtn
-
-sim_uart_slave:
-	nop 247
-	fetch 1,mem_h5tx_buf
-	bne 0x67,assert
-	branch sim_uart_slave
-	fetch 1,core_uart_status
-	bbit1 uart_status_rx_fifo_empty,sim_uart_slave
-	fetch 1,core_uart_rxitems
-	bne 9,sim_uart_slave
-	fetcht 8,mem_h5tx_buf
-	call uarta_prepare_rx
-	ifetch 8,contu
-	isub temp,null
-	nbranch assert,zero
-	rtn
-
-
-
-sim_cal:
-
-	call tx_iq_precomp
-	fetchr regf,2,mem_omega
-	ifetchr regf,2,contr
-	ifetchr regf,2,contr
-	fetchr regf,2,mem_b1
-	ifetchr regf,2,contr
-	fetchr regf,2,mem_b2
-	ifetchr regf,2,contr
-	arg 0x1000,timeup
-	call tx_iq_cal
-	jam 1,core_ice_ctrl
-
-	arg 0x1000,timeup
-	call rx_iq_comp
-	jam 1,core_ice_ctrl
-	
-
-sim_iic:
-	call iic_init_600khz
-    call iicd_init_pin
-iic_write:
-	setarg 6
-	store 2,core_iicd_txlen
-	setarg 0x10a0
-	store 2,0x1000
-    setarg 0x5a00
-	store 2,0x1002
-    setarg 0xa5a5
-	store 2,0x1004
-	setarg 0x1000
-	store 2,core_iicd_txaddr
-	setarg 0
-	store 2,core_iicd_rxlen
-	jam 3,core_iicd_ctrl
-	jam iicd_start,core_misc_ctrl
-	call wait_iicd_done
-	nop 300
-iic_dummy_write:
-	setarg 3
-	store 2,core_iicd_txlen
-	setarg 0x10a0
-	store 2,0x1000
-    setarg 0x00
-	store 1,0x1002
-	setarg 0x1000
-	store 2,core_iicd_txaddr
-	setarg 0
-	store 2,core_iicd_rxlen
-	jam 3,core_iicd_ctrl
-	jam iicd_start,core_misc_ctrl
-	call wait_iicd_done
-	nop 300
-iic_read:
-    setarg 1
-	store 2,core_iicd_txlen
-    setarg 0xa1
-	store 1,0x1000
-	setarg 0x1000
-	store 2,core_iicd_txaddr
-    setarg 0x1100
-	store 2,core_iicd_rxaddr
-	setarg 3
-	store 2,core_iicd_rxlen
-	jam 1,core_iicd_ctrl
-	jam iicd_start,core_misc_ctrl
-	call wait_iicd_done
-    fetch 1, 0x1100
-    bne 0x5a, assert
-    rtn
-
-sim_spi:
-    //jam gpcfg_spid_miso ,core_gpio_conf + 12 
-    //jam gpcfg_spid_ncs ,core_gpio_conf + 13 
-    //jam gpcfg_spid_sck ,core_gpio_conf + 14 
-    //jam gpcfg_spid_mosi ,core_gpio_conf + 15
-    call spi_gpio_init
-
-    setarg 3 
-    store 2 ,core_spid_rxlen 
-    setarg 4 
-    store 2 ,core_spid_txlen 
-    setarg 0x1200 
-    store 2 ,core_spid_txaddr 
-    setarg 0x1300 
-    store 2 ,core_spid_rxaddr
-    setarg 0x0003
-	store 2,0x1200
-    setarg 0x0000
-	store 2,0x1202
-    jam spid_start ,core_misc_ctrl 
-    call wait_spid_done
-    fetch 1, 0x1302
-    bne 0xaa, assert
-    rtn
-
-
-sim_adc:
-    jam 0xc,0x8a0a
-    jam 0x2,0x8a17
-    jam 0x1,0x8a97
-    jam 0x0,0x80dc
-    jam 0x80,0x8053
-    nop 10000
-    jam 0x5,0x80dc
-    jam 0x80,0x8053
-    nop 10000
-    jam 0xa,0x80dc
-    jam 0x80,0x8053
-    nop 10000
-    jam 0xf,0x80dc
-    jam 0x80,0x8053
-    nop 10000
-    jam 0x0,0x8053
-    rtn
-
- endif
Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/simple_pairing.prog
===================================================================
--- /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/simple_pairing.prog	(revision 5679)
+++ /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/simple_pairing.prog	(nonexistent)
@@ -1,1068 +0,0 @@
-
-
-ifdef SECURE_CONNECTION
-
-
-publickey_init:
-//	fetch 1,mem_ssp_enable
-//	nbranch sp_initialize,blank
-	branch sp_initialize_256
-
-sp_calc_sequence_256_check:
-	bpatchx patch22_3,mem_patch22
-//	fetch 1,mem_ssp_enable
-//	rtn blank
-//	fetch 1,mem_sp_local_key_invalid
-//	rtnne SP_KEY_VALID
-	fetch 1,mem_secure_connections_enable
-	rtn blank
-	fetch 1,mem_sc_local_key_invalid
-	rtneq SP_KEY_VALID_256
-//	fetch 2,mem_ui_state_map
-//	bbit1 UI_STATE_BT_CONNECTED,stop_publickey_calc_256
-	fetch 1,mem_sc_calc
-	beq SP_CALC_STANDBY,sp_initialize_256
-	rtn
-stop_publickey_calc_256:
-	jam SP_CALC_STANDBY,mem_sc_calc	
-	rtn
-
-
-	
-
-sp_clear_flags:
-	bpatchx patch22_4,mem_patch22
-	setarg mem_sp_state_end
-	arg mem_sp_state_start,contw
-	isub contw,loopcnt
-	call clear_mem
-	setarg mem_sp_state_xmem_end
-	arg mem_sp_state_xmem,contw
-	isub contw,loopcnt
-	branch clear_mem
-
-
-
-sp_calc_check_publickey_256:
-	call sp_calc_b256
-	arg mem_le_pubkey_remote_y_256,rega
-	arg mem_t7_256,contw
-	call bn_sqrmod_256   
-	arg mem_le_pubkey_remote_x_256,rega
-	arg mem_t2_256,contw
-	call bn_sqrmod_256   
-  	arg mem_t2_256,rega
-	arg mem_le_pubkey_remote_x_256,regb
-	arg mem_t2_256,contw
-	call bn_mulmod_256	
-  	arg mem_a_256,rega
-	arg mem_le_pubkey_remote_x_256,regb
-	arg mem_t3_256,contw
-	call bn_mulmod_256	
-  	arg mem_t3_256,rega
-	arg mem_t2_256,regb
-	arg mem_t2_256,contw
-	call bn_addmod_256	 
-  	arg mem_t0_256,rega
-	arg mem_t2_256,regb
-	arg mem_t0_256,contw
-	call bn_addmod_256	 
-	arg 32,loopcnt
-  	arg mem_t7_256,rega
-	arg mem_t0_256,regb
-	branch  string_compare
-	
-sp_calc_b256:
-	arg mem_gy_256,rega
-	arg mem_t0_256,contw
-	call bn_sqrmod_256   
-	arg mem_gx_256,rega
-	arg mem_t2_256,contw
-	call bn_sqrmod_256    
-  	arg mem_t2_256,rega
-	arg mem_gx_256,regb
-	arg mem_t2_256,contw
-	call bn_mulmod_256	
-  	arg mem_a_256,rega
-	arg mem_gx_256,regb
-	arg mem_t3_256,contw
-	call bn_mulmod_256	 
-  	arg mem_t3_256,rega
-	arg mem_t2_256,regb
-	arg mem_t2_256,contw
-	call bn_addmod_256	 
-  	arg mem_t0_256,rega
-	arg mem_t2_256,regb
-	arg mem_t0_256,contw
-	branch  bn_submod_256	
-
-
-
-
-random_generator:
-	increase -1,queue
-	nrtn     positive
-	random   pdata
-	istore   2,contw  
-	branch   random_generator
-compare4:
-	increase -1,queue
-	nbranch  compare4_success,positive
-	ifetch   4,rega
-	copy     pdata,temp
-	ifetch   4,regb
-	iflip    temp,pdata
-	nbranch  compare4_failed,zero
-	increase 4,rega
-	increase 4,regb
-	branch   compare4
-compare4_failed:
-	branch disable_true
-
-compare4_success:
-	branch enable_true
-
-
-
-
-bn_testbit:
-	and pdata,7,queue
-	rshift3 pdata,pdata
-	iadd contr,contr
-	ifetch 1,contr
-	qisolate0 pdata
-	rtn
-
-
-bn_eq_zero:
-	ifetch 8,contr
-	nrtn blank
-	ifetch 8,contr
-	nrtn blank
-	ifetch 8,contr
-	rtn
-	
-	
-	/* return zero if eq */
-
-bn_eq_0:	
-	ifetch 4,rega
-	iforce temp
-	ifetch 4,regb
-	isub temp,null
-	nrtn zero
-	increase 4,rega
-	increase 4,regb
-	loop bn_eq_0
-	rtn
-	/* return positive if A >= B */
-bn_bigeq:
-	force 6,loopcnt
-	increase 20,rega
-	increase 20,regb
-bn_bigeq_0:	
-	ifetch 4,regb
-	iforce temp
-	ifetch 4,rega
-	isub temp,pdata
-	nrtn positive
-	nrtn blank
-	increase -4,rega
-	increase -4,regb
-	loop bn_bigeq_0
-	rtn
-bn_add:
-	force 6,loopcnt
-	force 0,regc
-bn_add_0:	
-	ifetch 4,rega
-	iforce temp
-	ifetch 4,regb
-	iadd temp,pdata
-	iadd regc,pdata
-	istore 4,contw
-	isolate1 32,pdata
-	setflag true,0,regc
-	increase 4,rega
-	increase 4,regb
-	loop bn_add_0
-	rtn
-
-bn_sub:
-	force 6,loopcnt
-	force 0,regc
-bn_sub_0:	
-	ifetch 4,regb
-	iforce temp
-	ifetch 4,rega
-	isub temp,pdata
-	isub regc,pdata
-	istore 4,contw
-	isolate1 32,pdata
-	setflag true,0,regc
-	increase 4,rega
-	increase 4,regb
-	loop bn_sub_0
-	rtn
-
-bn_rshift6:
-	force 6,loopcnt
-	increase 20,rega
-bn_rshift:
-	force 0,regc
-bn_rshift_0:	
-	ifetch 4,rega
-	isolate1 0,pdata
-	setflag true,1,regc
-	rshift pdata,pdata
-	isolate1 0,regc
-	setflag true,31,pdata
-	istore 4,rega
-	increase -4,rega
-	rshift regc,regc
-	loop bn_rshift_0
-	rtn
-bn_lshift:
-	force 6,loopcnt
-	force 0,regc
-bn_lshift_0:	
-	ifetch 4,rega
-	isolate1 31,pdata
-	setflag true,1,regc
-	lshift pdata,pdata
-	isolate1 0,regc
-	setflag true,0,pdata
-	istore 4,rega
-	increase 4,rega
-	rshift regc,regc
-	loop bn_lshift_0
-	rtn
-	
-
-bn_load:
-	force 6,loopcnt
-bn_load_0:	
-	ifetch 4,contr
-	iforce regext
-	increase 1,regext_index
-	loop bn_load_0
-	rtn
-
-
-
-sp_initialize_256:	
-	bpatchx patch22_5,mem_patch22
-	fetch 1,mem_secure_connections_enable
-	nbranch sp_pubkey_calc_256,blank
-//	call sp_clear_flags
-sc_reset:
-	jam SP_CALC_STANDBY,mem_sc_calc
-	jam SP_KEY_INVALID,mem_sc_local_key_invalid
-	rtn
-	
-	
-    	
-sp_wait_pubkey_calc_256_done:
-	fetch 1,mem_secure_connections_enable
-	rtn blank
-	fetch 1,mem_sc_local_key_invalid
-	rtneq SP_KEY_VALID_256
-	call sp_calc_sequence_256
-	branch sp_wait_pubkey_calc_256_done
-
-
-//BD1A3CCD:A6B89958:99B740EB:7B60FF4A:503F10D2:E3B3C974:385FC5A3:D4F6493F
-sp_debug_private_256:
-	arg mem_sc_private_key_256,contw
-        setsect 0,0x1abd
-        setsect 1,0x1b34f
-        setsect 2,0x19b8a
-        setsect 3,0x26562
-        istore 9,contw
-        setsect 0,0x340b7
-        setsect 1,0x1efa
-        setsect 2,0xaff6
-        setsect 3,0xfd41
-        istore 9,contw
-        setsect 0,0x3d210
-        setsect 1,0x26cf8
-        setsect 2,0x3874c
-        setsect 3,0x3157c
-        istore 9,contw
-        setsect 0,0x2d4a3
-        setsect 1,0x3d27d
-        setsect 2,0x3
-        istore 5,contw
-        rtn
-	
-
-sp_pubkey_calc_256:
-	fetch    1,mem_sc_local_key_invalid
-	rtnne SP_KEY_INVALID
-	fetch    1,mem_sc_calc
-	rtnne  SP_CALC_STANDBY
-	call init_memp_256
-	arg      mem_sc_private_key_256,contw 
-	force    15,queue
-	call     random_generator
-	random   pdata
-	rshift   pdata,pdata
-	istore   2,contw 
-	
-	fetch 1,mem_sp_debug_mode
-	ncall sp_debug_private_256,blank
-	
-	arg      mem_k_256,contw
-	arg      mem_sc_private_key_256,contr	
-	call     memcpy32 //mem_sp_private_key=>mem_k 
-
-	arg      mem_ax_256,contw
-	arg      mem_gx_256,contr
-	call     memcpy64 //mem_gx=>mem_ax 
-	
-	arg      mem_az_256,contw
-	call      clear_mem_256
-	jam      1,mem_az_256 //0=>mem_az 
-
-	call     eckp_calc_init_256
-	jam SP_CALC_PUBKEY_256,mem_sc_calc
-	rtn    
-
-sp_pubkey_generated_256:
-	arg      mem_sc_pubkey_local_x_256,contw
-	arg      mem_bx_256,contr
-	call     memcpy64   
-	jam      SP_KEY_VALID_256,mem_sc_local_key_invalid
-	jam      SP_CALC_STANDBY,mem_sc_calc
-	rtn
-	
-
-
-sp_dhkey_calc_256:
-	fetch    1,mem_sp_dhkey_invalid
-	rtnne  SP_KEY_INVALID
-	fetch    1,mem_sc_calc
-	rtnne  SP_CALC_STANDBY
-
-	arg      mem_k_256,contw
-	arg      mem_sc_private_key_256,contr	
-	call     memcpy32
-
-	arg      mem_ax_256,contw
-	arg      mem_le_pubkey_remote_x_256,contr
-	call     memcpy64
-
-	arg      mem_az_256,contw
-	call     clear_mem_256
-	jam      1,mem_az_256 //0=>mem_az 
-
-	call     eckp_calc_init_256
-	jam     SP_CALC_DHKEY_256,mem_sc_calc
-	rtn 
-
-
-sp_dhkey_generated_256:
-//	jam SP_FLAG_COMMIT,mem_sp_dh_ready
-	arg mem_le_dhkey_256,contw
-	arg mem_bx_256,contr
-	call memcpy32
-	jam SP_KEY_VALID_256,mem_sp_dhkey_invalid
-	jam SP_CALC_STANDBY,mem_sc_calc
-	rtn
-
-
-
-sp_calc_sequence_256:
-	fetch 1,mem_secure_connections_enable
-	rtn blank
-	fetch 1,mem_sc_calc
-	rtn blank
-	increase 0x80,pdata
-	store    1,mem_sc_calc
-	rtnbit1 7
-	fetch    2,mem_ec_loopc
-	branch   sp_calc_sequence_done_256,blank
-	branch   eckp_calc_256
-
-sp_calc_sequence_done_256:    
-	bpatchx patch22_6,mem_patch22
-	call ecunmapz_256
-	fetch 1,mem_sc_calc
-	beq  SP_CALC_PUBKEY_256,sp_pubkey_generated_256
-	beq  SP_CALC_DHKEY_256,sp_dhkey_generated_256
-	rtn
-
-
-eckp_calc_256:
-	call     ecdbl_256  
-	fetch    2,mem_ec_loopc
-	increase -1,pdata
-	store    2,mem_ec_loopc
-	arg      mem_k_256,contr
-	call     bn_testbit
-	rtn	true
-	branch     ecadd_256   
-
-eckp_calc_init_256:
-	bpatchx patch22_7,mem_patch22
-	setarg 256
-	store 2,mem_ec_loopc
-eckp_calc_init_256_1:    
-	fetch    2,mem_ec_loopc
-	rtn      blank
-	increase -1,pdata
-	store    2,mem_ec_loopc
-	arg      mem_k_256,contr
-	call     bn_testbit
-	branch eckp_calc_init_256_1,true
-	arg      mem_ax_256,contr
-	arg      mem_cx_256,contw
-	branch     memcpy96	
-
-
-ecunmapz_256:
-	arg mem_cz_256,rega
-	arg mem_t3_256,contw
-	call bn_invmod_256			/* t3 = 1/z */
-	arg mem_t3_256,rega
-	arg mem_t1_256,contw		
-	call bn_sqrmod_256			/* t1 = 1/z2 */
-	arg mem_cx_256,rega
-	arg mem_t1_256,regb
-	arg mem_bx_256,contw
-	call bn_mulmod_256
-	arg mem_t3_256,rega
-	arg mem_t1_256,regb
-	arg mem_t2_256,contw			
-	call bn_mulmod_256			/* t2 = 1/z3 */
-	arg mem_cy_256,rega
-	arg mem_t2_256,regb
-	arg mem_by_256,contw
-	branch bn_mulmod_256	
-	
-ecdbl_256:
-	arg mem_cz_256,rega
-	arg mem_t2_256,contw
-	call bn_sqrmod_256
-	arg mem_t2_256,rega
-	arg mem_t3_256,contw
-	call bn_sqrmod_256
-//call ice_break
-	arg mem_a_256,rega
-	arg mem_t3_256,regb
-	arg mem_t3_256,contw
-	call bn_mulmod_256		/* t3=a*z4	*/
-	arg mem_cx_256,rega
-	arg mem_t2_256,contw
-	call bn_sqrmod_256
-//call ice_break
-	arg mem_t2_256,contr
-	arg mem_t1_256,contw
-	call memcpy32
-	arg mem_t1_256,rega
-	call bn_lshiftmod_256
-	arg mem_t2_256,rega
-	arg mem_t1_256,regb
-	arg mem_t2_256,contw
-	call bn_addmod_256
-//call ice_break
-	arg mem_t2_256,rega
-	arg mem_t3_256,regb
-	arg mem_t2_256,contw
-	call bn_addmod_256		/* t2=3*x2 + z*z4		D  */
-//call ice_break
-	arg mem_cx_256,contr
-	arg mem_t1_256,contw
-	call memcpy32
-	arg mem_cy_256,rega
-	arg mem_t3_256,contw
-	call bn_sqrmod_256
-	arg mem_t1_256,rega
-	call bn_lshiftmod_256
-	arg mem_t1_256,rega
-	call bn_lshiftmod_256
-	arg mem_t1_256,rega		
-	arg mem_t3_256,regb
-	arg mem_t1_256,contw
-	call bn_mulmod_256		//S = 4X1Y1^2/* t1=4x*y2	B	*/
-	arg mem_t3_256,rega
-	arg mem_t0_256,contw
-	call bn_sqrmod_256
-	arg mem_t0_256,rega
-	call bn_lshiftmod_256
-	arg mem_t0_256,rega
-	call bn_lshiftmod_256		
-	arg mem_t0_256,rega		
-	call bn_lshiftmod_256	//T = 8Y1^4	/* t0=8*y4		C */
-	arg mem_cy_256,contr
-	arg mem_t3_256,contw
-	call memcpy32
-	arg mem_t3_256,rega
-	call bn_lshiftmod_256
-	arg mem_t3_256,rega
-	arg mem_cz_256,regb
-	arg mem_cz_256,contw
-	call bn_mulmod_256		//z = 2Y1Z1
-
-
-	arg mem_t2_256,rega
-	arg mem_t3_256,contw
-	call bn_sqrmod_256   // M ^2
-//call ice_break
-	arg mem_t3_256,rega
-	arg mem_t1_256,regb
-	arg mem_t3_256,contw
-	call bn_submod_256  // t2^2 - 4*cx *cy^2 
-	arg mem_t3_256,rega
-	arg mem_t1_256,regb
-	arg mem_cx_256,contw
-	call bn_submod_256   //X2
-	arg mem_t1_256,rega
-	arg mem_cx_256,regb
-	arg mem_t3_256,contw
-	call bn_submod_256   //S-X2
-	arg mem_t3_256,rega
-	arg mem_t2_256,regb
-	arg mem_t3_256,contw
-	call bn_mulmod_256	//M(S-X2)	
-	arg mem_t3_256,rega
-	arg mem_t0_256,regb
-	arg mem_cy_256,contw
-	branch bn_submod_256  //M(S-X2)-T Y2	
-
-ecadd_256:
-
-	arg mem_az_256,rega
-	arg mem_t7_256,contw
-	call bn_sqrmod_256
-	arg mem_cx_256,rega
-	arg mem_t7_256,regb
-	arg mem_t0_256,contw
-	call bn_mulmod_256		/* n1=t0=xa*zb2 U1 = X1Z0^2*/
-
-
-	arg mem_az_256,rega
-	arg mem_t7_256,regb
-	arg mem_t7_256,contw
-	call bn_mulmod_256	
-	arg mem_cy_256,rega
-	arg mem_t7_256,regb
-	arg mem_t1_256,contw
-	call bn_mulmod_256		/* n2=t1=ya*zb3   S1 = Y1Z0^3*/
-
-
-	arg mem_cz_256,rega
-	arg mem_t7_256,contw
-	call bn_sqrmod_256
-	arg mem_ax_256,rega
-	arg mem_t7_256,regb
-	arg mem_t2_256,contw
-	call bn_mulmod_256		/* n3=t2=xb*za2  U0 = X0Z1^2*/
-
-	arg mem_cz_256,rega
-	arg mem_t7_256,regb
-	arg mem_t7_256,contw
-	call bn_mulmod_256	
-	arg mem_ay_256,rega
-	arg mem_t7_256,regb
-	arg mem_t3_256,contw
-	call bn_mulmod_256		/* n4=t3=yb*za3 S0 = Y0Z1^3*/
-
-
-//	arg mem_t0_256,rega
-//	arg mem_t2_256,regb
-	arg mem_t0_256,regb
-	arg mem_t2_256,rega
-	arg mem_t7_256,contw
-	call bn_submod_256		/* n5=t7=n1-n3=t0-t2   W=U1-U0*/
-	arg mem_t0_256,rega
-	arg mem_t2_256,regb
-	arg mem_t0_256,contw
-	call bn_addmod_256		/* n7=t0=n1+n3=t0+t2    T=U1+U0 */
-//	arg mem_t1_256,rega
-//	arg mem_t3_256,regb
-	arg mem_t1_256,regb
-	arg mem_t3_256,rega
-	arg mem_t2_256,contw
-	call bn_submod_256		/* n6=t2=n2-n4=t1-t3  S1-S0 */
-	arg mem_t1_256,rega
-	arg mem_t3_256,regb
-	arg mem_t1_256,contw
-	call bn_addmod_256		/* n8=t1=n2+n4=t1+t3 M=S1+S0*/
-	arg mem_t1_256,rega
-	arg mem_t7_256,regb
-	arg mem_t1_256,contw
-	call bn_mulmod_256		/* t1=n8*n5     MW */
-	arg mem_cz_256,rega
-	arg mem_az_256,regb
-	arg mem_t3_256,contw
-	call bn_mulmod_256	      //Z0Z1
-	arg mem_t3_256,rega
-	arg mem_t7_256,regb
-	arg mem_cz_256,contw
-	call bn_mulmod_256		/* z=za*zb*n5   Z0Z1W */
-
-	arg mem_t7_256,rega
-	arg mem_t7_256,contw
-	call bn_sqrmod_256		/* t7=n5^2 */
-	arg mem_t7_256,rega
-	arg mem_t0_256,regb
-	arg mem_t3_256,contw
-	call bn_mulmod_256		/* t3=n5^2*n7 */
-	arg mem_t7_256,rega
-	arg mem_t1_256,regb
-	arg mem_t1_256,contw
-	call bn_mulmod_256		/* t1=n8*n5^3 */
-	arg mem_t2_256,rega
-	arg mem_cx_256,contw
-	call bn_sqrmod_256		
-	arg mem_cx_256,rega
-	arg mem_t3_256,regb
-	arg mem_cx_256,contw
-	call bn_submod_256		/* x=n6^2-n5^2*n7 */
-	arg mem_cx_256,contr
-	arg mem_t7_256,contw
-	call memcpy32
-	arg mem_t7_256,rega
-	call bn_lshiftmod_256		/* t7=2*x */
-	arg mem_t3_256,rega
-	arg mem_t7_256,regb
-	arg mem_t3_256,contw
-	call bn_submod_256		/* t3=n9 */
-	arg mem_t3_256,rega
-	arg mem_t2_256,regb
-	arg mem_t2_256,contw
-	call bn_mulmod_256		/* t2=n9*n6 */
-	arg mem_t2_256,rega
-	arg mem_t1_256,regb
-	arg mem_cy_256,contw
-	call bn_submod_256	
-	arg mem_cy_256,rega
-	arg mem_p_256,regb
-	arg mem_cy_256,contw
-	force 0,regc
-	fetch 1,mem_cy_256
-	isolate1 0,pdata
-	call bn_add_256,true
-	copy regc,alarm
-	arg mem_cy_256,rega
-	call bn_rshift_256
-	fetch 1,mem_cy5_256
-	isolate1 0,alarm
-	setflag true,7,pdata
-	store 1,mem_cy5_256
-	rtn	
-
-bn_invmod_256:
-	copy contw,timeup					 
-	arg mem_tmp0_256,contw			 
-	call clear_mem_256
-	force 0,pdata
-//	store 4,mem_tmp52
-	store 4,mem_t2_256
-	jam 1,mem_tmp0_256      //y1
-	arg mem_tmp1_256,contw	//y2			 
-	call clear_mem_512      
-	arg mem_p_256,contr
-	arg mem_tmp2_256,contw		//j		 
-	call memcpy32
-	copy rega,contr
-	arg mem_tmp3_256,contw		//i		 
-	call memcpy32
-	
-//	arg mem_tmp22,rega
-//	arg mem_tmp32,regb
-//	call p_bn_bigeq_256
-//	branch assert,positive
-bn_invmod_256_2:	
-	arg mem_tmp3_256,contr
-	call bn_eq_zero_256
-	branch bn_invmod_256_0,blank
-//call ice_break    	
-//fetch 1,0x4ffe
-//increase 1,pdata
-//store 1,0x4ffe
-	arg mem_tmp3_256,rega
-	arg mem_tmp0_256,regb
-	call bn_rshifteven_256
-	arg mem_tmp2_256,rega
-	arg mem_tmp1_256,regb
-	call bn_rshifteven_256
-	
-	arg mem_tmp3_256,rega
-	arg mem_tmp2_256,regb
-	call bn_bigeq_256
-	branch bn_invmod_256_1,positive
-	arg mem_tmp2_256,rega
-	arg mem_tmp3_256,regb
-	copy rega,contw
-	call bn_sub_256
-	arg mem_tmp0_256,rega
-	arg mem_tmp1_256,regb
-	copy regb,contw
-	call bn_add_256
-	ifetch 1,rega
-	iadd regc,regc
-	ifetch 1,regb
-	iadd regc,pdata
-	istore 1,regb
-	branch bn_invmod_256_2
-bn_invmod_256_1:
-	arg mem_tmp3_256,rega
-	arg mem_tmp2_256,regb
-	copy rega,contw
-	call bn_sub_256
-	arg mem_tmp1_256,rega
-	arg mem_tmp0_256,regb
-	copy regb,contw
-	call bn_add_256
-	ifetch 1,rega
-	iadd regc,regc
-	ifetch 1,regb
-	iadd regc,pdata
-	istore 1,regb
-	branch bn_invmod_256_2
-bn_invmod_256_0:
-//call ice_break
-	arg mem_tmp1_256,rega
-	copy timeup,contw
-	call  bn_p256mod
-//call ice_break
-	arg mem_p_256,rega
-	copy timeup,regb
-	copy timeup,contw
-	branch bn_submod_256
-
-
-bn_mulmod_256:
-	copy contw,timeup					/* save result ptr */
-	
-	force 0,regext_index
-	
-	arg mem_tmp1_256,contw
-	call clear_mem_512
-	arg mem_regext,contw
-	call clear_mem_512
-//	jam 0,mem_regext_index
-
-//	arg mem_tmp12,contw
-	copy rega,contr
-//	force 0,regext_index
-	jam 0,mem_regext
-	setarg 0
-	call bn_load_mem
-	copy regb,contr
-	call bn_load_256
-//	force 0,regb
-//	jam 0,mem_regb
-	force 0,queue
-	arg mem_tmp1_256,contw	
-bn_mulmod_256_1:	
-//	copy regb,pdata
-//	store 1,
-	arg mem_regext,temp
-	copy queue,regb
-	lshift2 regb,pdata
-//	lshift4 pdata,pdata
-	iadd temp,regb	
-	force 0,temp
-	force 0,regc
-bn_mulmod_256_0:
-//	copy contw,pdata
-//	store 2,mem_contw
-//call ice_break
-//	copy pdata,contw
-	ifetch 4,contw					/* d[i+j] */
-	iforce rega
-//	copy regb,regext_index
-//	deposit regext
-	ifetch 4,regb
-	copy regc,regext_index
-	imul32 regext,pdata
-	iadd rega,pdata					/* uv = a[i]*b[j] + d[i+j] */
-	iadd temp,pdata					/* uv += u */
-	istore 4,contw					/* ->d[i+j] */
-	rshift32 pdata,temp				/* temp = u = uv >> 32 */
-	increase 1,regc
-	compare 8,regc,0xff
-	nbranch bn_mulmod_256_0,true
-//call ice_break
-	deposit temp
-	istore 4,contw					/* d[i + 12] = u */
-	increase -32,contw
-//	fetch 1,mem_regb
-//	copy pdata,regb
-	increase 1,queue
-	compare 8,queue,0xff
-	nbranch bn_mulmod_256_1,true
-	arg mem_tmp1_256,rega
-	copy timeup,contw
-	branch bn_p256mod
-
-bn_p256mod:
-	bpatchx patch23_0,mem_patch23
-	copy contw,timeup				/* save result ptr */
-	copy rega,alarm				/* temp save rega */
-	arg mem_tmp2_256,regb
-	copy regb,contw
-	call memset0_4	
-	istore 8,contw
-	add rega,44,contr
-	call memcpy8
-	call memcpy12
-	copy regb,rega
-	call  bn_lshiftmod_256 //2S1
-	arg mem_tmp2_256,regb
-	copy alarm,rega   
-	copy timeup,contw
-	call bn_addmod_256 //T+2S1
-//call ice_break	
-	arg mem_tmp2_256,regb
-	copy regb,contw
-	call memset0_4	
-	istore 8,contw
-	add alarm,48,contr
-	call memcpy16
-	call memset0_4	
-	copy regb,rega
-	call  bn_lshiftmod_256 //2S2
-//call ice_break	
-//	arg 0,regb
-
-	arg mem_tmp2_256,regb
-	copy timeup,rega   
-	copy rega,contw	
-	call bn_addmod_256  //+2S2
-//call ice_break	
-//	arg 0,regb
-		
-	arg mem_tmp2_256,regb
-	copy regb,contw
-	add alarm,32,contr
-	call memcpy12
-	call memset0_4	
-	istore 8,contw
-	add alarm,56,contr
-	call memcpy8
-	copy timeup,rega
-	copy rega,contw
-	call bn_addmod_256 //+S3
-//call ice_break	
-//	arg 0,regb
-
-	arg mem_tmp2_256,regb
-	copy regb,contw
-	add alarm,36,contr
-	call memcpy12
-	add alarm,52,contr	
-	call memcpy12
-	add alarm,52,contr
-	call memcpy4
-	add alarm,32,contr
-	call memcpy4
-	copy timeup,rega
-	copy rega,contw
-	call bn_addmod_256 //+S4	
-//call ice_break	
-//	arg 1,regb
-	arg mem_tmp2_256,regb
-	copy regb,contw
-	add alarm,44,contr
-	call memcpy12
-	call memset0_4	
-	istore 8,contw
-	add alarm,32,contr
-	call memcpy4
-	add alarm,40,contr
-	call memcpy4
-	copy timeup,rega
-	copy rega,contw
-	call bn_submod_256 //-D1	
-//call ice_break	
-//	arg 2,regb
-	arg mem_tmp2_256,regb
-	copy regb,contw
-	add alarm,48,contr
-	call memcpy8
-	call memcpy8
-	force 0,pdata
-	istore 8,contw
-	add alarm,36,contr
-	call memcpy4
-	add alarm,44,contr
-	call memcpy4
-	copy timeup,rega
-	copy rega,contw
-	call bn_submod_256 //-D2	
-//call ice_break	
-//	arg 3,regb
-	arg mem_tmp2_256,regb
-	copy regb,contw
-	add alarm,52,contr
-	call memcpy12
-	add alarm,32,contr
-	call memcpy12
-	call memset0_4	
-	add alarm,48,contr
-	call memcpy4
-	copy timeup,rega
-	copy rega,contw
-	call bn_submod_256 //-D3
-//call ice_break	
-//	arg 4,regb
-	arg mem_tmp2_256,regb
-	copy regb,contw
-	add alarm,56,contr
-	call memcpy8
-	call memset0_4	
-	add alarm,36,contr
-	call memcpy12
-	call memset0_4	
-	add alarm,52,contr
-	call memcpy4
-	copy timeup,rega
-	copy rega,contw
-	branch  bn_submod_256 //-D4	
-
-
-bn_load_mem:
-	force 32,loopcnt
-	arg mem_regext,contw
-	iadd contw,contw
-	branch memcpy
-
-bn_load_256:
-	force 8,loopcnt
-	branch bn_load_0
-
-bn_sqrmod_256:
-	copy rega,regb
-	branch bn_mulmod_256
-
-bn_add_256:
-	force 8,loopcnt
- 	branch bn_add+1
-
-bn_addmod_256:
-	call bn_add_256
-	copy contw,rega
-	branch bn_lshiftmod_ismod_256
-
-bn_lshiftmod_256:
-	call bn_lshift_256
-bn_lshiftmod_ismod_256:	
-	isolate1 0,regc
-	branch bn_lshiftmod_p_256,true
-	arg mem_p_256,regb
-	copy rega,regc
-	increase -32,rega
-	call bn_bigeq_256
-	nrtn positive
-	copy regc,rega
-	branch sub_p2_256
-	
-bn_lshiftmod_p_256:
-	call sub_p2_256
-//	nrtn true
-	copy rega,regc
-	increase -32,rega
-	arg mem_p_256,regb
-	call bn_bigeq_256
-	nrtn positive
-	copy regc,rega
-	branch sub_p2_256
-		
-	
-sub_p2_256:
-	increase -32,rega
-	arg mem_p_256,regb
-	copy rega,contw
-	branch bn_sub_256
-	
-
-
-	
-bn_submod_256:
-	call bn_sub_256
-//	isolate1 0,regc
-	branch  bn_submod_256_np,true
-//	copy rega,regc
-//	increase -32,rega
-	add contw,-32,rega
-	arg mem_p_256,regb
-	call bn_bigeq_256
-	nrtn positive
-	arg mem_p_256,regb
-	add contw,-32,rega
-//	copy regc,rega
-	copy rega,contw
-	branch  bn_sub_256
-bn_submod_256_np:	
-	add contw,-32,rega
-	arg mem_p_256,regb
-	copy rega,contw
-	call bn_add_256
-//	isolate1 0,regc
-	rtn true
-	add contw,-32,rega
-	arg mem_p_256,regb
-	copy rega,contw
-	branch bn_add_256	
-
-
- 
-bn_sub_256:
-	force 8,loopcnt
-	branch bn_sub+1
-
-bn_rshift_256:
-	force 8,loopcnt
-	increase 28,rega
-	branch bn_rshift
-
-bn_lshift_256:
-	force 8,loopcnt
-	force 0,regc
-	branch bn_lshift_0
-
-bn_bigeq_256:
-	force 8,loopcnt
-	increase 28,rega
-	increase 28,regb
-	branch bn_bigeq_0
-
-
-bn_eq_zero_256:
-	ifetch 8,contr
-	nrtn blank
-	branch bn_eq_zero
-
-
-
-	
-bn_rshifteven_256:
-	copy rega,alarm
-bn_rshifteven_256_1:
-	copy alarm,rega
-	ifetch 1,rega
-	isolate1 0,pdata
-	rtn true
-	call bn_rshift_256
-	ifetch 1,regb
-	isolate0 0,pdata
-	branch bn_rshifteven_256_0,true
-	arg mem_p_256,rega
-	copy regb,contw
-	call bn_add_256
-	ifetch 1,regb
-	iadd regc,pdata
-	istore 1,regb						 
-	increase -32,regb
-bn_rshifteven_256_0:
-	add regb,32,rega
-	force 9,loopcnt
-	call bn_rshift
-	branch bn_rshifteven_256_1		
-
-endif
-
Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/ui.prog
===================================================================
--- /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/ui.prog	(revision 5679)
+++ /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/ui.prog	(nonexistent)
@@ -1,655 +0,0 @@
-ui_init:
-	rtn wake
-	call lpm_disable_exen_output
-	call ui_button_init
-	call ui_timer_init
-	branch ui_led_init_global
-
-ui_dispatch:
-	call ui_led_dispatch
-	branch ui_timer_check
-	
-ui_button_init:
-	fetch 1,mem_ui_button_gpio
-	rtneq UI_BUTTON_GPIO_DISABLE
-	iforce temp
-	call gpio_config_output
-	fetcht 1,mem_ui_button_gpio
-	call gpio_out_inactive
-	nop 100
-	fetcht 1,mem_ui_button_gpio
-	call gpio_config_input
-	branch ui_button_polling
-
-
-	
-ui_button_polling:
-	bpatchx patch23_1,mem_patch23
-	fetch 1,mem_ui_button_gpio
-	rtneq UI_BUTTON_GPIO_DISABLE
-	copy pdata,temp
-	call gpio_get_bit
-	nbranch ui_button_up,true
-	//fall through
-ui_button_down:
-	call ui_button_check_long_press
-	fetch 2,mem_ui_state_map
-	set1 UI_STATE_BTN_DOWN,pdata
-	store 2,mem_ui_state_map
-	fetch 1,mem_ui_button_last_state
-	rtneq UI_BUTTON_STATE_DOWN
-	jam UI_BUTTON_STATE_DOWN,mem_ui_button_last_state
-	//Down Edge
-	fetch 1,mem_ui_button_timeout
-	store 1,mem_ui_button_timer //start long press timer
-	call lpm_button_get_wake_lock
-	jam BT_EVT_BUTTON_DOWN,mem_fifo_temp
-	branch ui_ipc_send_event
-ui_button_up:
-	fetch 2,mem_ui_state_map
-	set0 UI_STATE_BTN_DOWN,pdata
-	store 2,mem_ui_state_map
-	fetch 1,mem_ui_button_last_state
-	rtneq UI_BUTTON_STATE_UP
-	jam UI_BUTTON_STATE_UP,mem_ui_button_last_state
-	//Up Edge
-	jam 0,mem_ui_button_timer//stop long press timer
-	call lpm_button_clean_wake_lock
-	jam BT_EVT_BUTTON_UP,mem_fifo_temp
-	branch ui_ipc_send_event
-
-ui_button_check_long_press:
-	fetch 1,mem_ui_button_timer
-	rtn blank
-	increase -1,pdata
-	store 1,mem_ui_button_timer
-	nrtn blank
-	//Long Press
-	jam BT_EVT_BUTTON_LONG_PRESSED,mem_fifo_temp
-	branch ui_ipc_send_event
-
-lpm_button_get_wake_lock:
-	arg wake_lock_button,queue
-	branch lpm_get_wake_lock
-	
-lpm_button_clean_wake_lock:
-	arg wake_lock_button,queue
-	branch lpm_put_wake_lock
-
-
-
-/***********************ui led function****************************/
-/******************
-led function
-
-ui_led_init_global
-ui_led_on_global
-
-ui_led_off_global
-//input:rega :struct number
-ui_led_blink_start_global
-
-//input:rega :struct number
-//contr: the point that want to set led style address
-ui_led_set_style_global
-
-******************/
-//input:rega :struct number
-//output:regb :current strutct starting pointer
-calc_curr_struct_prt:
-	bpatchx patch23_2,mem_patch23
-	fetch 2,mem_ui_led_struct_ptr
-	mul32 rega,LED_OFFSET_LENGTH,regb
-	iadd regb,regb
-	rtn
-
-
-ui_led_init_global:
-	fetch 1,mem_ui_led_struct_num
-	rtn blank
-	copy pdata,loopcnt
-	fetch 2,mem_ui_led_struct_ptr
-	copy pdata,regb
-ui_led_init_loop:
-	add regb,LED_OFFSET_LED_GPIO,regc
-	ifetcht 1,regc
-	call ui_led_init_set
-	increase LED_OFFSET_LENGTH,regb
-	loop ui_led_init_loop
-	rtn
-
-//mem_ui_led_init_state_set =0,set init off else set init on
-ui_led_init_set:
-	fetch 1,mem_ui_led_init_state_set
-	branch gpio_out_inactive,blank
-	branch gpio_out_active
-	
-//input:rega :struct number
-ui_led_on_global:
-	call calc_curr_struct_prt
-	setarg UI_LED_STATE_LIGHTING
-	istore 1,regb
-	call ui_led_stop_timer
-	branch ui_led_on_static
-
-	
-//input:rega :struct number
-ui_led_blink_stop_global:
-ui_led_off_global:
-	
-	call calc_curr_struct_prt
-	setarg UI_LED_STATE_DARKING
-	istore 1,regb
-	
-	call ui_led_stop_timer
-	branch ui_led_off_static
-
-
-//input:rega :struct number
-ui_led_blink_start_global:
-	call calc_curr_struct_prt
-	setarg UI_LED_STATE_BLINK_START
-	istore 1,regb
-	setarg LED_INFINITE_FLASH_NUM
-	istore 1,contw
-	branch ui_led_off_static
-
-
-//input:rega :struct number
-//REGC: the point that want to set led style address
-ui_led_set_style_global:
-	call calc_curr_struct_prt
-	arg LED_OFFSET_LENGTH,loopcnt
-	copy regc,contr
-	copy regb,contw
-	branch memcpy_fast
-
-
-
-ui_led_dispatch:
-	fetch 1,mem_ui_led_struct_num
-	rtn blank
-	arg 0,rega
-ui_led_blink_polling:
-	call ui_led_change_style_by_type
-	increase 1,rega
-	fetch 1,mem_ui_led_struct_num
-	isub rega,null
-	rtn zero
-	branch ui_led_blink_polling
-
-
-ui_led_off_static:
-	add regb,LED_OFFSET_LED_GPIO,regc
-	ifetcht 1,regc
-	branch gpio_out_inactive
-
-
-ui_led_on_static:
-	add regb,LED_OFFSET_LED_GPIO,regc
-	ifetcht 1,regc
-	branch gpio_out_active
-
-
-//input:rega :struct number
-ui_led_change_style_by_type:
-	add rega,ui_led_blink,queue
-	call timer_check
-	nrtn blank			//timer out
-	
-	call calc_curr_struct_prt
-
-	ifetch 1,regb			//led type
-
-	beq UI_LED_STATE_LIGHTING,ui_led_on_static
-	beq UI_LED_STATE_DARKING,ui_led_off_static
-	beq UI_LED_STATE_BLINK_STOP,ui_led_off_static
-	beq UI_LED_STATE_BLINK_DARKING,ui_led_blink_state_darking
-ui_led_blink_state_lighting:
-	call ui_led_on_static
-	add regb,LED_OFFSET_CB_LEDON,regc
-	call push_stack
-	ifetch 2,regc
-	call callback_func
-	call pop_stack
-	setarg UI_LED_STATE_BLINK_DARKING
-	istore 1,regb
-	add regb,LED_OFFSET_ON_TIME,regc
-	ifetch 2,regc
-	branch ui_led_blink_timer_start
-	
-
-ui_led_blink_state_darking:
-	call ui_led_off_static
-	add regb,LED_OFFSET_CB_LEDOFF,regc
-	call push_stack
-	ifetch 2,regc
-	call callback_func
-	call pop_stack
-	
-	add regb,LED_OFFSET_BLINK_COUNT,regc
-	ifetch 1,regc
-	beq LED_INFINITE_FLASH_NUM,ui_led_blink_infinite
-	increase -1,pdata
-	istore 1,regc
-	branch ui_led_blink_stop_global,blank		//End of flicker
-ui_led_blink_infinite:
-	setarg UI_LED_STATE_BLINK_LIGHTING
-	istore 1,regb
-	add regb,LED_OFFSET_OFF_TIME,regc
-	ifetch 2,regc
-ui_led_blink_timer_start:
-	add rega,ui_led_blink,queue
-	branch timer_init
-
-ui_led_stop_timer:
-	setarg 0
-	branch ui_led_blink_timer_start
-
-/***********************ui led function ending****************************/
-
-
-
-ui_timer_timeout:
-	setarg 0x1000
-	lshift16 pdata,pdata
-	iadd regb,regb
-	rtn
-	
-ui_timer_check:
-	bpatchx patch23_3,mem_patch23
-	arg 0,rega
-	fetcht 4,mem_ui_timer_last_btclk
-	copy clkn_bt,regb
-	copy regb,pdata
-	isub temp,null
-	ncall ui_timer_timeout,positive
-ui_timer_check_loop:
-	copy regb,pdata
-	increase 160,temp    //320btclk = 100ms
-	increase 160,temp
-	isub temp,null
-	nbranch ui_timer_check_end,positive
-	increase 1,rega   //increase 1 every 100ms count
-	and rega,0x0f,pdata
-	nbranch ui_timer_check_loop,blank
-	arg 0,rega  //reset timer if it's longer than 1.5s between 2 checks
-	call ui_timer_check_send_evt
-ui_timer_init:
-	copy clkn_bt,pdata
-	store 4,mem_ui_timer_last_btclk
-	rtn
-ui_timer_check_end:
-	copy rega,pdata
-	rtn blank
-	increase -160,temp    //320btclk = 100ms
-	increase -160,temp
-	set0 28,temp
-	storet 4,mem_ui_timer_last_btclk
-ui_timer_check_send_evt:
-	branch app_evt_timer
-
-	
-
-//**********************************************************//
-//************UI Inter-Processor Communication*******//
-//**********************************************************//
-ui_ipc_get_lock:
-	jam 1,mem_ipc_lock_bt
-ui_ipc_get_lock_wait:
-	fetch 1,mem_ipc_lock_c51
-	nbranch ui_ipc_get_lock_wait,blank
-	rtn
-	
-ui_ipc_put_lock:
-	jam 0,mem_ipc_lock_bt
-	rtn
-	
-
-	
-ui_ipc_send_event:
-	bpatchx patch23_4,mem_patch23
-	fetch 1,mem_device_option
-	beq DVC_OP_KEYBOARD,keyboard_ui_ipc_send_event
-	call ui_ipc_get_lock
-	copy rega,pdata
-	store 4,mem_rega
-	arg mem_ipc_fifo_bt2c51,rega
-	call fifo_in
-	fetch 4,mem_rega
-	copy pdata,rega
-	branch ui_ipc_put_lock
-
-ui_ipc_send_cmd:
-	bpatchx patch23_5,mem_patch23
-	call ui_ipc_get_lock
-	copy rega,pdata
-	store 4,mem_rega	
-	arg mem_ipc_fifo_c512bt,rega
-	call fifo_in
-	fetch 4,mem_rega
-	copy pdata,rega	
-	branch ui_ipc_put_lock
-
-ui_ipc_clean_all_fifo:
-	setarg 0
-	store UTIL_FIFO_LEN,mem_ipc_fifo_c512bt
-	store UTIL_FIFO_LEN,mem_ipc_fifo_bt2c51
-	rtn
-	
-check_51cmd:
-	bpatchx patch23_6,mem_patch23
-	fetch 1,mem_hci_cmd
-	nrtn blank
-	arg mem_ipc_fifo_c512bt,rega
-	call fifo_is_empty
-	rtn blank
-	jam IPC_CONTINUE_PROCESS,mem_ipc_skip_continue_proc
-	call check_51cmd_once
-	fetch 1,mem_ipc_skip_continue_proc
-	branch check_51cmd,blank
-	rtn
-
-check_51cmd_once:
-	call ui_ipc_get_lock
-	arg mem_ipc_fifo_c512bt,rega
-	call fifo_out
-	copy pdata,temp
-	call ui_ipc_put_lock
-	bpatchx patch23_7,mem_patch23
-	copy temp,pdata
-	rtn blank
-	beq BT_CMD_START_ADV,check_51cmd_adv
-	beq BT_CMD_STOP_ADV,check_51cmd_stop_adv
-	beq BT_CMD_START_DIRECT_ADV,check_51cmd_direct_adv
-	beq BT_CMD_STOP_DIRECT_ADV,check_51cmd_stop_direct_adv
-	beq BT_CMD_LED_OFF,check_51cmd_led_off
-	beq BT_CMD_LED_ON,check_51cmd_led_on
-	beq BT_CMD_LED_BLINK,check_51cmd_led_start_blink
-	beq BT_CMD_LE_START_CONN,check_51cmd_le_start_con
-	beq BT_CMD_LE_START_SCAN,check_51cmd_start_scan
-	beq BT_CMD_LE_STOP_SCAN,check_51cmd_stop_scan
-	beq BT_CMD_ENTER_HIBERNATE,check_51cmd_hibernate
-	//context related, process in context
-	store 1,mem_fifo_temp
-//	call lmo_fifo_check
-//	nbranch check_51cmd_restore,blank  //process this cmd next time while lmo fifo is full
-check_51cmd_once_continue:
-	fetch 1,mem_fifo_temp
-	bmark0 mark_context,check_51cmd_check_idle
-	bpatchx patch24_0,mem_patch24
-	fetch 1,mem_fifo_temp
-	beq BT_CMD_LE_DISCONNECT,check_51cmd_le_disconnect
-	beq BT_CMD_LE_SMP_SECURITY_REQUEST,check_51cmd_le_smp_sec_req
-	beq BT_CMD_LE_UPDATE_CONN,check_51cmd_ble_update_connect_param
-	beq BT_CMD_STORE_RECONN_INFO_LE,eeprom_store_le_reconn_info
-	rtn
-
-check_51cmd_check_idle:
-	store 1,mem_fifo_temp
-  	call context_check_idle
-	branch check_51cmd_restore,zero
-	call context_search_plap
-	nrtn zero
-check_51cmd_restore:
-	jam IPC_SKIP_CONTINUE_PROCESS,mem_ipc_skip_continue_proc
-	branch ui_ipc_send_cmd
-
-  
- /******************** 51COMMAND*********************/
-
-
-//command opcode 0x13
-check_51cmd_adv:
-	jam ON,mem_le_adv_enable
-	jam ADV_IND,mem_le_adv_type
-	fetch 2,mem_ui_state_map
-	set1 UI_STATE_BLE_ADV,pdata
-	store 2,mem_ui_state_map
-	rtn
-
-
-//command opcode 0x14
-check_51cmd_stop_adv:
-	fetch 2,mem_ui_state_map
-	set0 UI_STATE_BLE_ADV,pdata
-	store 2,mem_ui_state_map
-	jam OFF,mem_le_adv_enable
-	rtn
-
-
-//command opcode 0x15
-check_51cmd_direct_adv:
-	jam ON,mem_le_adv_enable
-	jam ADV_DIRECT_IND,mem_le_adv_type
-	fetch 2,mem_ui_state_map
-	set1 UI_STATE_BLE_ADV,pdata
-	store 2,mem_ui_state_map
-	rtn
-
-
-//command opcode 0x16
-check_51cmd_stop_direct_adv:
-	fetch 2,mem_ui_state_map
-	set0 UI_STATE_BLE_ADV,pdata
-	store 2,mem_ui_state_map
-	jam OFF,mem_le_adv_enable
-	rtn
-
-
-//command opcode 0x17
-check_51cmd_le_disconnect:
-	setarg 20 // 100ms
-	store 2,mem_le_superto
-	store 2,mem_le_init_superto
-	branch le_send_terminate_ind_user_terminated
-
-
-//command opcode 0x18
-check_51cmd_ble_update_connect_param:
-	branch le_l2cap_tx_update_req
-
-
-//command opcode 19
-check_51cmd_led_off:
-	arg 0,rega
-	branch ui_led_off_global
-
-
-//command opcode 20
-check_51cmd_led_on:
-	arg 0,rega
-	branch ui_led_on_global
-
-
-//command opcode 21
-check_51cmd_led_start_blink:
-	arg 0,rega
-	call calc_curr_struct_prt
-	ifetch 1,regb
-	beq UI_LED_STATE_BLINK_START,check_51cmd_led_start_blink_in_blink
-	beq UI_LED_STATE_BLINK_LIGHTING,check_51cmd_led_start_blink_in_blink
-	beq UI_LED_STATE_BLINK_DARKING,check_51cmd_led_start_blink_in_blink
-	branch ui_led_blink_start_global
-
-check_51cmd_led_start_blink_in_blink:
-	ifetch 1,contr
-	rtneq LED_INFINITE_FLASH_NUM
-	branch ui_led_blink_start_global
-
-
-//command opcode 0x22
-check_51cmd_le_start_con:
-	jam ON,mem_le_scan_enable
-	jam hci_cmd_le_create_conn,mem_hci_cmd
-//	fetch 6,mem_app_peer_addr
-//	store 6,mem_le_conn_peer_addr
-	rtn
-
-
-//command opcode 0x23
-check_51cmd_start_scan:
-	jam ON,mem_le_scan_enable
-	rtn
-
-
-//command opcode 0x24
-check_51cmd_stop_scan:
-	jam OFF,mem_le_scan_enable
-	jam 0,mem_hci_cmd
-	rtn
-
-
-//command opcode 0x25
-check_51cmd_hibernate:
-	fetch 2,mem_cb_before_hibernate
-	call callback_func
-	fetch 1,mem_ui_button_gpio
-	beq UI_BUTTON_GPIO_DISABLE,check_51cmd_hibernate_btn_disabled
-	copy pdata,temp
-	call gpio_config_input
-check_51cmd_hibernate_btn_disabled:
-	call ui_ipc_clean_all_fifo
-	branch lpm_hibernate	
-
-
-//command opcode 0x27
-check_51cmd_le_smp_sec_req:
-	branch le_send_smp_security_request
-
-
-
-
-ui_check_paring_button:
-	fetch 1,mem_ui_state_map
-	rtnbit0 UI_STATE_BTN_DOWN
-	rtn
-
-
-
-///////////queue function////////////
-queue_init:
-	fetch 2,mem_queue_ptr
-	add pdata,QUEUE_OFFSET_CURR_NUM,contw
-	setarg 0
-	istore 3,contw
-	rtn
-	
-//input:rega:the address of the data to which you want to input queue
-//output:if user is disable,mean queue no have space
-queue_push:
-	bpatchx patch24_1,mem_patch24
-	call disable_user
-	call queue_full
-	rtn blank
-	fetch 2,mem_queue_ptr
-	add pdata,QUEUE_OFFSET_CURR_NUM,regb
-	ifetcht 1,regb
-	increase 1,temp
-	istoret 1,regb	//number add 
-	
-	ifetcht 1,pdata	//temp:each length
-	copy temp,loopcnt
-	add pdata,QUEUE_OFFSET_WRITE_PTR,regb
-	ifetch 1,regb
-	imul32 temp,pdata	//offset
-	iadd contr,contw
-	copy rega,contr
-calc_queue_next_ptr:
-	call memcpy
-	call queue_get_size
-	pincrease -1
-	ifetcht 1,regb
-	increase 1,temp
-	iand temp,temp
-	istoret 1,regb
-	branch enable_user
-
-
-//input:rega:the address of the data to which you want to output queue
-//output:if user is disable,mean queue no have data
-queue_pop:
-	bpatchx patch24_2,mem_patch24
-	call disable_user
-	call queue_empty
-	rtn blank
-	fetch 2,mem_queue_ptr
-	add pdata,QUEUE_OFFSET_CURR_NUM,regb
-	ifetcht 1,regb
-	increase -1,temp
-	istoret 1,regb
-	ifetcht 1,pdata		//each size
-	copy temp,loopcnt
-	add pdata,QUEUE_OFFSET_READ_PTR,regb
-	ifetch 1,regb
-	imul32 temp,pdata	//offset
-	iadd contr,contr
-	increase 1,contr
-	copy rega,contw
-	branch calc_queue_next_ptr
-
-
-//function:no pop element,only copy element in rega
-//input:rega:the address of the data to which you want to output queue
-//output:if user is disable,mean queue no have data
-//regb is new ptr
-queue_get_new_ele:
-	call disable_user
-	call queue_empty
-	rtn blank
-	fetch 2,mem_queue_ptr
-	ifetcht 1,pdata		//each size
-	copy temp,loopcnt
-	add pdata,QUEUE_OFFSET_READ_PTR,regb
-	ifetch 1,regb
-	imul32 temp,pdata	//offset
-	iadd contr,contr
-	increase 1,contr
-	copy contr,regb
-	copy rega,contw
-	call memcpy
-	branch enable_user
-
-queue_store_new_ele:
-	call disable_user
-	call queue_empty
-	rtn blank
-	fetch 2,mem_queue_ptr
-	ifetcht 1,pdata		//each size
-	copy temp,loopcnt
-	add pdata,QUEUE_OFFSET_READ_PTR,regb
-	ifetch 1,regb
-	imul32 temp,pdata	//offset
-	iadd contr,contr
-	add contr,2,contw
-	copy rega,contr
-	increase -1,loopcnt
-	call memcpy
-	branch enable_user
-
-//output:if blank is 1,mean queue is empty
-queue_empty:
-	fetch 2,mem_queue_ptr
-	add pdata,QUEUE_OFFSET_CURR_NUM,contr
-	ifetch 1,contr
-	rtn
-
-//output:if blank is 1,mean queue is full
-queue_full:
-	call queue_get_size
-	ifetcht 1,contr
-	isub temp,pdata
-	rtn
-
-//output:pdata is queue size
-queue_get_size:
-	fetch 2,mem_queue_ptr
-	add pdata,QUEUE_OFFSET_LENGTH,contr
-	ifetch 1,contr
-	rtn
-
-///////////queue function end////////////
-
-
-
-
Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/usb.prog
===================================================================
--- /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/usb.prog	(revision 5679)
+++ /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/usb.prog	(nonexistent)
@@ -1,1123 +0,0 @@
- ifdef COMPILE_USB
-
-usb_isr:
-	bpatchx patch24_3,mem_patch24
-	fetch 1,core_usb_status
-	isolate1 USB_STATUS_RESET,pdata
-	call usb_init_restart,true
-	fetch 2,core_usb_status
-	store 2,core_usb_status
-	store 2,mem_usb_status
-	call usb_nak_state_judge
-	call usb_rx
-	call usb0_tx
-	call usb_tx
-	branch usb_nak_state
-
-usb_init:
-	bpatchx patch24_4,mem_patch24
-	call enable_authrom
-	call usb_init_param
-usb_init_restart:
-	jam 0x00,core_usb_config
-ifdef SIM
-	nop 10
-else
-	nop 10000
-endif
-	jam 0x0,core_usb_hmode
-	fetch 2,core_clkoff
-	set0 CLOCK_OFF_USB,pdata
-	store 2,core_clkoff
-	jam 0x21,core_usb_epmap
-	jam 0x9d,core_usb_pupd
-	jam 0x3c,core_usb_config
-	setarg mem_usb_rxbuf
-	store 2,core_usb_rx_saddr
-	store 2,core_usb_rxptr
-	setarg mem_usb_rxbuf_end
-	store 2,core_usb_rx_eaddr
-	jam 0x80,core_usb_hmode
-	jam 0,core_usb_addr
-	jam 0xff,core_usb_status
-	setarg mem_usb_clear_mem_end
-	arg mem_usb_clear_mem_start,contw
-	isub contw,loopcnt
-	branch clear_mem
-	
-usb_offline_check_init:
-	fetcht 1,mem_usb_offline_check_gpio
-	branch gpio_config_input
-usb_offline_state:
-	fetch 1,mem_usb_device_enumeration_endflag
-	rtn blank
-	fetcht 1,mem_usb_offline_check_gpio
-	call gpio_get_bit
-	branch usb_init_restart,true
-	rtn
-
-usb_init_param:
-	jam DEV_DEFAULT,mem_usb0_state
-	setarg 0x0
-	store 1,mem_remain
-	store 2,mem_usb_zero_packet
-	pincrease 1
-	store 2,mem_usb_ones_packet
-	pincrease 1
-	store 2,mem_usb_two_packet
-	arg mem_string0,contw
-	setarg 0x030404
-	istore 3,contw
-	setarg 0x0409
-	istore 2,contw
-	arg mem_string1,contw
-	setsect 0,0x15906
-	setsect 1,0x210d2
-	setsect 2,0x10494
-	setsect 3,0x1
-	istore 9,contw
-	arg mem_string2,contw
-	setsect 0,0x1570f
-	setsect 1,0x15c9a
-	setsect 2,0x256c6
-	setsect 3,0x1cdcd
-	istore 9,contw
-	setsect 0,0x14420
-	setsect 1,0x25d99
-	setsect 2,0x25636
-	setsect 3,0x1
-	istore 7,contw
-	arg mem_string3,contw
-	setsect 0,0x1620a
-	setsect 1,0xc8c
-	setsect 2,0x30333
-	setsect 3,0xc0c0
-	istore 9,contw
-	setsect 0,0x3130
-	istore 2,contw
-	setarg USB_KBDATA_VENDOR_DEFINE_ADDR
-	store 2,mem_hidreportdesc_kb
-	setarg USB_MSDATA_ADDR
-	store 2,mem_hidreportdesc_m
-	arg USB_DEVICEDATA_ADDR,contr
-	arg mem_devicedesc,contw
-	arg 19,loopcnt
-	call memcpy	
-	arg USB_CONFDATA_ADDR,contr
-	arg mem_confdesc,contw
-	arg 60,loopcnt
-	call memcpy
-usb_config_cb:
-	fetch 2,mem_cb_usb_config
-	branch callback_func
-
-usb_tx_interval_config:
-	fetch 1,mem_usb_tx_interval
-	rtn blank
-	store 1,mem_confdesc+34
-	store 1,mem_confdesc+59
-	rtn
-
-usb_nak_state:
-	arg USB_TIMER_NAK,queue
-	call timer_check
-	nrtn blank
-	fetch 1 ,mem_usb_wakestate_onetime_flag
-	nrtn blank
-	fetch 1,mem_usb_device_enumeration_endflag
-	ncall usb_mac_wakeup_judge,blank
-	rtn
-
-usb_nak_state_judge:
-	fetch 1,mem_usb_status
-	bbit1 USB_STATUS_NAK,usb_nak_state_timer_init
-	rtn
-	
-usb_nak_state_timer_init:
-	call usb0_attached_state_judge
-	call timer_reinit
-	setarg TIMER_NAK_DELAY
-	arg USB_TIMER_NAK,queue
-	branch timer_init
-	
-usb0_attached_state_judge:
-	fetch 1,mem_usb_state
-	bne USB_CONNECTED,usb_clear_halt_dispose
-	jam 0,mem_usb_wakestate_onetime_flag
-	jam 0,mem_usb_mac_wakeup_trig
-	rtn
-
-usb_clear_halt_dispose:
-	fetch 1,mem_usb_clear_halt
-	rtn blank
-	jam 0,mem_usb_clear_halt
-	jam USB_CONNECTED,mem_usb_state
-	jam 1,mem_usb_device_enumeration_endflag
-	rtn
-
-usb_rx_no_data:
-	fetch 1,mem_usb_status
-	bbit1 USB_STATUS_SETUP,usb_class_type
-	rtn
-
-usb_rx_len:
-	fetchr contus,2,core_usb_rx_saddr
-	fetchr contue,2,core_usb_rx_eaddr
-	fetchr contu,2,core_usb_rxptr
-	ifetch 2,contu
-	rshift8 pdata,temp
-	rshift4 temp,temp					// temp is endpoint
-	arg 0xfff,contr
-	iand contr,loopcnt
-	storer loopcnt,2,mem_usb_read_len
-	rtn
-
-
-usb_rx_data:
-	fetch 1,core_usb_txbusy
-	rtnbit1 USB_STATUS_RXFULL
-	call usb_rx_len
-usb_rx_read:
-	ifetch 1,contu
-	istore 1,contw
-	loop usb_rx_read
-	storer contu,2,core_usb_rxptr
-	rtn
-
-usb_rx_ep13:
-	arg mem_usb_ccid_buf,contw
-	call usb_rx_read
-	arg mem_usb_ccid_buf+4,temp
-	storet 2,core_usb_tx_saddr3
-	fetch 1,mem_usb_ccid_buf+1
-	pincrease 6
-	istore 1,temp
-	jam 0x8,core_usb_trig
-	rtn
-
-
-usb_rx:
-	bpatchx patch24_5,mem_patch24
-	fetch 1,mem_usb_status
-	rtnbit0 USB_STATUS_RXREADY
-	call usb_rx_len
-	compare 13,temp,0xff
-	branch usb_rx_ep13,true
-	arg mem_usb_setup,contw
-	call usb_rx_read
-	fetch 1,mem_usb_read_len
-	beq 0x00,usb_rx_no_data
-	beq 0x01,usb_out_one_byte	// HUAWEI pad led status	
-	sub pdata,7,null
-	rtn positive
-usb_class_type:
-	bpatchx patch24_6,mem_patch24
-	set0 mark_isstr,mark
-	fetch 1,mem_usb_setup_bmRequestType
-	and_into 0x80,pdata
-	beq IN_DEVICE,usb_in_device
-	beq OUT_DEVICE,usb_out_device
-	branch assert
-
-usb_out_one_byte:
-	fetch 1,mem_usb_setup
-	rtnbit1 7	// OUT_DEVICE
-	call usb_get_led_status
-	branch usb0_reply_zerolen
-
-
-usb_in_device:
-	fetch 1,mem_usb_setup_bmRequestType
-	rshift4 pdata,pdata
-	rshift pdata,pdata
-	and_into 0x03,pdata
-	beq STANDARD_REQ,usb_in_standard_req
-	beq CLASS_REQ,usb_in_class_req
-	beq MANUFACTURER_REQ,usb_in_manufacturer_req
-	branch assert
-
-usb_out_device:
-	fetch 1,mem_usb_setup_bmRequestType
-	rshift4 pdata,pdata
-	rshift pdata,pdata
-	and_into 0x03,pdata
-	beq STANDARD_REQ,usb_out_standard_req
-	beq CLASS_REQ,usb_out_class_req	
-	beq MANUFACTURER_REQ,usb_out_manufacturer_req
-	branch assert
-
-usb_in_standard_req:
-	fetch 1,mem_usb_setup_bRequest
-	beq GET_CONFIGURATION,usb0_request_get_configuration
-	beq GET_DESCRIPTOR,usb0_request_get_descriptor
-	beq GET_INTERFACE,usb0_request_get_interface
-	beq GET_STATUS,usb0_request_get_status
-	branch usb0_force_stall
-
-usb_in_class_req:
-	fetch 1,mem_usb_setup_bRequest
-	beq GET_IDLE,usb_get_idle
-	beq GET_REPORT,usb_get_report
-	beq GET_PROTOCOL,usb_get_protocol_req
-	branch usb0_force_stall
-
-usb_in_manufacturer_req:
-	branch usb0_force_stall
-
-usb_out_standard_req:
-	fetch 1,mem_usb_setup_bRequest
-	beq CLEAR_FEATURE,usb0_request_clear_feature
-	beq SET_FEATURE,usb0_request_set_feature
-	beq SET_ADDRESS,usb0_request_set_address
-	beq SET_CONFIGURATION,usb0_request_set_configuration
-	beq SET_INTERFACE,usb0_request_set_interface
-	beq SET_DESCRIPTOR,usb0_force_stall
-	branch usb0_force_stall
-
-usb_out_class_req:
-	fetch 1,mem_usb_setup_bRequest
-	beq SET_IDLE,usb_set_idle
-	beq SET_REPORT,usb_set_report
-	beq SET_PROTOCOL,usb_set_protocol_req
-	branch usb0_force_stall
-
-usb_out_manufacturer_req:
-	branch usb0_force_stall
-
-usb0_force_stall:
-	bpatchx patch24_7,mem_patch24
-	fetch 1,core_usb_stall
-	set1 0,pdata
-	store 1,core_usb_stall
-	branch usb0_reply_zerolen
-	
-usb0_reply_zerolen:
-	jam 0x1,core_usb_clear_nak
-	rtn
-
-usb0_request_get_configuration:
-	fetch 1,mem_usb_setup_bmRequestType
-	bne IN_DEVICE,usb0_force_stall
-	fetch 1,mem_usb_setup_wIndex
-	bne 0,usb0_force_stall
-	fetch 1,mem_usb_setup_wIndex+1
-	bne 0,usb0_force_stall
-	fetch 1,mem_usb_setup_bLength
-	bne 1,usb0_force_stall
-	fetch 1,mem_usb_setup_bLengthH
-	bne 0,usb0_force_stall
-	fetch 1,mem_usb_setup_bValue
-	bne 0,usb0_force_stall
-	fetch 1,mem_usb_setup_bValue+1
-	bne 0,usb0_force_stall
-	fetch 1,mem_usb0_state
-	beq DEV_CONFIGURED,usb0_request_get_cfg_dev_cfg
-	beq DEV_ADDRESS,usb0_request_get_cfg_dev_addr
-	branch usb0_force_stall
-//Return current config : 1
-usb0_request_get_cfg_dev_cfg:
-	arg 1,regb
-	branch usb_send_ones_packet
-//Config do not work, return default config : 0
-usb0_request_get_cfg_dev_addr:
-	arg 1,regb
-	branch usb_send_zero_packet
-
-usb0_request_get_descriptor:
-	bpatchx patch25_0,mem_patch25
-//	set0 mark_isstr,mark
-	fetch 1,mem_usb_setup_bValueH
-	beq DSC_DEVICE,dsc_device_info
-	beq DSC_CONFIG,dsc_config_info	
-	beq DSC_STRING,dsc_string_info
-	beq DSC_HID,dsc_hid_info
-	beq DSC_HID_REPORT,dsc_hid_report_info
-	branch usb0_force_stall
-
-dsc_hid_info:
-	jam 0,mem_usb_get_protocol_flag
-	fetch 1,mem_usb_setup_wIndex
-	beq 0,dsc_hid_info_interface0
-	beq 1,dsc_hid_info_interface1
-	branch usb0_force_stall
-//class_descriptor hid_descriptor--keyboard 
-dsc_hid_info_interface0:
-	fetchr regb,1,mem_confdesc+19
-	arg mem_confdesc+19,rega
-	branch usb0_respond
-//class_descriptor hid_descriptor--mouse 
-dsc_hid_info_interface1:
-	fetchr regb,1,mem_confdesc+44
-	arg mem_confdesc+44,rega
-	branch usb0_respond
-
-dsc_device_info:
-//input : pdata : data poniter 
-//input : temp: data len
-//sets the data pointer and len to correct descriptor
-	fetch 1,mem_usb_set_high_addr_flag
-	ncall usb_set_high_addr,blank
-	setarg mem_devicedesc
-	fetcht 1,mem_devicedesc
-dsc_info_set_data_len:
-	store 2,mem_dsc_info_data_pointer
-	storet 1,mem_dsc_info_len
-	fetch 1,mem_usb_setup_bLength
-	isub temp,null
-	nbranch dsc_info_set_current_data_len,positive
-dsc_info_set_initial_data_len:
-	fetch 1,mem_dsc_info_len
-dsc_info_set_data_size_completed:	
-	iforce regb
-	fetch 2,mem_dsc_info_data_pointer
-	add pdata,1,pdata
-	iforce rega
-	branch usb0_respond
-dsc_info_set_current_data_len:
-	fetch 1,mem_usb_setup_bLength
-	branch dsc_info_set_data_size_completed
-
-usb_set_high_addr:
-	fetch 1,core_usb_addr
-	ncall usb0_set_addr,blank
-	jam 0,mem_usb_set_high_addr_flag
-	rtn
-usb0_set_addr:
-	fetch 1,core_usb_addr
-   	set1 7,pdata
-    	store 1,core_usb_addr
-    	rtn
-
-dsc_config_info:
-	setarg mem_confdesc
-	fetcht 1,mem_confdesc
-	branch dsc_info_set_data_len
-
-dsc_string_info:
-	fetch 1,mem_usb_setup_bValue
-	sub pdata,3,null
-	nbranch usb0_force_stall,positive
-	fetch 1,mem_usb_setup_bValue
-	arg mem_string0,rega
-	beq 0,usb0_respond_length	
-	set1 mark_isstr,mark
-	arg mem_string1,rega
-	beq 1,usb0_respond_length
-	arg mem_string2,rega
-	beq 2,usb0_respond_length
-	arg mem_string3,rega
-	beq 3,usb0_respond_length
-	rtn
-
-dsc_hid_report_info:
-	fetch 2,mem_usb_setup_wIndex
-	beq 1,dsc_hid_report_info0
-	fetchr rega,2,mem_hidreportdesc_kb
-	branch usb0_respond_length
-dsc_hid_report_info0:
-	jam 1,mem_usb_device_enumeration_endflag
-	jam USB_GOT_REPORT_REQ,mem_usb_state
-	fetchr rega,2,mem_hidreportdesc_m
-	branch usb0_respond_length
-
-
-usb0_request_get_interface:
-	fetch 1,mem_usb0_state
-	bne DEV_CONFIGURED,usb0_force_stall		
-	fetch 1,mem_usb_setup_bmRequestType
-	bne IN_INTERFACE,usb0_force_stall
-	fetch 1,mem_usb_setup_bValue
-	bne 0,usb0_force_stall
-	fetch 1,mem_usb_setup_bValueH
-	bne 0,usb0_force_stall
-	fetch 1,mem_usb_setup_bLength
-	bne 1,usb0_force_stall
-	fetch 1,mem_usb_setup_bLengthH
-	bne 0,usb0_force_stall
-	fetch 1,mem_usb_setup_wIndex
-	bne 0,usb0_force_stall
-	fetch 1,mem_usb_setup_wIndex+1
-	bne 0,usb0_force_stall
-	arg 1,regb
-	branch usb_send_zero_packet
-
-
-usb0_request_get_status:
-	fetch 1,mem_usb0_state
-	beq DEV_DEFAULT,usb0_force_stall
-	fetch 1,mem_usb_setup_bValue
-	bne 0,usb0_force_stall
-	fetch 1,mem_usb_setup_bValueH
-	bne 0,usb0_force_stall
-	fetch 1,mem_usb_setup_bLength
-	bne 2,usb0_force_stall
-	fetch 1,mem_usb_setup_bLengthH
-	bne 0,usb0_force_stall
-	fetch 1,mem_usb_setup_wIndex+1
-	bne 0,usb0_force_stall
-	fetch 1,mem_usb_setup_bmRequestType
-	beq IN_DEVICE,usb0_get_status_in_device
-	beq IN_INTERFACE,usb0_get_status_in_interface
-	beq IN_ENDPOINT,usb0_get_status_in_endpoint
-	branch usb0_force_stall
-
-
-Usb0_SDsystem_dispose:
-	jam 1,mem_sdsystem_wakeup_flag
-	branch usb_send_two_packet
-
-usb0_get_status_in_device:
-	fetch 1,mem_usb_setup_wIndex
-	bne 0,usb0_force_stall
-	arg 2,regb
-	fetch 1,mem_usb_remote_wakeup
-	beq 0x01,Usb0_SDsystem_dispose
-//regb:length
-usb_send_zero_packet:
-	arg mem_usb_zero_packet,rega
-	branch usb0_respond
-usb_send_ones_packet:
-	arg mem_usb_ones_packet,rega
-	branch usb0_respond
-usb_send_two_packet:
-	arg mem_usb_two_packet,rega
-	branch usb0_respond
-
-usb0_get_status_in_interface:
-	fetch 1,mem_usb0_state
-	bne DEV_CONFIGURED,usb0_force_stall
-	arg 2,regb
-	branch usb_send_zero_packet
-
-usb0_get_status_in_endpoint:
-	fetch 1,mem_usb0_state
-	bne DEV_CONFIGURED,usb0_force_stall
-	fetch 1,mem_usb_setup_wIndex
-	beq IN_EP1,usb0_get_status_in_ep_in_ep1
-	beq IN_EP2,usb0_get_status_in_ep_in_ep2
-	beq IN_EP3,usb0_get_status_in_ep_in_ep3
-	and_into 0x7f,pdata
-	beq 0x00,usb0_get_status_in_ep_in_ep0
-	branch usb0_force_stall
-	
-usb0_get_status_in_ep_in_ep0:
-	fetch 1,mem_usb_ep0_stall_status
-usb0_get_status_in_ep_in_ack:
-	arg 2,regb
-	beq 1,usb_send_ones_packet
-	branch usb_send_zero_packet
-usb0_get_status_in_ep_in_ep1:
-	fetch 1,mem_usb_ep1_stall_status
-	branch usb0_get_status_in_ep_in_ack
-usb0_get_status_in_ep_in_ep2:
-	fetch 1,mem_usb_ep2_stall_status
-	branch usb0_get_status_in_ep_in_ack
-usb0_get_status_in_ep_in_ep3:
-	fetch 1,mem_usb_ep3_stall_status
-	branch usb0_get_status_in_ep_in_ack
-
-usb_get_idle:
-	jam 1,mem_usb_idle_flag
-	arg mem_usb_idle_rate,rega
-	arg 1,regb
-	branch usb0_respond
-
-usb_get_report:
-	bpatchx patch25_1,mem_patch25
-	fetch 2,mem_usb_setup_bValue
-	arg PC_GET_REPORT,temp
-	isub temp,null
-	nbranch usb0_force_stall,zero
-//	set0 mark_isstr,mark
-usb_get_report_dispose:	
-	fetch 1,mem_usb0_data_ready_report
-	nbranch usb_get_report_data_success,blank
-	jam PC_GET_NONDATA,mem_usb0_get_report_data
-usb_get_report_send_data:
-	fetch 1,mem_usb_setup_bLength
-	iforce regb
-	arg mem_usb0_get_report_data,rega
-	call usb0_respond
-usb_get_report_data_release:	
-	arg mem_usb0_get_report_data,contw
-	arg 64,loopcnt
-	branch memset0
-usb_get_report_data_success:
-	jam 0,mem_usb0_data_ready_report
-	jam PC_GET_DATA,mem_usb0_get_report_data
-	branch usb_get_report_send_data
-
-usb_get_protocol_req:
-	fetch 1,mem_usb_setup_bLength
-	bne 1,usb0_force_stall
-	jam 1,mem_usb_get_protocol_flag
-	arg 1,regb //length
-	fetch 1,mem_usb_set_protocol_value
-	beq 0,usb_get_report_protocol
-	beq 1,usb_get_boot_protocol
-	branch usb_send_zero_packet
-usb_get_report_protocol:
-	branch usb_send_ones_packet
-usb_get_boot_protocol:
-	branch usb_send_zero_packet
-
-
-
-//in device
-usb0_request_clear_feature:
-	fetch 1,mem_usb0_state
-	bne DEV_CONFIGURED,usb0_force_stall
-	fetch 1,mem_usb_setup_bLength
-	bne 0,usb0_force_stall
-	fetch 1,mem_usb_setup_bLengthH
-	bne 0,usb0_force_stall
-	fetch 1,mem_usb_setup_bValueH
-	bne 0,usb0_force_stall
-	fetch 1,mem_usb_setup_wIndex+1
-	bne 0,usb0_force_stall
-	fetch 1,mem_usb_setup_bmRequestType
-	beq OUT_DEVICE,usb0_request_clear_feature_out_device
-	beq OUT_INTERFACE,usb0_request_clear_feature_out_interface
-	beq OUT_ENDPOINT,usb0_request_clear_feature_out_endpoint
-	branch usb0_force_stall
-
-usb0_request_clear_feature_out_device:
-	bpatchx patch25_2,mem_patch25
-	fetch 1,mem_usb_setup_bValue
-	bne DEVICE_REMOTE_WAKEUP,usb0_force_stall
-	fetch 1,core_usb_config
-	set0 7,pdata
-	store 1,core_usb_config
-	jam 0,mem_usb_remote_wakeup
-	jam 1,mem_usb_clear_remote_wakeup
-	fetch 1,mem_sdsystem_wakeup_flag
-	branch usb0_reply_zerolen,blank
-	jam 0,mem_sdsystem_wakeup_flag
-	jam 0,mem_usb_clear_remote_wakeup
-	jam USB_CONNECTED,mem_usb_state
-	branch usb0_reply_zerolen
-
-usb0_request_clear_feature_out_interface:
-	branch usb0_force_stall
-
-usb0_request_clear_feature_out_endpoint:
-	fetch 1,mem_usb_setup_bValue
-	bne ENDPOINT_HALT,usb0_force_stall
-	fetch 1,mem_usb_setup_wIndex
-	beq IN_EP1,usb0_force_stall_ep1_in_off
-	beq IN_EP2,usb0_force_stall_ep2_in_off
-	beq IN_EP3,usb0_force_stall_ep3_in_off
-	and_into 0x7f,pdata
-	beq 0x00,usb0_force_stall_ep0_in_off
-	branch usb0_force_stall
-
-usb0_force_stall_ep0_in_off:
-	jam 0,mem_usb_ep0_stall_status
-	branch usb0_reply_zerolen
-usb0_force_stall_ep1_in_off:
-	jam 0,mem_usb_ep1_stall_status
-usb0_force_stall_ep1_in_off_reply:	
-	jam 1,mem_usb_clear_halt
-	branch usb0_reply_zerolen
-usb0_force_stall_ep2_in_off:
-	jam 0,mem_usb_ep2_stall_status
-	branch usb0_force_stall_ep1_in_off_reply
-usb0_force_stall_ep3_in_off:
-	jam 0,mem_usb_ep3_stall_status
-	branch usb0_force_stall_ep1_in_off_reply
-
-
-usb0_request_set_feature:
-	fetch 1,mem_usb_setup_bLength
-	bne 0,usb0_force_stall
-	fetch 1,mem_usb_setup_bLengthH
-	bne 0,usb0_force_stall
-	fetch 1,mem_usb_setup_bmRequestType
-	beq OUT_DEVICE,usb0_request_set_feature_out_device
-	beq OUT_INTERFACE,usb0_request_set_feature_out_interface
-	beq OUT_ENDPOINT,usb0_request_set_feature_out_endpoint
-	branch usb0_force_stall
-
-usb0_request_set_feature_out_device:
-	bpatchx patch25_3,mem_patch25
-	fetch 1,mem_usb_setup_bValue
-	bne DEVICE_REMOTE_WAKEUP,usb0_force_stall
-	call dongle_set_pc_sleep_flag
-	fetch 1,core_usb_config
-	set1 7,pdata
-	store 1,core_usb_config
-	jam 1,mem_usb_remote_wakeup
-	jam USB_SLEEP,mem_usb_state
-	jam 0,mem_usb_tx_win_enable
-	call usb0_reply_zerolen
-usb_wakeup_timer_reinit:
-	call timer_reinit
-	setarg TIMER_WAKEUP_DELAY
-	arg USB_TIMER_WAKEUP,queue
-	branch timer_init
-	
-usb0_request_set_feature_out_interface:
-	branch usb0_force_stall
-
-usb0_request_set_feature_out_endpoint:
-	fetch 1,mem_usb_setup_bValue
-	bne ENDPOINT_HALT,usb0_force_stall
-	fetch 1,mem_usb_setup_bValueH
-	bne 0,usb0_force_stall
-	fetch 1,mem_usb_setup_wIndex
-	beq IN_EP1,usb0_force_stall_ep1_in_on
-	beq IN_EP2,usb0_force_stall_ep2_in_on
-	beq IN_EP3,usb0_force_stall_ep3_in_on
-	and_into 0x7f,pdata
-	beq 0x00,usb0_force_stall_ep0_in_on
-	branch usb0_force_stall
-
-usb0_force_stall_ep0_in_on:
-	jam 1,mem_usb_ep0_stall_status
-	branch usb0_reply_zerolen
-usb0_force_stall_ep1_in_on:
-	jam 1,mem_usb_ep1_stall_status
-	branch usb0_reply_zerolen
-usb0_force_stall_ep2_in_on:
-	jam 1,mem_usb_ep2_stall_status
-	branch usb0_reply_zerolen
-usb0_force_stall_ep3_in_on:
-	jam 1,mem_usb_ep3_stall_status
-	branch usb0_reply_zerolen
-
-
-usb0_request_set_address:
-	fetch 1,mem_usb_setup_bmRequestType
-	bne OUT_DEVICE,usb0_force_stall
-	fetch 1,mem_usb_setup_wIndex
-	bne 0,usb0_force_stall
-	fetch 1,mem_usb_setup_wIndex+1
-	bne 0,usb0_force_stall
-	fetch 1,mem_usb_setup_bLength
-	bne 0,usb0_force_stall
-	fetch 1,mem_usb_setup_bLengthH
-	bne 0,usb0_force_stall
-	fetch 1,mem_usb_setup_bValueH
-	bne 0,usb0_force_stall
-	fetch 1,mem_usb_setup_bValue
-	and_into 0x80,pdata
-	bne 0,usb0_force_stall
-	fetch 1,mem_usb_setup_bValue
-	bne 0,usb_usb0_state_set_dev_addr
-usb_usb0_state_set_dev_default:	
-	jam DEV_DEFAULT,mem_usb0_state
-usb0_request_set_wait_address:
-	fetch 1,mem_usb_setup_bValue
-	store 1,core_usb_addr
-	call usb0_reply_zerolen
-	jam 1,mem_usb_set_high_addr_flag
-	rtn
-usb_usb0_state_set_dev_addr:
-	jam DEV_ADDRESS,mem_usb0_state
-	branch usb0_request_set_wait_address
-
-
-usb0_request_set_configuration:
-	fetch 1,mem_usb0_state
-	beq DEV_DEFAULT,usb0_force_stall
-	fetch 1,mem_usb_setup_bmRequestType
-	bne OUT_DEVICE,usb0_force_stall
-	fetch 1,mem_usb_setup_wIndex
-	bne 0,usb0_force_stall
-	fetch 1,mem_usb_setup_wIndex+1
-	bne 0,usb0_force_stall
-	fetch 1,mem_usb_setup_bLength
-	bne 0,usb0_force_stall
-	fetch 1,mem_usb_setup_bLengthH
-	bne 0,usb0_force_stall
-	fetch 1,mem_usb_setup_bValue+1
-	bne 0,usb0_force_stall
-	fetch 1,mem_usb_setup_bValue
-	sub pdata,USB_MAX_NUM_CFG,null
-	nbranch usb0_force_stall,positive
-	fetch 1,mem_usb0_state
-	beq DEV_ADDRESS,usb0_request_set_cfg_addr_state
-	beq DEV_CONFIGURED,usb0_request_set_cfg_cfg_state
-	branch usb0_force_stall
- // This software only supports config = 0,1
-usb0_request_set_cfg_addr_state:
-usb0_request_set_cfg_cfg_state:
-	fetch 1,mem_usb_setup_bValue	//1:Configured state   0:Address state
-	beq 0,usb0_request_set_cfg_stay_addr_state
-	jam DEV_CONFIGURED,mem_usb0_state
-	branch usb0_reply_zerolen
-usb0_request_set_cfg_stay_addr_state:
-	jam DEV_ADDRESS,mem_usb0_state
-	branch usb0_reply_zerolen
-
-
-usb0_request_set_interface:
-	fetch 1,mem_usb0_state
-	bne DEV_CONFIGURED,usb0_force_stall		
-	fetch 1,mem_usb_setup_bmRequestType
-	bne OUT_INTERFACE,usb0_force_stall
-	fetch 1,mem_usb_setup_bValue
-	bne 0,usb0_force_stall
-	fetch 1,mem_usb_setup_bValueH
-	bne 0,usb0_force_stall
-	fetch 1,mem_usb_setup_bLength
-	bne 0,usb0_force_stall
-	fetch 1,mem_usb_setup_bLengthH
-	bne 0,usb0_force_stall
-	fetch 1,mem_usb_setup_wIndex
-	bne 0,usb0_force_stall
-	fetch 1,mem_usb_setup_wIndex+1
-	bne 0,usb0_force_stall
-	branch usb0_reply_zerolen
-
-
-usb_set_idle:
-	bpatchx patch25_4,mem_patch25
-	jam 1,mem_usb_idle_flag
-	fetch 1,mem_usb_setup_bValueH
-	store 1,mem_usb_idle_rate
-	fetch 1,mem_usb_setup_wIndex
-	sub pdata,1,null
-	call usb_clear_remote_wakeup_set0,zero
-	fetch 1,mem_usb_state
-	bne USB_RESUME,usb0_reply_zerolen
-	jam USB_CONNECTED,mem_usb_state
-	call usb0_reply_zerolen
-	nop 30000
-	nop 30000
-	rtn
-usb_clear_remote_wakeup_set0:
-	jam 1,mem_usb_device_enumeration_endflag
-	jam 0,mem_usb_clear_remote_wakeup
-	jam USB_RESUME,mem_usb_state
-	rtn
-
-
-usb_set_report:
-	bpatchx patch25_5,mem_patch25
-	nop 15000		//delay 1ms
-	arg mem_usb0_set_report_data,contw
-	call usb_rx_data
-	jam 1,mem_usb0_get_set_report
-	call usb_set_report_resume_judge
-	fetch 2,mem_usb_setup_bValue
-	store 2,mem_usb_setup_bValue_temp
-	jam 0x02,core_usb_clear_nak
-//	call usb0_reply_zerolen
-	fetch 1,mem_usb_tx_win_enable
-	rtn blank
-	fetch 1,mem_usb0_set_report_data
-usb_get_led_status:	
-	store 1,mem_24g_led_status
-	jam 0,mem_usb_tx_win_enable
-	jam KB_LED_ACKPAYLOAD,mem_24g_ackpayload_enable
-	rtn
-
-	
-usb_set_report_resume_judge:
-	fetch 2,mem_usb_setup_bValue
-	arg PC_SET_REPORT_bValue,temp
-	isub temp,null
-	nrtn zero
-	fetch 2,mem_usb_setup_wIndex
-	arg PC_SET_REPORT_wIndex,temp
-	isub temp,null
-	nrtn zero
-	fetch 2,mem_usb_setup_bLength
-	arg PC_SET_REPORT_bLength,temp
-	isub temp,null
-	nrtn zero
-	jam 1,mem_usb_tx_win_enable
-	rtn
-
-
-usb_set_protocol_req:
-	fetch 1,mem_usb_setup_bLength
-	bne 0,usb0_force_stall
-	fetch 1,mem_usb_setup_bValue
-	beq BOOT_PROTOCOL,usb_set_boot_protocol
-	beq REPORT_PROTOCOL,usb_set_report_protocol
-	branch usb0_force_stall
-usb_set_boot_protocol:
-	jam 0,mem_usb_set_protocol_status
-	jam 1,mem_usb_set_protocol_value
-	branch usb0_reply_zerolen
-usb_set_report_protocol:
-	jam 1,mem_usb_tx_mac_enable
-	jam 1,mem_usb_set_protocol_status
-	jam 0,mem_usb_set_protocol_value
-	branch usb0_reply_zerolen
-
-
-usb0_respond_length:
-	ifetchr regb,1,rega
-	increase 1,rega
-//rega=*buff,regb=size
-usb0_respond:
-	bpatchx patch25_6,mem_patch25
-	set1 mark_usb_first_resp,mark
-	bmark0 mark_isstr,usb0_respond_nostr
-	increase 1,regb
-	lshift regb,regb
-usb0_respond_nostr:
-	storer rega,2,mem_bufptr
-	storer regb,1,mem_remain
-	branch usb0_tx
-	rtn
-
-usb_no_respond_data:
-	arg 0,queue
-	branch usb_trig
-
-
-
-//mem_bufptr=*buff,mem_remain=size,loopcnt=i,rega=len
-usb0_tx:
-	bpatchx patch25_7,mem_patch25
-	fetch 1,core_usb_txbusy
-	rtnbit1 0
-	fetch 1,mem_remain
-	rtn blank
-	copy pdata,loopcnt
-	iforce temp
-	fetch 2,mem_usb_setup_bLength
-	sub pdata,EP0_PACKET_SIZE,null
-	branch usb0_tx_short,positive
-	sub loopcnt,EP0_PACKET_SIZE,null
-	branch usb0_tx_info,positive
-	force EP0_PACKET_SIZE,loopcnt
-	branch usb0_tx_info
-usb0_tx_short:
-	isub loopcnt,null
-	branch usb0_tx_info,positive
-	iforce loopcnt
-	store 1,mem_remain
-usb0_tx_info:
-	fetch 1,mem_remain
-	isub loopcnt,pdata
-	store 1,mem_remain
-	add loopcnt,-1,pdata
-	store 1,mem_usb_txbuf
-	bmark0 mark_isstr,usb0_tx_nostr
-	rshift pdata,pdata
-	add loopcnt,-1,pdata
-	store 1,mem_usb_txbuf
-	bmark0 mark_usb_first_resp,usb0_tx_nostr
-	set0 mark_usb_first_resp,mark
-	istoret 1,contw
-	setarg 3
-	istore 1,contw
-	increase -1,loopcnt
-	copy loopcnt,pdata
-	nbranch usb0_tx_nostr,zero
-	increase 1,loopcnt
-usb0_tx_nostr:
-	fetch 2,mem_bufptr
-	copy pdata,contr
-usb0_tx0:
-	ifetch 1,contr
-	istore 1,contw
-	bmark0 mark_isstr,usb0_tx1
-	setarg 0
-	istore 1,contw
-usb0_tx1:
-	loop usb0_tx0
-	copy contr,pdata
-	store 2,mem_bufptr				//mem_bufptr += len
-	setarg mem_usb_txbuf
-	store 2,core_usb_tx_saddr0
-	arg 0,queue
-	call usb_trig
-	fetch 1,mem_remain
-	nrtn blank
-	jam 2,core_usb_clear_nak			// clear OUT nak for last packet
-	fetch 1,mem_usb_state
-	rtnne USB_GOT_REPORT_REQ
-	jam USB_CONNECTED,mem_usb_state
-	rtn
-
-
-
-usb_tx_ep1:
-	arg mem_usb_txbuf1,rega
-	arg 1,queue
-	storer rega,2,core_usb_tx_saddr1
-usb_tx_buf:
-	add loopcnt,-1,pdata
-	istore 1,rega
-usb_tx_loop:
-	ifetch 1,contr
-	istore 1,contw
-	loop usb_tx_loop
-usb_trig:
-	setarg 0
-	qset1 pdata
-	store 1,core_usb_trig
-	rtn
-
-usb_tx_ep2:
-	arg 2,queue
-	arg mem_usb_txbuf2,rega
-	storer rega,2,core_usb_tx_saddr2
-	branch usb_tx_buf
-
-usb_tx:
-	bpatchx patch26_0,mem_patch26
-	fetch 1,mem_usb_tx_enable
-	rtn blank
-	fetch 1,core_usb_txbusy
-	and_into 0x0f,pdata
-	nbranch usb_inwake_state_tx_dispose,blank
-	fetch 1,mem_usb_device_enumeration_endflag
-	branch usb_tx_fifo_release,blank
-	fetch 1,mem_usb_state
-	beq USB_SLEEP,usb_windows_wakeup
-	bne USB_CONNECTED,usb_tx_fifo_release
-	fetch 1,mem_usb_clear_remote_wakeup
-	nbranch usb_tx_fifo_release,blank
-	call usb_tx_data_ep1
-	branch usb_tx_data_ep2
-
-usb_tx_data_ep1:
-	fetch 1,core_usb_txbusy
-	rtnbit1 1
-	fetch 1,mem_usb_tx_enable
-	rtnbit0 1
-	fetch 1,mem_usb_tx_enable
-	set0 1,pdata
-	store 1,mem_usb_tx_enable
-	bpatchx patch26_1,mem_patch26
-	fetch 1,mem_usb_ep1_data
-	rtn blank
-	beq USB_EP1_KB,usb_tx_kb_normal_data
-	branch assert
-
-usb_tx_data_ep2:
-	fetch 1,core_usb_txbusy
-	rtnbit1 2
-	fetch 1,mem_usb_tx_enable
-	rtnbit0 2
-	fetch 1,mem_usb_tx_enable
-	set0 2,pdata
-	store 1,mem_usb_tx_enable
-	bpatchx patch26_2,mem_patch26
-	fetch 1,mem_usb_ep2_data
-	rtn blank
-	beq USB_EP2_MS,usb_tx_ms_data
-	beq USB_EP2_MULTIKEY,usb_tx_kb_multikey_data
-	beq USB_EP2_SYSTEMKEY,usb_tx_kb_systemkey_data
-	beq USB_EP2_BIT_CONSUMER,usb_tx_kb_bit_consumer_data
-	beq USB_EP2_N_KEY_ROLLOVER,usb_tx_kb_n_key_rollover_data
-	branch assert
-
-usb_tx_fifo_release:
-	//clear mem_usb_mouse_data/mem_usb_kb_data/mem_usb_kb_multikey/mem_usb_kb_system
-	arg mem_usb_mouse_data,contw
-	arg 64,loopcnt
-	branch memset0
-	
-usb_tx_ms_data:
-	fetch 1,mem_usb_idle_flag
-	fetcht 1,mem_usb_get_protocol_flag
-	iand temp,pdata
-	branch usb_tx_ms_data_normal_mode,blank
-	fetcht 1,mem_usb_set_protocol_status
-	iadd temp,pdata
-	beq MAC_BOOT_MODE,usb_tx_ms_data_mac_boot_mode
-	branch usb_tx_ms_data_normal_mode
-
-usb_tx_ms_data_mac_boot_mode:
-	jam 0,mem_usb_ep2_data
-usb_tx_ms_data_mac_boot_regroup:
-	fetch 1,mem_usb_mouse_data+1	//key
-	beq R_KEY,usb_tx_mac_boot_ms_regroup_r_or_lrkey
-	beq LR_KEY,usb_tx_mac_boot_ms_regroup_r_or_lrkey
-	fetch 1,mem_usb_mouse_data+1	//key
-	store 1,mem_usb_mouse_data
-	fetch 1,mem_usb_mouse_data+2	//x low
-	istore 1,contw
-	fetch 1,mem_usb_mouse_data+4	//y low
-	istore 1,contw
-	fetch 1,mem_usb_mouse_data+6	//wheel
-	istore 1,contw
-	arg 4,loopcnt
-	arg mem_usb_mouse_data,contr
-	branch usb_tx_ep2
-	
-usb_tx_ms_data_normal_mode:
-	jam 0,mem_usb_ep2_data
-usb_tx_mac_boot_ms_regroup_r_or_lrkey:	
-	arg 8,loopcnt		
-	arg mem_usb_mouse_data,contr
-	branch usb_tx_ep2
-
-usb_tx_kb_multikey_data:
-	jam 0,mem_usb_ep2_data
-	arg 3,loopcnt
-	arg mem_usb_kb_multikey,contr
-	branch usb_tx_ep2
-
-usb_tx_kb_normal_data:
-	fetch 1,mem_device_option
-	beq DVC_OP_KEYBOARD,keyboard_usb_tx_kb_normal_data
-	jam 0,mem_usb_ep1_data
-	arg 8,loopcnt
-	arg mem_usb_kb_data,contr
-	branch usb_tx_ep1
-
-usb_tx_kb_systemkey_data:
-	jam 0,mem_usb_ep2_data
-	arg 2,loopcnt
-	arg mem_usb_kb_system,contr
-	branch usb_tx_ep2
-
-usb_tx_kb_bit_consumer_data:
-	jam 0,mem_usb_ep2_data
-	arg 4,loopcnt
-	arg mem_usb_kb_multikey,contr
-	branch usb_tx_ep2
-
-usb_tx_kb_n_key_rollover_data:
-	jam 0,mem_usb_ep2_data
-	arg 15,loopcnt
-	arg mem_usb_kb_n_key_rollvoer_data,contr
-	branch usb_tx_ep2	
-
-
-usb_inwake_state_tx_dispose:
-	fetch 1,mem_usb_state
-	beq USB_CONNECTED,usb_mac_wakeup_trig
-	rtn
-usb_mac_wakeup_trig:
-	fetch 1,core_usb_config
-	set1 7,pdata
-	store 1,core_usb_config
-	jam 1,mem_usb_mac_wakeup_trig
-	rtn
-
-usb_mac_wakeup_judge:
-	fetch 1,mem_usb_state
-	rtneq USB_SLEEP
-	beq USB_CONNECTED,usb_mac_wakeup
-	rtn
-usb_mac_wakeup:
-	fetch 1,mem_usb_mac_wakeup_trig
-	rtn blank
-	jam 1,mem_usb_wakestate_onetime_flag
-	branch usb_wakeup
-
-usb_windows_wakeup:
-	arg USB_TIMER_WAKEUP,queue
-	call timer_check
-	nrtn blank
-usb_wakeup:
-	fetch 1,core_usb_config
-	rtnbit0 7	//endpoint wakeup enable
-	jam 0xfc,core_usb_config
-	nop 30000
-	jam 0x3c,core_usb_config
-	rtn
-
-
-endif
-
Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/utility.prog
===================================================================
--- /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/utility.prog	(revision 5679)
+++ /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/utility.prog	(nonexistent)
@@ -1,746 +0,0 @@
-
-
-	
-push_stack:
-	storer contw,2, mem_contw
-	storet 8,mem_temp
-	storer timeup,4,mem_timeup
-	call push_stack_rega_b_c
-	storer contr,2, mem_contr
-	storer loopcnt,2, mem_loopcnt
-	storer queue,2,mem_queue
-	rtn
-
-push_stack_rega_b_c:
-	storer rega,4, mem_rega
-	storer regb,4, mem_regb
-	storer regc,3, mem_regc
-	rtn
-
-pop_stack:
-	bpatchx patch26_3,mem_patch26
-	fetch 2, mem_contw
-	iforce contw
-	fetcht 8,mem_temp
-	fetchr timeup,4,mem_timeup
-	call pop_stack_rega_b_c
-	fetchr loopcnt,2,mem_loopcnt
-	fetchr queue,2,mem_queue
-	fetch 2,mem_contr
-	iforce contr
-	rtn
-
-pop_stack_rega_b_c:
-	fetchr rega,4, mem_rega
-	fetchr regb,4, mem_regb
-	fetchr regc,3,mem_regc
-	rtn
-
-get_contw:
-	fetch 2,mem_contw
-get_contw_end:
-	copy pdata,contw
-	rtn
-get_contr:
-	fetch 2,mem_contr
-get_contr_end:
-	copy pdata,contr
-	rtn
-	
-store_contw:
-	copy contw,pdata
-	store 2,mem_contw
-	rtn
-store_contr:
-	copy contr,pdata
-	store 2,mem_contr
-	rtn	
-	
-
-//
-save_cont_pointers:
-	copy contw,pdata
-	store 2,mem_contw
-	copy contr,pdata
-	store 2,mem_contr
-	rtn
-	
-load_cont_pointers:
-	fetch 2,mem_contw
-	copy pdata,contw
-	fetch 2,mem_contr
-	copy pdata,contr
-	rtn
-
-
-//input pdata,temp 1byte
-//output rega:diff
-get_diff:
-	isub temp,rega
-	rtn positive
-	arg 0x100,rega
-	iadd rega,pdata
-	isub temp,rega
-	rtn	
-
-memcpy96:
-	call memcpy32
-memcpy64:
-	call memcpy32
-	branch memcpy32
-	
-
-memcpy12:
-	call memcpy8
-memcpy4:
-	ifetch 1,contr
-	istore 1,contw
-memcpy3:
-	ifetch 3,contr
-	istore 3,contw
-	rtn	
-memcpy8:
-	ifetch 8,contr
-	istore 8,contw
-	rtn	
-
-memcpy48:
-	call memcpy16
-memcpy32:
-	call memcpy8
-memcpy24:
-	call memcpy8
-memcpy16:
-	call memcpy8
-	branch memcpy8
-
-delay:
-	increase -1,pdata
-	nop 38
-	nbranch delay,blank
-	rtn
-
-
-delay_10ms:
-	arg 10,loopcnt
-delay_ms_wait:
-	nop 12000
-	loop delay_ms_wait
-	rtn
-
-
-memset0_16:
-	call memset0_8
-memset0_8:
-	call memset0_4
-memset0_4:
-	force 4,loopcnt
-	branch memset0
-	
-clear_mem_256:
-	force 32,loopcnt
-	branch memset0 
-clear_mem_512:
-	force 64,loopcnt
-	branch memset0 
-
-clear_mem:
-	deposit loopcnt
-	rtn blank
-memset0:
-	force 0,pdata
-	lstore  contw
-	rtn	
-
-clear_temp_block:
-	arg 32,loopcnt
-	arg mem_temp_block0,contw
-	branch clear_mem
-	
-xor_loop:
-	ifetch   4,regc
-	ifetcht 4,rega
-	ixor     temp,pdata
-	istore   4,contw	
-	increase 4,rega
-	increase 4,regc
-	loop  xor_loop
-	rtn
-	
-// 11 22 -> 22 11; 11 22 33 -> 33 22 11 
-// rega:data addr ;loopnct:length
-inverse_data:
-	bpatchx patch26_4,mem_patch26
-	copy loopcnt,pdata
-	sub pdata,1,null
-	rtn positive
-	iadd rega,regb	
-	increase -1,regb
-	rshift loopcnt,loopcnt
-inverse_loop:
-	ifetcht 1,rega
-	ifetch 1,regb
-	istore 1,rega
-	istoret 1,regb
-	increase -1,regb
-	increase 1,rega
-	loop inverse_loop
-	rtn
-
-/*
-	function name:inverse_data_6Byte or le2be_6Byte
-	input: pdata is data that want change
-	output:pdata is Converted data
-	used Resources:temp,contr
-*/
-le2be_6Byte:
-inverse_data_6Byte:
-	rshift32 pdata,temp
-	call inverse_data_4Byte
-	byteswap temp,temp
-	lshift16 pdata,pdata
-	ior temp,pdata
-	rtn
-
-
-/*
-	function name:inverse_data_4Byte or le2be_4Byte
-	input: pdata is data that want change
-	output:pdata is Converted data
-	used Resources:contr
-*/
-le2be_4Byte:
-inverse_data_4Byte:
-	rshift16 pdata,contr
-	byteswap contr,contr
-	byteswap pdata,pdata
-	lshift16 pdata,pdata
-	ior contr,pdata
-	rtn
-
-
-memcpy_fast:
-	bpatchx patch26_5,mem_patch26
-	deposit loopcnt
-	rtn blank
-memcpy_fast_loop:
-	increase -8,loopcnt
-	call memcpy8,positive
-	rtn zero
-	branch memcpy_fast_loop,positive
-	increase 8,loopcnt
-memcpy_fast_loop_four:
-	increase -4,loopcnt
-	call memcpy4,positive
-	rtn zero
-	branch memcpy_fast_loop_four,positive
-	increase 4,loopcnt
-	branch memcpy
- 
-memcpy:
-	deposit loopcnt
-	rtn blank
-memcpy_loop:
-	ifetch 1,contr
-	istore 1,contw
-	loop memcpy_loop
-	rtn
-
-timer_stop:
-	setarg 0
-timer_init:
-//	rshift clkn_bt,temp
-//	storet 4,mem_last_clkn
-	store 2,mem_pdatatemp
-	bpatchx patch26_6,mem_patch26
-	call timer_check
-	fetcht 2,mem_pdatatemp
-	arg mem_timers,contw
-//	iforce temp
-	lshift queue,pdata
-	iadd contw,contw
-	istoret 2,contw
-	rtn
-
-timer_check_timeout:
-	arg 0x800,timeup
-	lshift16 timeup,timeup
-	iadd timeup,pdata
-	rtn
-
-
-timer_reinit:
-	arg 0,queue
-timer_check:
-	bpatchx patch26_7,mem_patch26
-	fetcht 4,mem_last_clkn
-	rshift clkn_bt,pdata
-	store 4,mem_last_clkn	
-	isub temp,null
-	ncall timer_check_timeout,positive	
-	isub temp,timeup
-	copy timeup,temp
-	arg mem_timers,contr
-	copy contr,contw
-	arg 16,loopcnt
-timer_loop:
-	ifetch 2,contr
-	isub temp,pdata
-	branch timer_counting,positive
-	force 0,pdata
-timer_counting:
-	istore 2,contw
-	loop timer_loop	
-	arg mem_timers,contr
-	lshift queue,pdata
-	iadd contr,contr
-	ifetch 2,contr
-	rtn
-
-
-
-	/* pdata 28+16 bit add temp 26+16 bit, result in temp */
-clk_add:
-	iadd temp,temp
-	copy temp, loopcnt
-	fetch 2,mem_param_rt_rthalfslot
-	isub loopcnt,pdata
-	rtn positive
-	sub pdata,0,pdata
-	rshift16 temp,temp
-	increase 1,temp
-	lshift16 temp,temp
-	ior temp,temp
-	rtn
-
-clk_diff_rt:
-	call clk_diff
-	branch clk2rt
-
-/* pdata -temp -> pdata, all are 28+16 bits, set user if negative */
-clk_diff:
-	disable user
-	isub temp,pdata
-	branch clk_diff_pos,positive
-	enable user
-	sub pdata,0,pdata
-clk_diff_pos:
-	rtnbit0 15
-	copy pdata,regab
-	arg 0x10000,temp
-	fetch 2,mem_param_rt_rthalfslot
-	isub temp,pdata
-	iadd regab,pdata
-	set0 64,pdata
-	rtn
-
-	
-
-clk2rt:
-	fetcht 2,mem_param_rt_rthalfslot
-	iforce contr
-	rshift16 pdata,pdata
-	imul32 temp,pdata
-	iadd contr,pdata
-	rtn
-
-	/* pdata = clks in, temp = lpo out */
-clk2lpo:
-	lshift8 pdata,pdata
-	lshift4 pdata,pdata
-	fetcht 3,mem_clks_per_lpo
-	idiv temp
-	call wait_div_end
-	quotient temp
-	rtn
-
-	/* rt clk -> bt+rt clk */
-clk2bt:
-	fetcht 2,mem_param_rt_rthalfslot
-	idiv temp
-	call get_div_result
-	lshift16 pdata,pdata
-	remainder temp
-	ior temp,temp
-	rtn
-
-
-
-//input:contu 
-//output:temp
-//used register: temp regab
-string2dec_from_uart:
-	arg 0,temp
-string2dec_from_uart_done:
-         copy temp,regab
-	ifetch 1,contu
-	call uchar2dialog	
-	copy regab,temp
-	call swap
-	arg 10,regb
-	imul32 regb,pdata
-	iadd temp,pdata
-	copy pdata,temp
-	loop string2dec_from_uart_done
-	rtn
-	
-
-
-uchar2dialog:
-	arg 0x3a,temp
-	isub temp,null
-	nbranch uchar2dialog_number,positive
-	arg 0x61,temp
-	isub temp,null
-	branch uchar2dialog_a2f,positive
-	arg 0x37,temp
-	isub temp,pdata
-	rtn
-uchar2dialog_number:
-	arg 0x30,temp
-	isub temp,pdata
-	rtn
-uchar2dialog_a2f:
-	arg 0x57,temp
-	isub temp,pdata
-	rtn
-
-
-right_shift_n: //rshiftN pdata,pdata
-	sub loopcnt,0,null
-	rtn zero
-right_shift_n_loop: 
-	rshift pdata,pdata
-	loop right_shift_n_loop
-	rtn
-
-//lshift. 0:1 byte; 1:2byte; 2:4byte; 3:8byte; 4:16byte//
-left_shift_n:
-	force 1,pdata
-	sub loopcnt,0,null
-	rtn zero
-left_shift_n_loop:
-	lshift pdata,pdata
-	loop left_shift_n_loop
-	rtn
-	
-
-	// contr: rxdata, loopcnt is count. result in quotient
-calc_average:
-	setarg 0
-	copy loopcnt,rega
-calc_average_loop:
-	ifetcht 2,contr
-	iadd temp,pdata
-	loop calc_average_loop
-	idiv rega
-get_div_result:
-	call wait_div_end
-	quotient pdata
-	rtn
-
-wait_div_end:	
-	rtn modone
-	branch wait_div_end
-
-
-
-//input:
-//	count:loopcnt str1:rega str2:regb
-//output:
-//	same:set flag zero ,diff not set flag zero
-// using:
-//	reg:temp null flag:zero
-compare_loop:
-string_compare:
-	ifetch 1,rega
-	ifetcht 1,regb
-	isub temp,null
-	nrtn zero
-	increase 1,rega
-	increase 1,regb
-	loop string_compare
-	branch enable_zero
-
-
-	/* pdata = temp if pdata > temp */
-ceiling:
-	isub temp,null
-	nrtn positive
-	deposit temp
-	rtn
-	
-swap:
-	iadd temp,pdata
-	isub temp,temp
-	isub temp,pdata
-	rtn
-
-clean_smem:
-	arg 0,contw
-	branch clean_mem
-
-clean_xmem:
-	arg 0x4000,contw
-clean_mem:
-	arg 0x1000,loopcnt
-	branch memset0				// clear xram at boot
-
-	//cb function ptr in pdata
-callback_func:
-	rtn blank
-	copy pdata,pc	//rtn through cb functon.
-	//branch assert
-/*
-wait_uarttx:
-	fetch 2,core_uart_txitems
-	nbranch wait_uarttx,blank
-	rtn
-*/
-
-ice_break_disable_wdt:
-	call wdt_set_disable
-
-ice_break:
-	jam 0x1,core_ice_ctrl
-	rtn
-
-ice_setbp:
-	store 2,core_ice_break0
-	fetch 1,core_ice_ctrl
-	set1 4,pdata
-	store 1,core_ice_ctrl
-	rtn
-ice_setbp2:
-	store 2,core_ice_break1
-	fetch 1,core_ice_ctrl
-	set1 6,pdata
-	store 1,core_ice_ctrl
-	rtn
-	
-ice_set_write_bp:
-	store 2,core_ice_break0
-	jam 0x30,core_ice_ctrl
-	rtn
-	
-
-
-	//fuction fifo_in
-	//rega pointer to fifo memory , *(rega+len) is the end of fifo
-	//mem_fifo_temp data into fifo
-	//assert if fifo was full
-fifo_in:
-	bpatchx patch27_0,mem_patch27
-	ifetcht UTIL_FIFO_LEN,rega
-	and temp,0xff,pdata
-	nbranch fifo_in_push,blank
-	rshift8 temp,pdata
-	istore UTIL_FIFO_LEN,rega
-fifo_in_push:
-	increase UTIL_FIFO_LEN+UTIL_FIFO_OFFSET,rega
-	ifetch 1,rega
-	nbranch assert,blank //fifo full
-	fetch 1,mem_fifo_temp
-	istore 1,rega
-	rtn
-	
-	//fuction fifo_out
-	//rega pointer to fifo memory
-	//pdata  data from fifo, blank mains fifo empty
-fifo_out:
-	bpatchx patch27_1,mem_patch27
-	arg UTIL_FIFO_LEN,loopcnt
-	ifetch UTIL_FIFO_LEN,rega
-	rtn blank
-fifo_out_loop:
-	ifetch 1,rega
-	nbranch fifo_out_end,blank
-	increase 1,rega
-	loop fifo_out_loop
-	branch assert
-fifo_out_end:
-	arg 0,temp
-	istoret 1,rega
-	rtn
-
-	//fuction fifo_is_empty
-	//rega pointer to fifo memory
-	//blank--- fifo is empty
-fifo_is_empty:
-	ifetch UTIL_FIFO_LEN,rega
-	rtn
-
-	//fuction fifo_is_full
-	//rega pointer to fifo memory
-	//blank--- fifo is NOT full
-fifo_is_full:
-	ifetch 1,rega
-	rtn
-	//rega pointer to fifo memory
-	//blank--- fifo is NOT near full
-fifo_is_near_full:
-	ifetch 2,rega
-	rtn
-
-	//rega pointer to fifo memory
-	//count output via pdata
-fifo_content_count:
-	arg 0,temp
-fifo_content_count_loop:
-	fetch 1,contr
-	loop fifo_content_count_loop,blank
-	increase 1,temp
-	loop fifo_content_count_loop
-	copy temp,pdata
-	rtn
-
-//input pdata, temp, return small in pdata	
-not_greater_than:
-	isub temp,null
-	nrtn positive
-copy_temp2pdata:
-	copy temp,pdata
-	rtn
-
-
-disable_positive:
-	force -1,null
-	rtn
-enable_positive:
-disable_zero:
-	force 1,null
-	rtn
-enable_zero:
-	force 0,null
-	rtn
-
-enable_user:
-	enable user
-	rtn
-	
-disable_user:
-	disable user
-	rtn
-	
-enable_user2:
-	enable user2
-	rtn
-	
-disable_user2:
-	disable user2
-	rtn
-
-enable_user7:
-	enable user7
-	rtn
-
-disable_true:
-	disable  true
-	rtn
-
-enable_true:
-	enable  true
-	rtn
-
-disable_blank:
-	setarg 1
-	rtn
-
-enable_blank:
-set_pdata_0:
-	setarg 0
-	rtn
-
-istore_1_contw_rtn:
-	istore 1,contw
-	rtn
-
-//input pdata :sum
-//output pdata :sum
-cal_sum:
-	sub loopcnt,0,null
-	rtn zero
-cal_sum_loop:
-	ifetcht 1,contr
-	iadd temp,pdata
-	loop cal_sum_loop
-	rtn
-
-	
-reverse_byte:
-	copy loopcnt,pdata
-	rtn blank
-	copy contr,pdata
-	iadd loopcnt,pdata
-	increase -1,pdata
-	copy pdata,contr	
-reverse_loop:
-	ifetch 1,contr
-	increase -2,contr
-	istore 1,contw
-	loop reverse_loop
-	rtn
-
-
-lshift14:
-	lshift16 pdata,pdata
-rshift2:
-	rshift2 pdata,pdata
-	rtn
-
-lshift6:
-	lshift8 pdata,pdata
-	branch rshift2
-
-/*	
-savelist:		
-	store 8,mem_pdatatemp
-savelist_1:
-	fetch 1,mem_seqi
-	rtneq 0x7f
-	lshift3 pdata,pdata
-	arg mem_savelist,contw
-	iadd contw,contw
-	fetch 8,mem_pdatatemp
-	istore 8,contw
-	fetch 1,mem_seqi
-	increase 1,pdata
-	and_into 0x7f,pdata
-	store 1,mem_seqi
-	fetch 8,mem_pdatatemp
-	rtn	
-
-le_savelist:
-	fetch 5,mem_sync_clke
-	store 5,mem_pdatatemp
-	fetch 1,mem_le_ch_mapped
-	istore 1,contw
-	fetch 2,mem_le_event_count
-	arg 0x0fff,contr
-	iand contr,pdata
-	setflag match,15,pdata
-	setflag wake,14,pdata
-	setflag sync,13,pdata
-	setflag attempt,12,pdata
-	istore 2,contw
-	branch savelist_1
-*/
-
-clear_wake:
-	bpatchx patch27_2,mem_patch27
-	setarg 0
-	set1 21,pdata				//gpio5(ice) enable wakeup
-	store 8,mem_gpio_wakeup_cfg
-	setarg 0
-	istore 4,contw
-	rtn	
-
-
-generate_random:
-	arg 16,loopcnt
-generate_random_loop:
-	random pdata
-	istore 1,contw
-	loop generate_random_loop
-	rtn
-
Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/z.prog
===================================================================
--- /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/z.prog	(revision 5679)
+++ /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/program/z.prog	(nonexistent)
@@ -1,407 +0,0 @@
-org 0x10001
-z_entrance0:
-	beq ZCODE_00,z_mouse_start_work
-    beq ZCODE_01,z_mouse_param_info_init
-    beq ZCODE_02,z_mouse_default_init
-	rtn
-z_mouse_start_work:
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	bbit1 MOUSE_ENABLE_24G_FIRST_AUTO_PAIRING, mouse_24g_first_start_auto_pair_mode
-	fetch 1,mem_device_flag
-	beq MODE_24G_DEVICE,mouse_24g_start_mode
-	call p_mouse_le_param_default
-	branch mouse_le_fast_conn_judge
-
-z_mouse_param_info_init:
-	call mouse_param_info_init+1
-	setarg mem_le_tx_buffer0_omemalloc_new
-	store 2,mem_ble_l2cap_tx_buff0_ptr
-	setarg MOUSE_BLE_L2CAP_TXBUFF_SIZE_NEW
-	store 2,mem_ble_l2cap_tx_buff_size_ptr
-	setarg mem_ui_le_uuid_table_new				//ble attlist start address
-	store 2,mem_ui_le_uuid_table
-	jam 70,mem_le_local_mtu
-	jam 0x0f,mem_24g_fast_hop_count
-	rtn
-
-z_mouse_default_init:
-	call mouse_default_init+1
-	jam 1,mem_24g_disable_fec1
-	jam 1,mem_power_ctrl_disable
-	jam 0,mem_voice_queue_count
-	jam 1,mem_mouse_sleep_deal_type
-	jam 0x10,mem_mouse_24g_tx_time_sum_count
-	rtn
-
-org 0x20001
-z_entrance1:
-    beq ZCODE_10,z_mouse_load_device_info_check
-    beq ZCODE_11,z_mouse_24g_attempt_fail
-    beq ZCODE_12,z_mouse_eeprom_load_le_att_list_info
-    rtn
-z_mouse_load_device_info_check:
-	call z_mouse_eeprom_load_le_att_list_info
-	call mouse_load_eeprom_info_check
-	call z_mouse_load_key_info_check_flag
-	fetch 1,mem_mouse_key_information_set_flag
-	call z_mouse_load_key_info_check,blank
-	fetch 1,mem_mouse_dpi
-	store 1,mem_mouse_last_dpi
-	arg 8,temp
-	arg msm_ms_auth_sn,rega
-	arg MOUSE_AUTH_INFO_OFFSET,regb
-	branch iicd_read_eep_data
-
-z_mouse_load_key_info_check_flag:
-	arg 1,temp
-	arg mem_mouse_key_information_set_flag,rega
-	arg MOUSE_VALUE_FLAG_OFFECT,regb
-	branch iicd_read_eep_data
-
-z_mouse_load_key_info_check:
-	arg 15,temp
-	arg mem_mouse_key_information_start,rega
-	arg MOUSE_VALUE_EEPROM_OFFECT,regb
-	branch iicd_read_eep_data
-
-z_mouse_24g_attempt_fail:
-	// call mouse_soft_agc_disable
-	// call device_fetch_normal_tx_power
-	// fetch 1,mem_24g_attempt_fail_flag
-	// nbranch mouse_24g_hibernate_set,blank
-	fetch 1,mem_24g_reconn_type
-	beq PAIR_AND_RECEIVER,mouse_24g_auto_pair_attempt_fail
-	beq FAST_CONN_AND_RECEIVER,z_mouse_24g_fast_conn_attempt_fail
-	branch mouse_24g_attempt_fail+4
-
-z_mouse_24g_fast_conn_attempt_fail:
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag 
-	bbit1 MOUSE_ENABLE_24G_FIRST_AUTO_PAIRING,z_mouse_24g_start_auto_pair
-	bbit1 MOUSE_ENABLE_AUTO_24G_PARING,z_mouse_24g_start_auto_pair
-	branch mouse_24g_fast_conn_attempt_fail+3
-z_mouse_24g_start_auto_pair:
-	fetch 2,mem_24g_pair_timeout_init
-	store 2,mem_24g_reconn_timeout
-	jam PAIR_AND_RECEIVER,mem_24g_reconn_type
-	branch g24_reconn_start
-
-z_mouse_eeprom_load_le_att_list_info:
-	arg 820,temp
-	arg mem_ui_le_uuid_table_new,rega
-	arg 0x00,regb
-	fetch 2,mem_eeprom_att_list_base
-	branch iicd_read_eep_data_next
-
-
-org 0x30001
-z_entrance2:
-	beq ZCODE_20,z_g24_receive_ack_data_next
-	rtn
-z_g24_receive_ack_data_next:
-	fetch 1,mem_24g_rxpayload+3
-//	beq OPCODE_APPKEY,p_mouse_receive_dg_appkey_data
-//	beq OPCODE_SECRET,p_mouse_receive_dg_secret_data
-//	beq OPCODE_SN,p_mouse_receive_dg_sn_data
-//	beq OPCODE_CHIP_ID,p_mouse_receive_dg_chip_id_data
-	beq OPCODE_VOICE_START,z_mouse_receive_dg_voice_start_data
-	// beq OPCODE_VOICE_END,z_mouse_receive_dg_voice_end_data
-	beq OPCODE_GET_DEVICE_INFO,z_mouse_receive_dg_get_device_info_data
-	beq OPCODE_GET_DPI,z_mouse_receive_dg_get_dpi_data
-	beq OPCODE_SET_DPI,z_mouse_receive_dg_set_dpi_data
-	beq OPCODE_GET_BATTERY,z_mouse_receive_dg_get_battery_data
-	beq OPCODE_GET_DEVICE_TYPE,z_mouse_receive_dg_get_device_type_data
-	beq OPCODE_SET_KEY_FUCTION,z_mouse_receive_dg_set_key_fuction_data
-	rtn
-/*
-p_mouse_receive_dg_appkey_data:
-	arg APPKEY,queue
-	branch p_ms_tx_nor_pro_flag_enable
-p_mouse_receive_dg_secret_data:
-	arg SECRET,queue
-	branch p_ms_tx_nor_pro_flag_enable
-p_mouse_receive_dg_sn_data:
-	arg SN_CODE,queue
-	branch p_ms_tx_nor_pro_flag_enable
-p_mouse_receive_dg_chip_id_data:
-	arg CHIP_ID,queue
-	branch p_ms_tx_nor_pro_flag_enable
-*/
-z_mouse_receive_dg_voice_start_data:
-	arg VOICE_START,queue
-	branch p_ms_tx_nor_pro_flag_enable
-// z_mouse_receive_dg_voice_end_data:
-// 	arg VOICE_END,queue
-// 	branch p_ms_tx_nor_pro_flag_enable
-z_mouse_receive_dg_get_device_info_data:
-	arg DEVICE_INFO,queue
-	branch p_ms_tx_nor_pro_flag_enable
-z_mouse_receive_dg_get_dpi_data:
-	jam APP_ASK,mem_mouse_dpi_type
-	branch p_mouse_g24_tx_dpi_data
-z_mouse_receive_dg_set_dpi_data:
-	arg mem_24g_rxpayload+1,contr
-	call p_mouse_receive_dpi_check
-	arg SET_DPI,queue
-	branch p_ms_tx_nor_pro_flag_enable
-z_mouse_receive_dg_get_battery_data:
-	jam APP_ASK,mem_mouse_battery_type
-	arg GET_BATTERY,queue
-	branch p_ms_tx_nor_pro_flag_enable
-z_mouse_receive_dg_get_device_type_data:
-	arg GET_DEVICE_TYPE,queue
-	branch p_ms_tx_nor_pro_flag_enable
-z_mouse_receive_dg_set_key_fuction_data:
-	jam 0,mem_mouse_key_information_set_flag
-	arg mem_24g_rxpayload+1,contr
-	call p_mouse_receive_key_fuction_check
-	arg SET_KEY_FUCTION,queue
-	branch p_ms_tx_nor_pro_flag_enable
-
-org 0x40001
-z_entrance3:
-	beq ZCODE_30,z_g24_send_http_info_check
-	rtn
-//====================http send========================//
-z_g24_send_http_info_check:
-	fetch 1,mem_ms_rf_data_flag
-	branch z_g24_only_send_http_info,blank
-z_g24_send_rf_http_info:
-	fetch 1,mem_24g_data_type
-	set1 HTTP_BIT,pdata
-	store 1,mem_ms_24g_temp_buff
-	jam 0xff,mem_ms_24g_temp_buff+1
-	arg 2,temp
-	arg mem_ms_24g_temp_buff,rega
-	branch p_g24_send_rf_other_data
-	rtn
-z_g24_only_send_http_info:
-	jam 2,mem_24g_datalen
-	fetch 1,mem_24g_data_type
-	set1 HTTP_BIT,pdata
-	store 1,mem_24g_txbuf_new
-	jam 0xff,mem_24g_txbuf_new+1
-	rtn
-
-org 0x50001
-z_entrance4:
-	beq ZCODE_40,z_g24_tx_device_info
-	beq ZCODE_41,z_g24_get_dpi
-	rtn
-//device info
-z_g24_tx_device_info:
-	fetch 1,mem_ms_rf_data_flag
-	branch z_g24_only_send_device_info,blank
-	branch z_g24_send_device_info
-
-z_g24_only_send_device_info:
-	fetch 1,mem_24g_data_type
-	set1 NOR_PRO_BIT,pdata
-	store 1,mem_24g_txbuf_new
-	jam START_FLAG,mem_24g_txbuf_new+1
-	jam DEVICE_INFO_LEN,mem_24g_txbuf_new+2
-	jam OPCODE_GET_DEVICE_INFO,mem_24g_txbuf_new+3
-	jam DEVICE_INFO_LEN+NOR_PRO_HEADER_LEN,mem_24g_datalen
-	arg AUTH_LEN,loopcnt
-	arg mem_ms_auth_appkey,contr
-	arg mem_24g_txbuf_new+4,contw
-	call memcpy
-	branch p_g24_ms_info_set
-
-z_g24_send_device_info:
-	fetch 1,mem_24g_data_type
-	set1 NOR_PRO_BIT,pdata
-	store 1,mem_ms_24g_temp_buff
-	jam START_FLAG,mem_ms_24g_temp_buff+1
-	jam DEVICE_INFO_LEN,mem_ms_24g_temp_buff+2
-	jam OPCODE_GET_DEVICE_INFO,mem_ms_24g_temp_buff+3
-	arg AUTH_LEN,loopcnt
-	arg mem_ms_auth_appkey,contr
-	arg mem_ms_24g_temp_buff+4,contw
-	call memcpy
-	call p_g24_ms_info_set
-	arg DEVICE_INFO_LEN+4,temp
-	arg mem_ms_24g_temp_buff,rega
-	branch p_g24_send_rf_other_data
-
-
-//get dpi info
-z_g24_get_dpi:
-	fetch 1,mem_ms_rf_data_flag
-	branch z_g24_only_send_dpi_info,blank
-	branch z_g24_send_dpi_info
-
-z_g24_only_send_dpi_info:
-	fetch 1,mem_24g_data_type
-	set1 NOR_PRO_BIT,pdata
-	store 1,mem_24g_txbuf_new
-	jam START_FLAG,mem_24g_txbuf_new+1
-	jam NOR_PRO_HEADER_LEN,mem_24g_txbuf_new+2
-	jam OPCODE_GET_DPI,mem_24g_txbuf_new+3
-	fetch 1,mem_mouse_dpi
-	store 1,mem_24g_txbuf_new+4
-	fetch 1,mem_mouse_dpi_type
-	istore 1,contw
-	jam NOR_PRO_GET_DPI_LEN,mem_24g_datalen
-	rtn
-z_g24_send_dpi_info:
-	fetch 1,mem_24g_data_type
-	set1 NOR_PRO_BIT,pdata
-	store 1,mem_ms_24g_temp_buff
-	jam START_FLAG,mem_ms_24g_temp_buff+1
-	jam NOR_PRO_HEADER_LEN,mem_ms_24g_temp_buff+2
-	jam OPCODE_GET_DPI,mem_ms_24g_temp_buff+3
-	fetch 1,mem_mouse_dpi
-	store 1,mem_ms_24g_temp_buff+4
-	fetch 1,mem_mouse_dpi_type
-	istore 1,contw
-	arg NOR_PRO_GET_DPI_LEN,temp
-	arg mem_ms_24g_temp_buff,rega
-	branch p_g24_send_rf_other_data
-
-
-org 0x60001
-z_entrance5:
-	beq ZCODE_50,z_g24_set_dpi
-	beq ZCODE_51,z_g24_get_battery
-	rtn
-//set dpi info
-z_g24_set_dpi:
-	fetch 1,mem_ms_rf_data_flag
-	branch z_g24_only_set_dpi_info,blank
-	branch z_g24_set_dpi_info
-
-z_g24_only_set_dpi_info:
-	fetch 1,mem_24g_data_type
-	set1 NOR_PRO_BIT,pdata
-	store 1,mem_24g_txbuf_new
-	jam START_FLAG,mem_24g_txbuf_new+1
-	jam SET_DPI_LEN,mem_24g_txbuf_new+2
-	jam OPCODE_SET_DPI,mem_24g_txbuf_new+3
-	fetch 1,mem_mouse_dpi_set_result
-	store 1,mem_24g_txbuf_new+4
-	jam NOR_PRO_RES_LEN,mem_24g_datalen
-	rtn
-z_g24_set_dpi_info:
-	fetch 1,mem_24g_data_type
-	set1 NOR_PRO_BIT,pdata
-	store 1,mem_ms_24g_temp_buff
-	jam START_FLAG,mem_ms_24g_temp_buff+1
-	jam SET_DPI_LEN,mem_ms_24g_temp_buff+2
-	jam OPCODE_SET_DPI,mem_ms_24g_temp_buff+3
-	fetch 1,mem_mouse_dpi_set_result
-	store 1,mem_ms_24g_temp_buff+4
-	arg NOR_PRO_RES_LEN,temp
-	arg mem_ms_24g_temp_buff,rega
-	branch p_g24_send_rf_other_data
-
-
-//send battery info
-z_g24_get_battery:
-	fetch 1,mem_ms_rf_data_flag
-	branch z_g24_only_send_battery_info,blank
-	branch z_g24_send_battery_info
-
-z_g24_only_send_battery_info:
-	fetch 1,mem_24g_data_type
-	set1 NOR_PRO_BIT,pdata
-	store 1,mem_24g_txbuf_new
-	jam START_FLAG,mem_24g_txbuf_new+1
-	jam NOR_PRO_HEADER_LEN,mem_24g_txbuf_new+2
-	jam OPCODE_GET_BATTERY,mem_24g_txbuf_new+3
-	fetch 1,mem_le_battery_level_percentage
-	store 1,mem_24g_txbuf_new+4
-	fetch 1,mem_mouse_battery_type
-	istore 1,contw
-	jam NOR_PRO_GET_DPI_LEN,mem_24g_datalen
-	rtn
-
-z_g24_send_battery_info:
-	fetch 1,mem_24g_data_type
-	set1 NOR_PRO_BIT,pdata
-	store 1,mem_ms_24g_temp_buff
-	jam START_FLAG,mem_ms_24g_temp_buff+1
-	jam NOR_PRO_HEADER_LEN,mem_ms_24g_temp_buff+2
-	jam OPCODE_GET_BATTERY,mem_ms_24g_temp_buff+3
-	fetch 1,mem_le_battery_level_percentage
-	store 1,mem_ms_24g_temp_buff+4
-	fetch 1,mem_mouse_battery_type
-	istore 1,contw
-	arg NOR_PRO_GET_DPI_LEN,temp
-	arg mem_ms_24g_temp_buff,rega
-	branch p_g24_send_rf_other_data
-
-
-org 0x70001
-z_entrance6:
-	beq ZCODE_60,z_g24_get_device_type
-	beq ZCODE_61,z_g24_set_key_fuction
-	rtn
-//send device type info
-z_g24_get_device_type:
-	fetch 1,mem_ms_rf_data_flag
-	branch z_g24_only_send_device_type_info,blank
-	branch z_g24_send_device_type_info
-
-z_g24_only_send_device_type_info:
-	fetch 1,mem_24g_data_type
-	set1 NOR_PRO_BIT,pdata
-	store 1,mem_24g_txbuf_new
-	jam START_FLAG,mem_24g_txbuf_new+1
-	fetch 1,mem_mouse_device_type
-	increase 2,pdata
-	store 1,mem_24g_txbuf_new+2
-	jam OPCODE_GET_DEVICE_TYPE,mem_24g_txbuf_new+3
-	fetchr loopcnt,1,mem_mouse_device_type
-	arg mem_mouse_device_type+1,contr
-	arg mem_24g_txbuf_new+4,contw
-	call memcpy
-	fetch 1,mem_mouse_device_type
-	increase 4,pdata
-	store 1,mem_24g_datalen
-	rtn
-z_g24_send_device_type_info:
-	fetch 1,mem_24g_data_type
-	set1 NOR_PRO_BIT,pdata
-	store 1,mem_ms_24g_temp_buff
-	jam START_FLAG,mem_ms_24g_temp_buff+1
-	
-	fetch 1,mem_mouse_device_type
-	increase 2,pdata
-	store 1,mem_ms_24g_temp_buff+2
-	jam OPCODE_GET_DEVICE_TYPE,mem_ms_24g_temp_buff+3
-	fetchr loopcnt,1,mem_mouse_device_type
-	arg mem_mouse_device_type+1,contr
-	arg mem_ms_24g_temp_buff+4,contw
-	call memcpy
-	fetcht 1,mem_mouse_device_type
-	increase 4,temp
-	arg mem_ms_24g_temp_buff,rega
-	branch p_g24_send_rf_other_data
-
-
-//set key fuction info
-z_g24_set_key_fuction:	
-	fetch 1,mem_ms_rf_data_flag
-	branch z_g24_only_set_key_fuction_info,blank
-	branch z_g24_set_key_fuction_info
-z_g24_only_set_key_fuction_info:
-	fetch 1,mem_24g_data_type
-	set1 NOR_PRO_BIT,pdata
-	store 1,mem_24g_txbuf_new
-	jam START_FLAG,mem_24g_txbuf_new+1
-	jam SET_DPI_LEN,mem_24g_txbuf_new+2
-	jam OPCODE_SET_KEY_FUCTION,mem_24g_txbuf_new+3
-	jam 1,mem_24g_txbuf_new+4
-	jam NOR_PRO_RES_LEN,mem_24g_datalen
-	rtn
-z_g24_set_key_fuction_info:
-	fetch 1,mem_24g_data_type
-	set1 NOR_PRO_BIT,pdata
-	store 1,mem_ms_24g_temp_buff
-	jam START_FLAG,mem_ms_24g_temp_buff+1
-	jam SET_DPI_LEN,mem_ms_24g_temp_buff+2
-	jam OPCODE_SET_KEY_FUCTION,mem_ms_24g_temp_buff+3
-	jam 1,mem_ms_24g_temp_buff+4
-	arg NOR_PRO_RES_LEN,temp
-	arg mem_ms_24g_temp_buff,rega
-	branch p_g24_send_rf_other_data
Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/sched/1305.dat
===================================================================
--- /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/sched/1305.dat	(revision 5679)
+++ /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/sched/1305.dat	(nonexistent)
@@ -1,40 +0,0 @@
-
-
-mem_system_clk:0c
-mem_lpm_xtalcnt:35 3f 64
-mem_lpm_isogate:db 7b 3b
-mem_lpm_hibernate_switch:20
-mem_lpm_ldo_sel:00
-mem_lpm_sysctl:08
-mem_lpm_hv_sel:b4
-
-mem_fcomp_div:18
-mem_xtal_c_sel:4d #0a:EVB-2025-197:+3k  0b:EVB-2025-210:+1k  3e:2025-210-YC1032-S-Mouse-Demo-V1.0  4d:2025-230-YC1032-S-MZ-AiMouse-V1.0:+4K 3f:+7k
-mem_gpio_wakeup_cfg:00 00 20 00 00 00 00 00 00 00 00 00
-
-mem_version:08 0e 05 03 00
-mem_le_tx2m_delay:20
-
-mem_rx_window_sniff:00 0c
-
-mem_gain_fix:ff	#00:soft agc; ff:hw agc
-mem_gain_table:04 00 00
-mem_gain_second_agc_en:08	#hw agc: 0:second agc disable
-mem_otp_load_check_sum:5a
-
-mem_adc_dma_enable:00
-mem_adc_saddr_ptr:00 07
-mem_adc_eaddr_ptr:ff 07
-
-mem_ring_ibias_trim:a0
-mem_ring_ibias_vtune_high:bc 02 #700mv
-mem_ring_ibias_vtune_low:90 01 #400mv
-mem_ring_ibias_calc_adc_gpio:03
-mem_ring_ibias_calc_adc_channel:09
-
-mem_rf_init_data:
-88 40
-ff
-mem_rf_init_ptr:mem_rf_init_data
-
-
Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/sched/ble_shutter_gatt_list.dat
===================================================================
--- /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/sched/ble_shutter_gatt_list.dat	(revision 5679)
+++ /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/sched/ble_shutter_gatt_list.dat	(nonexistent)
@@ -1,313 +0,0 @@
-01
-00
-02
-00
-28
-02
-01
-18
-02
-00
-02
-03
-28
-01
-20
-03
-00
-02
-05
-2a
-01
-00
-04
-00
-02
-02
-29
-02
-00
-00
-05
-00
-02
-00
-28
-02
-00
-18
-06
-00
-02
-03
-28
-01
-02
-07
-00
-02
-00
-2a
-13
-43
-68
-69
-70
-73
-65
-61
-2d
-42
-4c
-45
-20
-20
-20
-20
-20
-20
-20
-20
-08
-00
-02
-03
-28
-01
-02
-09
-00
-02
-01
-2a
-02
-c1
-03
-0a
-00
-02
-03
-28
-01
-02
-0b
-00
-02
-04
-2a
-08
-06
-00
-06
-00
-64
-00
-2c
-01
-0c
-00
-02
-00
-28
-02
-0a
-18
-0d
-00
-02
-03
-28
-01
-02
-0e
-00
-02
-50
-2a
-07
-02
-8a
-24
-66
-82
-01
-00
-0f
-00
-02
-00
-28
-02
-12
-18
-10
-00
-02
-03
-28
-01
-06
-11
-00
-02
-4e
-2a
-01
-01
-12
-00
-02
-03
-28
-01
-12
-13
-00
-02
-4d
-2a
-02
-00
-00
-14
-00
-02
-02
-29
-02
-00
-00
-15
-00
-02
-08
-29
-02
-02
-01
-16
-00
-02
-03
-28
-01
-12
-17
-00
-02
-4d
-2a
-02
-00
-00
-18
-00
-02
-02
-29
-02
-00
-00
-19
-00
-02
-08
-29
-02
-03
-01
-1a
-00
-02
-03
-28
-01
-02
-1b
-00
-02
-4b
-2a
-1b
-05
-0c
-09
-01
-a1
-01
-85
-02
-09
-e9
-09
-ea
-09
-e2
-09
-30
-15
-01
-25
-0c
-75
-10
-95
-01
-81
-00
-c0
-1c
-00
-02
-03
-28
-01
-02
-1d
-00
-02
-4a
-2a
-04
-11
-01
-00
-01
-1e
-00
-02
-03
-28
-01
-04
-1f
-00
-02
-4c
-2a
-01
-00
-20
-00
-02
-00
-28
-02
-0f
-18
-21
-00
-02
-03
-28
-01
-12
-22
-00
-02
-19
-2a
-01
-63
-00
-00
\ No newline at end of file
Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/sched/ble_shutter_key_value_list.dat
===================================================================
--- /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/sched/ble_shutter_key_value_list.dat	(revision 5679)
+++ /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/sched/ble_shutter_key_value_list.dat	(nonexistent)
@@ -1,40 +0,0 @@
-02
-13
-00
-02
-00
-02
-13
-00
-01
-00
-02
-13
-00
-04
-00
-02
-13
-00
-06
-00
-02
-13
-00
-05
-00
-02
-13
-00
-00
-00
-02
-17
-00
-00
-28
-02
-17
-00
-00
-00
Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/sched/keyboard_ble_hid_map_magic_keyboard.dat
===================================================================
--- /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/sched/keyboard_ble_hid_map_magic_keyboard.dat	(revision 5679)
+++ /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/sched/keyboard_ble_hid_map_magic_keyboard.dat	(nonexistent)
@@ -1,188 +0,0 @@
-ba
-00
-05
-0c
-09
-01
-a1
-01
-85
-05
-15
-00
-25
-01
-75
-01
-95
-18
-0a
-83
-01
-09
-ea
-09
-e9
-09
-e2
-09
-b6
-09
-b5
-09
-cd
-09
-b7
-0a
-23
-02
-0a
-8a
-01
-0a
-94
-01
-0a
-2a
-02
-0a
-92
-01
-0a
-21
-02
-0a
-24
-02
-0a
-07
-03
-0a
-ae
-01
-09
-70
-09
-6f
-09
-30
-09
-b8
-0a
-25
-02
-0a
-26
-02
-0a
-27
-02
-81
-02
-c0
-05
-01
-09
-06
-a1
-01
-85
-02
-75
-01
-95
-08
-05
-07
-19
-e0
-29
-e7
-15
-00
-25
-01
-81
-02
-95
-01
-75
-08
-81
-03
-95
-05
-75
-01
-05
-08
-19
-01
-29
-05
-91
-02
-95
-01
-75
-03
-91
-03
-95
-06
-75
-08
-15
-00
-26
-ff
-00
-05
-07
-19
-00
-2a
-ff
-00
-81
-00
-05
-ff
-09
-03
-75
-08
-95
-01
-81
-02
-c0
-05
-01
-09
-80
-a1
-01
-85
-04
-15
-00
-25
-01
-75
-01
-95
-03
-19
-81
-29
-83
-81
-02
-95
-01
-75
-05
-81
-03
-c0
\ No newline at end of file
Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/sched/keyboard_ble_hid_map_n_key_rollover_keyboard.dat
===================================================================
--- /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/sched/keyboard_ble_hid_map_n_key_rollover_keyboard.dat	(revision 5679)
+++ /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/sched/keyboard_ble_hid_map_n_key_rollover_keyboard.dat	(nonexistent)
@@ -1,204 +0,0 @@
-ca
-00
-05
-0c
-09
-01
-a1
-01
-85
-05
-15
-00
-25
-01
-75
-01
-95
-18
-0a
-83
-01
-09
-ea
-09
-e9
-09
-e2
-09
-b6
-09
-b5
-09
-cd
-09
-b7
-0a
-23
-02
-0a
-8a
-01
-0a
-94
-01
-0a
-2a
-02
-0a
-92
-01
-0a
-21
-02
-0a
-24
-02
-0a
-07
-03
-0a
-ae
-01
-09
-70
-09
-6f
-09
-30
-09
-b8
-0a
-25
-02
-0a
-26
-02
-0a
-27
-02
-81
-02
-c0
-05
-01
-09
-06
-a1
-01
-85
-02
-75
-01
-95
-08
-05
-07
-19
-e0
-29
-e7
-15
-00
-25
-01
-81
-02
-95
-01
-75
-08
-81
-03
-95
-05
-75
-01
-05
-08
-19
-01
-29
-05
-91
-02
-95
-01
-75
-03
-91
-03
-95
-06
-75
-08
-15
-00
-26
-ff
-00
-05
-07
-19
-00
-2a
-ff
-00
-81
-00
-c0
-05
-01
-09
-06
-a1
-01
-85
-01
-95
-70
-75
-01
-15
-00
-25
-01
-05
-07
-19
-00
-2a
-ff
-00
-81
-02
-c0
-05
-01
-09
-80
-a1
-01
-85
-04
-15
-00
-25
-01
-75
-01
-95
-03
-19
-81
-29
-83
-81
-02
-95
-01
-75
-05
-81
-03
-c0
\ No newline at end of file
Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/sched/keyboard_ble_hid_map_only_keyboard.dat
===================================================================
--- /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/sched/keyboard_ble_hid_map_only_keyboard.dat	(revision 5679)
+++ /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/sched/keyboard_ble_hid_map_only_keyboard.dat	(nonexistent)
@@ -1,178 +0,0 @@
-b0
-00
-05
-0c
-09
-01
-a1
-01
-85
-05
-15
-00
-25
-01
-75
-01
-95
-18
-0a
-83
-01
-09
-ea
-09
-e9
-09
-e2
-09
-b6
-09
-b5
-09
-cd
-09
-b7
-0a
-23
-02
-0a
-8a
-01
-0a
-94
-01
-0a
-2a
-02
-0a
-92
-01
-0a
-21
-02
-0a
-24
-02
-0a
-07
-03
-0a
-ae
-01
-09
-70
-09
-6f
-09
-30
-09
-b8
-0a
-25
-02
-0a
-26
-02
-0a
-27
-02
-81
-02
-c0
-05
-01
-09
-06
-a1
-01
-85
-02
-75
-01
-95
-08
-05
-07
-19
-e0
-29
-e7
-15
-00
-25
-01
-81
-02
-95
-01
-75
-08
-81
-03
-95
-05
-75
-01
-05
-08
-19
-01
-29
-05
-91
-02
-95
-01
-75
-03
-91
-03
-95
-06
-75
-08
-15
-00
-26
-ff
-00
-05
-07
-19
-00
-2a
-ff
-00
-81
-00
-c0
-05
-01
-09
-80
-a1
-01
-85
-04
-15
-00
-25
-01
-75
-01
-95
-03
-19
-81
-29
-83
-81
-02
-95
-01
-75
-05
-81
-03
-c0
\ No newline at end of file
Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/sched/mouse.dat
===================================================================
--- /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/sched/mouse.dat	(revision 5679)
+++ /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/sched/mouse.dat	(nonexistent)
@@ -1,705 +0,0 @@
-mem_mouse_flag:
-#mouse flag byte1
-#bit0 MOUSE_SELECT_DEVICE_FLAG
-#bit1 MOUSE_24G_PAIRING_FLAG
-#bit2 MOUSE_STORE_EEPROM_FLAG
-#bit3 MOUSE_BT_CANNEL_RECONN_FLAG
-#bit4 MOUSE_LOW_VOLTAGE_FLAG
-#bit5 MOUSE_BT_DISCOVERY_BUTTON_DOWN_FLAG
-#bit6 MOUSE_BT_DISCOVERY_BUTTON_LONG_DOWN_FLAG
-#bit7 MOUSE_ENABLE_SPI2
-04
-
-#mouse flag byte2
-#bit0 MOUSE_ENABLE_BLE_RANDOM_ADDRE
-#bit1 MOUSE_ENABLE_2K_EEPROM
-#bit2 MOUSE_ENABLE_WAKEUP_FROM_POWER
-#bit3 MOUSE_ENABLE_16M
-#bit4 MOUSE_ENABLE_USB
-#bit5 MOUSE_ENABLE_24G_SEARCH_DONGLE
-#bit6 MOUSE_ENABLE_LOAD_AND_STORE_DPI
-#bit7 MOUSE_ENABLE_24G
-85
-
-#mouse flag byte3
-#bit0 MOUSE_ENABLE_FLASH
-#bit1 MOUSE_ENABLE_EEPROM
-#bit2 MOUSE_ENABLE_OTP
-#bit3 MOUSE_ENABLE_ADC
-#bit4 MOUSE_ENABLE_KEYBOARD
-#bit5 MOUSE_ENABLE_DOUBLE_DPI_KEY
-#bit6 MOUSE_ENABLE_SWITCH_GPIO_CONNECT_VIN
-12
-
-#mouse flag byte4
-#bit0 MOUSE_ENABLE_24G_250Hz
-#bit1 MOUSE_ENABLE_24G_500Hz
-#bit2 MOUSE_ENABLE_24G_1000
-#bit3 MOUSE_ENABLE_BT_125Hz
-#bit4 MOUSE_ENABLE_DPI_LEVEL_4
-#bit5 MOUSE_ENABLE_USB_250
-#bit6 MOUSE_ENABLE_USB_500
-#bit7 MOUSE_ENABLE_USB_1000
-01
-
-#mouse flag byte5
-#bit0 MOUSE_ENABLE_1IO2LED
-#bit1 MOUSE_ENABLE_BT_RECONN_LED_EFFECT
-#bit2 MOUSE_ENABLE_LOW_LED_BLINK_LIMIT
-#bit3 MOUSE_ENABLE_LOW_LED
-#bit4 MOUSE_ENABLE_LOW_FOR_LED
-#bit5 MOUSE_ENABLE_DPI_FOR_LED
-02
-
-#mouse flag byte6 
-#bit0 MOUSE_ENABLE_SELECT_DEVICE_BY_DPI_BUTTON
-#bit1 MOUSE_ENABLE_SELECT_DEVICE_BY_PB_BUTTON
-#bit2 MOUSE_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO
-#bit3 MOUSE_ENABLE_DPI_KEY_CONNECT_GND
-#bit4 MOUSE_ENABLE_ANOTHER_DPI_KEY_CONNECT_GND
-#bit5 MOUSE_ENABLE_PB_BUTTON_CONNECT_GND
-#bit6 MOUSE_ENABLE_FIRE_KEY_CONNECT_GND
-#bit7 MOUSE_ENABLE_CUSTOMER_KEY_CONNECT_VIN
-22
-
-#mouse flag byte7
-#bit0 MOUSE_ENABLE_AUTO_24G_PARING
-#bit1 MOUSE_ENABLE_24G_POWER_ON_PAIRING
-#bit2 MOUSE_ENABLE_COMMBINATION_KEY_BY_24G_PAIRING
-#bit3 MOUSE_ENABLE_BT_RECONNECT_TIMEOUT_ENTER_DISCOVERY
-#bit4 MOUSE_ENABLE_PB_BUTTON_SHORT_PRESS_ENTER_DISCOVERY
-#bit5 MOUSE_ENABLE_COMMBINATION_KEY_BY_BT_DISCOVERY
-#bit6 MOUSE_ENABLE_DPI_KEY_LONG_PRESS_DISCONVERY
-#bit7 MOUSE_ENABLE_PB_BUTTON_LONG_PRESS_DISCONVERY
-82
-
-#mouse flag byte8
-#bit0 MOUSE_ENABLE_SMOOTHER
-#bit1 MOUSE_ENABLE_XY_OFFSET
-#bit2 MOUSE_ENABLE_24G_AUTO_PAIR_NERVER_BEEN_PAIRED
-#bit3 MOUSE_ENABLE_LE_BATTERY_SERVICE_CANCEL
-#bit4 MOUSE_ENABLE_WHEEL_WAKE_UP_CANCEL
-#bit5 MOUSE_ENABLE_24G_2M_PHY
-#bit6 MOUSE_ENABLE_24G_FIRST_AUTO_PAIRING
-17
-
-
-mem_device_switch_gpio:ff
-mem_device_reuse_2ice_gpio:05
-mem_sensor_motion_gpio:ff
-mem_whee_a_data_gpio:0b
-mem_whee_b_data_gpio:0a
-
-mem_mouse_param_config:
-0e #mem_lbutton_gpio
-08 #mem_mbutton_gpio
-0f #mem_rbutton_gpio
-ff #mem_bk_button_gpio
-ff #mem_fw_button_gpio
-ff #mem_dpi_button_gpio
-16 #mem_mouse_sensor_sclk_gpio
-17 #mem_mouse_sensor_sdio_gpio
-ff #mem_select_sensor_angle_gpio
-02 #mem_sensor_angle_default
-02 #mem_sensor_angle_gnd
-02 #mem_sensor_angle_vin
-00 #mem_config_sensor_dpi	#power on default dpi 00--1200  01--1600
-ff #mem_whee_ta_data_gpio
-ff #mem_whee_tb_data_gpio
-12 #mem_matrix_public_gpio
-07#mem_config_select_device_button_gpio
-ff #mem_customer_key_gpio
-ff #mem_firebutton_gpio
-ff #mem_dpi_another_button_gpio
-09 #mem_mouse_logo_led_gpio
-01 #mem_mouse_1io2led_multi_24gled
-00 #mem_mouse_1io2led_multi_bt1led
-03 #mem_mouse_1io2led_multi_bt2led
-ff #mem_mouse_low_voltage_alarm_gpio
-ff #mem_mouse_dpi_gpio
-
-#mouse sensor angle
-#0x00 MOUSE_6CLK_ANGLE
-#0X01 MOUSE_9CLK_ANGLE
-#0X02 MOUSE_12CLK_ANGLE
-#0X03 MOUSE_3CLK_ANGLE
-
-
-#1io2led multi start
-#time parm
-mem_mouse_le_reconn_blink_limit:00		#00:disable 	01:enable
-mem_mouse_multi_led_powon_timer_init:0a	#1s
-mem_mouse_multi_24gled_blink_timer_init:05			#24gled blink time		500ms on,500ms off
-mem_mouse_multi_le_discovery_blink_timer_init:02		#le discovery blink time	500ms on,500ms off
-mem_mouse_multi_le_reconn_blink_timer_init:05			#le reconn blink time		500ms on,500ms off
-mem_mouse_low_led_blink_timer:14				#low blink time			1000ms on,1000ms off
-mem_mouse_dpi_led_blink_timer_init:02			#dpi blink time			200ms on,200ms off
-#blink count=count/2
-mem_mouse_multi_24gled_blink_count_init:02		#24g count
-mem_mouse_multi_le_reconn_blink_count_init:06	#le reconn count
-mem_mouse_multi_lowled_blink_count_init:0a		#low count=count
-mem_mouse_dpi_led_delay_count_init:0a		#1s
-#1io2led multi end
-
-#time parm
-mem_mouse_logo_led_on_time_init:58 02	#1min
-mem_device_24g_pair_timeout_init:58 02  #60s	    24g reconn timer&pair timer
-mem_device_24g_reconn_timeout_init:64 #10s
-mem_device_24g_power_on_fast_conn_timer:05 00	#500ms
-mem_device_direct_timeout:64  #10s
-mem_device_discovery_timeout:b0 04	#2min
-mem_device_fast_direct_timeout:0a #1s
-mem_device_no_data_timeout:70 17   #10mins
-
-#device parm
-mem_device_option:08
-mem_device_number:03   #01:only 2.4g   02:2.4g+ble    03:2.4g+ble+ble
-
-mem_lpm_mode:01
-mem_lpm_mult:20
-mem_lpm_mult_init:20
-
-mem_device_set_analog_bit_set:00 00 00
-
-mem_device_flag:
-00		#00--24g 01--bt
-34
-ff ff ff ff ff ff			#eeprom need
-mem_device2_type:
-34
-ff ff ff ff ff ff			#eeprom need
-mem_device3_type:
-34
-ff ff ff ff ff ff			#eeprom need
-
-mem_mouse_key_information_start:
-03 00 20 20 00
-03 00 22 22 00
-03 00 30 23 00
-
-mem_customer_key_press_init:
-# 05 00 01 00 00 00 00 00 00 00#AC Home
-#05 00 00 02 00 00 00 00 00 00#Volume Down
-#05 00 00 04 00 00 00 00 00 00#Volume Up
-#00 0a 00 72 00 00 00 00 00#copilot=win+shift+f23
-#00 05 00 04 00 00 00 00 00#CTRL+ALT+A
-#02 01 00 00 00 00 00 00 00 #POWERDOWN
-00 08 00 07 00 00 00 00 00#One-click desktop
-#03 ea 00 00 00 00 00 00 00 #VOL DOWN
-
-#bit0:mouse_key_l    bit1:mouse_key_r  bit2:mouse_key_m
-mem_mouse_commbination_key_24g:03
-mem_mouse_commbination_key_bt:07
-mem_mouse_commbination_key_dpi:ff
-mem_mouse_commbination_key_select_device:ff
-mem_mouse_commbination_dpi_timer:1e	#3s
-mem_mouse_commbination_select_device_timer:1e	#3s
-
-mem_store_key_info_delay_timer_init:05
-#ui
-mem_ui_button_timeout:1e
-
-#2.4g
-mem_24g_lap: 24 62 81 a1 51 61
-mem_24g_fast_conn_enable:01
-mem_24g_fast_conn_addr:0f 0f 0f 0f
-mem_24g_long_sleep_set_level:02    #00--30ms   01--50ms  02--80ms  03--100ms
-mem_24g_rx_window:c0 12     #400us  ## e0 2e#1ms #transmitter long range min:520us
-
-mem_mouse_24g_fast_hop_count_2ms:09	#report 500hz
-mem_mouse_24g_tsniff_2ms:c0 5d 00 00
-
-mem_mouse_24g_short_sleep_set_4ms:6a 63 00	#1662us
-mem_mouse_24g_long_sleep_set_4ms:80 bb 00
-mem_mouse_24g_tsniff_4ms:f8 bb 00 00
-
-mem_mouse_24g_short_sleep_set_8ms:1c 1f 01
-mem_mouse_24g_long_sleep_set_8ms:00 77 01
-mem_mouse_24g_tsniff_8ms:00 77 01 00
-
-mem_device_24g_pair_tx_power:94 #-20dBm
-mem_24g_enter_hibernate:00 48 60
-mem_24g_long_sleep_param_update_timer_init:05 00	#500ms
-mem_24g_transmit_by_interrupt_exit_count_init:50 00
-mem_device_24g_search_dongle_time_init:64 00	#10s
-mem_store_information_delay_timer_init:01
-
-mem_mouse_long_mult_count:02
-
-#ble
-mem_le_lap:34 47 29 51 31 41
-mem_le_adv_channel_map:07
-mem_local_rx_max_octets:fb 00 48 08 fb 00 48 08  # 1b
-mem_le_battery_level_updata_timer_init:96 00
-
-mem_le_keyboard_handle:1b 00
-mem_le_notify_handle:1f 00
-mem_le_multimedia_handle:23 00
-mem_le_systemctrl_handle:27 00
-mem_le_pairing_handle:39 00#2d 00
-mem_le_battery_level_handle:13 00#3b 00 #30 00
-
-mem_le_protocol_rx_handle:36 00
-mem_le_protocol_tx_handle:2e 00
-mem_le_audio_tx_handle:32 00
-
-mem_le_adv_data_len:1f
-mem_le_adv_data:
-#flag
-02 01 05 
-#uuid
-03 03 12 18 
-#appearance
-03 19 c2 03
-
-mem_le_adv_swift_pair:
-#microsoft swift pair
-06 ff 06 00 03 00 80	
-#name
-'\09AI Mouse
-
-mem_le_scan_data_len:1f
-mem_le_scan_data:
-#name
-'\09AI Mouse
-
-
-mem_le_name_len:
-'AI Mouse
-
-mem_le_name_patch_len:	#max 18bytes
-'AI Mouse
-
-mem_le_interval_min:
-06 00 #min interval
-09 00 #max interval
-20 00 #latency
-2c 01 #timeout
-
-
-mem_le_adv_ind:03 12 18
-mem_le_adv_direct_ind:ff 00 00
-
-mem_flash_base:00 50 00
-mem_eeprom_base:80 3a
-mem_eeprom_block_size:80
-mem_eeprom_att_list_base:00 34
-
-#zcode
-mem_zcode_current_number:ff
-mem_xip_flash_offset:00 00
-mem_zcode_head:20 20 00 40
-mem_eeprom_start_addr:00 00
-
-#usb
-mem_usb_offline_check_gpio:ff
-
-#rf
-mem_tx_power:01	#00--0db 01--3db  02--5db  03--f3db  04--f5db
-mem_rssi_buff_index:07
-mem_rssi_signal_buf_ptr:mem_mouse_rssi_signal_buf
-mem_rssi_dis_min_24g_init:85
-mem_rssi_dis_max_24g_init:90
-mem_rssi_dis_min_ble_init:75
-mem_rssi_dis_max_ble_init:80
-mem_rssi_hex_received_max_value_init:63
-mem_power_ctrl_pac_succ_cnt_init:7d
-
-#adc config
-mem_adc_reference_mode:01 #01 reference 3v 02:reference 1.8v
-mem_adc_config_flag:02
-#01 ADC_CONFIG_HVIN
-#02 ADC_CONFIG_GPIO
-mem_adc_clkdiv:0a
-mem_adc_channel:09
-#00 ADC_CH_VBAT
-#01 ADC_CH_VDCDC5V
-#06 ADC_CH_GPIO18
-#07 ADC_CH_GPIO10
-#08 ADC_CH_GPIO9
-#09 ADC_CH_GPIO12
-#0a ADC_CH_GPIO6
-#0b ADC_CH_GPIO20
-#0c ADC_CH_GPIO21
-#0d ADC_CH_GPIO22
-#0e ADC_CH_GPIO13
-
-#adc
-mem_device_vdd_full_vol:94 00		#1.5V
-78 00#mem_device_vdd_empty_vol  :0.9V
-80 00#mem_device_vdd_low_vol   :1.0V
-#mem_device_vdd_full_vol:e4 0c		#3.3V
-#b8 0b#mem_device_vdd_empty_vol  :3.0V
-#80 0c#mem_device_vdd_low_vol   :3.2V
-
-mem_adc_channel_gpio:0c
-#04
-#02
-#01
-#03
-#00
-#05
-#06
-#07
-
-# rf debug
-#bit7:0 means disable rf debug function
-#mem_rf_debug_rx_gpio:87
-#mem_rf_debug_tx_gpio:88
-
-mem_power_ctrl_disable:01
-
-##########################g24 addr #################################
-mem_24g_pair_addr_new:25 20 15 10
-mem_24g_ch_map_update:01   #00--disable   01--enable
-mem_24g_ch_update_map1:06 1a 3a 4d
-mem_24g_ch_update_map2:00 13 23 4c
-mem_24g_ch_update_map3:0f 2c 31 43 
-mem_24g_ch_update_map4:11 15 36 48
-
-##########################UART INIT#################################
-#mem_app_uart_tx_gpio:07
-#mem_app_uart_rx_gpio:ff
-#mem_app_uart_baud_rate:10 00	#d0=115200 10=1500000
-#mem_app_uart_tx_buff_sptr:mem_app_uart_tx_buff_start
-#mem_app_uart_tx_buff_eptr:mem_app_uart_tx_buff_end
-#mem_app_uart_rx_buff_sptr:mem_app_uart_rx_buff_start
-#mem_app_uart_rx_buff_eptr:mem_app_uart_rx_buff_end
-
-
-###########################auth data#######################
-# mem_ms_auth_appkey:01 75 38 42 73 58 98
-# mem_ms_auth_secret:
-# 1d a3 f4 a9 f4 fc 5a a6
-# 38 15 91 9c 51 65 e6 9e 
-mem_ms_auth_appkey:01762937930976
-mem_ms_auth_secret:
-ff4a26375061bfd116bdcf3f77d31695
-
-#msm_ms_auth_sn:11 22 33 44 55 66
-#mem_ms_auth_chip_id:00 01
-mem_ms_version:01
-
-mem_mouse_device_type:
-'YC-AI-Mouse
-
-###########################audio demo#######################
-mem_ms_le_interval_min_voice:
-06 00 #min interval
-06 00 #max interval
-2b 00 #latency
-90 01 #timeout
-
-mem_ms_le_interval_min_new:
-06 00 #min interval
-09 00 #max interval
-20 00 #latency
-2c 01 #timeout
-
-mem_ms_audio_key_gpio:08
-mem_ms_one_pullup_key_gpio:0f
-mem_ms_transmit_key_gpio:0e
-
-mem_adc_dma_enable:00
-
-#mem_queue_ptr:mem_g_queue_each_size
-#mem_g_queue_each_size:01 20
-
-mem_adc_audio_saddr_ptr:mem_voice_raw_start
-mem_adc_audio_eaddr_ptr:mem_voice_raw_end
-
-mem_ad_indexTable1:ff ff ff ff 02 04 06 08 ff ff ff ff 02 04 06 08
-
-mem_ad_stepsizeTable1:
-07 00 00 00
-08 00 00 00
-09 00 00 00
-0a 00 00 00
-0b 00 00 00
-0c 00 00 00
-0d 00 00 00
-0e 00 00 00
-10 00 00 00
-11 00 00 00
-13 00 00 00
-15 00 00 00
-17 00 00 00
-19 00 00 00
-1c 00 00 00
-1f 00 00 00
-22 00 00 00
-25 00 00 00
-29 00 00 00
-2d 00 00 00
-32 00 00 00
-37 00 00 00
-3c 00 00 00
-42 00 00 00
-49 00 00 00
-50 00 00 00
-58 00 00 00
-61 00 00 00
-6b 00 00 00
-76 00 00 00
-82 00 00 00
-8f 00 00 00
-9d 00 00 00
-ad 00 00 00
-be 00 00 00
-d1 00 00 00
-e6 00 00 00
-fd 00 00 00
-17 01 00 00
-33 01 00 00
-51 01 00 00
-73 01 00 00
-98 01 00 00
-c1 01 00 00
-ee 01 00 00
-20 02 00 00
-56 02 00 00
-92 02 00 00
-d4 02 00 00
-1c 03 00 00
-6c 03 00 00
-c3 03 00 00
-24 04 00 00
-8e 04 00 00
-02 05 00 00
-83 05 00 00
-10 06 00 00
-ab 06 00 00
-56 07 00 00
-12 08 00 00
-e0 08 00 00
-c3 09 00 00
-bd 0a 00 00
-d0 0b 00 00
-ff 0c 00 00
-4c 0e 00 00
-ba 0f 00 00
-4c 11 00 00
-07 13 00 00
-ee 14 00 00
-06 17 00 00
-54 19 00 00
-dc 1b 00 00
-a5 1e 00 00
-b6 21 00 00
-15 25 00 00
-ca 28 00 00
-df 2c 00 00
-5b 31 00 00
-4b 36 00 00
-b9 3b 00 00
-b2 41 00 00
-44 48 00 00
-7e 4f 00 00
-71 57 00 00
-2f 60 00 00
-ce 69 00 00
-62 74 00 00
-ff 7f 00 00 
-
-# ###########################ble report map#######################
-# mem_ui_le_uuid_table_new:
-# 01 00 02 00 28 02 00 18 
-# 02 00 02 03 28 01 0a
-# 03 00 02 00 2a 14 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-# 04 00 02 03 28 01 02 05 00 02 01 2a 02 c2 03
-# 06 00 02 03 28 01 02 07 00 02 04 2a 08 06 00 06 00 64 00 2c 01
-# 08 00 02 00 28 02 01 18 09 00 02 03 28 01 20
-# 0a 00 02 05 2a 00 0b 00 02 02 29 02 00 00
-# 0c 00 02 00 28 02 0a 18 0d 00 02 03 28 01 02
-# 0e 00 02 29 2a 06 59 69 43 68 69 70 0f 00 02 03 28 01 02
-# 10 00 02 50 2a 07 02 8a 24 bb c0 01 00 
-
-# 11 00 02 00 28 02 0f 18
-# 12 00 02 03 28 01 12
-# 13 00 02 19 2a 01 64
-# 14 00 02 02 29 02 00 00
-# 15 00 02 03 28 01 04
-# 16 00 02 4c 2a 00
-
-# 17 00 02 00 28 02 12 18
-# 18 00 02 03 28 01 06 
-# 19 00 02 4e 2a 01 01
-# 1a 00 02 03 28 01 12 
-# 1b 00 02 4d 2a 08 00 00 00 00 00 00 00 00
-# 1c 00 02 02 29 02 00 00 
-# 1d 00 02 08 29 02 02 01
-# 1e 00 02 03 28 01 1a 
-# 1f 00 02 4d 2a 07 00 00 00 00 00 00 00
-# 20 00 02 02 29 02 00 00 
-# 21 00 02 08 29 02 01 01
-# 22 00 02 03 28 01 12 
-# 23 00 02 4d 2a 02 00 00
-# 24 00 02 02 29 02 00 00 
-# 25 00 02 08 29 02 05 01
-# 26 00 02 03 28 01 12 
-# 27 00 02 4d 2a 02 00 00
-# 28 00 02 02 29 02 00 00 
-# 29 00 02 08 29 02 04 01
-# 2a 00 02 03 28 01 0e 
-# 2b 00 02 4d 2a 02 00 00 
-# 2c 00 02 08 29 02 02 02
-
-# 2d 00 02 03 28 01 12
-# 2e 00 02 4d 2a 02 00 00
-# 2f 00 02 02 29 02 00 00
-# 30 00 02 08 29 02 C0 01
-# 31 00 02 03 28 01 12
-# 32 00 02 4d 2a 02 00 00
-# 33 00 02 02 29 02 00 00
-# 34 00 02 08 29 02 CC 01
-# 35 00 02 03 28 01 0e
-# 36 00 02 4d 2a 02 00 00
-# 37 00 02 08 29 02 C0 02
-
-# 38 00 02 03 28 01 1a
-# 39 00 02 33 2a 08 00 00 00 00 00 00 00 00
-# 3a 00 02 02 29 02 01 00
-# 3b 00 02 03 28 01 02
-# 3c 00 02 4a 2a 04 01 01 00 03
-
-# 3d 00 02 03 28 01 02 3e 00 02 4b 2a 20 01
-# 05 0C        # Usage Page (Consumer)
-# 09 01        # Usage (Consumer Control)
-# A1 01        # Collection (Application)
-# 85 05        # Report ID (5)
-# 15 00        # Logical Minimum (0)
-# 25 01        # Logical Maximum (1)
-# 75 01        # Report Size (1)
-# 95 18        # Report Count (24)
-# 0A 83 01     # Usage (AL Consumer Control Configuration)
-# 09 EA        # Usage (Volume Decrement)
-# 09 E9        # Usage (Volume Increment)
-# 09 E2        # Usage (Mute)
-# 09 B6        # Usage (Scan Previous Track)
-# 09 B5        # Usage (Scan Next Track)
-# 09 CD        # Usage (Play/Pause)
-# 09 B7        # Usage (Stop)
-# 0A 23 02     # Usage (AC Home)
-# 0A 8A 01     # Usage (AL Email Reader)
-# 0A 94 01     # Usage (AL Local Machine Browser)
-# 0A 2A 02     # Usage (AC Bookmarks)
-# 0A 92 01     # Usage (AL Calculator)
-# 0A 21 02     # Usage (AC Search)
-# 0A 24 02     # Usage (AC Back)
-# 0A 07 03     # Usage (0307)
-# 0A AE 01     # Usage (AL Keyboard Layout)
-# 09 70        # Usage (70)
-# 09 6F        # Usage (6F)
-# 09 30        # Usage (Power)
-# 09 B8        # Usage (Eject)
-# 0A 25 02     # Usage (AC Forward)
-# 0A 26 02     # Usage (AC Stop)
-# 0A 27 02     # Usage (AC Refresh)
-# 81 02        # Input (DataVarAbsNo WrapLinearPreferred StateNo Null Position)
-# C0           # End Collection
-# 05 01        # Usage Page (Generic Desktop Ctrls)
-# 09 06        # Usage (Keyboard)
-# A1 01        # Collection (Application)
-# 85 02        # Report ID (2)
-# 75 01        # Report Size (1)
-# 95 08        # Report Count (8)
-# 05 07        # Usage Page (Kbrd/Keypad)
-# 19 E0        # Usage Minimum (E0)
-# 29 E7        # Usage Maximum (E7)
-# 15 00        # Logical Minimum (0)
-# 25 01        # Logical Maximum (1)
-# 81 02        # Input (DataVarAbsNo WrapLinearPreferred StateNo Null Position)
-# 95 01        # Report Count (1)
-# 75 08        # Report Size (8)
-# 81 03        # Input (ConstVarAbsNo WrapLinearPreferred StateNo Null Position)
-# 95 05        # Report Count (5)
-# 75 01        # Report Size (1)
-# 05 08        # Usage Page (LEDs)
-# 19 01        # Usage Minimum (Num Lock)
-# 29 05        # Usage Maximum (Kana)
-# 91 02        # Output (DataVarAbsNo WrapLinearPreferred StateNo Null PositionNon-volatile)
-# 95 01        # Report Count (1)
-# 75 03        # Report Size (3)
-# 91 03        # Output (ConstVarAbsNo WrapLinearPreferred StateNo Null PositionNon-volatile)
-# 95 06        # Report Count (6)
-# 75 08        # Report Size (8)
-# 15 00        # Logical Minimum (0)
-# 26 FF 00     # Logical Maximum (255)
-# 05 07        # Usage Page (Kbrd/Keypad)
-# 19 00        # Usage Minimum (00)
-# 2A FF 00     # Usage Maximum (FF)
-# 81 00        # Input (DataArrayAbsNo WrapLinearPreferred StateNo Null Position)
-# C0           # End Collection
-# 05 01        # Usage Page (Generic Desktop Ctrls)
-# 09 02        # Usage (Mouse)
-# A1 01        # Collection (Application)
-# 85 01        # Report ID (1)
-# 09 01        # Usage (Pointer)
-# A1 00        # Collection (Physical)
-# 05 09        # Usage Page (Button)
-# 19 01        # Usage Minimum (01)
-# 29 08        # Usage Maximum (08)
-# 15 00        # Logical Minimum (0)
-# 25 01        # Logical Maximum (1)
-# 75 01        # Report Size (1)
-# 95 08        # Report Count (8)
-# 81 02        # Input (DataVarAbsNo WrapLinearPreferred StateNo Null Position)
-# 05 01        # Usage Page (Generic Desktop Ctrls)
-# 09 30        # Usage (X)
-# 09 31        # Usage (Y)
-# 16 01 F8     # Logical Minimum (-2047)
-# 26 FF 07     # Logical Maximum (2047)
-# 75 10        # Report Size (16)
-# 95 02        # Report Count (2)
-# 81 06        # Input (DataVarRelNo WrapLinearPreferred StateNo Null Position)
-# 09 38        # Usage (Wheel)
-# 15 81        # Logical Minimum (-127)
-# 25 7F        # Logical Maximum (127)
-# 75 08        # Report Size (8)
-# 95 01        # Report Count (1)
-# 81 06        # Input (DataVarRelNo WrapLinearPreferred StateNo Null Position)
-# 05 0C        # Usage Page (Consumer)
-# 0A 38 02     # Usage (AC Pan)
-# 95 01        # Report Count (1)
-# 81 06        # Input (DataVarRelNo WrapLinearPreferred StateNo Null Position)
-# C0           # End Collection
-# C0           # End Collection
-# 05 01        # Usage Page (Generic Desktop Ctrls)
-# 09 80        # Usage (Sys Control)
-# A1 01        # Collection (Application)
-# 85 04        # Report ID (4)
-# 15 00        # Logical Minimum (0)
-# 25 01        # Logical Maximum (1)
-# 75 01        # Report Size (1)
-# 95 03        # Report Count (3)
-# 19 81        # Usage Minimum (Sys Power Down)
-# 29 83        # Usage Maximum (Sys Wake Up)
-# 81 02        # Input (DataVarAbsNo WrapLinearPreferred StateNo Null Position)
-# 95 01        # Report Count (1)
-# 75 05        # Report Size (5)
-# 81 03        # Input (ConstVarAbsNo WrapLinearPreferred StateNo Null Position)
-# C0              # End Collection
-# 06 01 FF  # Usage Page (Vendor Defined FF01)
-# 09 01        # Usage (01)
-# A1 01        # Collection (Application)
-# 15 00        #   Logical Minimum (0)
-# 26 FF 00  #   Logical Maximum (255)
-# 75 08        #   Report Size (8)
-# 85 C0        #   Report ID (-64)
-# 95 3f        #   Report Count (63)
-# 09 02        #   Usage (02)
-# 81 00        #   Input (DataArrayAbsNo WrapLinearPreferred StateNo Null Position)
-# 95 3f        #   Report Count (63)
-# 09 03        #   Usage (03)
-# 91 02        #   Output (DataVarAbsNo WrapLinearPreferred StateNo Null PositionNon-volatile)
-# 85 CC        #   Report ID (-52)
-# 95 3f        #   Report Count (63)
-# 09 04        #   Usage (04)
-# 81 00        #   Input (DataArrayAbsNo WrapLinearPreferred StateNo Null Position)
-# 95 04        #   Report Count (4)
-# 09 05        #   Usage (05)
-# 91 02        #   Output (DataVarAbsNo WrapLinearPreferred StateNo Null PositionNon-volatile)
-# C0              # End Collection
-# # 288 bytes
-# 00 00
-# #811byte
Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/sched/mouse_ble_att_list.dat
===================================================================
--- /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/sched/mouse_ble_att_list.dat	(revision 5679)
+++ /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/sched/mouse_ble_att_list.dat	(nonexistent)
@@ -1,682 +0,0 @@
-01
-00
-02
-00
-28
-02
-00
-18
-02
-00
-02
-03
-28
-01
-0a
-03
-00
-02
-00
-2a
-14
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-04
-00
-02
-03
-28
-01
-02
-05
-00
-02
-01
-2a
-02
-c2
-03
-06
-00
-02
-03
-28
-01
-02
-07
-00
-02
-04
-2a
-08
-06
-00
-06
-00
-64
-00
-2c
-01
-08
-00
-02
-00
-28
-02
-01
-18
-09
-00
-02
-03
-28
-01
-20
-0a
-00
-02
-05
-2a
-00
-0b
-00
-02
-02
-29
-02
-00
-00
-0c
-00
-02
-00
-28
-02
-0a
-18
-0d
-00
-02
-03
-28
-01
-02
-0e
-00
-02
-29
-2a
-06
-59
-69
-43
-68
-69
-70
-0f
-00
-02
-03
-28
-01
-02
-10
-00
-02
-50
-2a
-07
-02
-35
-12
-22
-aa
-01
-00
-11
-00
-02
-00
-28
-02
-12
-18
-12
-00
-02
-03
-28
-01
-06
-13
-00
-02
-4e
-2a
-01
-01
-14
-00
-02
-03
-28
-01
-12
-15
-00
-02
-4d
-2a
-08
-00
-00
-00
-00
-00
-00
-00
-00
-16
-00
-02
-02
-29
-02
-00
-00
-17
-00
-02
-08
-29
-02
-02
-01
-18
-00
-02
-03
-28
-01
-1a
-19
-00
-02
-4d
-2a
-07
-00
-00
-00
-00
-00
-00
-00
-1a
-00
-02
-02
-29
-02
-00
-00
-1b
-00
-02
-08
-29
-02
-01
-01
-1c
-00
-02
-03
-28
-01
-12
-1d
-00
-02
-4d
-2a
-02
-00
-00
-1e
-00
-02
-02
-29
-02
-00
-00
-1f
-00
-02
-08
-29
-02
-03
-01
-20
-00
-02
-03
-28
-01
-12
-21
-00
-02
-4d
-2a
-02
-00
-00
-22
-00
-02
-02
-29
-02
-00
-00
-23
-00
-02
-08
-29
-02
-04
-01
-24
-00
-02
-03
-28
-01
-0e
-25
-00
-02
-4d
-2a
-02
-00
-00
-26
-00
-02
-08
-29
-02
-02
-02
-27
-00
-02
-03
-28
-01
-02
-28
-00
-02
-4b
-2a
-f5
-05
-0c
-09
-01
-a1
-01
-85
-05
-15
-00
-25
-01
-75
-01
-95
-18
-0a
-83
-01
-09
-ea
-09
-e9
-09
-e2
-09
-b6
-09
-b5
-09
-cd
-09
-b7
-0a
-23
-02
-0a
-8a
-01
-0a
-94
-01
-0a
-2a
-02
-0a
-92
-01
-0a
-21
-02
-0a
-24
-02
-0a
-07
-03
-0a
-ae
-01
-09
-70
-09
-6f
-09
-30
-09
-b8
-0a
-25
-02
-0a
-26
-02
-0a
-27
-02
-81
-02
-c0
-05
-01
-09
-06
-a1
-01
-85
-02
-75
-01
-95
-08
-05
-07
-19
-e0
-29
-e7
-15
-00
-25
-01
-81
-02
-95
-01
-75
-08
-81
-03
-95
-05
-75
-01
-05
-08
-19
-01
-29
-05
-91
-02
-95
-01
-75
-03
-91
-03
-95
-06
-75
-08
-15
-00
-26
-ff
-00
-05
-07
-19
-00
-2a
-ff
-00
-81
-00
-c0
-05
-01
-09
-02
-a1
-01
-85
-01
-09
-01
-a1
-00
-05
-09
-19
-01
-29
-08
-15
-00
-25
-01
-75
-01
-95
-08
-81
-02
-05
-01
-09
-30
-09
-31
-16
-01
-f8
-26
-ff
-07
-75
-10
-95
-02
-81
-06
-09
-38
-15
-81
-25
-7f
-75
-08
-95
-01
-81
-06
-05
-0c
-0a
-38
-02
-95
-01
-81
-06
-c0
-c0
-05
-01
-09
-80
-a1
-01
-85
-04
-15
-00
-25
-01
-75
-01
-95
-03
-19
-81
-29
-83
-81
-02
-95
-01
-75
-05
-81
-03
-c0
-29
-00
-02
-03
-28
-01
-1a
-2a
-00
-02
-33
-2a
-08
-00
-00
-00
-00
-00
-00
-00
-00
-2b
-00
-02
-02
-29
-02
-01
-00
-2c
-00
-02
-03
-28
-01
-02
-2d
-00
-02
-4a
-2a
-04
-01
-01
-00
-03
-2e
-00
-02
-00
-28
-02
-0f
-18
-2f
-00
-02
-03
-28
-01
-12
-30
-00
-02
-19
-2a
-01
-64
-31
-00
-02
-02
-29
-02
-00
-00
-32
-00
-02
-03
-28
-01
-04
-33
-00
-02
-4c
-2a
-00
-00
-00
\ No newline at end of file
Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/sched/mouse_sensor.dat
===================================================================
--- /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/sched/mouse_sensor.dat	(revision 5679)
+++ /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/sched/mouse_sensor.dat	(nonexistent)
@@ -1,182 +0,0 @@
-
-mem_mouse_dpi_seting:
-03##mem_320x_dpi_0  	1200/1300
-04##mem_320x_dpi_1  	1600
-01##mem_320x_dpi_2      800
-02##mem_320x_dpi_3  	1000
-
-20##mem_3212_dpi_0	    1200
-2a##mem_3212_dpi_1	    1600
-3f##mem_3212_dpi_2	    2400
-15##mem_3212_dpi_3  	800
-
-14##mem_ka8g2_dpi_0 	1200
-1b##mem_ka8g2_dpi_1 	1600
-28##mem_ka8g2_dpi_2 	2400
-0e##mem_ka8g2_dpi_3	    800
-
-mem_sensor_s201_dpi:
-8a  ##1200
-8b  ##1600
-83  ##2400
-84  ##3200
-88  ##800
-
-#################sensor parm init#################
-
-mem_sensor_3212_init:
-09 5a
-26 34
-19 04
-09 00
-ff ff
-
-mem_sensor_3204_init:
-09 5a
-0d f0
-1d e3
-7d d2
-ff ff
-
-mem_sensor_3205_init:
-09 5a
-0d 10
-1d ed
-7d 80
-ff ff
-
-mem_sensor_32xx_init:
-1b 35
-28 b4
-29 46
-2a 96
-2b 8c
-2c 6e
-2d 64
-38 5f
-39 0f
-3a 32
-3b 47
-42 10
-ff ff
-
-mem_sensor_32xx_init_1:
-54 2e
-55 f2
-61 f4
-63 70
-75 52 
-76 41
-77 ed
-78 23
-79 46
-7a e5
-7c 48
-7e 77
-7f 01
-0b 00
-7f 00
-09 00
-ff ff
-
-mem_sensor_8650_init_new:
-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
-a7 ff
-b5 d0
-b6 00
-ff 00
-09 00
-ff ff
-
-
-mem_sensor_p6520_init:
-05 b9
-09 5a
-0b 72
-0c 52
-09 00
-ff ff
-
-mem_sensor_ka8ul_init:
-09 5a
-0d 10
-0e c5
-5b 9a
-10 38
-11 42
-28 28
-41 23
-49 39
-4a b0
-4b a0
-4c 90
-4d 70
-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_ka8g2_init:
-09 a5
-26 34
-19 04
-60 07
-69 04
-7d 20
-7e 00
-09 00
-ff ff
-
-mem_sensor_ka5857_init:
-09 a5
-46 34
-6a c0
-69 24
-09 00
-ff ff
-
-mem_sensor_poweron_init:
-09 5a
-0b f3
-09 00
-ff ff
-
-mem_sensor_ka8g2_poweron_init:
-09 a5
-0b f3
-09 00
-ff ff
-
-mem_sensor_ka8g2_init_new:
-09 a5
-46 34
-19 04
-60 07
-69 04
-68 c3
-7d 20   #7d 00  7e 08 淇敼sensor涓婚鍒1M 楂樺洖鎶ョ巼鍒掔嚎宸椂浣跨敤
-7e 00
-09 00
-ff ff
-
-
Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/sched/otp_set.dat
===================================================================
--- /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/sched/otp_set.dat	(revision 5679)
+++ /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/sched/otp_set.dat	(nonexistent)
@@ -1,11 +0,0 @@
-0b
-00
-02
-00
-00
-00
-00
-00
-00
-00
-00
Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/sched/usb_confdata.dat
===================================================================
--- /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/sched/usb_confdata.dat	(revision 5679)
+++ /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/sched/usb_confdata.dat	(nonexistent)
@@ -1,60 +0,0 @@
-3b
-09
-02
-3b
-00
-02
-01
-00
-a0
-32
-09
-04
-00
-00
-01
-03
-01
-01
-00
-09
-21
-00
-02
-00
-01
-22
-1a
-00
-07
-05
-81
-03
-40
-00
-02
-09
-04
-01
-00
-01
-03
-01
-02
-00
-09
-21
-00
-02
-00
-01
-22
-f3
-00
-07
-05
-82
-03
-40
-00
-02
\ No newline at end of file
Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/sched/usb_devicedata.dat
===================================================================
--- /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/sched/usb_devicedata.dat	(revision 5679)
+++ /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/sched/usb_devicedata.dat	(nonexistent)
@@ -1,19 +0,0 @@
-12
-12
-01
-00
-02
-00
-00
-00
-40
-51
-31
-20
-10
-02
-00
-01
-02
-00
-01
\ No newline at end of file
Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/sched/usb_kbdata.dat
===================================================================
--- /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/sched/usb_kbdata.dat	(revision 5679)
+++ /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/sched/usb_kbdata.dat	(nonexistent)
@@ -1,66 +0,0 @@
-41
-05
-01
-09
-06
-a1
-01
-75
-01 
-95
-08
-05
-07
-19
-e0 
-29
-e7
-15
-00
-25
-01
-81
-02
-95
-01 
-75
-08
-81
-03
-95
-05
-75
-01
-05
-08
-19
-01
-29
-05  
-91
-02 
-95
-01  
-75
-03  
-91
-03
-95
-06 
-75
-08 
-15
-00 
-26
-ff
-00
-05
-07
-19
-00
-2a
-ff
-00 
-81
-00
-c0
Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/sched/usb_kbdata_vendor_define.dat
===================================================================
--- /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/sched/usb_kbdata_vendor_define.dat	(revision 5679)
+++ /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/sched/usb_kbdata_vendor_define.dat	(nonexistent)
@@ -1,27 +0,0 @@
-1a
-06
-bc
-ff
-09
-88
-a1
-01
-85
-04
-19
-00
-2a
-ff
-00
-15
-00
-26
-ff
-00
-75
-08
-95
-01
-81
-00
-c0
\ No newline at end of file
Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/sched/usb_msdata.dat
===================================================================
--- /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/sched/usb_msdata.dat	(revision 5679)
+++ /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/sched/usb_msdata.dat	(nonexistent)
@@ -1,244 +0,0 @@
-f3
-05
-01
-09
-02
-a1
-01
-85
-01
-09
-01
-a1
-00
-05
-09
-19
-01
-29
-05
-15
-00
-25
-01
-95
-05
-75
-01
-81
-02
-95
-01
-75
-03
-81
-01
-05
-01
-09
-30
-09
-31
-16
-01
-F8
-26
-FF
-07
-75
-10
-95
-02
-81
-06
-09
-38
-15
-81
-25
-7f
-75
-08
-95
-01
-81
-06
-05
-0c
-0a
-38
-02
-95
-01
-81
-06
-c0
-c0
-05
-01
-09
-80
-a1
-01
-85
-02
-05
-01
-19
-81
-29
-88
-15
-00
-25
-01
-95
-08
-75
-01
-81
-06
-c0
-06
-00
-ff
-09
-0e
-a1
-01
-85
-BA
-95
-1f
-75
-08
-26
-ff
-00
-15
-00
-09
-01
-91
-02
-85
-BA
-95
-1f
-75
-08
-26
-ff
-00
-15
-00
-09
-01
-81
-02
-C0
-05
-0c
-09
-01
-a1
-01
-85
-05
-15
-00
-25
-01
-75
-01
-95
-18
-0a
-83
-01
-09
-ea
-09
-e9
-09
-e2
-09
-b6
-09
-b5
-09
-cd
-09
-b7
-0a
-23
-02
-0a
-8a
-01
-0a
-94
-01
-0a
-2a
-02
-0a
-92
-01
-0a
-21
-02
-0a
-24
-02
-0a
-07
-03
-0a
-ae
-01
-09
-70
-09
-6f
-09
-30
-09
-b8
-0a
-25
-02
-0a
-26
-02
-0a
-27
-02
-81
-02
-c0
-05
-0c
-09
-01
-a1
-01
-85
-03
-15
-00
-26
-80
-03
-19
-00
-2a
-80
-03
-75
-10
-95
-01
-81
-00
-c0
\ No newline at end of file
Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/set_chip_type_flag.bat
===================================================================
--- /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/set_chip_type_flag.bat	(revision 5679)
+++ /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/set_chip_type_flag.bat	(nonexistent)
@@ -1,15 +0,0 @@
-@echo off  
-setlocal enabledelayedexpansion  
-  
-rem YC1305 榧犳爣鍒嗛厤鐨勫彉閲忚寖鍥20-2f
-rem YC1304 榧犳爣鍒嗛厤鐨勫彉閲忚寖鍥30-3f
-rem YC1305 dongle鍒嗛厤鐨勫彉閲忚寖鍥磃0-f7
-rem YC1304 dongle鍒嗛厤鐨勫彉閲忚寖鍥磂8-ee
-rem 鍙橀噺鍒嗛厤鐨勮鍒欎緥濡傦細榧犳爣鐨勶紝1305sa==0x20 1305sb==0x21 1305se==0x24渚濇绫绘帹鍒2f缁撴潫
-rem 鍙橀噺鍒嗛厤鐨勮鍒欎緥濡傦細dongle鐨勶紝1305sa==0xf0 1305sb==0xf1渚濇绫绘帹鍒癴7缁撴潫
-
-rem 瀹氫箟DAT鏂囦欢鐨勮鎻掑叆鐨勫瓧鑺傚拰璺緞鍙婂悕绉帮紝濡傛灉鏄痚eprom.dat鏂囦欢,灏辨妸otp.dat鏀规垚eeprom.dat
-set insertString=24
-echo !insertstring!>>output\otp.dat
-
-echo ok end
\ No newline at end of file
Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/util/crc16.exe
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/util/crc16.exe
___________________________________________________________________
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/util/eeprom2fulleeprom.exe
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/util/eeprom2fulleeprom.exe
___________________________________________________________________
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/util/eeprom2fulleeprom.pl
===================================================================
--- /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/util/eeprom2fulleeprom.pl	(revision 5679)
+++ /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/util/eeprom2fulleeprom.pl	(nonexistent)
@@ -1,18 +0,0 @@
-
-
-
-$source_file = $ARGV[0];
-$eeprom_size = $ARGV[1];
-
-open(EEP,"$source_file") or die("cannot open files");
-for ($i = 1 ;$i<=$eeprom_size*128-2;$i++)
-{
-
-    while (<EEP>) { 
-        $c = hex();
-        printf "%02x\n", $c;
-        $i++;
-    }
-
-	printf "FF\n";
-}
Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/util/eeprom2otp.pl
===================================================================
--- /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/util/eeprom2otp.pl	(revision 5679)
+++ /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/util/eeprom2otp.pl	(nonexistent)
@@ -1,24 +0,0 @@
-
-#鏀瑰墠涓変釜瀛楄妭涓0200锛
-#杈撳叆涓涓枃浠讹紝杈撳嚭涓涓枃浠讹紱
-
-if(@ARGV < 2) {
-	printf "less files\n";
-	exit;
-}
-else{
-	open(file, $ARGV[0]) or die "Can't open  file  : $!"; 
-	open(file_out, ">$ARGV[1]")or die "Can't open out file  : $!"; 
-	@lines = <file>;
-	$length = @lines;
-	
-	my $j=2;
-	print file_out "00\n01\n";
-	while($j<$length){
-			print file_out "$lines[$j]";
-			$j++;
-	}
-#	print "----- reverse end -----";
-	close(file);
-	close(file_out);
-}
Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/util/geneep.exe
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/util/geneep.exe
___________________________________________________________________
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/util/mergepatch.pl
===================================================================
--- /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/util/mergepatch.pl	(revision 5679)
+++ /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/util/mergepatch.pl	(nonexistent)
@@ -1,351 +0,0 @@
-#!/usr/bin/perl
-$defs = "";
-
-sub alloc {
-	my($end, %mc) = @_;
-	my(%eadr) = ();
-	my($tstr, $str, $i, $j, $addr);
-	my($tstr) = "";
-	
-	foreach $i (sort keys %mc) {
-		if($i =~ /(.+)_(.+)/ && exists($eadr{$1})) {
-			$addr = $eadr{$1};
-		} else {
-			$addr = $end;
-		}
-		for($j = 0;$j <= $#{$mc{$i}};$j++) {
-			if($mc{$i}[$j] =~ /^\s*([0-9]+)\s+([a-zA-Z0-9_]+)\s*(.*)$/) {
-				$str = sprintf "0x%04x %s%s\n", $addr, $2, $3;
-				$var{$2} = $addr;
-				$addr += $1;
-				$tstr .= $str;
-			}
-		}
-		$eadr{$i} = $addr;
-	}
-	if($addr > 0x4000) {
-		$xend = $addr if($addr > $xend);
-	} else {
-		$bend = $addr if($addr > $bend);
-	}
-	return $tstr . "\n";
-}
-
-
-sub malloc {
-	$path="output/bt_format.meta";
-	open file, $path;
-	@f = <file>;
-	close file;
-	open file, ">$path";
-	$path =~ s/\/.*//;
-	open file1, ">output/memmap.format";
-	$xaddr = 0x4000;
-	$addr = 0;
-	if($#ARGV == 1) {
-		$addr = hex($ARGV[0]);
-		$xaddr = hex($ARGV[1]);
-	}
-	for($i = 0, $ocnt = 0;$i < @f;$i++) { 
-		$_ = $f[$i];
-		$start = 1 if(/^\s*memalloc\s*\(\s*$/);		# allocate from 0
-		$start = 2 if(/^\s*xmemalloc\s*\(\s*$/);	# allocate from 4000
-		$start = 3 if(/^\s*omemalloc\s*\(\s*$/);	# allocate after all xmemalloc, mutex from each other(obsolete, for compatibility)
-		if(/^\s*([ax]*)memalloc\s+([a-zA-Z_0-9]+)\s*\(\s*$/) {
-			$start = $1 eq 'a' ? 5 : $1 eq 'x' ? 6 : 7;
-			$basev = $2;
-		}
-		if($start) {
-			if(/^\s*([a-zA-Z0-9_]+)\s+([a-zA-Z0-9_]+)\s*(.*)$/ && exists($def2{$1})) {		# macro for size
-				$_ = sprintf("%s %s %s", $def2{$1}, $2, $3);
-			}
-			if(/^\s*([0-9]+)\s+([a-zA-Z0-9_]+)\s*(.*)$/) {
-				if($start == 1) {
-					$str = sprintf "0x%04x %s%s\n", $addr, $2, $3;
-					$var{$2} = $addr;
-					$addr += $1;
-					$bstr .= $str;
-				} elsif($start == 2) {
-					$str = sprintf "0x%04x %s%s\n", $xaddr, $2, $3;
-					$var{$2} = $xaddr;
-					$xaddr += $1;
-					$xstr .= $str;
-				} else {
-					push @ostr, $_;
-				}
-			}
-			if(/^\s*\)\s*$/) {
-				if(@ostr > 0) {
-					if($start == 3) {
-						push @{$xmalloc{$ocnt}}, @ostr;
-						$ocnt++;
-					} elsif($start == 5) {
-						push @aaddr,$basev;
-						push @amalloc,[@ostr];
-					} elsif($start == 6) {
-						push @{$xmalloc{$basev}}, @ostr;
-					} elsif($start == 7) {
-						push @{$malloc{$basev}}, @ostr;
-					} 
-				}
-				$start = 0;
-				@ostr = ();
-			}
-		} else {
-			$def2{$2} = $1 if(/^\s*([0-9]+)\s+([a-zA-Z0-9_]+)\s*(.*)$/);
-			$sstr .= $_;
-		}
-	}
-	
-#--------------------- o/x/memalloc process -----------------------
-	$bend = $addr, $xend = $xaddr;
-	$bstr .= alloc($addr, %malloc);
-	$xstr .= alloc($xaddr, %xmalloc);
-
-#--------------------- amemalloc process -----------------------
-	for($i = 0;$i <= $#aaddr;$i++) {
-		for($j = 0, $addr = $aaddr[$i] =~ /^0x([0-9a-f]+)/ ? hex($1) : $var{$aaddr[$i]};$addr != 0 && $j <= $#{$amalloc[$i]};$j++) {
-			if($amalloc[$i][$j] =~ /^\s*([0-9]+)\s+([a-zA-Z0-9_]+)\s*(.*)$/) {
-				$str = sprintf "0x%04x %s%s\n", $addr, $2, $3;
-				$addr += $1;
-				if($addr < 0x4000) {
-					$bstr .= $str;
-				} else  {
-					$xstr .= $str;
-				}
-			}
-		}
-	}
-
-	
-	print file $bstr, $xstr, $sstr;
-	print file1 $bstr, $xstr;
-	close file;
-	close file1;
-	printf "\nLast allocated address is %04x\n", $bend;
-	printf "\nLast allocated xmem address is %04x\n", $xend;
-}
-
-
-sub getdefs {
-	my($def) = @_;
-	my(@ifdefs) = split(/\s*\|\s*/, $def);
-	my $v = 0;
-	foreach (@ifdefs) {
-		s/\s//g;
-		$v = 1 if($defs =~ /(^|\s)$_(\s|$)/);
-	}
-	return $v;
-}
-
-sub parseif {
-	my($fname) = @_;
-	open file, $fname;
-	@f = <file>;
-	close file;
-	open file, ">$fname";
-	@valid = (1);
-	for($i = 0;$i < @f;$i++) { 
-		$_ = $f[$i];
-		s/\/\*.*\*\///g;
-		$comment = 1 if(/\/\*/ && !/\/\//);
-		if($comment) {
-			$comment = 0 if(/\*\//);
-			next;
-		}
-		if(/^\s*ifdef\s+(.+)$/) {
-			$v = getdefs($1) ? 1 : 0;
-			push @valid, $v & $valid[$#valid];
-		} elsif(/^\s*ifndef\s+(.+)$/) {
-			$v = getdefs($1) ? 0 : 1;
-			push @valid, $v & $valid[$#valid];
-		} elsif(/^\s*else/) {
-			printf "%s\nelse without if at line %d\n", $f[$i - 3], $i if($#valid == 0);
-			if($#valid == 0) {
-				for($j = -10;$j < 10;$j++) {
-					print $f[$i + $j];
-				}
-				last;
- 				$i = $i;
-			}
-			$valid[$#valid] = (1 - $valid[$#valid]) & $valid[$#valid - 1];
-		} elsif(/^\s*endif/) {
-			printf "%s\nendif without if at line %d\n", $_, $i if($#valid == 0);
-			if($#valid == 0) {
-				for($j = -10;$j < 10;$j++) {
-					print $f[$i + $j];
-				}
-				last;
- 				$i = $i;
-			}
-			pop @valid;
-		} elsif($valid[$#valid]) {
-			if(/^include\s+(.+)\s*/) {
-				open file2, "program/$1";
-				@f2 = <file2>;
-				close file2;
-				splice(@f, $i + 1, 0, @f2);
-			} else {
-			if(/^define\s+(\w+)\s*/) {
-				$defs .= $1 . " " 
-			}
-				print file $_;
-			}
-		}
-	}
-	close file;
-}
-
-sub genpatch
-{
-	print "genpatch\n";
-	$patched = 0;
-	open file,"output/bt_program23.meta";
-	while(<file>) {
-		if(/^\s*beq\s+patch([0-9a-f]+)_([0-7]),/) {
-			$a = hex($1), $b = hex($2);
-			$bits[$a] |= 1 << $b;
-			$patched = 1;
-		}
-	}
-	close file;
-	return if(!$patched);
-	open file,"output/sched.rom";
-	@sched = <file>;
-	close file;
-	for($j = 0;$j < 0x40;$j++) { 
-		$s .= sprintf ("%02x   #mem_patch%02x\n", $bits[$j], $j);
-	}
-	$s .= "\n\n";
-	for($i = $skip = 0;$i < @sched;$i++) {
-		$_ = $sched[$i];
-		if($skip > 0 && /:/) {
-			splice(@sched, $skip, $i - $skip, $s);
-			last;
-		}
-		$skip = $i + 1 if(/^mem_patch00:\s*$/);
-	}
-	if($skip == 0) {
-		$s = "mem_patch00:\n" . $s;
-		splice(@sched, 0, 0, $s);
-	}
-	open file,">output/sched.rom";
-	for($i = 0;$i < @sched;$i++) { print file $sched[$i]; }
-	close file;
-}
-
-sub zcode {
-	open file, "output/bt_program23.meta";
-	@f = <file>;
-	close file;
-	for($i = $label = $line[0] = 0, $z = 1;$i < @f;$i++) {
-		$_ = $f[$i];
-		$line[0] = $i - 1 if(/^org\s+0x([23]000|800)/ && $line[0] == 0);
-		if(/^org z\s*$/) {
-			$line[$z/0x10000 + 1] = $i - 1;
-			$z += 0x10000;
-			$f[$i] = sprintf("org 0x%x\n", $z);
-			$label = 1;
-		}
-		if(/^(\w+):\s*$/ && $label == 1) {
-			$lab{$1} = $z;
-			$label = 2;
-		}
-	}
-	return if($z == 1);
-	$line[$z/0x10000 + 1] = $i - 1;
-	for($i = 0;$i < @f;$i++) {
-		$_ = $f[$i];
-		$label = "";
-		if(/^\s*(branch|nbranch|call|ncall|setarg)\s+(\w+)\s*$/ || /^\s*(branch|nbranch|call|ncall|arg)\s+(\w+)\s*,\s*(\w+)\s*$/) {
-			$label = $2;
-		}
-		if(/^\s*(bmark|beq|bne|bbit[01])\s+(\w+)\s*,\s*(\w+)\s*$/) {
-			$label = $3;
-		}
-		$branch = /^\s+branch\s+$label\s*$/ ? 1 : 0;
-		if(exists($lab{$label})) {
-			$nlabel = "jmpz_" . $label;
-			$f[$i] =~ s/$label/eval "$nlabel"/e;
-			if($lab{$label} > 100) {
-				$z = int($lab{$label}/0x1000);
-				$l = $i < $line[1] ? $line[0] : $line[$z/10 - 1];
-				if($branch && $i >= $line[1]) {
-					$f[$i] = sprintf("\tsetarg 0x%x\n\tbranch p_zcode_entrance_2Bytes_common\n\n", $z);
-				} else {
-					$f[$l] .= sprintf("%s:\n\tsetarg 0x%x\n\tbranch p_zcode_entrance_2Bytes_common\n\n", $nlabel, $z);
-				}
-				$lab{$label} = 1;
-			}
-		}
-	}
-	open file, ">output/bt_program23.meta";
-	for($i = 0;$i < @f;$i++) {
-		if($f[$i] =~ /^\s*bbit1 8,pf_patch_ext\s*$/) {
-			printf file ("p_start:\n\tbranch p_patch_array\n\np_zcode:\n");
-			for($j = 0;$j < 63;$j++) {
-				printf file "\tnop %d\n", $j + 1;
-			}
-			printf file "p_patch_array:\n";
-		}
-		print file $f[$i];
-	}
-	close file;
-}
-
-sub authrom {
-	$addr = 0x9000;
-	foreach $s (@ARGV) {
-		open f, "../sched/" . $s . ".dat" or die "cannot open dat file $s";
-		@ff = <f>;
-		close f;
-		foreach (@ff) { $_ =~ s/\s//g;push @auth, $_ . "\n"; }
-	#	printf "0x%x %s_ADDR\n", $addr, uc($s);
-		$addr += $#ff + 1;
-	}
-	open f,">auth.rom";
-	print f @auth;
-	close f;
-	open f,"romcode.rom" or return;
-	@rom = <f>;
-	close f;
-	for($i = 0, $j = $#rom - 0x1ff;$i < 0x200;$i++,$j++) {
-		for($k = 0, $l = "";$k < 4;$k++) {
-			$_ = $auth[$i*4 + $k];
-			s/\s//g;
-			$_ = "00" if(/^$/);
-			$l =  $_ . $l;
-		}
-		$rom[$j] = $l . "\n";
-	}
-	open f,">romcode.rom";
-	print f @rom;
-	close f;
-}
-
-sub otp {
-	open f,'eeprom.dat';
-	@a=<f>;
-	open f,'../sched/otp_set.dat';
-	@b=<f>;
-	open f,'>otp.dat';
-#	printf f "0b\n00\n";
-	print f @b;
-	splice(@a,0,2);
-	print f @a;
-	close f;
-}
-
-if($ARGV[0] eq "otp") {
-	otp();
-	exit;
-} elsif(@ARGV > 0) {
-	authrom();
-	exit;
-}
-
-parseif("output/bt_program23.meta");
-parseif("output/bt_format.meta");
-genpatch() if($defs !~ / SIM /);
-malloc();
-zcode();
Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/util/otpcheck.pl
===================================================================
--- /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/util/otpcheck.pl	(revision 5679)
+++ /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/util/otpcheck.pl	(nonexistent)
@@ -1,105 +0,0 @@
-#!/usr/bin/perl
-use strict;
-use warnings;
-use File::Spec;  
-# 鑾峰彇褰撳墠鑴氭湰鐨勭洰褰曡矾寰
-my $current_dir = File::Spec->rel2abs('.');
-my $parent_dir = File::Spec->catdir($current_dir, '..');  # 鑾峰彇涓婁竴绾х洰褰
-
-# 鎸囧畾瑕佹悳绱㈢殑鏂囦欢鍚
-my $filename = File::Spec->catfile($parent_dir, 'output', 'otp.dat');
-# 鎵撳紑鏂囦欢杩涜璇诲彇
-open(my $fh, '<',$filename) or die "鏃犳硶鎵撳紑鏂囦欢 '$filename':$!";
-
-# 璇诲彇鏁翠釜鏂囦欢鍒版暟缁勪腑
-my @file_content = <$fh>;
-chomp @file_content;  # 绉婚櫎姣忚鐨勬崲琛岀
-
-# 鍏抽棴鏂囦欢鍙ユ焺
-close($fh);
-
-# 鍒濆鍖栧彉閲
-my $found = 0;
-my $otp_end_address = 0;
-# 寰幆閬嶅巻鏂囦欢鍐呭锛屾瘡娆＄Щ鍔ㄤ竴涓瓧鑺
-for my $start (0 ..$#file_content - 3) {
-    # 鎻愬彇浠庡綋鍓嶈捣濮嬩綅缃紑濮嬬殑鍥涗釜瀛楄妭
-    my $chunk = join('', @file_content[$start .. $start + 3]);
-    
-    # 妫鏌ヨ繖鍥涗釜瀛楄妭鏄惁鍖归厤鎸囧畾鐨勫瓧绗︿覆
-    if ($chunk eq '55aaaa55') {
-        $otp_end_address = $start +9;
-        # print "After adding 9 to the start position: $start\n";
-        $found = 1;
-    }
-}
-
-# 濡傛灉鎵惧埌浜 "55aaaa55"锛屽垯缁х画澶勭悊 sched.rom 鏂囦欢
-if ($found) {
-    my $sched_filename = File::Spec->catfile($parent_dir, 'output', 'sched.rom');
-    # 鎵撳紑鏂囦欢杩涜璇诲彇
-    open(my $sched_fh, '<',$sched_filename) or die "鏃犳硶鎵撳紑鏂囦欢 '$sched_filename'$!";
-    # 璇诲彇鏁翠釜鏂囦欢鍒板瓧绗︿覆涓
-    my $sched_content = do { local$/; <$sched_fh> };
-    chomp $sched_content;  # 绉婚櫎瀛楃涓叉湯灏剧殑鎹㈣绗
-    # print "sched_content: $sched_content\n";
-    # 鍏抽棴鏂囦欢鍙ユ焺
-    close($sched_fh);
-    # 鍦 sched_content 涓煡鎵 "mem_otp_offset_le_addr2:"
-    my $sched_position = index($sched_content, 'mem_otp_offset_le_addr2:');
-    # 濡傛灉鎵惧埌浜 "mem_otp_offset_le_addr2:"
-    if ($sched_position != -1) {
-        # 鑾峰彇 "mem_otp_offset_dpi:" 鍚庨潰鐨勪袱涓瓧鑺
-        my $five_bytes_with_spaces = substr($sched_content, $sched_position + length("mem_otp_offset_le_addr2:"), 5);
-        $five_bytes_with_spaces =~ s/ //g;  # 绉婚櫎绌烘牸
-        my $five_bytes =$five_bytes_with_spaces;
-        # 瀛楄妭棰犲
-        my $reversed_bytes = substr($five_bytes, 2, 2) . substr($five_bytes, 0, 2);
-        my $decimal_value = hex($reversed_bytes);
-        # 鎵撳嵃鎵惧埌鐨勫瓧绗︿覆浣嶇疆淇℃伅浠ュ強鍚庨潰璺熼殢鐨勪袱涓瓧鑺
-        print "Original otp dpi store start little-endian bytes: $five_bytes\n";
-        print "Reversed (big-endian) bytes:  $decimal_value\n";
-        print "otp end bytes:  $otp_end_address\n";
-        if($decimal_value>$otp_end_address)
-        {
-            print"otp check done";
-        }
-        else
-        {
-            die "绯荤粺閿欒锛氬湪鏂囦欢 '$sched_filename' 涓壘涓嶅埌瀛楃涓 'mem_otp_offset_le_addr2:'\n";
-        }
-    } else {
-        print "String 'mem_otp_offset_le_addr2:' not found in file '$sched_filename'.\n";
-    }
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-}
-
-
Index: PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/util/romcrc.pl
===================================================================
--- /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/util/romcrc.pl	(revision 5679)
+++ /1121s/1121se/branch/mouse/AI_Project/baidu_project/xzr_ai_mouse/PB_2mode_3ch_HYC288_ai_mouse(Dry_battery)/util/romcrc.pl	(nonexistent)
@@ -1,54 +0,0 @@
-#!/bin/perl
-sub crc16_ccitt2
-{
-	my($crc, $c) = @_;
-
-  $crc  = ($crc >> 8) | ($crc << 8);
-  $crc ^= $c;
-  $crc ^= ($crc & 0xff) >> 4;
-  $crc ^= $crc << 12;
-  $crc ^= ($crc & 0xff) << 5;
-  $crc &= 0xffff;
- return $crc;
-}
-
-sub gencrc
-{
-  my($crc, $c) = @_;
-  my($i);
-	$c =~ s/\s//g;
-  for($i = 0;$i < length($c);$i+=2) {
-  	$crc = crc16_ccitt2($crc, hex(substr($c, $i, 2)));
-  }
-  return $crc;
-}
-
-open f,"$ARGV[0]" or die "open romfile fail";
-@txt = <f>;
-close f;
-$len = $len0 = $#txt;
-$len = hex($ARGV[1]) if(@ARGV > 1);
-for($i = 0, $crc = 0xffff;$i < $len;$i++) {
-	if($i <= $len) {
-		$_ = $txt[$i];
-		s/\s//g;
-		$wid = length($_) if($i == 0);
-		$crc = gencrc($crc, $_);
-		$txt[$i] = $_ . "\n";
-	} else {
-		$txt[$i] = join('', map('0', 1..$wid)) . "\n";
-		$crc = gencrc($crc, $txt[$i]);
-	}
-}
-if($wid > 4) {
-	$txt[$len] = join('', map('0', 1..($wid - 4)));
-	$crc = gencrc($crc, $txt[$i]);
-	$txt[$len] .= sprintf("%04x", $crc);
-} else {
-	$txt[$len] .= sprintf("%02x\n%02x\n", $crc >> 8, $crc & 0xff);
-}
-
-printf "%02x\n%02x\n", $crc >> 8, $crc & 0xff;
-open f,">$ARGV[0]";
-print f @txt;
-close f;
